十六 子查询
基本语法:
说明:子查询是在查询中包含另一个查询的查询,可以使用子查询代替表达式,自查询只能返回一列数,有时只返回但个值
示例:查询班级人数大于平均班级人数的班级
Select * from Class_TBL where (select count(*)
from student where CNO=Class_TBL.CNO)>((select count(*) from Student_TBL)/(
from student where CNO=Class_TBL.CNO)>((select count(*) from Student_TBL)/(
十七 使用union运算符合并多个查询结果
基本语法:
select column1 from table1_name union select column2 from table2_name
说明:所有查询中的列数和列的顺序必须相同,所有查询中按顺序对应列的数据类型必须相同或兼容,如果希望重新排序多个查询结果的合并结果,则在最后的select 语句中使用order by子句
十八 查询多个表或视图的信息
基本语法:select column1,column2,… from talbe1,table2,…
说明:在涉及多表查询时必须使用where语句给出多表之间的连接条件,对来自N各表或视图查询要写出N-1 个连接条件
示例:查询每个学生所在的系部的名称,班级的名称和姓名
Select DName,CName,SName
from Student_TBL S,Class_TBL C,Department_TBL Dwhere S.CNO=C.CNO and C.DNO=D.DNO
from Student_TBL S,Class_TBL C,Department_TBL Dwhere S.CNO=C.CNO and C.DNO=D.DNO
十九 相等连接与自然连接:相等连接是将要连接的列作相等比较的连接,在相等连接列中只保留一个连接列的连接称为自然连接
二十 比较连接:表与表之间的连接不使用“=”连接,而是使用比较运算符的连接
二十一 自连接就是表与它自己进行连接
二十二 左连接,右连接和全连接
二十三 使用exists:在where子句中可以使用exists子句,它用于测试跟随的子查询中的行是否存在