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

这个作业属于哪个课程 https://edu.cnblogs.com/campus/uzz/cs3
这个作业要求在哪里 https://edu.cnblogs.com/campus/uzz/cs3/homework/13074
这个作业的目标 SQL语句的基本使用5-多值子查询

1.在student_info表中查找与“刘东阳”性别相同的所有学生的姓名、出生日期。

mysql> select 姓名,出生日期 from student_info where 性别=(select 性别 from student_info where 姓名='刘东阳');

image

2.使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。

mysql> select s.学号,s.姓名,s.性别 from student_info s,grade g where s.学号=g.学号 and 课程编号 in(0002,0005);

image

3.使用ANY子查询查找学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数

mysql> select 课程编号,分数 from grade where 学号='0001' and 分数>any
    -> (select min('分数') from grade where 学号='0002');

image

4.使用ALL子查询查找学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。

mysql> select 课程编号,分数 from grade where 学号='0001' and 分数>all
    -> (select 分数 from grade where 学号='0002');

image

5.使用UNION运算符针student_info表中姓“刘”的学生的学号、姓名与姓“张”的学生的学号、姓名返回在一个表中。

mysql> select 学号,姓名 from student_info where 姓名 like '刘%'
    -> union
    -> select 学号,姓名 from student_info where 姓名 like '张%';

image

6.思考:delete 、drop、truncate区别,并总结.

Delete :

(对数据库中的表进行操作)
删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行)。
删除某一行:Delete from 数据表名称 where 列名称=值;
删除所有行:Delete * from 数据表名称

Drop

Drop :删除数据表或数据库,或删除数据表字段。
删除数据库:drop database 数据库名称
删除数据表:(表的结构、属性、索引也会被删除)

Truncate

Truncate:删除数据表中的数据(仅数据表中的数据,不删除表)。
比较:删除数据的速度,一般来说: drop> truncate > delete
总结:在使用drop和truncate时一定要注意,虽然可以恢复,但为了减少麻烦,还是要慎重。
如果想删除部分数据用delete,注意带上where子句,回滚段要足够大;
如果想删除表,当然用drop;
如果想保留表而将所有数据删除,如果和事务无关,用truncate即可;

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

https://www.123pan.com/s/HtHhjv-ZpMmH.html

posted @ 2023-10-16 20:28  Sss~~  阅读(103)  评论(0)    收藏  举报