查看模式
select @@global.sql_mode;
关键字的优先级
- from 来自
- where 条件
- group by 分组
- having 筛选
- select 查询
- distinct 去重
- order by 排序
- limit 限制条数
表单查询语法
select 字段,字段 from 表名 where 条件 group by 分组 having 筛选 order by 排序 limit 限制
where
比较运算 > < >= <= <> !=
-
值在 80-100 之间 包含 80 100
between 80 and 100;
-
值 是 80,90,100 的
in(80,90,100) 相反的 not in(80,90,100)
-
模糊查询
like '张%' % 通配符 包含一个或多个 // 查询姓张的人 like '程咬_' _ 包含一个字符
group by 分组
经过分组之后只能查看当前字段,如果想查看组内信息需要借助于聚合函数
-
聚合函数
max() 求最大值 min() 求最小值 avg() 求平均值 sum() 求和 count() 求总个数
-
拼接分组后的内容
group_concat(name)
having 筛选
- 用在 group by 之后
order by 排序
order by age ASC; 默认升序
order by age desc; 降序排列
limit
-
限制查询次数
limit 0, 5 ; 0 表示起始索引 5 表示显示条数
多表查询
-
交叉连接
select * from table_1,table_2; 生成笛卡尔积
-
内连接
只获取匹配的数据 select 表名.列名, 表名.列名 from 表1 inner join 表2 on 条件(表1.列 = 表2.列);
-
左连接
只显示左表所有的记录 select 表名.列名, 表名.列名 from 表1 left join 表2 on 条件(表1.列 = 表2.列);
-
右链接
只显示 右 表所有的记录 select 表名.列名, 表名.列名 from 表1 right join 表2 on 条件(表1.列 = 表2.列);
-
全外连接
左连接 union 右链接
子查询
in ; not in ; any ; all; exists; not exists;