DQL 数据查询语言
语法:
select * (要查询的列名)
from 表名
where 条件
group by 列名(更具列名分组)
having 条件
order by 列名(根据列名排序)
limit 0,5;(0:分页起始位置, 5:显示多少行)
基础查询:
select * from 表名;
select 列名1,列名2,列名3 from 表名;
条件查询:
运算符:= , != , <> , < , > , <= , >=
关键字:
between ... and ...; 闭区间
in() ;集合
is null ; 非空
and ;
or ;
not;
``
**模糊查询 **
select * from 表名 where like '%i%__%';
字段控制查询:
去除重复记录:如:查询emp 表中的job 会有重复的工作名称显示,可以用到
关键字:distinct
select job from emp;
select distinct job(列名) from emp(表名);
工资与奖金的和:
关键字:ifnull(列名,0) 奖金为空时,给其赋值为0
select *,sal+ifnull(comm,0) from emp;
给列取别名:
关键字:as 可省略;
select sid 学号,sname as 姓名 from stu;
select *,sal+ifnull(comm,0) total from emp;
排序查询:
关键字:order by ; desc 降序 asc 升序(默认)
select * from stu order by sid asc;
select * from stu order by sname asc,grade desc;
聚合函数:count() sum() max() min() avg()
查询emp表中有奖金的人数(奖金不为空)
select count(comm) from emp;
查询emp表中月薪大于2500的人数:
SELECT COUNT(*) FROM emp
WHERE sal > 2500;
统计月薪与佣金之和大于2500元的人数:
SELECT COUNT(*) AS cnt FROM emp WHERE sal+IFNULL(comm,0) > 2500;
查询有佣金的人数,以及有领导的人数:
SELECT COUNT(comm), COUNT(mgr) FROM emp;
SUM和AVG
当需要纵向求和时使用sum()函数。
查询所有雇员月薪和:
SELECT SUM(sal) FROM emp;
查询所有雇员月薪和,以及所有雇员佣金和:
SELECT SUM(sal), SUM(comm) FROM emp;
查询所有雇员月薪+佣金和:
SELECT SUM(sal+IFNULL(comm,0)) FROM emp;
统计所有员工平均工资:
SELECT SUM(sal), COUNT(sal) FROM emp;
或者
SELECT AVG(sal) FROM emp;
6.3 MAX和MIN
查询最高工资和最低工资:
SELECT MAX(sal), MIN(sal) FROM emp;
“`