MySQL查询
DQL:数据查询语言
别名关键字是AS,可以给字段起别名也可以给表起别名,就是起一个名字
select 字段 AS 别名 from 表 AS 别名
函数concat('内容',字段)就是给查询出来的结果字段加一个前缀
select concat('内容',字段)from 表
去重distinct,去除查询出来的结果中重复的数据,只显示一条
select distinct 字段 from 表
数据库中的表达式:文本值,列,Null,函数,计算表达式,系统变量......
select 表达式 from 表
where条件子句:
作用:检索数据中符合条件的值
字段(between 数字1 and 数字2)区间查询,查询该字段值为数字1到数字2的所有数据
select 字段 from 表 where 字段 between 数字1 and 数字2
模糊查询:比较符查询
| 运算符 | 语法 | 描述 |
| IS NULL | a is null | 如果操作符为null,结果为真 |
| IS NOT NULL | a is not null | 如果操作符不为null,结果为真 |
| BETWEEN | a between b and c | 若a在b和c之间,则结果为真 |
| Like | a like b | SQL匹配,如果a匹配b,则结果为真 |
| In | a in (a1,a2,a3...) | 假设a在a1,或者a2...其中的某一个值中,结果为真 |
用于like查询的字符:%代表多个字符,_代表单个字符
联表查询:
| 操作 | 描述 |
| Inner join | 如果两个表至少有一个匹配就返回行 |
| left join | 会返回左表中所有的值,即使右表中没有匹配 |
| right join | 会返回右表中所有的值,即使左表中没有匹配 |
join on(判断的条件) 连接查询
where 等值查询
多表联查思路:
1、分析需求,分析查询的字段来自哪些表
2、确定使用哪种连接查询
3、确定交叉点和判断条件
自连接:自己的表和自己的表连接,核心就是一张表拆为两张一样的表
子查询:可以理解为嵌套查询,将查询到的结果作为另一条查询的条件
分页 limit 和排序 order by:
排序:升序 ASC,降序 DESC
排序语法:order by 字段 排序方式
分页:缓解数据库压力
分页语法:limit 查询起始下标,页面显示总条数
分组 group by 和过滤 having:
分组语法:group by 字段
过滤:having和where一样,使用在分组下面
常用函数:
1、数学运算:
- 绝对值:ABS()
- 向上取整:CEILING()
- 向下取整:FLOOR()
- 返回一个0~1之间的随机数:RAND()
- 判断一个数的符号,0返回0,负数返回-1,正数返回1:SIGN()
2、字符串函数:
- 返回字符串长度:CHAR_LENGTH()
- 拼接字符串:CONCAT()
- 转换成小写:LOWER()
- 转换成大写:UPPER()
- 反转字符串:REVERSE()
3、时间和日期函数:
- 获取当前日期:CURRENT_DATE(),CURDATE()
- 获取当前的时间:NOW()
- 获取本地时间:LOCALTIME()
- 获取系统时间:SYSDATE()
常用聚合函数:
| 函数名称 | 描述 |
| COUNT() | 计数 |
| SUN() | 求和 |
| AVG() | 平均数 |
| MAX() | 最大值 |
| MIN() | 最小值 |
MD5加密:
主要增强算法复杂度和不可逆性
MD5语法:MD5(字段或字符)

浙公网安备 33010602011771号