第5次作业-SQL语句的基本使用5-多值子查询

发布时间 2023-10-16 20:07:41作者: WHAN*
这个作业属于哪个课程 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 s.学号,姓名,性别,课程编号
    -> from student_info s, grade g
    ->  where s.学号=g.学号
    -> 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
    Delete语句用于删除表中的一条或多条记录
    DELETE FROM table_name WHERE condition;
    table_name:要删除记录的表名。
    condition:要删除记录的条件。
  • Drop
    Drop用于删除整张表
    DROP TABLE table_name;
    该语句执行之后,整张表将被删除
  • Truncate
    Truncate命令用于删除表中的所有数据
    TRUNCATE TABLE table_name;
    该语句执行之后,整张表的内容都将被删除

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

  1. 使用in操作符
    1). 比较运算符in为子查询中返回列表中的任何一个
    2). in就是等好的意思,只是因为in返回的是多值,与group by搭配,表示多值
  2. 使用all操作符
    1).比较子查询中返回列表中的每一个值
    2).<all为小于最小的,>all为大于最大的
  3. 使用any操作符
    1).比较子查询中返回列表中的每一个值
    2).<any为小于最大的,>any为大于最小的
  4. 使用exists操作符
    1). 比较子查询中返回列表中的每一行
    2). 在内层子查询中必须有where子句
    3). exists操作符实现的操作也可以用in操作符来实现