高频SQL50题

知识点

1.查询值为null的数据(常用在外连接上),用 is null

2.round(数,保留位数),四舍五入保留机会小数

3.ifnull(null值,替换的值),将null值替换为xx值

4.sum()求和

5.case when(xx=xx)then 1 else 0 end,如果值为true返回1,值为false返回0

6.判断奇数,id % 2 = 1,直接写在where条件里面即可

题目思路

1280

1.观察数据,需要查出没有考试的科目的数据,仅Students表和Exam表关联无法查出全部科目的数据,所以使用笛卡尔积将Students与Subjects关联,获取学生与科目的所有情况

2.将关联表与Exam表外连接,就会获取到参加考试和未参加考试科目的学生考试集合

3.group by分组统计考试次数(结果集包含什么字段,group by对那几个字段分组),order by 进行排序(group by与order by多条件用","隔开)

570

1.通过子查询,查询出来managerId>=5的managerId

2.然后获取子表managerId = 父表Id的字段

1934

连接时,那个作为主表,副表的数据向谁合并。在写这道sql时我以Confirmations作为主表,所以我就少了user_id = 6的数据

相关推荐
ALLSectorSorft28 分钟前
定制客车系统票务管理系统功能设计
linux·服务器·前端·数据库·apache
傻啦嘿哟2 小时前
Django模型开发全解析:字段、元数据与继承的实战指南
数据库·sqlite
lifallen2 小时前
Kafka ISR机制和Raft区别:副本数优化的秘密
java·大数据·数据库·分布式·算法·kafka·apache
加油吧zkf3 小时前
MySQL索引优化全攻略:提升查询性能30%
数据库·mysql
只因在人海中多看了你一眼3 小时前
B.10.01.3-性能优化实战:从JVM到数据库的全链路优化
jvm·数据库·性能优化
程序员JerrySUN3 小时前
四级页表通俗讲解与实践(以 64 位 ARM Cortex-A 为例)
java·arm开发·数据库·redis·嵌入式硬件·缓存
布朗克1684 小时前
MySQL 临时表详细说明
数据库·mysql·临时表
vision_wei_4 小时前
Redis中间件(四):主从同步与对象模型
网络·数据库·c++·redis·缓存·中间件
布朗克1684 小时前
MySQL 复制表详细说明
数据库·mysql·复制表
Code季风7 小时前
Redis 缓存:应对缓存雪崩、缓存击穿和缓存穿透
数据库·redis·分布式·后端·缓存·微服务·mybatis