MySql数据库之DQL

MySql查询技巧精讲

MySql的查询语句操作

1、普通查询

  • 查询所有列
select * from emp;
  • 查询指定列
select empno, enam, job from emp;
  • 去除查询的重复列(表格特大的时候,如果存在相同的项目只显示一次)
select distinct empno, enam, job, sal from emp;
  • 列运算(可以进行加减乘除的操作)

进行相乘的运算

//相乘
select sal*15 from emp;

进行相加的原酸

//相加
select sal+comm from emp;

将NULL转化为0来参与运算

select sal+IFNULL(comm, 0) from emp;

字符串的拼接

select concat('$', sal) from emp;
  • 给列名起别名
select ename 姓名, job 工作 from emp;

2、条件查询

//查询工资大于20000的人员信息
SELECT * FROM emp WHERE  sal > 2000;

//查询有奖金的人员信息
SELECT * FROM emp WHERE comm IS NOT NULL;

//查询是20部门员工的人员信息
SELECT * FROM emp WHERE deptno=20;

//查询是30部门员工的人员信息
SELECT * FROM emp WHERE deptno=30;

//查询工作是经理和分析师的人员信息
SELECT * FROM emp WHERE job in('经理', '分析师');

//查询工资在20000和30000之间的人员信息
SELECT * FROM emp WHERE sal betwee 20000 and 30000;

3、模糊查询

_表示单个字符
%表示N个字符
%XXX%表示XXX的任意位置。

//查询姓张且名字为两个字的人员
SELECT * FROM emp WHERE ename LIKE '张_';
//查询姓张且名字为三个字的人员
SELECT * FROM emp WHERE ename LIKE '张__';
//查询名字为两个字的人员信息
SELECT * FROM emp WHERE ename LIKE '__';
//查询名字为三个字的人员信息
SELECT * FROM emp WHERE ename LIKE '___';

//查询姓张的人员信息
SELECT * FROM emp WHERE ename LIKE '张%';
//查询名字中以刚结尾的人员信息
SELECT * FROM emp WHERE ename LIKE '%刚';
//查询名字中含有小字的人员信息
SELECT * FROM emp WHERE ename LIKE '%小%';

4、排序

关键字:ORDER BY 默认为升序排列 ASC(升序) DESC(降序)
若有相同的项目,则可以在后面添加其他的排序条件

//以工资的升序排列
SELECT * FROM emp ORDER BY sal ASC;
//以工资的降序进行排列
SELECT * FROM emp ORDER BY sal DESC;
//当有相同的项目存在的时候,可以添加其他的排序条件
SELECT * FROM emp ORDER BY sal DESC, empno ASC;

5、聚合函数

关键字
COUNT(*) 表示总共有几列
SUM(sal) 表示该列的总和
MAX(sal) 表示该列的最大值
MIN(sal) 表示该列的最小值
AVG(sal) 表示该列的平均值

//求出emp表格中的总人数,及工资的总和 最高 最低 和平均数
SELECT COUNT(*) 总人数, SUM(sal) 工资总和, MAX(sal) 最高工资, MIN(sal) 最低工资, AVG(sal) 平均工资 FROM emp;

6、分组查询

关键字
SELECT
FROM
WHERE 分组前限制条件
GROUP BY 分组依据
HAVING 分组后限制条件
ORDER BY 将整理好的数据排序

//代码示例
SELECT deptno, COUNT(*) FROM emp WHERE sal > 15000 GROUP BY deptno HAVING COUNT(*)>2;

7、mysql特有的limit查询

LIMIT 4, 3;
4表示:从第五行开始查(下标从0开始算)
3表示:查询3行记录
(当前页-1)* 每页记录数, 每页记录数

//查询第三页每页十行记录
SELECT * FROM emp LIMIT 20,10;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值