赞
踩
目录
顺序严格地排序。例如,一个HAVING子句必须位于GROUP BY子句之后,并位于ORDER BY子句之前。
语法:[GROUP BY {列名 | 表达式 | 列编号} [ASC (升序)| DESC(降序)], ...
例:将员工信息按出生日期从大到小排序
SELECT * FROM employees WHERE 1=1
ORDER BY Birthday DESC
语法:[HAVING 条件]
条件的定义和WHERE子句中的条件类似,不过HAVING子句中的条件可以包含聚合函数,而WHERE子句中则不可以。
SQL标准要求HAVING必须引用GROUP BY子句中的列或用于聚合函数中的列。不过,MySQL支持对此工作性质的扩展,并允许HAVING引用SELECT清单中的列和外部子查询中的列
例:查找雇员数超过2人的部门名称和员工数量
SELECT departments.`DepartmentName`,COUNT(*) AS '人数'
FROM employees,departments
WHERE employees.`DepartmentID`=departments.`DepartmentID`
GROUP BY departments.`DepartmentName`
HAVING COUNT(*)>2
语法:
[GROUP BY {列名 | 表达式 | 列编号} [ASC (升序)| DESC(降序)]
[LIMIT {[偏移量,] 行数|行数OFFSET偏移量}]
GROUP BY子句后通常包含列名或表达式。MySQL对GROUP BY子句进行了扩展,可以在列的后面指定ASC(升序)或DESC(降序)。GROUP BY可以根据一个或多个列进行分组,也可以根据表达式进行分组,经常和聚合函数一起使用。
例:按部门列出该部门工作的员工人数
SELECT departments.`DepartmentName`,COUNT(*) AS '人数'
FROM employees,departments
WHERE employees.`DepartmentID`=departments.`DepartmentID`
GROUP BY departments.`DepartmentName`
LIMIT子句是SELECT语句的最后一个子句,主要用于限制被SELECT语句返回的行数。
语法格式:
LIMIT {[offset,] row_count
| row_count OFFSET offset}
语法格式中的offset和row_count都必须是非负的整数常数,offset指定返回的第一行的偏移量,row_count是返回的行数。例如,“LIMIT 5”表示返回SELECT语句的结果集中最前面5行,而“LIMIT 3,5”则表示从第4行开始返回5行。值得注意的是初始行的偏移量为0而不是1。
例:查找Members表中注册时间最靠前的5位会员的信息。
SELECT *
FROM Members
ORDER BY 注册时间
LIMIT 5;
查找Book表中从第4条记录开始的5条记录。
SELECT *
FROM Book
ORDER BY 学号
LIMIT 3, 5;
为了与PostgreSQL兼容,MySQL也支持LIMIT row_count OFFSET offset语法。所以将上面例子中的LIMIT子句换成“LIMIT 5 OFFSET 3”,结果一样
语法:SELECT 字段列表 FROM 表名称
例:USE Bookstore;
SELECT 会员姓名,联系电话,注册时间
FROM Members;
说明:当在SELECT语句指定列的位置上使用*号时,表示选择表的所有列,如要显示Members表中所有列,不必将所有字段名一一列出,使用
SELECT * FROM Members;
语法:SELECT column_name [AS] column_alias
【例】
SELECT 书名 AS name, 作者 AS auther, 出版社 AS publisher
FROM Book
WHERE 图书类别= '计算机';
注意:当自定义的列标题中含有空格时,必须使用引号将标题括起来。
SELECT 学号 AS 'Student number', 姓名 AS 'Student name',
总学分 AS mark
FROM XS
WHERE 专业名= '计算机';
语法:CASE
WHEN 条件1 THEN 表达式1
WHEN 条件2 THEN 表达式2
……
ELSE 表达式
END
例:
SELECT 图书编号, 书名,
CASE
WHEN 数量 IS NULL THEN '尚未进货'
WHEN 数量 < 5 THEN '需进货'
WHEN 数量 >=5 and 数量<=50 THEN '库存正常'
ELSE '库存积压'
END AS 库存
FROM Book;
持续更新中。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。