SQL语句的基本使用5-多值子查询

这个作业属于哪个课程 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 student_info.学号,姓名,性别 from student_info,grade
where student_info.学号=grade.学号
and 课程编号 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区别,并总结

delete、drop和truncate是针对数据库中的表的操作,它们的作用和效果不同。下面是它们的区别和总结:

1. DELETE:
1.用于删除表中的一行或多行数据。
2.可使用WHERE子句指定删除的条件。
3.删除的行可以使用ROLLBACK操作回滚。
4.删除操作会引发表中的触发器(trigger)。
5.删除的行将保留在事务日志中(即可恢复)。
2. DROP:
(1)用于删除整个表,包括表的结构和数据。
(2)DROP操作无法回滚,即使是意外删除也无法恢复。
(3)删除表释放相关的存储空间。
(4)删除表也会删除与之关联的触发器、索引、约束等。
(5)DROP操作可能需要有足够的权限。
3. TRUNCATE:
(1)用于删除表中的所有数据,但保留表的结构。
(2)TRUNCATE操作无法回滚,即使是意外删除也无法恢复。
(3)删除的数据不会在事务日志中保留。
(4)删除和释放存储空间的操作是直接进行的,效率更高。
(5)TRUNCATE操作可能需要有足够的权限。

总结:

(1)DELETE用于删除表中的一行或多行数据,并支持条件筛选。
(2)DROP用于完全删除整个表,包括数据和结构,并释放相关的存储空间。
(3)TRUNCATE用于删除表中的所有数据,但保留表的结构,且效率更高。
(4)DROP和TRUNCATE操作都无法回滚,需要谨慎使用,而DELETE可以通过ROLLBACK回滚删除操作。

7.整理课上关于多值子查询的例子,以笔记形式、或者视频讲授形式呈现。尽可能通俗易懂,不限于形式。

https://www.123pan.com/s/Rs73jv-juJ7H.html

posted @ 2023-10-16 16:07  唯义  阅读(65)  评论(0)    收藏  举报