这个作业属于哪个课程 | 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 学号='0001' and 分数>any (select 分数 from grade where 学号='0002');
4.使用ALL子查询查找学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。
select 课程编号,分数 from grade
where 学号='0001' and 分数>all (select 分数 from grade where 学号='0002');
5.使用UNION运算符针student_info表中姓“刘”的学生的学号、姓名与姓“张”的学生的学号、姓名返回在一个表中。
select 学号,姓名 from student_info where 姓名 like '刘%'
union
select 学号,姓名 from student_info where 姓名 like '张%';
6.思考:delete 、drop、truncate区别,并总结。
(1)语法不同:truncate和delete是SQL语句,drop是DDL(数据定义语言)语句。
(2)执行速度不同:truncate比delete和drop快,因为它直接删除整个表而不是一行一行地删除。
(3)回滚方式不同:truncate和drop是不可回滚的操作,一旦执行完成,就无法恢复。而delete可以在事务中回滚。
(4)可以删除的范围不同:truncate和delete只能删除表中的数据,而drop可以删除整个表。
(5)是否保留表结构不同:truncate和delete保留表结构,而drop删除整个表,包括表结构。
(6)是否激活触发器不同:delete会激活触发器,而truncate和drop不会激活触发器。
总结:如果需要删除整个表并重新创建,则使用drop语句;如果需要删除表中的数据,但保留表结构,则使用truncate语句;如果需要删除表中的数据,并激活触发器,则使用delete语句
7.整理课上关于多值子查询的例子,以笔记形式、或者视频讲授形式呈现。尽可能通俗易懂,不限于形式。
链接:https://www.123pan.com/s/af7hjv-Gr9t.html
标签:语句,分数,多值子,truncate,drop,SQL,where,select,delete From: https://www.cnblogs.com/zglmk/p/17775891.html