目录
1.DDL
DDL-数据库操作
SHOW DATABASES;
CREATE DATABASE 数据库名;
USE 数据库名
SELECT DATABASE();
DROP DATABASE 数据库名
DDL-表操作
SHOW TABLES;
CREATE TABLE 表名(字段 字段类型,字段 字段类型);
DESC 表名;
SHOW CREATE TABLE 表名;
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO…;
DROP TABLE 表名;
2.DML
DML-增删改操作
添加元素 |
INSERT INTO 表名(字段1,字段2…)VALUES(值1,值2…)[,(值1,值2…)…]
|
修改元素 |
UPDATE 表名 SET 字段1 = 值1,字段2 = 值2[WHERE 条件];
|
删除元素 |
DELETE FROM 表名[WHERE 条件];
|
3.DQL
DQL-查询操作
基本查询
1.查询多个字段
SELECT 字段1[AS 别名1],字段2[AS 别名2],字段3… FROM 表名;
2.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
条件查询(WHERE)
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<> 或 != | 不等于 |
BETWEEN……AND…… | 在某个范围内(闭区间) |
IN(……) | 在in之后的列表中的值 |
LIKE 占位符 | 模糊匹配,类似正则(_匹配单字符,%匹配任意多个字符) |
IS NULL | 是NULL |
AND 或 && | 并且 |
OR 或 || | 或者 |
NOT 或 ! | 非 |
LIKE匹配的小例子:
1.匹配两个名字的员工信息
select * from 表名 where name like '__';
2.匹配身份证号尾号为X的员工的信息
select * from 表名 where idcard like '%X'
聚合函数(count、max、min、avg…)
SELECT 聚合函数(字段列表) FROM 表名
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
分组查询(GROUP BY)
SELECT 字段列表 FROM 表名[WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后的过滤条件]
where与having的区别:
- 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。
小例子:
1.根据性别分组,统计男性员工和女性员工的数量
select gender,count(*) from 表名 group by gender;
2.根据性别分组,统计男性员工和女性员工的平均年龄
select gender,avg(age) from 表名 group by gender;
3.查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select workaddress,count(*) from 表名 where age < 45 group by workaddress having count(*) >= 3;
注意:
- 执行顺序:where > 聚合函数 > having
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义
排序查询(ORDER BY)
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式,字段2 排序方式;
排序方式:
- ASC:升序(默认值,可不写)
- DESC:降序
分页查询(LIMIT)
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
注意:
- 起始索引从0开始
DQL-执行顺序
图片来源:黑马程序员MySQL入门教程