mysql常见关键字的用法_MySQL 常用关键字用法详解

MySQL 常用关键字用法详解

在开发工程中,操作数据库的时候经常会有不同类型的条件查询,除了使用where外,Mysql本身也提供了很多常用的关键字。本文主要介绍一些常用的关键字,像update、insert、delete、select这样的就不在做解释 。

distinct关键字

distinct关键字的目的是去重查询,示例如下:

select distinct 选择的字段 from 表名 条件从句; //distinct放在去重字段的前面

between关键字

between是查询条件关键字,主要和and连用,示例如下:

select * from user where age between 25 and 30; (查询年龄在25-30之间的用户)

limit关键字

limit关键字主要用在分页查询上,LIMIT 子句用于强制 SELECT 语句返回指定的记录数,LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1),示例如下:

SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15

//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:

SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.

//如果只给定一个参数,它表示返回最大的记录行数目:

SELECT * FROM table LIMIT 5; //检索前 5 个记录行

//换句话说,LIMIT n 等价于 LIMIT 0,n。

count关键字

count关键字的主要目的是返回所有的记录条数,示例如下:

select COUNT(*) from user; (查询user表所有记录条数)

sum、max、min、avg关键字

sum、max、min、avg四个关键字,分别代表查询结果的求和、最大值、最小值和平均值,示例如下:

select sum(age) from user;(查询所有的年龄和)

select min(age) from user;(最小的年龄)

select max(age) from user;(最大的年龄)

select avg(age) from user;(所有人年龄的平均值)

order by关键字

order by关键字主要是用在排序上,排序分为正序(asc )和倒序(desc)两种,示例如下:

//倒序查询

SELECT * from runoob_tbl ORDER BY submission_date DESC

//正序查询

SELECT * from runoob_tbl ORDER BY submission_date ASC;

group by关键字

GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。示例如下:

创建数据库表,插入数据

DROP TABLE IF EXISTS `employee_tbl`;

CREATE TABLE `employee_tbl` (

`id` int(11) NOT NULL,

`name` char(10) NOT NULL DEFAULT '',

`date` datetime NOT NULL,

`singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------

-- Records of `employee_tbl`

-- ----------------------------

BEGIN;

INSERT INTO `employee_tbl` VALUES ('1', '小明', '2016-04-22 15:25:33', '1'), ('2', '小王', '2016-04-20 15:25:47', '3'), ('3', '小丽', '2016-04-19 15:26:02', '2'), ('4', '小王', '2016-04-07 15:26:14', '4'), ('5', '小明', '2016-04-11 15:26:40', '4'), ('6', '小明', '2016-04-04 15:26:54', '2');

COMMIT;

我们使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:

mysql> SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;

+--------+----------+

| name | COUNT(*) |

+--------+----------+

| 小丽 | 1 |

| 小明 | 3 |

| 小王 | 2 |

+--------+----------+

3 rows in set (0.01 sec)

使用 WITH ROLLUP

WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。

例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数:

SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;

+--------+--------------+

| name | singin_count |

+--------+--------------+

| 小丽 | 2 |

| 小明 | 7 |

| 小王 | 7 |

| NULL | 16 |

+--------+--------------+

4 rows in set (0.00 sec)

你可能感兴趣的:(mysql常见关键字的用法)