MySQL 基础教程[10]
创始人
2025-05-28 05:25:34

MySQL 基础教程[10]

  • 问题1
  • 问题1代码
  • 问题2
  • 问题2代码

  • 本系列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, 5, 0)

问题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 $$

相关内容

热门资讯

壹快评丨腾讯收购喜马拉雅附条件... 5月12日,市场监管总局发布《附加限制性条件批准腾讯控股有限公司收购喜马拉雅公司股权案反垄断审查决定...
A股新晋“股王”源杰科技副总经... A股新晋“股王”源杰科技副总经理陈文君被刑拘。5月14日,源杰科技发布《关于副总经理无法正常履职暨离...
IPO新观察|长鹰硬科过会,硬... 5月14日,昆山长鹰硬质材料科技股份有限公司(简称“长鹰硬科”)IPO申请在北京证券交易所(简称“北...
复星医药再加码阿尔茨海默病口服... “昨天我们刚刚达成协议,今天早上双方团队开始融合了,会以更大的投入来加速整体的完成速度。全球加起来有...
业绩骤变!大股东减持!科兴制药... 科兴制药依托四款成熟生物药稳住基本盘,但长期依赖老产品,毛利率持续走低。2026年一季度业绩转亏,股...