1.返回一个值的子查询
2.返回一组值的子查询
1.返回一个值的子查询
(1)查询与刘伟职称相同的教师号、姓名和职称
(2)使用IN谓词查询讲授课程号为C1的教师姓名
(3)使用ALL谓词查询其他系中比计算机系所有教师工资都高的教师姓名、工资和所在系
(4)使用EXISTS谓词查询没有讲授C1课程的教师姓名、所在系
(5)使用NOT EXISTS谓词查询至少选修了学生S2选修的全部课程的学生学号
查询年龄不大于19岁或者是计算机系的学生
(1)查询年龄不大于19岁或者是计算机系的学生
1、选中需要测试的数据库,并查看测试数据库表;由于表t_people_info中的id是主键,求id的个数即是求数据库表的总记录数,代码如下:select count(id) from t_people_info
2、查看数据库表t_people_info中年龄中最小值,需要用到集合函数min(),代码如下:
select min(p_age) from t_people_info
3、查看数据库表t_people_info中年龄中最大值,需要用到集合函数max(),代码如下:
select max(p_age) from t_people_info
4、查看数据库表t_people_info中年龄中平均值,需要用到集合函数avg(),代码如下:
select avg(p_age) from t_people_info
5、若想统计t_people_info中的年龄的总和,用到集合函数sum(),
代码如下:
select sum(p_age) from t_people_info
6、统计数据库表中记录个数,除了使用count(主键)外,可以使用count(1)、count(*)和count(0),
代码如下:
select count(1) from t_people_info
select count(*) from t_people_info
select count(0) from t_people_info
集合运算
这是一种二目运算,一共有四种四种运算符:并,差,交,笛卡尔积;
语法:
查询语句
[UNION | UNIONALL | INTERSECT | MINUS]
查询语句
UNION(并集)
返回若干个查询结果,但是重复的不显示
Eg:SELECT *FROM dept
UNION
SELECT*FROM dept WHERE deptno = 10
注:查询 *** 作编写的过程中尽量使用UNION , UNION ALL代替 OR,提高查询速度
例:
查询工作是销售和clerk的;
SELECT*
FROM emp WHEREjob = ‘saleman’ or job = ‘clerk’
另一种方式:
SELECT * FROMemp WHERE job = ‘SALESMAN’
UNION
SELECT * FROMemp WHERE job = ‘CLERK’
UNION ALL(并集)
返回若干个查询结果,但是重复的也显示
Eg:SELECT * FROM dept
UNION ALL
SELECT*FROM dept WHERE deptno = 10
MINUS(差集)
返回若干个结果中不同的部分;
Eg:SELECT * FROM dept
MINUS
SELCT*FROM dept WHERE deptno = 10
INTERSECT(交集)
显示查询结果中相同的部分;
Eg:SELECT * FROM dept
INTERSECT
SELCT*FROM dept WHERE deptno = 10
————————————————
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)