DQL 数据查询语言
select 列名1,列名2,.......from 表名 (while 条件); 查询指定列的内容;
查询所有字段用 * 不带where 条件 把表的所有记录查出来;
过滤掉重复的列值:select distinct 列名1 from 表名;
select concat(列名1,列名2) from 表名; 将列名(列内容)链接起来;
select concat(列名1,列名2) as 新列名 from 表名;将列名(列内容)链接起来,并设置一个新的列名;
select concat_ws(分隔符,列名1,列名2) from 表名; 将链接起来的列内容以分隔符分开;
列起别名用as: select 列名1 as 别名 from 表名;
模糊查询:
select 列名 from 表名 where 列名 like '%ng'; %ng是模糊左边的,ng%是模糊后面的,%ng%是前后都模糊;
排列:
select * from 表名 order by 字段名 (asc); 升序 默认也为升序,asc可以不加;
select * from 表名 order by 字段名 desc ; 降序;
聚合函数:
select count(*) from 表名; 查询表的记录数;
select sum(列名) from 表名; 查询此列的和;(如公司在计算这次的销售总量时会用到)
select avg(列名) from 表名; 查询此列的平均值;
select max(列名) from 表名; 查询此列的最大值;
select min(列名) from 表名; 查询此列的最小值;
分组查询:
select 列名 from 表名 group by 列名(如 sex); 按照性别分组;
select * from 表名 group by 列名 having 列名>条件值; 如 :select * from hihi group by age having age>18;将年龄大于18的分组;
select count(*) from 表名 group by 列名 having 列名>条件值;
内连接查询
select 表名.字段名,表名.字段名 from 表名1 as 别名1,表名2 as 别名2 where 条件;
两个数据库连接起来查询,通过两数据库联合可以查到其它数据库的信息;
as之后的字段可以更方便,可写可不写;
也可以写成 select 数据库.字段名,数据库.字段名 from 表名1 as 别名1 inner join 表名2 as 别名2 where 条件;
左连接:
select 数据库.字段名,数据库.字段名 from 表名1 as 别名1 left join 表名2 as 别名2 on 条件;
以左边的数据为例一一对应右边的数据;
右连接:
select 数据库.字段名,数据库.字段名 from 表名1 as 别名1 right join 表名2 as 别名2 on 条件;
与左连接相反;
特别注意,内连接用where,而左连接和右连接不能用where只能用on;
推荐内连接;
联合查询:列数必须一致
select 列名 from 表名 union all select 表名 from 列名;
子查询
select * from 表名1 where id in (select 列名 from 表名2);