数据库数据查询之嵌套查询与集合查询

数据库数据查询之嵌套查询与集合查询,第1张

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

————————————————


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6920316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存