数据库高级查询

1.联合查询(用的不多)

select code,name from info

union

select code,name from nation

对行的扩展

 

select code,name from nation

2.连接查询

select * from info,nation 会形成大量数据,笛卡尔积

select  * from info,nation where info.nation=nation.code

select info.code,info.name,info.sex,nation.name,info.birthday from info,nation where info.nation=nation.code

 

select info.code,info.name,info.sex,nation.name,info.birthday from info join nation  on info.nation=nation.code

left join 左连接

 

3.子查询(重要)

外层查询,里层查询,子查询的结果作为父查询的条件使用

无关子查询

  子查询和父查询没有关系,子查询单独拿出来可以执行

1.查询民族为“汉族”的所有人员信息

select * from info where nation=(

select code from nation where name=‘汉族’)

2.查询所有厂商是“一汽大众”的汽车信息

selec * from car where brand in((select brand_code from brand where prod_code in(select prod_code from Productor where prod_name='一汽大众'))

相关子查询


查询油耗低于该系列平均油耗的汽车信息
select * from car where oil<(该系列平均油耗)
select avg(oil) from car where brand='该系列'

select * from car a where oil<(select avg(oil) from car b where b.brand=a.brand)

posted @ 2018-01-03 16:29  niushuangmeng  阅读(170)  评论(0编辑  收藏  举报