网络数据库技术课程实验指导(6)

2018-12-17 10:20

(3) 使用逻辑运算符“AND”查看以下语句的结果。

SELECT (7>6) AND ('A'='B');

对上面语句的执行结果进行分析。

6. 系统函数的使用

(1) 获得一组数值的最大值和最小值。

SELECT GREATEST(5,76,25,96) ,LEAST(5,76,25,9);

(2) 将数1.32656四舍五入取整,将1.32656保留小数点后2位小数。

(3) 求财务部雇员总人数。

USE YGGL;

SELECT COUNT(EmployeeID) AS 财务部人数 FROM Employees WHERE DepartmentID= (SELECT DepartmentID FROM Departments

WHERE DepartmentName='财务部');

(4) 求财务部当年收入最高的员工姓名。

(5) 使用CONCAT函数连接两个字符串。

SELECT CONCAT('I love', 'MySQL');

(6) 使用ASCII函数返回字符表达式最左端字符的ASCII值。

SELECT ASCII('MySQL');

(7) 返回Employees表中员工号最左端四个字符。

(8) 获得当前的日期和时间。

SELECT NOW();

(9) 查询YGGL数据库中员工号为000001的员工出生的年份。

SELECT YEAR(Birthday) FROM Employees WHERE EmployeeID='000001';

(10) 使用DAYNAME函数返回当前时间的星期名。

(11) 计算Employees表中每个员工的年龄。

25

思考题:

实验中遇到的问题及解决方法。

26

实验8 过程式数据库对象的使用

实验类型: 验证型 实验课时: 4 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

1. 掌握存储过程的创建和调用方法 2. 掌握MySQL的流程控制语句 3. 掌握MySQL游标的使用 4.掌握存储函数的创建和调用方法 5.掌握触发器的创建和使用 6.掌握事件的创建和使用

实验要求:

掌握存储过程、存储函数、触发器和事件的相关知识

实验内容:

1. 存储过程 2. 存储函数 3. 触发器 4. 事件

实验步骤:

说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2): Departments (DepartmentID,DepartmentName,Note) Employees

(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)

Salary(SalaryID,InCome,OutCome,Time, EmployeeID) 要求:将实验步骤中紫色底纹部分填上正确答案。

1.

存储过程

(1)创建存储过程,使用Employees表中的员工人数来初始化一个局部变量,并调用这个存储过程。

27

USE YGGL DELIMITER $$

CREATE PROCEDURE TEST(OUT NUMBER1 INT ) BEGIN

DECLARE NUMBER2 INT;

SET NUMBER2=(SELECT COUNT(*) FROM Employees); SET NUMBER1=NUMBER2; END$$ DELIMITER ;

调用该存储过程

CALL TEST(@NUMBER);

查看@NUMBER的值。

SELECT @NUMBER ;

将调用存储过程及查看@NUMBER的值的命令及结果进行屏幕截图。

(2) 创建存储过程,比较两个员工指定年月的实际收入,若前者比后者高就输出0,否则输出1。

DELIMITER $$

CREATE PROCEDURE COMP(IN ID1 CHAR(6),IN ID2 CHAR(6),IN SJ CHAR(7)OUT BJ INT ) BEGIN

DECLARE SR1,SR2 FLOAT;

SELECT InCome-OutCome INTO SR1 FROM Salary

WHERE EmployeeID=ID1 AND TIME=SJ; SELECT InCome-OutCome INTO SR2 FROM Salary WHERE EmployeeID=ID2 AND TIME=SJ; IF SR1>SR2 THEN SET BJ=0; ELSE SET BJ=1; END IF; END$$ DELIMITER ;

调用该存储过程

28

CALL COMP('000001','108991','2012-12',@BJ1);

查看@BJ1的值。

SELECT @BJ1 ;

将调用存储过程及查看@BJ1的值的命令及结果进行屏幕截图。

(2) 创建存储过程,使用游标确定一个员工当月的实际收入是否排在前三名。结果为TRUE表示是,结果为FALSE表示否。

DELIMITER $$

CREATE PROCEDURE TOP3(IN EM_ID CHAR(6),OUT OK BOOLEAN ) BEGIN

DECLARE X_EM_ID CHAR(6); DECLARE ACT_IN,SEQ INT; DECLARE FOUND BOOLEAN;

DECLARE SALARY_DIS CURSOR FOR SELECT EmployeeID, InCome-OutCome

FROM Salary WHERE TIME=LEFT(NOW(),7) ORDER BY 2 DESC;

DECLARE CONTINUE HANDLER FOR NOT FOUND

SET FOUND=FALSE;

SET SEQ=0; SET FOUND=TRUE; SET OK=FALSE; OPEN SALARY_DIS;

FETCH SALARY_DIS INTO X_EM_ID,ACT_IN; WHILE FOUND AND SEQ<3 AND OK=FALSE DO SET SEQ=SEQ+1;

IF X_EM_ID=EM_ID THEN SET OK=TRUE; END IF;

FETCH SALARY_DIS INTO X_EM_ID,ACT_IN; END WHILE;

CLOSE SALARY_DIS;

29


网络数据库技术课程实验指导(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Office基本操作

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: