Mysql之DQL数据查询语言

语法: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表示取几条数据,

你可能感兴趣的:(Mysql之DQL数据查询语言)