博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL的高级查询
阅读量:4884 次
发布时间:2019-06-11

本文共 1323 字,大约阅读时间需要 4 分钟。

高级查询

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

第一种形式

select * from Info,Nation #会形成笛卡尔积

select * from Info,Nation where Info.Nation = Nation.Code #加入筛选条件

select Info.Code,Info.Name,Sex,Nation.Name 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关键字

2.联合查询(对行的扩展)

select * from Info where Nation = 'n002'

union #关键字
select * from Info where Code = 'p002'

3.子查询(无关子查询) 如果子查询语句可以单独拿出来执行,就是无关查询

在一个sql语句中有两个子查询,其中一个a查询的结果作为另一个b的

select查询条件,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 = '回族')

select * from Info where Nation not in (select Code from Nation where Name = '汉族' or Name = '回族')

#in 关键字 not in不在表里

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)

#b.Brand 是 查询条件,a.Brand 是 逐条的信息

转载于:https://www.cnblogs.com/sjxx/p/5277384.html

你可能感兴趣的文章
ora-12899解决方法
查看>>
(8)关于flexbox的一些想法。
查看>>
一台机子同时启动两个相同版本的tomcat
查看>>
剑指offer——python【第29题】最小的K个数
查看>>
带你入门代理模式/SpringAop的运行机制
查看>>
eclipse对离线python的环境搭建
查看>>
OpenCV imshow无法显示图片
查看>>
js线程&定时器
查看>>
java.lang.IllegalStateException: getOutputStream() has already been cal
查看>>
Ubuntu下搜狗输入法乱码
查看>>
计算机网络●通信协议
查看>>
在EditPlus里配置编译和运行java代码的方法
查看>>
gson所需jar包
查看>>
最干净的pyinstaller打包成exe应用程序方法
查看>>
Python中的数据类型
查看>>
讲给普通人听的分布式数据存储【转载】
查看>>
关于最短路
查看>>
Hbase记录-zookeeper部署
查看>>
Python pexpect出现错误‘module have no attribute "spawn" 解决办法
查看>>
vs2008 C# 怎么调试C++ dll[转]
查看>>