MySQL - 常用语法

开发中 MySQL 常用的一些语法

Posted by Oscaner on August 5, 2018

插入数据

1.插入数据

1
2
3
> INSERT INTO <TABLE_NAME>(id, FIELD1, FIELD2, ...) VALUES(NULL, VALUE1, VALUE2, ...), (NULL, VALUE1, VALUE2, ...), ...;
-- 插入多条数据
-- 主键ID为自增字段,直接NULL即可

2.插入检索出来的数据

1
2
> INSERT INTO <TABLE_NAME_1>(FIELD3, FIELD4, ...) SELECT FIELD1, FIELD2, ... FROM <TABLE_NAME_2>;
-- 从 <数据表2> 查询 <字段名1> <字段名2> <...> 的值插入 <数据表1> 的 <字段名3> <字段名4> <...>

更新数据

1
2
> UPDATE <TABLE_NAME> SET FIELD=VALUE [WHERE CONDITIONS];
-- 不加条件则更新整个数据表数据

删除数据

1
2
3
4
> DELETE FROM <TABLE_NAME> [WHERE CONDITIONS];
-- 不加条件则删除整张表的数据,但自增字段不会重新开始
> TRUNCATE TABLE <TABLE_NAME>;
-- 清空数据表,自增字段重新从1开始

查询数据

1
2
> SELECT <FIELD> FROM <TABLE_NAME>;
> SELECT * FROM <TABLE_NAME>;

条件控制

1.WHERE 语句

1
2
> SELECT * FROM <TABLE_NAME> WHERE id=3;
-- 从数据表查询id=3的所有字段数据

2.HAVING 语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
> SELECT * FROM <TABLE_NAME> GROUP BY <FIELD> HAVING <CONDITIONS>;
-- 根据 <字段名> 分组并筛选出达到 <条件> 的组

-- 举个例子:有数据表user
+----------------------+
|user_name| dept| score|
+----------------------+
|zhangsan |sales|    90|
|lisi     |sales|    90|
|wangfei  |IT   |    89|
|leifeng  |IT   |    95|
|gouzi    |hr   |    92|
+----------------------+
> SELECT dept, COUNT(user_name) count_tmp FROM user WHERE score>89 GROUP BY dept HAVING count_tmp>1;
-- 先查出 score>89 的员工纪录
-- 根据 dept 分组(GROUP BY dept)
-- 再用 count 聚合函数统计部门人数
-- 最后筛选出部门总人数大于1人的部门