第五次作业

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 分数>any(select 分数 from grade where 学号='0002') and 学号='0001';

 

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

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

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

select 学号,姓名 from student_info where 姓名 like '张%' UNION select 学号,姓名 from student_info where 姓名 like '刘%';

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

1)delete只删除表中的部分记录,而truncate会删除整个表。

2)delete、truncate仅仅删除表里面的数据;drop会把表的结构也删除掉。

3)delete 可以恢复删除的数据,而 truncate 和 drop 不能恢复删除的数据。

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

 

子查询就是将一个查询结果作为判断条件或者作为一张虚拟表在这个结果的基础上进行另一个查询。

1.子查询

语法 : SELECT 列名 FROM 表名 Where 条件

例子

1.查询与Scott工作岗位相同的员工的员工编号,姓名,工资和岗位信息

Select empno,enmae,sal,job from emp

Where job=(select job from emp where ename=’Scott’);

2.查询工资为所任岗位最高的员工的员工编号,姓名,岗位和工资信息,不包括岗位为‘clerk’和‘president’。

Select empno,enmae,sal,job from emp

Where sal in(select max(sal) from emp group by job) And job<>’clerk’ and job<>’president’;

posted @ 2023-10-20 08:45  杨11  阅读(66)  评论(0编辑  收藏  举报