10.1、基本查询语句
SELECT 属性列表
FROM 表名和视图列表
[WHERE条件表达式1]
[GROUPBY 属性名1 [HAVING条件表达式2]]
[ORDERBY 属性名2[ASC|DESC]]
10.2、单表查询
列出所有字段
*
指定字段
指定记录
WHERE 条件表达式
=,<,>,!及其组合
[NOT]BETWEEN AND
[NOT]IN
[NOT]LIKE
%
_
IS[NOT] NULL
AND,OR
SELECT DISTINCT 属性名
ORDER BY属性名[ASC|DESC]
GROUP BY, GROUP_CONTACT()函数非常好用
SELECTsex, GROUP_CONTACT(name) FROM employee GROUP BY sex;
GROUP BY与WITHROLLUP一起使用,多一行,加统计
SELECTsex COUNT(sex) FROM employee GROUP BY sex WITH ROLLUP;
LIMIT [初始位置,] 记录数
10.3、使用集合函数查询
COUNT(), AVG(), MAX(),MIN(), SUM()
10.4、连接查询
10.4.1、内连接查询
select a.*, b.* from a, b wherea.xid=b.xid
10.4.2、外连接查询
SELECT 属性名列表 FROM 表名1 LEFT|RIGHT JOIN 表名2
ON 表名1.属性1=表名2.属性2;
LEFT JOIN 左表全记录,右表符合条件
RIGHT JOIN 右表全记录,左表符合条件
10.5、子查询
IN
EXISTS 表示存在,内层查询语句不返回查询的记录,而是返回一个真假值(true|false)
ANY任意一个值
SELECT * FROM computer_stu WHERE scrore>=ANY(SELECT score FROM scholarship)
ALL 满足所有条件
10.6、合并查询结果
SELECT 语句1
UNION | UNION ALL
SELECT 语句2
…
UNION 所有的查询结果合并到一起,去掉重复项
UNION ALL 简单合并
10.7、为表和字段取别名
表名 表的别名
属性名 [AS] 属性的别名
10.8、使用正则表达式查询
属性名 REGEXP ‘匹配方式’
^ 字符串开始
$ 字符串结束
. 任意一个字符,包括回车和换行
[字符集合] 匹配字符集合中的任一字符
S1|S2|S3 三者之任一
* 任意多个
+ 1+个
字符串{N} 字符串出现N次
字符串{M,N} 字符串出现至少M次,至多N次
SELECT * FROMinfo WHERE name REGEXP ‘ab{1,3}’;