第四章 数据查询
熟练掌握:select(选择)(想看什么,就放在select后面就可以了)
一、 基本查询
Select 列名,列名… from 表
1. 查看需要的列
(1).选择指定列
(2).选择所有列
(3).查看运算列(表中的数据都是最原始的)
(4).增加注释列
(5).更改列标题(临时显示的列标题)
2. 查看需要的行(筛选)
Select 列名,列名… from 表
Where 条件表达式(逻辑表达式 not and(&&) or(||))
字符串模糊匹配运算:like ‘’
包括的通配符:_ 任意单个字符
% 任意长度的字符串
[a-z] 包含
[^a-z] 不包含
3. 有序显示(排序)
Order by 排序的字段(asc升序,desc表示降序)
4. distinct limit关键字
(limit):限制显示的行数limit num1,num2
显示从num1开始(如果num1省略,默认num1为0),长度为num2的行数
Distinct 消除重复的行
二、 高级查询
1. 多表查询
多表查询又叫连接查询,在多张表中通过公共字段(一般情况下为:主键—外键)的值进行匹配,显示结果。
Select [表名].列名,… from
表名1 连接类型 表名2
On 连接的条件(用=表示的关系表达式)
…连接类型 表名n
On 连接条件
Where 筛选条件
Order by 排序字段
Limit 限制显示行数
(内连接inner join):通过公共字段共有的值进行匹配显示
(外连接:左外连接left outer join、
先将左表中所有的数据显示出来,然后再和右表进行匹配并显示匹配结果。
右外连接right outer join
先将右表中所有的数据显示出来,然后再和左表进行匹配并显示匹配结果。
【全连接 full join 】)
(交叉连接cross join)
2.分组汇总
Select 分组字段,汇总方式
From 表名[join…]
Where 筛选(对源数据的筛选)
Group by分组字段
Having 筛选(对分组汇总后的结果进行筛选)
Order by
Limit
汇总方式(聚合函数来表示)
1.count([distinct]字段名称) 【count(*)】
2. 嵌套查询
高级查询:
高级查询:
2.分组汇总
Select 分组字段,汇总方式
From 表名[join…]
Where 筛选(对源数据的筛选)
Group by分组字段
Having 筛选(对分组汇总后的结果进行筛选)
Order by
Limit
3.嵌套查询
Select col_list from 表名
Where (select..)—子查询
(1).子查询返回值为单列单值
(2).子查询的返回值为单列多值
Any(任意一个(or)) all(所有(and))
(3).子查询返回值为多列(exists)