MySql知识
join 组合两个表
SELECT * FROM A JOIN B a ON A.id = B.user_id;
- inner join 内连接,返回两个表中都存在的行
- left join 左连接,返回 A 表中所有的行,即使 B 表中没有对应行
- right join 右连接,返回 B 表中所有的行,即使 A 表中没有对应行
- full join 全连接,返回 A 和 B 表中都存在的行,以及 A 表中没有,B 表中有的行,以及 B 表中没有,A 表中有的行
limit 限制返回的行数
SELECT * FROM user LIMIT M, 10;跳过 M 行后返回十条数据SELECT * FROM user LIMIT 10 OFFSET M
having 过滤分组
1 | |
聚合函数
聚合函数的作用就是就是对有多个名字相同的结果聚合
聚合函数要搭配 group by (字段名) 使用
比如这个按商品名聚合,然后把同名商品的销售额全加在一起作为总的销售额
1 | |
聚合函数
- count() 统计行数
- sum() 求和
- avg() 平均值
- max() 最大值
- min() 最小值
配套语法
- group by() 分组
- having() 过滤分组
- distinct() 去重
执行顺序
先 from 再 where 最后 select
1 | |
变量声明
语句中只能用常量,不能用表达式
1 | |
模糊查询
CONCAT()是拼接字符串的函数,本意为连接SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%')
#{}和${}
- 绝大部分都用#{}
- #{}是预编译参数,可以防止 SQL 注入,MyBatis 会把 #{name} 转换成 JDBC 的 ? 占位符
- ${}直接字符串替换,MyBatis 直接把 ${name} 替换成你传入的值,原样插入 SQL
MySql知识
http://www.981928.xyz/2025/11/17/MySql知识/