MySQL 基础教程[10]

  • 本系列MySQL 基础教程通过“问题-代码”的方式介绍各类方法,每篇设置2个MySQL综合问题,并给出解决方案。

问题1

41 给定一个用于存放学生选课信息的数据库XK, 由学生信息表student、课程信息表course和选课信息表ordering构成。其中, 表studenti己录学生的学号、姓名、性别、年龄等信息; 表course记录课程的课程号、课程名称、授课教室 等信息; 表ordering描述学生的选课信息, 并记录学生所选课程的成绩。

  1. 使用UPDATE命令, 将表student中字段stu_id为 2 的学生年龄更新为 “20”。
    2.使用 SELECT语句查诣学生信息表中所有男生 (取值为 ’ M ′ \mathrm{M}^{\prime} M ') 的姓名, 且按年龄的升序排序, 最后把此SELECT语句 存入考生文件大大下的si12.txt文件中。
    3.使用 SELECT语句查询课程成绩不及格的学生姓名, 并此SELECT语句存入考生文件夹下的sj13.txt文件中。
    4.建立一个名为 stu_user的用户, 主机名为 localhost, 并为其授予关于表student的SELECT、INSERT权限。
  2. 使用INSERT语句向表ordering中添加如下一条信息: 学其为 1 的学生选修了课程号为 5 的课程, 因该课程尚末结束, 故目前没有成绩。

问题1代码

#【1】
use XK;
show create table student; 
update student set stu_age=20 where stu_id=2;
#【2】
select name from student where sex="M" order by stu_age ASC;
#【3】
select name from  student, ordering where ordering.no=student.in and grade<60;
#【4】
create user  'stu_user'@'localhost'; //有没有都可以
grant select, insert on student to 'stu_user'@'localhost' with grant ioption;
#【5】
insert into ordering(,) values(1, 50)

问题2

  1. 在数据库XK中创建一个名称为trigger_delete_student的触发器, 其实现当从表student中删除学生信息时, 可自 动删除该学生的选课信息。

  2. 在数据库XK中创建一个名称为sp_update_room的存储过程, 其功能是为表course中指定的一个课程号course_i安排一 个新的授课教室。

问题2代码

#【1】
USE XK;
CREATE trigger trigger_delete_student after DELETE //之后删除
ON ordering FOR EACH ROW 
DELETE FROM student WHERE stu_no=OLD.stu_id;


#【2】
USE XK;
DELIMITERS $$
CREATE procedure sp_update_room(IN cid INT, IN rno CHAR(20))
BEGIN 
  UPDATE course SET room=rno WHERE course_id=cid;
END $$
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高山莫衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值