SELECT语法
基础查询
select * from 表名;
条件查询
select * from 表名 where 条件;
分组查询(关键字:每个)
select * from 表名 where 条件 group by 字段名 having 分组后的条件;
排序查询
select * from 表名 order by 字段列表 asc(默认升序)/desc(降序);
分页查询
select * from 表名 limit (页数-1)*一页的记录数,一页的记录数;
查所有
select * from 表名;
查指定的结果
select 字段列表 from 表名;
AS子句
作用:
可给数据列取一个新别名
可给表取一个新别名
可把经计算或总结的结果用另外一个新名称来代替
DISTINCT关键字
作用:
去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条
SELECT DISTINCT 字段名1, 字段名2... FROM 表名;
where条件语句
逻辑操作符
操作符名称 | 语法 | 描述 |
---|---|---|
AND或&& | a AND b 或 a && b | 逻辑与,同时为真,结果才为真 |
OR或|| | a OR b 或 a||b | 逻辑或,只要一个为真,则结果为真 |
NOT或! | NOT a 或 !a | 逻辑非,若操作数为假,结果则为真 |
比较操作符
操作符名称 | 语法 | 描述 |
---|---|---|
IS NULL | a IS NULL | 若操作符为NULL,则结果为真 |
IS NOT NULL | a IS NOT NULL | 若操作符不为NULL,则结果为真 |
BETWEEN | a BETWEEN b AND c | 若a范围在b与c之间则结果为真 |
LIKE | a LIKE b | SQL模式匹配,若a匹配b,则结果为真 |
IN | a IN (a1,a2,a3,….) | 若a等于a1,a2…中的某一个,则结果为真 |
BETWEEN AND范围查询
SELECT 字段1,字段2 ,…FROM 表名 WHERE 字段x BETWEEN 值1 AND 值2;
LIKE模糊查询
在WHERE子句中,使用LIKE关键字进行模糊查询
与“%”一起使用,表示匹配0或任意多个字符
与“_”一起使用,表示匹配单个字符
使用IN进行范围查询
SELECT 字段列1,字段2,…FROM 表名 WHERE 字段x IN (值1,值2,值3…) ;
多表查询
1.连接查询:内连接查询(inner join),左外连接(left outer join),右外连接(right outer join),自连接
2.子查询(嵌套查询)
内连接查询
select 字段列 for 表名1 join 表名2 on 连接条件(相同的字段名);
select 字段列表 from 表名1,表名2 where 连接条件;
左外连接(LEFT JOIN)
从左表(table_1)中返回所有的记录,即便在右(table_2)中没有匹配的行
select 字段列 for 表名1 left join 表名2 on 连接条件(相同的字段名);
右外连接(RIGHT JOIN)
从右表(table_2)中返回所有的记录,即便在左(table_1)中没有匹配的行
三个join对比
操作符名称 | 描述 |
---|---|
INNER JOIN ( JOIN ) | 如果表中有至少一个匹配,则返回行 |
LEFT JOIN | 不论右表是否有匹配,都会返回左表的所有行 |
RIGHT JOIN | 不论左表是否有匹配,都会返回右表的所有行 |
自连接查询
自连接查询
自连接就是一个表和它自身进行连接,是多表连接的特殊情况。
在自连接查询中,要先在FROM字句中为表分别定义两个不同的别名,
然后使用这两个别名写出一个连接条件。
子查询
select * from 表名1 where 表名1.字段1 =/in (select 表名2.字段1 from 表名2 where 条件);
聚合函数
函数名称 | 描述 |
---|---|
COUNT( ) | 返回满足SELECT条件的记录总和数,如 SELECT COUNT(*)… |
SUM( ) | 返回数字字段或表达式列作统计,返回一列的总和 |
AVG( ) | 通常为数值字段或表达列作统计,返回一列的平均值 |
MAX( ) | 可以为数值字段、字符字段或表达式列作统计,返回最大的值 |
MIN( ) | 可以为数值字段、字符字段或表达式列作统计,返回最小的值 |