第四章 数据查询

熟练掌握: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)