一、基本查询
1.字段(列)控制
-
查询所有列
SELECT * FROM 表名;"*"表示查询所有列
-
查询所有指定列
SELECT 列1 [,列2,。。。。] FROM 表名; -
完全重复的记录只显示一行
当查询结果中有多行重复记录时只显示一行。
SELECT DISTINCT * | 列1 [,列2,。。。] FROM 表名; -
列运算
-
数量类型相同的列可以做加减乘除。
SELECT age+1 FROM 表名; -
字符串类型可以做连续运算
SELECT CONCAT(’$’,num) FROM 表名; -
转换NULL值
SELECT IFNULL(num,0)+10 FROM 表名;num+10时,如果num存在NULL值,那么 num+10还是NULL,我们这时希望把NULL当0来运算。
-
给列起别名
SELECT IFNULL(num,0)+10 AS 别名 FROM 表名;
-
2.条件控制
- 条件查询
SELECT 列1,列2 FROM 表名 WHERE 条件1 AND 条件2(?? IS NOT NULL);
== SELECT 列1,列2 FROM 表名 WHERE 条件 IN(‘内容’);== - 模糊查询
SELECT * FROM 表名 WHERE name LIKE '张_‘;
模糊运算使用运算符:LIKE,其中,匹配一个任意字符,注意,只匹配一个字符而非多个。
上面语句查询的是姓张且两个字组成的名字。’___‘:查询名字是三个字的人。’张%‘:查询姓张字数不限的人。
二、排序
- 升序
SELECT * FROM WHERE 表名 ORDER BY num ASC;
按【num】排序,升序!ASC可忽略
- 降序
SELECT * FROM WHERE 表名 ORDER BY num2 DESC;
按【num2】排序,降序!DESC不可忽略
- 使用多列作为排序条件
SELECT * FROM WHERE 表名 ORDER BY num ASC,num2 DESC;
使用num升序,如num相同则使用num2降序
三、聚合函数
聚合函数用来做某列的纵向运算。
1. COUNT
SELECT COUNT(*)FROM 表名;
计算表中所有列都不为NULL的记录的行数。
2. MAX
SELECT MAX(num) FROM 表名;
查询最高数字
3. MIN
SELECT MIN(num) FROM 表名;
查询最低数字
4. SUM
SELECT SUM(num) FROM 表名;
查询数字和
5. AVG
SELECT AVG(num) FROM 表名;
查询平均数
四、分组查询
分组查询是把记录使用某一列进行分组,然后查询组信息。
SELECT num COUNT(*) FROM 表名 GROUP BY num;
使用num分组,查询列不为NULL的记录的行。
SELECT job MAX(num) FROM 表名 GROUP BY job;
使用job分组,查询最高的数字(工资);
五、limit子句(方言)
limit 用来限制查询结果的起始行,以及总行数。
SELECT * FROM 表名 LIMIT 4,3;
4 表示从第5行开始,其中3表示一共查询3行。即第5,6,7行记录。