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 学号,姓名,性别 from student_info where
学号 in (select 学号 from grade where 课程编号 in ('0002','0005'));

3.使用ANY子查询查找学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。
select 学号,课程编号,分数 from grade
where 学号='0001' and 分数>any (select min(分数) from grade where 学号='0002');

4.使用ALL子查询查找学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。
select 课程编号,分数 from grade
where 学号 ='0001' and 分数 >all (select max(分数) 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:
DELETE语句用于从表中删除数据行。使用DELETE可以通过指定WHERE子句来选择要删除的特定行,也可以省略WHERE子句以删除整个表中的所有行。DELETE语句只删除数据,而保留表的结构不变。执行DELETE操作时,会记录在事务日志中,可以通过回滚操作来恢复被删除的数据。DELETE操作相对较慢,因为它需要逐行删除,并且还需要更新相关的索引和约束。
DROP:
DROP语句用于完全删除表,包括表的结构和其中的数据。执行DROP后,整个表都会从数据库中消失,无法再访问或使用。DROP语句是一种非常强大的操作,因此在使用时需要谨慎,务必备份重要数据。与DELETE不同,DROP操作不记录在事务日志中,不能回滚。DROP操作非常快速,因为它只需释放表所占用的空间。
TRUNCATE:
TRUNCATE语句用于删除表中的所有数据,但保留表的结构。TRUNCATE操作与DELETE操作类似,但效率更高。TRUNCATE删除整个表的数据,而不是逐行删除,因此速度更快。与DELETE不同,TRUNCATE操作不记录在事务日志中,因此无法回滚操作。TRUNCATE还可以重置表的自增主键的起始值。与DROP不同,TRUNCATE操作只删除数据行,保留表的结构。
总结:
DELETE用于删除表中的数据行,保留表结构,可以使用WHERE子句过滤特定的行。
DROP用于完全删除表,包括表的结构和数据,操作不可逆,在执行前需要慎重备份。
TRUNCATE用于快速删除表中的所有数据,保留表的结构,效率比DELETE高,但无法使用WHERE子句过滤数据。注意,TRUNCATE无法恢复被删除的数据。
在实际应用中,根据具体需求选择合适的操作方式,并确保操作前备份重要的数据。

浙公网安备 33010602011771号