1.请写出下列创建存储过程的MySQL语句,存储过程名命名为PROC_StuRepInfo_学号最后两位
利用学生学号查询该名学生各学期的选修课程情况,要求显示学生的学号,姓名,选修的学年,学期,选修的课程号,课程名及其成绩,显示结果按学年和学期升序排列。
DELIMITER //
CREATE PROCEDURE PROC_StuRepInfo(
Sid CHAR(10))
BEGIN
SELECT S.Sno, Sname, Racademicyear, Rterm, R.Cno, Cname, Grade
FROM Students S, Reports R, Courses C
WHERE S.Sno=R.Sno AND R.Cno=C.Cno
AND S.Sno=Sid
ORDER BY Racademicyear,Rterm;
END //
DELIMITER ;
请写出下列调用存储过程PROC_StuRepInfo_学号最后两位的MySQL语句,并将执行结果截图,截图的右下角要求标上你的学号最后两位
查询学号为‘2015112101'的选课情况
CALL Proc_StuRepInfo('2015112101');
请写出下列创建存储过程的MySQL语句,存储过程名命名为PROC_StuGrade_学号最后两位
查询某位学生指定课程的成绩和可获得这门课程的学分
(注:若该学生的课程成绩小于60分或是为空,则学分要显示为0分)
DELIMITER //
CREATE PROCEDURE PROC_StuGrade(
SN VARCHAR(4),CN VARCHAR(20))
BEGIN
SELECT S.Sno,Sname,Cname,Grade,
(CASE
WHEN Grade<60 OR Grade IS NULL THEN 0
ELSE Ccredit
END) AS "Credit"
FROM Students S INNER JOIN Reports R ON S.Sno=R.Sno
INNER JOIN Courses C ON R.Cno=C.Cno
WHERE S.Sname=SN AND C.Cname=CN;
END //
DELIMITER ;
CALL PROC_StuGrade_49('张建国','数据库系统原理');
CALL PROC_StuGrade_49('朱玉玲','计算机科学概论');
请写出下列创建存储过程的MySQL语句,存储过程名命名为PROC_StuCreditInfo_学号最后两位
利用学生学号查询该名学生在指定学年,指定学期所获得的学分数以及还未获得的学分数,若该门课程尚无成绩或成绩小于60分,则为尚未获得的学分,结果以变量形式输出(OUTPUT)。
DELIMITER //
CREATE PROCEDURE PROC_StuCreditInfo(
SN CHAR(10), ADyear INT, TM INT, OUT GetCredits INT, OUT NotGetCredits INT)
BEGIN
SELECT SUM(Ccredit)
FROM Reports R, Courses C
WHERE R.Cno=C.Cno AND Sno=SN AND Racademicyear=ADyear
AND Rterm=TM AND Grade>=60
INTO GetCredits;
SELECT SUM(Ccredit)
FROM Reports R, Courses C
WHERE R.Cno=C.Cno AND Sno=SN AND Racademicyear=ADyear
AND Rterm=TM AND (Grade<60 OR Grade IS NULL)
INTO NotGetCredits;
END //
DELIMITER ;
请写出下列调用存储过程PROC_StuCreditInfo_学号最后两位的MySQL语句,并将执行结果截图,截图的右下角要求标上你的学号最后两位
(1)查询学号为2016115101的学生2017年第2学期的学分情况
(2)查询学号为2014112104的学生2014年第1学期的学分情况
要求:若已获学分或未获学分返回为NULL,则结果要显示为0
SET @GetCredit=0,@NotGetCredit=0;
CALL PROC_StuCreditInfo('2016115101',2017,2,@GetCredit,@NotGetCredit);
SELECT '2016115101' AS"学号",2017 as "学年",2 as "学期",
ifnull(@GetCredit,0) as "已获学分",IFNULL(@NotGetCredit,0)AS"未获学分";
请写出下列创建存储过程的MySQL语句,存储过程名命名为PROC_TeaTax_学号最后两位
统计指定教师每月需要缴纳的税金是多少,并将统计结果以变量形式输出(OUT)
如果是中级以下职称(含中级),则税金=(工资+岗位津贴-1500)*5%;
如果是副高级职称,则税金=(工资+岗位津贴-2000)*5%;
如果是正高级职称,则税金=(工资+岗位津贴-2500)*5%
提示:IF… ELSE…
注意:返回的税金应是实数
DELIMITER //
CREATE PROCEDURE PROC_TeaTax(
TN VARCHAR(4), OUT Ttax DECIMAL)
BEGIN
DECLARE tmp INT;
DECLARE prof VARCHAR(8);
SELECT Tprof FROM Teachers
WHERE Tname=TN
INTO prof;
IF (prof='教授') THEN
SET tmp=2500;
ELSEIF (prof='副教授') THEN
SET tmp=2000;
ELSE
SET tmp=1500;
END IF;
SELECT (Tsal+Tcomm-tmp)*0.05 FROM Teachers
WHERE Tname=TN
INTO Ttax;
END //
DELIMITER ;
请写出下列调用存储过程PROC_TeaTax_学号最后两位的MySQL语句,并将执行结果截图,截图的右下角要求标上你的学号最后两位
(1)查询教师张雪应缴纳的税金
(2)查询教师田锋应缴纳的税金
SET @Ttax=0.0;
CALL PROC_TeaTax_49('张雪',@Ttax);
SELECT '张雪' AS "教师姓名",FORMAT(@Ttax,2) AS "税金";