MySQL100题知识点

https://testerhome.com/articles/34972

1、select * 查询带来的不确定性
2、SELECT emp_name, salary * 12 + COALESCE(bonus, 0) FROM employee;
COALESCE 函数用于将空值转换为 0
3、SELECT emp_name, salary * 12 + COALESCE(bonus, 0) AS "全年收入" FROM employee;
AS 为查询指定一列起别名
3、过滤条件 > < !=
4、BETWEEN x AND y
5、WHERE emp_name IN ('张三', '李四', '张飞');
6、WHERE emp_name LIKE '%云%'; %匹配任意个数字符
7、WHERE emp_name LIKE ''; _匹配一个字符
8、WHERE bonus IS NOT NULL;
WHERE bonus IS NULL;
9、AND OR
10、where 1=0 等于 where false 等于 查不到数据也不会报错
11、SELECT DISTINCT sex FROM employee; 过滤重复值
12、ORDER BY salary DESC;
13、ORDER BY salary DESC, bonus DESC;
14、ORDER BY CONVERT(emp_name USING GBK);
MySQL 中的 GBK 编码支持拼音排序
15、ORDER BY bonus;
考虑ORDER BY的字段为空时的排序顺序
MySQL ,升序时 NULL 值排在最前面,降序时 NULL 值排在最后面
16、排序
情况1:人数排名前3,有且只要3条数据
情况2:分数排名前3,可能大于3条数据

情况1:select * from employee order by salary desc limit 3;

情况2:
select t2.* from (
select distinct salary from employee order by salary desc limit 3 ) t1 inner join employee t2
on t1.id= t2.id
order by salary desc;
17、ORDER BY salary DESC LIMIT 5 OFFSET 10;
OFFSET 关键字指定一个偏移量,表示忽略前面多少行数据,然后返回结果
18、
标量函数:输入一行,输出一行 ABS()、length()
聚合函数:对一组数据进行操作 AVG()、SUM()、count()
19、WHERE UPPER(email) = 'GUANXING@SHUGUO.COM';
UPPER 函数用于将字符串转换为大写形式。LOWER 函数用于将字符串转换为小写形式。
20、SELECT CONCAT_WS(',' emp_name, sex, salary) FROM employee;
CONCAT 函数用于连接两个字符串
CONCAT_WS 函数扩展为多个字符串
21、SELECT emp_name, SUBSTR(email, 1, INSTR(email,'@') - 1) FROM employee;
SUBSTR 函数获取指定位置的子串
INSTR 函数查找@ 符号的位置
22、SELECT emp_name, REPLACE(EMAIL, '.com','.net') FROM employee;
REPLACE 函数替换字符串中的子串
33、ORDER BY RAND();
随机函数、按照随机数排序
34、SELECT CEILING(1.1), FLOOR(1.1), ROUND(1.1) FROM employee WHERE emp_id = 1;
CEILING 向上取整
FLOOR 向下取整
ROUND 四舍五入
35、SELECT student_id, GREATEST(chinese, math, english, history) FROM score;
GREATEST 函数用于返回列表中的最大值,LEAST 函数用于返回列表中的最小值。
36、SELECT emp_name, EXTRACT( year FROM CURRENT_DATE) - EXTRACT( year FROM HIRE_DATE) FROM employee;
计算工作年限
CURRENT_DATE 函数返回当前日期
EXTRACT 函数可以提取日期数据中的各个部分

EXTRACT(field FROM source)
field :YEAR、MONTH、DAY、HOUR、MINUTE
37、SELECT emp_name,
CASE WHEN salary < 10000 THEN '低收入' WHEN salary < 20000 THEN '中等收入' ELSE '高收入' END "薪水等级" FROM employee;
CASE 表达式
select case when slary < x then 'x' end
from employee;
38、
count() 不会过滤NUll值
count(bonus) 会过滤NUll值
DISTINCT 会在聚合函数计算之前过滤掉重复值
39、 SELECT GROUP_CONCAT(address_name SEPARATOR ';') FROM work_record ;
GROUP_CONCAT 聚合函数,把这一列的字段拼在一起,聚合后的字段有长度限制?
40、group by和聚合函数 分组后聚合
41、GROUP BY dept_id HAVING AVG(salary) > 10000;
HAVING 子句主要用于对分组后的聚合函数进行过滤 分组后聚合、再根据聚合结果过滤
42、
左外连接,取左边的圈圈,右边没有匹配则返回空值
右外连接,取右边的圈圈,左边没有匹配则返回空值
左内连接,取左边的圈圈,左边
右内连接,取右边的圈圈
内连接,两个圈圈重合的部分
交叉连接,笛卡尔积
自连接,通过外键?

https://blog.csdn.net/e2788666/article/details/131259484

posted @   unlearn_cn  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示