MySQL笔记6.18—1

DQL 数据查询语言

语法:

SELECT 需要查询的字段 FROM 表名

注意点:

1. * 代表的是查询所有的字段

2.可以通过AS修改字段名

3. DISTINCT  可以实现自动去重

 

先随便创建一个表

在emp表中查询(ename,sex)

用AS方法,修改当前查询字段名

 

在 dept_name 中,查找并去重

 

SELECT ename,salary+1000 AS '涨薪后的新资' FROM emp;

 

SELECT * FROM emp WHERE emp.`salary` >5000;

 

 

# 女生的平价薪资
# 用 AVG 进行平方
SELECT AVG(emp.`salary`) FROM emp WHERE sex='女';

 

筛选,薪资在 5000-10000以及3500以下

SELECT * FROM emp WHERE (emp.`salary` BETWEEN 5000 AND 10000) OR (emp.`salary` <3500);

 

# LIKE 模糊查找     _只匹配一位

SELECT * FROM emp WHERE emp.`ename` LIKE '吴%';
SELECT * FROM emp WHERE emp.`ename` LIKE '吴__';

 

排序
单个字段排序
SELECT 字段 FROM ORDER BY ASC|DESC

多个字段
SELECT 字段 FROM 表名 ORDER BY 字段1 方式1,字段2 方式2,等
注意点:
1. ORDER BY 默认升序 ASC
2. 降序是 DESC

 

# 工资高到低,同时对eid也进行排序
SELECT 
    emp.`eid`,emp.`ename`,emp.`salary` 
FROM 
    emp ORDER BY emp.`salary` DESC ,emp.`eid` DESC;

 

 

分组
语法格式:
SELECT 分组依据, GROUP_CONCAT(需要展示的字段名),聚会函数 FROM 表名 GROUP BY 分组依据 HAVING 分组之后的筛选条件
注意点:
1.聚会 函数是 MIN MAX AVG COUNT SUM
2. HAVING 是分组之后,对数据进行筛选,和 WHERE 类似
3. HAVING 和 WHERE 的对比
    HAVING 是分组之后的过滤, HAVING 后面可以出现的聚会函数
    WHERE  是进行分组之前的过滤,where 后面不能添加聚会函数

 

 按照性别进行分组,并求出各组的平均薪资

SELECT emp.`sex`,AVG(emp.`salary`) FROM emp GROUP BY emp.`sex`;

 

# GROUP_CONCAT函数忽略NULL值,如果找不到匹配的行,或者所有参数都为NULL值,则返回NULL。
SELECT emp.`sex`,GROUP_CONCAT(emp.`ename`) FROM emp GROUP BY emp.`sex`;

 

# 按照 dept_name 分组,筛选条件薪资>3000 ,的人数
SELECT emp.`dept_name`,COUNT(*) FROM emp WHERE salary>3000 GROUP BY emp.`dept_name`;

 

# 找出部门人数大于2的部门
SELECT 
    emp.`dept_name`,GROUP_CONCAT(emp.`ename`) 
FROM 
    emp GROUP BY emp.`dept_name` HAVING COUNT(*)>2;

 

其余分组汇总
SELECT 
    emp.`dept_name`,COUNT(*) 
FROM 
    emp GROUP BY emp.`dept_name` WITH ROLLUP;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值