第五次作业
第五次作业-SQL语句的基本使用5-多值子查询
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/uzz/cs3 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/uzz/cs3/homework/13074 |
| 这个作业的目标 | 学习多值子查询 |
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 课程编号 = 0002 and 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区别,并总结。
truncate和delete只删除数据不删除表的结构,drop删除表的结构,触发器,索引。
区别:
1、delete一般用来删除表中的某一条或者一行数据,在不设置WHERE条件下可以删除表中的所有信息,在以后需要的时候可以进行撤回操作。对表执行delete之后,该表不会减少表或者索引所占用的空间。
2、truncate是清空的意思,可以理解为将表里的数据全部清除,没有撤回操作。对表执行truncate之后,表和索引就会恢复到初始的大小
3、drop可以将表的结构和数据内容都删除。
4、delete和truncate都是对数据进行操作,区别是范围不同。delete可以针对数据中的table、view两种类型。而truncate只能针对table类型。
5、速度上:drop>truncate>delete;
6、delete是DML(数据操作语言)语句,执行后不会自动提交;drop、truncate都是DDL(数据定义语言)语句,执行后会自动提交。

浙公网安备 33010602011771号