这个作业属于哪个课程 | https://edu.cnblogs.com/campus/uzz/cs3 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/uzz/cs3/homework/13074 |
这个作业的目标 | SQL语句的基本使用5-多值子查询 |
1.在student_info表中查找与“刘东阳”性别相同的所有学生的姓名、出生日期。
select 姓名,出生日期 from student_info
-> where 性别=(select 性别 from student_info where 姓名='刘东阳');
2.使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。
select 学号,姓名,性别 from student_info
-> where 学号 in (select 学号 from grade where 课程编号 in('0002','0005'));
3.使用ANY子查询查找学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。
select 课程编号,分数 from grade
-> where 分数>any(select 分数 from grade where 学号='0002') and 学号='0001';
4.使用ALL子查询查找学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。
select 课程编号,分数 from grade
-> where 分数>all(select 分数 from grade where 学号='0002') and 学号='0001';
5.使用UNION运算符针student_info表中姓“刘”的学生的学号、姓名与姓“张”的学生的学号、姓名返回在一个表中。
mysql> select 学号,姓名 from student_info
-> where 姓名 like '刘%'
-> union
-> select 学号,姓名 from student_info
-> where 姓名 like '张%';
6.思考:delete 、drop、truncate区别,并总结。
Delete 用于逐行删除表中的数据,可以选择性删除满足条件的数据
Drop 用于删除整个数据库对象
Truncate 用于一次性删除表中的所有数据,保留表的结构,比逐行删除更高效
Truncate删除整个表的数据,而Delete只删除表中某些数据。如果需要删除一个有很多行的表,并且不需要恢复,那么truncate命令可以更快地清空表。另外,truncate和drop都是一个命令,不能与WHERE条件一起使用。如果需要只删除某些行,就要使用Delete命令。
Drop删除的是整张表,而truncate只删除表中的内容。如果只是想清空表中的数据而不涉及到表的操作,应该使用truncate。如果需要彻底删除一个表,应该使用Drop。
Delete和truncate的区别在于,Delete只删除表中的部分记录,而truncate会删除整个表。此外,Delete操作虽然可以撤销,但是不能回收空间。而truncate操作不仅不能撤销,而且会回收所有已分配的空间。
7.整理课上关于多值子查询的例子,以笔记形式、或者视频讲授形式呈现。尽可能通俗易懂,不限于形式。
[https://www.123pan.com/s/TBhhjv-JX24h.html]