总结:SQL练习【SQL经典练习题】

好像今天圣诞节

刚刷完SQL练习【SQL经典练习题】,本篇文章将对我不牢固的知识做简单汇总。
没对比就没标准,当练习超经典SQL练习题,做完这些你的SQL就过关了时才知道自己以前练习的SQL是最基础的内容。至于文章内容这里不做描述,感兴趣可以自己练习。

#20.查询scores中选学一门以上课程的同学中分数为非最高分成绩的记录。##
select * from scores group by sno
having count(cno) >1
and
degree != max(degree) ;

#21.查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
select * from scores 
group by cno 
having cno = 3105 and degree >
(select degree from scores where sno = 109 and cno = 3105);
#22.查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
select sno,sname,sbirthday from students
where sbirthday = 
(select sbirthday from students where sno = 108);

#24.查询选修某课程的同学人数多于5人的教师姓名。为什么是模棱两可的?为什么分组直接用cno不行,需要用a.cno或者b.cn
select * from
(select * from coursers) a
inner join
(select * from scores) b
on a.cno = b.cno 
inner join
(select * from teachers) c
on a.tno = c.tno
group by a.cno
having count(sno) > 5;

24给我的教训在表连接的时候在做条件选择和查询的时候指定列名出自哪张表

#26.查询存在有85分以上成绩的课程Cno.

我的代码:
select cno,degree from scores
group by cno
having max(degree) > 85;

题主代码:
SELECT distinct Cno
FROM Scores
WHERE Degree>85;

26绝对是自己的逻辑问题,为什么要按课程分组直接筛选大于85分成绩的同学的课程号就可以啦。看见distinct可能是天真的我想用group by 选择有几个cno
逻辑问题!

#28.查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。  
(我没有理解到题意……笨死……)
select tname,prof from teachers
where depart = '计算机系' and prof not in
(select distinct prof from teachers where depart = '电子工程系');

#29.查询选修编号为“3-105“课程且成绩至少高于任意选修编号为“3-245”的同学的成绩的Cno、Sno和Degree,并按Degree从高到低次序排序。
我的代码:
select cno,sno,degree from scores
where cno = 3105 and degree >
(select min(degree) from scores where cno = 3245)
order by degree desc;

题主代码:
SELECT Cno,Sno,Degree
FROM Scores
WHERE Cno='3-105' AND Degree > ANY(SELECT Degree 
FROM Scores
WHERE Cno='3-245')
ORDER BY Degree DESC;

29任意不能用最小值吗不能用min吗?第一次见any,方法自己还是会的,可能有些函数用的少

#31.查询所有教师和同学的name、sex和birthday.
我的代码:(感觉好可爱的自己)
select tname,tsex,tbirthday,sname,ssex,sbirthday from
(select * from teachers) a
inner join
(select * from coursers) b
on a.tno = b.tno
inner join
(select * from scores) c
on c.cno = b.cno
inner join 
(select * from students) d
on d.sno = c.sno;

题主代码:
select sname,ssex,sbirthday from students
union
select tname,tsex,tbirthday from teachers;

#32.查询所有“女”教师和“女”同学的name、sex和birthday.
select sname,ssex,sbirthday from students where ssex = '女'
union
select tname,tsex,tbirthday from teachers where tsex = '女';

31原谅我已经把union已经忘了,现在还不是很会用……

#33.查询成绩比该课程平均成绩低的同学的成绩表。???不明白不懂

题主代码:
SELECT s1.*
FROM Scores AS s1 INNER JOIN (
    SELECT Cno,AVG(Degree) AS aDegree
    FROM Scores
    GROUP BY Cno) s2
ON(s1.Cno=s2.Cno AND s1.Degree<s2.aDegree); 

33下来在看一下吧,明天上班路上复习。第一次见on可以连接多个条件,并且不是等号是小于符号

#34.查询所有任课教师的Tname和Depart.?????
题主代码:
select * from coursers;
SELECT Tname,Depart
FROM Teachers
WHERE Tno IN(
    SELECT Tno
    FROM Coursers);

#35.查询所有未讲课的教师的Tname和Depart. 
SELECT Tname,Depart
FROM Teachers
WHERE Tno NOT IN(SELECT Tno FROM Coursers);

34绝对是没明白意思,任课老师,老师还有不上课的吗?这里居然是让我筛选哪些老师上课(PS:表中有些老师不上课……)

吐槽……简直颠覆本宝宝的常识,有不上课的老师吗?

#36.查询至少有2名男生的班号。
我的代码:
SELECT Class,COUNT(1) AS boyCount
FROM Students
WHERE Ssex='男'
GROUP BY Class
HAVING boyCount>=2;

题主代码:
select class,ssex,count(1) as boycount from students where
ssex = '男' group by class
having count(ssex) >= 2;

36count的位置不同吧,第一次见count(1),居然不对字段进行操作的,是否有count(2),下来去操作下

#38.查询Student表中每个学生的姓名和年龄。
我的代码:
select curtime();  #现在的时间
select curdate();  #现在的日期

select sname,year(now()) - year(Sbirthday) as sage 
from students;

题主代码:
SELECT Sname,YEAR(NOW())-YEAR(Sbirthday) AS Sage
FROM Students;

38完全是时间的基础知识掌握不牢固

#43.查询和“李军”同性别的所有同学的Sname.
我的代码:
select sname from students
where ssex = 
(select ssex from students where sname = '李军');

题主代码:
SELECT s1.Sname
FROM Students AS s1 INNER JOIN Students AS s2
ON(s1.Ssex=s2.Ssex)
WHERE s2.Sname='李军';

#44.查询和“李军”同性别并同班的同学Sname.
我的代码:
select * from students
where ssex = 
(select ssex from students where sname = '李军')
and class =
(select class from students where sname = '李军');

题主代码:
SELECT s1.Sname
FROM Students AS s1 INNER JOIN Students AS s2
ON(s1.Ssex=s2.Ssex AND s1.Class=s2.Class)
WHERE s2.Sname='李军';

#45.查询所有选修“计算机导论”课程的“男”同学的成绩表
我的代码:
(可爱的我,这么勤劳联结这么多张表……不知疲劳)
select sname,degree,cname,ssex from
(select * from coursers) a
inner join
(select * from scores) b
on a.cno = b.cno
inner join
(select * from students) c
on b.sno = c.sno
where cname = '计算机导论' and ssex = '男';

题主代码:
SELECT * FROM Scores
WHERE Sno IN
(SELECT Sno FROM Students WHERE Ssex='男') 
AND Cno IN (SELECT Cno FROM Coursers WHERE Cname='计算机导论');

43、44、45是每任何问题的,只是感觉题主的代码和我的不一样。不知道是不是我的方法有问题。

好啦,之前练习的SQL练习【SQL经典练习题】就总结到这里了……

20181225学习时间
7:00——7:30
6:00——7:10
9:30——12:30
仰卧起坐100,1点睡觉,6点20起床,6点50开始学习

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容