高级查询

Posted 五月十九

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级查询相关的知识,希望对你有一定的参考价值。

高级查询

1.连接查询(对列的扩展)

第一种形式:
select * from Info,Nation #会形成笛卡尔积
select * from Info,Nation where Info.Nation = Nation.Code #加上筛选条件

select Info.Code,Info.Name,Sex,Nation.Name,Birthday from Info,Nation where Info.Nation = Nation.Code
#查询指定列

select Info.Code as ‘代号‘,Info.Name as ‘姓名‘,Sex as ‘性别‘,Nation.Name as ‘民族‘,Birthday as ‘生日‘ from Info,Nation where Info.Nation = Nation.Code #换表头

第二种形式:
select * from Info join Nation #join连接
select * from Info join Nation on Info.Nation = Nation.Code #join on关键字


2.联合查询(对行的扩展)
select * from Info where Nation = ‘n002‘
union
select * from Info where Code = ‘p002‘

3.子查询(无关子查询)
在一个SQL语句中,至少有两个查询,其中一个a查询的结果作为另一个b的查询条件,a成为里层查询或者子查询,
b成为外层查询或父查询。

查询民族为“汉族”的人员信息:
select * from Info where Nation =(select Code from Nation where Name = ‘汉族‘)

查询民族为“汉族”或者"回族"的人员信息
select * from Info where Nation in (select Code from Nation where Name = ‘汉族‘ or Name = ‘回族‘)

4.子查询(相关子查询)

查询同一系列的 油耗要比平均油耗低的汽车信息

子查询:select avg(Oil) from Car where Brand = ‘‘
父查询:select * from Car where Oil< 平均油耗

select * from Car a where a.Oil <(select avg(b.Oil) from Car b where b.Brand = a.Brand)

 

以上是关于高级查询的主要内容,如果未能解决你的问题,请参考以下文章

高级查询(嵌套查询)和(相关子查询)

SQL(高级查询)

Mysql 基础 高级查询

mysql高级查询

Hibernate 的查询语言 HQL 与高级查询

高级查询,关联查询