赞
踩
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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。