高级查询
1.连接查询:
select*from info
第一个形式,
select* from info, nation #形成一个笛卡尔积 适合数据量小的时候使用
select*from info, nation where [info.nation]info表中的nation列=nation.code
第二个形式
select* from info [join]连接 nation on info nation = nation.code
2.联合查询 ,对结果集行的扩展
select code , name from info
union 联合关键字
selerct code , name from nation
3.子查询(里查询)
父查询(外查询)
子查询的结果作为父查询的条件
(1)无关字查询
子查询在执行的时候和父查询没有关系,子查询可以单独执行
a.查询民族为汉族的所有人员信息:
父查询:select * from info where nation =()
子查询:select code from nation where name ='汉族'
select * from info where nation =(select code from nation where name ='汉族')
b。查询系列名为宝马5系的所有汽车信息
select * from car where brand = ( select brand _code from brand where brand _name = '宝马5系')
(2)相关子查询
子查询在查询的时候和父查询有关系,不能单独执行
a.查询汽车表中油耗小于该系列平均油耗的所有汽车信息:
父查询:select *from car where oil<(该系列平均油耗)
子查询:select avg(oil) from car where brand = 该系列
select *from car as ‘a’ where oil<(select avg(oil) from car as 'b' where b brand = a brand) 给表单加别名用as ,as后面
直接写 别名