第7章 单表数据查询

2017-05-22  本文已影响194人  上书房_张强

7.1 无条件数据查询

7.1.1 简单数据查询

关键字
SELECT...FROM...
语法:

SELECT
`查询字段1 `,
`查询字段2 `,
`查询字段3 `,
……
`查询字段n `
FROM `表名`;

示例

说明:

7.1.2 过滤重复数据

关键字:
DISTINCT
语法:

SELECT DISTINCT 字段名 FROM 表名;

示例:

说明:
DISTINCT是用来去除某个字段的重复数据,只取得某个字段不重复的数据。

7.2 有条件数据查询

7.2.1 带关系运算符的条件数据查询
关键字:
大于:>
大于等于:>=
小于:<
小于等于:<=
不等于:<>
语法:

SELECT
`查询字段1 `,
`查询字段2 `,
`查询字段3 `,
……
`查询字段n `
FROM `表名`
WHERE `条件字段1` = '条件字段1的值'
AND `条件字段2` > '条件字段2的值',
AND `条件字段3` <> '条件字段3的值',
……
AND `条件字段n` < '条件字段n的值';

示例:

7.2.2 带逻辑运算符的条件数据查询
关键字:
AND
OR
语法:

SELECT
`查询字段1 `,
`查询字段2 `,
`查询字段3 `,
……
`查询字段n `
FROM `表名`
WHERE `条件字段1` = '条件字段1的值' 
OR `条件字段2` = '条件字段2的值',

示例:

7.2.3 带BETWEEN AND关键字的范围查询
关键字:

BETWEEN……AND……

语法:

SELECT
`查询字段1 `,
`查询字段2 `,
`查询字段3 `,
……
`查询字段n `
FROM `表名`
WHERE `条件字段1` = '条件字段1的值' 
AND `条件字段2` BETWEEN '条件字段2的值1' AND '条件字段2的值2'
OR `条件字段3` BETWEEN '条件字段3的值1' AND '条件字段3的值2';

示例:

7.2.4 带IS NULL关键字的空值查询

语法:

WHERE `字段` IS NULL

示例:

说明:
IS NULL是用于筛选表中某个字段的值为NULL的数据。

7.2.5 带IN关键字的集合查询

语法:

WHERE `字段` IN ('内容1','内容2','内容3'……,'内容n')

示例:

说明:
IN关键字用于筛选某个字段满足某些条件的数据。

7.2.6 带LIKE关键字的模糊查询

语法:

WHERE `字段` LIKE '%部分内容%'
WHERE `字段` LIKE '%部分内容'
WHERE `字段` LIKE '部分内容%'

示例:

说明:
LIKE关键字用于筛选某个字段包括某一部分内容的所有数据。

7.3 数据查询结果排序

7.3.1 按升序排序

关键字:

ORDER BY `字段`;
ORDER BY `字段` ASC;

示例:

说明:
MySQL按照升序的方式默认排序。

7.3.2 按倒序排序

关键字:

ORDER BY `字段` DESC

示例:

说明:
如果需要按照降序排序,需要在代码中明确指定。

7.4 限制数据记录查询数量

7.4.1 不指定初始位置

关键字:

LIMIT n
n: 数据条数

示例:
数据库里所有数据:

查询语句:

查询结果:

说明:
limit用于限制查询需要返回的数据条数。

7.4.2 指定初始位置

关键字:

LIMIT [m,] n
m: 下标起始位置
n: 数据条数

示例:
数据库里所有数据:

查询语句:

查询结果:

说明:
LIMIT m, n 指的是从m下表开始,返回n条数据(数据表的下表从0开始)

7.5 统计函数和分组数据查询

7.5.1 MySQL支持的统计函数

7.5.2 分组数据统计——单字段分组查询

关键字:

GROUP BY `字段`

示例:
订单表的数据如下:

SODevice指的是客户使用什么设备下的订单,如果需要统计使用移动端(Mobile)和PC端的各自的订单数量并按照倒序排序时,就相当于按照订单下单设备(SODevice)的类型进行分组后,再计算不同设备的合计。

SQL语句如下:

Paste_Image.png

结果如下:

说明:

7.5.3 分组数据统计——多字段分组查询

关键字:

GROUP BY `字段1`, `字段2`, ……, `字段n` 

示例:
订单表的数据如下:

需要查询出每个省下的每个市在5月29日到5月30日(含5月30日)的订单总数,并按照订单总数倒序排序。

SQL语句如下:

查询结果如下:

7.5.4 分组数据统计——实现HAVING子句限定分组查询

关键字:

HAVING `字段1` option 'value'

示例:
订单明细表的数据如下:

需要从订单明细表取得2017年5月29日到2017年5月30日(含5月30日)商品销售数量大于2的每个商品的销售数量,并按照销售数量倒序排序。

SQL语句:

说明:
HAVING相当于WHERE,不同的是HAVING过滤的是经过分组统计后的数据。

上一篇 下一篇

猜你喜欢

热点阅读