【实验十三】
(1) 定义一个整型局部变量iAge和可变长字符型局部变量vAddress,并分别赋值20和“中国山东”,最后输出变量的值,并要求通过注释对批处理中语句的功能进行说明。
CREATE PROCEDURE t01()
BEGIN
DECLARE iAge int;
DECLARE vAddress VARCHAR(20);
SET iAge=20;
SET vAddress='中国山东';
SELECT iAge, vAddress;
END;
(2) 通过全局变量获得当前My SQL服务器的版本。
SELECT @@VERSION 当前版本;
(3) 求1~100的偶数和。
CREATE PROCEDURE t03()
BEGIN
SET @i=2,@sum=0;
WHILE @i<=100 DO
BEGIN
SET @sum=@i+@sum;
SET @i=@i+2;
END;
END WHILE;
SELECT @sum;
END;
CALL t03();
(4) 对于字符串“Welcome to My SQL”,进行以下操作。(查阅联机丛书)
① 将字符串转换为全部大写。
SELECT LOWER('Welcome to My SQL');
② 将字符串转换为全部小写。
SELECT UPPER('Welcome to My SQL');
③ 去掉字符串前后的空格。
SELECT TRIM(' Welcome to My SQL ');
④ 截取从第12个字符开始的10个字符。
SELECT MID('Welcome to My SQL',12,10);
(5) 使用日期型函数,获得输出结果见下表。
输出结果:
年份 月份 日期 星期几
2009 11 18 2
SELECT YEAR('2009-11-18') 年份,MONTH('2009-11-18') 月份,DAY('2009-11-18') 日期,
WEEKDAY('2009-11-18') 星期几;
(6) 根据sc表中的成绩进行处理:成绩大于等于60分的显示“及格”,小于60分的显示“不及格”,为NULL的显示“无成绩”。
SELECT CASE
WHEN degree>=60 THEN '及格'
WHEN degree<60 THEN '及格'
WHEN degree=NULL THEN '无成绩'
END
AS 成绩,sno
FROM sc
(7) 利用SQL条件语句,在student表中查找“李艳”同学的信息,若找到,则显示该生的学号、姓名、班级名称及班主任,否则显示“查无此人”。
CREATE PROCEDURE t07()
BEGIN
DECLARE ming VARCHAR(20);
SELECT sno into ming FROM student WHERE sname='李艳';
IF (ming is NULL) THEN
BEGIN
SELECT '查无此人' AS 查询结果;
END;
ELSE
SELECT sno,sname,classname,header
FROM student,class
WHERE sname='李艳' AND student.classno=class.classno;
END IF;
END;
CALL t07();