mysql

查询

SHOW DATABASES;

USE db10;

– 查询员工表姓名 工资 奖金 –
SELECT NAME,sal,bonus FROM emp;

– 查询emp表中的所有部门和职位 –
SELECT dept,job FROM emp;

– 查询不重复表记录 –
SELECT DISTINCT dept,job FROM emp;

– 查询emp表中 薪资大于3千的所有员工 显示员工姓名 薪资
SELECT NAME, sal FROM emp WHERE sal>3000;

– 查询emp表中(总薪资大于3000)
SELECT NAME, sal+bonus FROM emp WHERE sal+bonus>3500;

– 查询emp表中(总薪资大于3000)有null值 把null值转换为0
SELECT NAME, sal+IFNULL(bonus,0) FROM emp WHERE sal+IFNULL(bonus,0)>3500;

– 修改表名–
SELECT NAME, sal+IFNULL(bonus,0)AS 总薪资 FROM emp WHERE sal+IFNULL(bonus,0)>3500;

– as可以去掉
SELECT NAME, sal+IFNULL(bonus,0) 总薪资 FROM emp WHERE sal+IFNULL(bonus,0)>3500;

– 查询emp表中 薪资在3000-4500之间的员工 显示员工姓名和工资
SELECT NAME, sal FROM emp WHERE sal>=3000 AND sal<=4500;

– between…and 在…和…之间
SELECT NAME, sal FROM emp WHERE sal BETWEEN 3000 AND 4500;

– 查询emp表中 薪资为1400 1600 1800 的员工显示员工姓名 薪资
SELECT NAME, sal FROM emp WHERE sal=1400 OR sal=1600 OR sal=1800;
– 另一种写法
SELECT NAME, sal FROM emp WHERE sal IN(1400,1600,1800);

– 查询薪资不为1400 1600 1800 的员工 显示员工姓名 薪资
SELECT NAME, sal FROM emp WHERE sal NOT IN(1400,1600,1800);
– 另一种写法
SELECT NAME, sal FROM emp WHERE NOT (sal=1400 OR sal=1600 OR sal=1800);

– 查询emp表中 薪资大于4000和薪资小于2000的员工 显示员工姓名 薪资
SELECT NAME,sal FROM emp WHERE sal>4000 OR sal<2000;

– 查询emp表中薪资大于3000 并且奖金小于600的员工 显示员工值 薪资 奖金
SELECT NAME, sal,bonus FROM emp
WHERE sal>3000 AND IFNULL(bonus,0)<600;

– 查询没有部门的员工 (部门为null值)
SELECT * FROM emp WHERE dept IS NULL;

– 查询有部门的员工 (部门不为null值)
SELECT * FROM emp WHERE dept IS NOT NULL;
– 另一种写法
SELECT * FROM emp WHERE NOT(dept IS NULL);

– 查询emp表中姓名以刘开头的员工 显示员工姓名 (%表示匹配0个或者多个字符)
SELECT * FROM emp WHERE NAME LIKE ‘刘%%’;

– 查询emp表中姓名含有涛字的员工 显示员工姓名
SELECT * FROM emp WHERE NAME LIKE ‘%涛%’;

– 查询emp表中以刘字开头 并且姓名为两个字的员工 显示员工姓名
SELECT * FROM emp WHERE NAME LIKE ‘刘_’;

– 多行函数查询

– 统计emp表中薪资大于3000的员工个数
SELECT * FROM emp WHERE sal>3000;
SELECT COUNT(*) FROM emp WHERE sal>3000;

– 求emp表中最高薪资
SELECT MAX(sal) FROM emp ;

– 求emp表中最低薪资
SELECT MIN(sal) FROM emp;

– 统计emp表中所有员工薪资总和(不包含奖金)
SELECT SUM(sal) FROM emp;

– 统计emp表员工平均工资
SELECT AVG(sal) FROM emp;

– 分组查询

– 查询男生有多少人 女生有多少人
SELECT gender, COUNT(*) FROM emp GROUP BY gender;

– 按照部门进行分组 查看分组后效果
SELECT dept, COUNT(*) FROM emp GROUP BY dept;

– 职位分组 统计每个职位的人数
SELECT job, COUNT(*) FROM emp GROUP BY job;

– 按照部门进行分组 求每个部门的最高薪资(不包括奖金)
SELECT MAX(sal),dept FROM emp GROUP BY dept;

– 排序查询
– 按照薪资进行排序 升序
SELECT NAME,sal FROM emp ORDER BY sal;
– 进行降序排序
SELECT NAME,sal FROM emp ORDER BY sal DESC;

– 奖金降序排序
SELECT NAME,bonus FROM emp ORDER BY bonus DESC;

– 分页查询
– 每页显示3条 返回所有页的数据
SELECT * FROM emp LIMIT 0,3; – 第一页
SELECT * FROM emp LIMIT 3,3; – 第二页
SELECT * FROM emp LIMIT 6,3; – 第三页
SELECT * FROM emp LIMIT 9,3; – 第四页

– 薪资最高的前三名员工信息 显示姓名薪资
SELECT NAME,sal FROM emp ORDER BY sal DESC LIMIT 0,3;

– 获取当前日期
SELECT CURDATE();

– 查询在1993-1995年出生的员工 显示姓名 出生日期
SELECT NAME,birthday FROM emp WHERE YEAR(birthday) BETWEEN 1993 AND 1995;

– 另一种写法
SELECT NAME,birthday FROM emp WHERE birthday BETWEEN ‘1993-1-1’ AND ‘1995-12-31’;

– 获取本月出生的所有员工
SELECT * FROM emp WHERE MONTH(NOW())=MONTH(birthday);
– 如果当前是12月 获取下个月
SELECT * FROM emp WHERE (MONTH(NOW())+1)%12=MONTH(birthday)%12;

– 查询emp表中薪资多少元和姓名
SELECT NAME,CONCAT(sal,’/元’)FROM emp;

多表联查
SELECT s.staff_name
FROM staff s
LEFT JOIN medic_desk_staff m ON m.staff_id =s.staff_id
LEFT JOIN desk d ON m.desk_id = d.desk_id
WHERE d.desk_name=‘外科’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值