1 DML 增删改
1.1 INSERT
- 指定字段添加数据:
INSERT INTO 表名 (字段名1, 字段名2) VALUES (值1, 值2);
- 全部字段添加数据:
INSERT INTO 表名 VALUES (值1, 值2, ...);
- 批量添加数据(指定字段):
INSERT INTO 表名 (字段名1, 字段名2) VALUES (值1, 值2), (值1, 值2);
- 批量添加数据(全部字段):
INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...);
1.2 UPDATE
UPDATE table_name
SET column1 = value1, column2 = value2, …
WHERE condition;
1.3 DETELE
DELETE FROM table_name
WHERE condition;
当没有where条件时,即为删除所有记录
2.DQL 单表
SELECT column1, column2, …
FROM table_name;
SELECT DISTINCT 语句用于返回唯一不同的值。
SELECT DISTINCT column1, column2, …
FROM table_name;
条件查询 WHERE
SELECT column1, column2, ...
FROM table_name
WHERE condition;
参数说明:
- column1, column2, …:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
- table_name:要查询的表名称。
除了常用运算符外还有:
- BETWEEN minval AND maxval 在某个范围之内(包含最小最大值)
- in(v1,v2,…)符合列表内的值
- LIKE 占位符 模糊匹配(_匹配单个字符,%匹配多个字符)
- is (not)null 注意null不用=
聚合函数:
配合分组查询使用
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
- null不参与所有聚合函数运算
分组查询 group by
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
- where 与 having:
- 执行时机不同,where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。
- 分组之后,查询到字段一般为聚合函数和分组字段,查询其他字段没有意义。
- 执行顺序:where >聚合函数 > having
排序查询 ORDER BY
SELECT 字段列表
FROM 表名
[WHERE 条件列表]
[GROUP BY 分组字段]
ORDER BY 字段1 排序方式1,字段2 排序方式2...;
排序方式(2种):ASC 升序( 默认) / DESC 降序
分页查询 LIMIT
select 字段列表 from 表名 limit 起始索引,每页记录数;
- 起始索引默认从0开始,起始索引=(查询页码-1)*每页记录数。
- LIMIT是MYSQL的,不是SQL的。
- 查询第一页起始索引可以省略。