语法:select 列名1,列名2.....from 表名 where 条件;
查询所有字段 select * from 表名 where 条件;
过滤重复的值:select distinct 列名 from 表名;
连接:select concat_ws('连接符',字段1,字段2) as 变量 from 表名;concat_ws()其实就是一个连接函数,把查出来的值连接在一起;
也可以直接使用concat函数拼接在一起
加别名:select 字段1 as 别名1,字段2 as 别名2 from 表;别名只是查出来的时候显示的不会改变原有数据库的字段;
模糊查询:select 字段1,字段2...from 表名 where 字段名 like 值;
这种相当于是=,
左模糊匹配就在值的左边加一个%,右模糊匹配就在值的右边加一个%,全模糊匹配就在两边都加%,%的意思就是所有字符;
排序:select * from 表名 order by 字段名 asc(升序,默认) [desc 降序]
聚合函数:
1.查询表的记录数: select count(*) from 表名;
2.查询此列的和:select sum(列名) from 表名:
3.查询此列的平局值:select avg(列名) from 表名:
4.查询此列的最大值:select max(列名) from 表名;
5.查询此列的最小值:select min(列名) from 表名;
分组查询:select * from 表名 group by 字段;
内连接查询:我们有两张表,一张表记录学生的基本信息,另一张表记录学生的分数,我们要查询出每个学生对应的分数,
先准备数据:我们可以看出mark表有个字段std_id是学生表的id,意思就是这两张表是通过std_id关联的,其实就是学生表的主键是分数表的外键,我们可以通过学生的id去查找分数,
查询1:只能用where
查询2:其实就是把‘,’换成了 inner join,既可以用where也可以用on
左连接查询:就是把inner 改成了left,然后把where 改成了on,左连接就是以左边的表为基准,先把左边的数据都查出来,右边有对应的数据就查出来,没有数据就为Null;右连接也是同样的道理;
右连接查询:
联合查询:其实就是两个sql语句连在一起,但是两个sql查询的列的个数必须相同;
子查询:就是有一个查询会依托于 其他的查询,
分页查询:limit x,y;x表示从哪条数据开始,默认是0,y表示取几条数据,