分类
-
DDL(Data definition language) 定义对象:库表列等。
-
DML(Data manipulation language) 增删改:数据/记录
-
DCL(Data control language) 访问权限和安全级别
-
DQL(Data query language) 查select
1. DQL
- SELECT FROM + 字段1,字段2(表达式、常量、函数等)
- WHERE + 表名
- GROUP BY (对结果分组)
- HAVING (分组后的行条件)
- ORDER BY (对结果分组)
- LIMIT (结果限定)
1. select 可加的关键字
取别名:AS
拼接两个columns:concat(str1,str2)
去重:distinct
查看表的结构:Desc xx;show columns from xx表;
判断是否为空:select if null(判断的值,替换的值)
2.where条件查询
在where句子中可以使用如下运算符和关键字
- =、!=、<>、<、<=、>、>=;
- AND、OR、NOT (&&、||、!)
- BETWEEN…AND、IN(set)、IS NULL
- 模糊查询
- like / not like : _ 一个字符;% 0~多个字符
e.g. where name like 'e’;
e.g. where name like '%e _ _ _ ’ ; - between and:是否在指定的区间范围,两个区间值不能调换顺序
- 两个区间值包含: >=左区间 and <=右区间
- in / not in:是否属于(x,x,x)之间
- is null / is not null
- = 只判断普通的内容
- is null 可判断null
- <=>安全等于,即能判断普通内容,又能判断null
- like / not like : _ 一个字符;% 0~多个字符
3. ORDER BY 可多个
- 按单个字段进行升序:asc(不写默认升序) 降序:Desc
- 按多个字段排序
- 按表达式排序
- 按别名排序
- 按函数排序
常见函数
MySQL数据库提供了很多函数包括:
1. 数学函数;
2. 字符串函数;
3. 日期和时间函数;
4. 条件判断函数;流程控制函数;
5. 系统信息函数;
6. 加密函数;
7. 格式化函数;
1)、数学函数
ABS(x) | 返回x的绝对值 |
CEIL(x) | 返回大于x的最小整数值(ceil(-1.09)//-1 ceil(1.09)//2 ceil(0.09)//1)向上取整 |
FLOOR(x) | 返回大于x的最大整数值(FLOOR(-1.09)//-2 FLOOR(1.09)//1 FLOOR(0.09)//0) |
MOD(x,y) | 返回x/y的模 (取余 mod(-10,3)// -1) |
RAND(x) | 返回0~1的随机值 |
ROUND(x,y) | 返回参数x的四舍五入的有y位的小数的值(round(-1.87567)//2 round(1.87567,2)//1.88) |
TRUNCATE(x,y) | 返回数字x截断为y位小数的结果(不四舍五入 Truncate(1.87567,2)// 1.8)) |
SQRT(x) | 返回x的平方根 |
POW(x,y) | 返回x的y次方 |
2)、字符串函数
3. 日期时间函数
分组(聚合)函数:多个值进行运算,返回一个值
聚合函数是用来做纵向运算的函数:
COUNT():统计指定列不为NULL的记录行数;(非null个数,自带not null)
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
-
COUNT
e.g. count (*);//全部的行数
e.g. count (distinct xx);//不重复 -
SUM和AVG
sum() -
MAX和MIN
e.g. 查询最高工资和最低工资:
4. having
放在后面的where:分组前的筛选
放在group by之后:分组后的筛选
只能放在having后:分组函数做条件(e.g. count(*)>75)
能写where 就不写having