MySQL – 常用语句
     发布在:SQL      浏览:66      评论:0 条评论

插入数据

1.插入数据

> INSERT INTO <数据表名>(id, 字段名1, 字段名2, ...) VALUES(NULL, 字段值1, 字段值2, ...), (NULL, 字段值1, 字段值2, ...), ...;
# 插入多条数据
# 主键ID为自增字段,直接NULL即可

2.插入检索出来的数据

> INSERT INTO <数据表名1>(字段名3, 字段名4, ...) SELECT 字段名1, 字段名2, ... FROM <数据表名2>;
# 从 <数据表2> 查询 <字段名1> <字段名2> <...> 的值插入 <数据表1> 的 <字段名3> <字段名4> <...>

更新数据

> UPDATE <数据表名> SET 字段名=新值 [WHERE 条件];
# 不加条件则更新整个数据表数据

删除数据

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

查询数据

> SELECT <字段名> FROM <数据表名>;
> SELECT * FROM <数据表名>;

条件控制

1.WHERE 语句

> SELECT * FROM <数据表名> WHERE id=3;
# 从数据表查询id=3的所有字段数据

2.HAVING 语句

> SELECT * FROM <数据表名> GROUP BY <字段名> HAVING <条件>;
# 根据 <字段名> 分组并筛选出达到 <条件> 的组

# 举个例子:有数据表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人的部门
Responses