Mysql_45道經(jīng)典練習(xí)題

Mysql版本:6.3

練習(xí)數(shù)據(jù)

數(shù)據(jù)表

--1.學(xué)生表 Student(SId,Sname,Sage,Ssex)

SId 學(xué)生編號,Sname 學(xué)生姓名,Sage 出生年月,Ssex 學(xué)生性別

--2.課程表 Course(CId,Cname,TId)

CId 課程編號,Cname 課程名稱,TId 教師編號

--3.教師表 Teacher(TId,Tname)

TId 教師編號,Tname 教師姓名

--4.成績表 SC(SId,CId,score)

SId 學(xué)生編號,CId 課程編號,score 分?jǐn)?shù)

創(chuàng)建測試數(shù)據(jù)

學(xué)生表 Student:

導(dǎo)入數(shù)據(jù)方法:將以下 mysql 語句示绊,完整復(fù)制到 workbench 語句窗口(或者是 mysql 的黑窗口)陪白,然后運(yùn)行即可導(dǎo)入与学,不需要另外創(chuàng)建表,下面表的操作一樣薪贫。這些語句第一條是創(chuàng)建表(create table),后面都是插入數(shù)據(jù)到表中(insert into table )。

create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10));

insert into Student values('01' , '趙雷' , '1990-01-01' , '男');

insert into Student values('02' , '錢電' , '1990-12-21' , '男');

insert into Student values('03' , '孫風(fēng)' , '1990-05-20' , '男');

insert into Student values('04' , '李云' , '1990-08-06' , '男');

insert into Student values('05' , '周梅' , '1991-12-01' , '女');

insert into Student values('06' , '吳蘭' , '1992-03-01' , '女');

insert into Student values('07' , '鄭竹' , '1989-07-01' , '女');

insert into Student values('09' , '張三' , '2017-12-20' , '女');

insert into Student values('10' , '李四' , '2017-12-25' , '女');

insert into Student values('11' , '李四' , '2017-12-30' , '女');

insert into Student values('12' , '趙六' , '2017-01-01' , '女');

insert into Student values('13' , '孫七' , '2018-01-01' , '女');

科目表 Course

create table Course(CId varchar(10),Cname nvarchar(10),TId varchar(10));

insert into Course values('01' , '語文' , '02');

insert into Course values('02' , '數(shù)學(xué)' , '01');

insert into Course values('03' , '英語' , '03');

教師表 Teacher

create table Teacher(TId varchar(10),Tname varchar(10));

insert into Teacher values('01' , '張三');

insert into Teacher values('02' , '李四');

insert into Teacher values('03' , '王五');

成績表 SC

create table SC(SId varchar(10),CId varchar(10),score decimal(18,1));

insert into SC values('01' , '01' , 80);

insert into SC values('01' , '02' , 90);

insert into SC values('01' , '03' , 99);

insert into SC values('02' , '01' , 70);

insert into SC values('02' , '02' , 60);

insert into SC values('02' , '03' , 80);

insert into SC values('03' , '01' , 80);

insert into SC values('03' , '02' , 80);

insert into SC values('03' , '03' , 80);

insert into SC values('04' , '01' , 50);

insert into SC values('04' , '02' , 30);

insert into SC values('04' , '03' , 20);

insert into SC values('05' , '01' , 76);

insert into SC values('05' , '02' , 87);

insert into SC values('06' , '01' , 31);

insert into SC values('06' , '03' , 34);

insert into SC values('07' , '02' , 89);

insert into SC values('07' , '03' , 98);

練習(xí)題目

1.查詢" 01 "課程比" 02 "課程成績高的學(xué)生的信息及課程分?jǐn)?shù)

1.1 查詢同時(shí)存在" 01 "課程和" 02 "課程的情況

1.2 查詢存在" 01 "課程但可能不存在" 02 "課程的情況(不存在時(shí)顯示為 null ) 1.3 查詢不存在" 01 "課程但存在" 02 "課程的情況

2.查詢平均成績大于等于 60 分的同學(xué)的學(xué)生編號和學(xué)生姓名和平均成績

3.查詢在 SC 表存在成績的學(xué)生信息

4.查詢所有同學(xué)的學(xué)生編號趣避、學(xué)生姓名、選課總數(shù)新翎、所有課程的總成績(沒成績的顯示為 null ) 4.1 查有成績的學(xué)生信息

5.查詢「李」姓老師的數(shù)量

6.查詢學(xué)過「張三」老師授課的同學(xué)的信息

7.查詢沒有學(xué)全所有課程的同學(xué)的信息

8.查詢至少有一門課與學(xué)號為" 01 "的同學(xué)所學(xué)相同的同學(xué)的信息

9.查詢和" 01 "號的同學(xué)學(xué)習(xí)的課程 完全相同的其他同學(xué)的信息

10.查詢沒學(xué)過"張三"老師講授的任一門課程的學(xué)生姓名

11.查詢兩門及其以上不及格課程的同學(xué)的學(xué)號程帕,姓名及其平均成績

12.檢索" 01 "課程分?jǐn)?shù)小于 60,按分?jǐn)?shù)降序排列的學(xué)生信息

13.按平均成績從高到低顯示所有學(xué)生的所有課程的成績以及平均成績

14.查詢各科成績最高分地啰、最低分和平均分: 以如下形式顯示:課程 ID愁拭,課程 name,最高分亏吝,最低分岭埠,平均分,及格率蔚鸥,中等率惜论,優(yōu)良率,優(yōu)秀率 及格為>=60止喷,中等為:70-80馆类,優(yōu)良為:80-90,優(yōu)秀為:>=90 要求輸出課程號和選修人數(shù)弹谁,查詢結(jié)果按人數(shù)降序排列乾巧,若人數(shù)相同,按課程號升序排列

15.按各科成績進(jìn)行排序预愤,并顯示排名卧抗, Score 重復(fù)時(shí)保留名次空缺 15.1 按各科成績進(jìn)行排序,并顯示排名鳖粟, Score 重復(fù)時(shí)合并名次

16.查詢學(xué)生的總成績社裆,并進(jìn)行排名,總分重復(fù)時(shí)保留名次空缺 16.1 查詢學(xué)生的總成績向图,并進(jìn)行排名泳秀,總分重復(fù)時(shí)不保留名次空缺

17.統(tǒng)計(jì)各科成績各分?jǐn)?shù)段人數(shù):課程編號差凹,課程名稱叨咖,[100-85]买置,[85-70]饮潦,[70-60],[60-0] 及所占百分比

18.查詢各科成績前三名的記錄

19.查詢每門課程被選修的學(xué)生數(shù)

20.查詢出只選修兩門課程的學(xué)生學(xué)號和姓名

21.查詢男生昼蛀、女生人數(shù)

22.查詢名字中含有「風(fēng)」字的學(xué)生信息

23.查詢同名同性學(xué)生名單弯院,并統(tǒng)計(jì)同名人數(shù)

24.查詢 1990 年出生的學(xué)生名單

25.查詢每門課程的平均成績翎卓,結(jié)果按平均成績降序排列,平均成績相同時(shí)偶房,按課程編號升序排列

26.查詢平均成績大于等于 85 的所有學(xué)生的學(xué)號趁曼、姓名和平均成績

27.查詢課程名稱為「數(shù)學(xué)」,且分?jǐn)?shù)低于 60 的學(xué)生姓名和分?jǐn)?shù)

28.查詢所有學(xué)生的課程及分?jǐn)?shù)情況(存在學(xué)生沒成績棕洋,沒選課的情況)

29.查詢?nèi)魏我婚T課程成績在 70 分以上的姓名挡闰、課程名稱和分?jǐn)?shù)

30.查詢不及格的課程

31.查詢課程編號為 01 且課程成績在 80 分以上的學(xué)生的學(xué)號和姓名

32.求每門課程的學(xué)生人數(shù)

33.假設(shè)成績不重復(fù),查詢選修「張三」老師所授課程的學(xué)生中掰盘,成績最高的學(xué)生信息及其成績

34.假設(shè)成績有重復(fù)的情況下摄悯,查詢選修「張三」老師所授課程的學(xué)生中,成績最高的學(xué)生信息及其成績

35.查詢不同課程成績相同的學(xué)生的學(xué)生編號愧捕、課程編號奢驯、學(xué)生成績

36.查詢每門功成績最好的前兩名

37.統(tǒng)計(jì)每門課程的學(xué)生選修人數(shù)(超過 5 人的課程才統(tǒng)計(jì))。

38.檢索至少選修兩門課程的學(xué)生學(xué)號

39.查詢選修了全部課程的學(xué)生信息

40.查詢各學(xué)生的年齡次绘,只按年份來算

41.按照出生日期來算瘪阁,當(dāng)前月日 < 出生年月的月日則,年齡減一

42.查詢本周過生日的學(xué)生

43.查詢下周過生日的學(xué)生

44.查詢本月過生日的學(xué)生

45.查詢下月過生日的學(xué)生

參考答案:

1.查詢" 01 "課程比" 02 "課程成績高的學(xué)生的信息及課程分?jǐn)?shù)

1.1 查詢同時(shí)存在" 01 "課程和" 02 "課程的情況

1.2 查詢存在" 01 "課程但可能不存在" 02 "課程的情況(不存在時(shí)顯示為 null ) 1.3 查詢不存在" 01 "課程但存在" 02 "課程的情況

2.查詢平均成績大于等于 60 分的同學(xué)的學(xué)生編號和學(xué)生姓名和平均成績

3.查詢在 SC 表存在成績的學(xué)生信息

4.查詢所有同學(xué)的學(xué)生編號断盛、學(xué)生姓名、選課總數(shù)愉舔、所有課程的總成績(沒成績的顯示為 null ) 4.1 查有成績的學(xué)生信息

5.查詢「李」姓老師的數(shù)量

6.查詢學(xué)過「張三」老師授課的同學(xué)的信息

7.查詢沒有學(xué)全所有課程的同學(xué)的信息

8.查詢至少有一門課與學(xué)號為" 01 "的同學(xué)所學(xué)相同的同學(xué)的信息

9.查詢和" 01 "號的同學(xué)學(xué)習(xí)的課程 完全相同的其他同學(xué)的信息

10.查詢沒學(xué)過"張三"老師講授的任一門課程的學(xué)生姓名

11.查詢兩門及其以上不及格課程的同學(xué)的學(xué)號钢猛,姓名及其平均成績

12.檢索" 01 "課程分?jǐn)?shù)小于 60,按分?jǐn)?shù)降序排列的學(xué)生信息

13.按平均成績從高到低顯示所有學(xué)生的所有課程的成績以及平均成績

14.查詢各科成績最高分轩缤、最低分和平均分: 以如下形式顯示:課程 ID命迈,課程 name,最高分火的,最低分壶愤,平均分,及格率馏鹤,中等率征椒,優(yōu)良率,優(yōu)秀率 及格為>=60湃累,中等為:70-80勃救,優(yōu)良為:80-90,優(yōu)秀為:>=90 要求輸出課程號和選修人數(shù)治力,查詢結(jié)果按人數(shù)降序排列蒙秒,若人數(shù)相同,按課程號升序排列

15.按各科成績進(jìn)行排序宵统,并顯示排名晕讲, Score 重復(fù)時(shí)保留名次空缺?


15.1 按各科成績進(jìn)行排序,并顯示排名, Score 重復(fù)時(shí)合并名次

SELECT @rank := 0, @sco := NULL;

SELECT

? ? *,

? ? CASE

? ? ? ? WHEN (@sco = score) THEN @rank

? ? ? ? ELSE @rank:=@rank + 1

? ? END AS rn,

? ? @sco:=score

FROM

? ? sc

ORDER BY score DESC


16.查詢學(xué)生的總成績瓢省,并進(jìn)行排名弄息,總分重復(fù)時(shí)保留名次空缺



?16.1 查詢學(xué)生的總成績,并進(jìn)行排名净捅,總分重復(fù)時(shí)不保留名次空缺

17.統(tǒng)計(jì)各科成績各分?jǐn)?shù)段人數(shù):課程編號疑枯,課程名稱,[100-85]蛔六,[85-70]荆永,[70-60],[60-0] 及所占百分比

18.查詢各科成績前三名的記錄

19.查詢每門課程被選修的學(xué)生數(shù)

20.查詢出只選修兩門課程的學(xué)生學(xué)號和姓名

21.查詢男生国章、女生人數(shù)

22.查詢名字中含有「風(fēng)」字的學(xué)生信息

23.查詢同名同性學(xué)生名單具钥,并統(tǒng)計(jì)同名人數(shù)

24.查詢 1990 年出生的學(xué)生名單

25.查詢每門課程的平均成績,結(jié)果按平均成績降序排列液兽,平均成績相同時(shí)骂删,按課程編號升序排列

26.查詢平均成績大于等于 85 的所有學(xué)生的學(xué)號、姓名和平均成績

27.查詢課程名稱為「數(shù)學(xué)」四啰,且分?jǐn)?shù)低于 60 的學(xué)生姓名和分?jǐn)?shù)

28.查詢所有學(xué)生的課程及分?jǐn)?shù)情況(存在學(xué)生沒成績宁玫,沒選課的情況)

29.查詢?nèi)魏我婚T課程成績在 70 分以上的姓名、課程名稱和分?jǐn)?shù)

30.查詢不及格的課程

31.查詢課程編號為 01 且課程成績在 80 分以上的學(xué)生的學(xué)號和姓名

32.求每門課程的學(xué)生人數(shù)

33.假設(shè)成績不重復(fù)柑晒,查詢選修「張三」老師所授課程的學(xué)生中欧瘪,成績最高的學(xué)生信息及其成績

34.假設(shè)成績有重復(fù)的情況下,查詢選修「張三」老師所授課程的學(xué)生中匙赞,成績最高的學(xué)生信息及其成績

35.查詢不同課程成績相同的學(xué)生的學(xué)生編號佛掖、課程編號、學(xué)生成績

36.查詢每門功成績最好的前兩名

37.統(tǒng)計(jì)每門課程的學(xué)生選修人數(shù)(超過 5 人的課程才統(tǒng)計(jì))涌庭。

38.檢索至少選修兩門課程的學(xué)生學(xué)號

39.查詢選修了全部課程的學(xué)生信息

40.查詢各學(xué)生的年齡芥被,只按年份來算

41.按照出生日期來算,當(dāng)前月日 < 出生年月的月日則坐榆,年齡減一

42.查詢本周過生日的學(xué)生

43.查詢下周過生日的學(xué)生

44.查詢本月過生日的學(xué)生

45.查詢下月過生日的學(xué)生

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拴魄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子席镀,更是在濱河造成了極大的恐慌羹铅,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愉昆,死亡現(xiàn)場離奇詭異职员,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)跛溉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門焊切,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扮授,“玉大人,你說我怎么就攤上這事专肪∩膊” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵嚎尤,是天一觀的道長荔仁。 經(jīng)常有香客問我,道長芽死,這世上最難降的妖魔是什么乏梁? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮关贵,結(jié)果婚禮上遇骑,老公的妹妹穿的比我還像新娘。我一直安慰自己揖曾,他們只是感情好落萎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著炭剪,像睡著了一般练链。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奴拦,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天媒鼓,我揣著相機(jī)與錄音,去河邊找鬼粱坤。 笑死隶糕,一個(gè)胖子當(dāng)著我的面吹牛瓷产,可吹牛的內(nèi)容都是我干的站玄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼濒旦,長吁一口氣:“原來是場噩夢啊……” “哼株旷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起尔邓,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤晾剖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后梯嗽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體齿尽,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年灯节,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了循头。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绵估。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卡骂,靈堂內(nèi)的尸體忽然破棺而出国裳,到底是詐尸還是另有隱情,我是刑警寧澤全跨,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布缝左,位于F島的核電站,受9級特大地震影響浓若,放射性物質(zhì)發(fā)生泄漏渺杉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一七嫌、第九天 我趴在偏房一處隱蔽的房頂上張望少办。 院中可真熱鬧,春花似錦诵原、人聲如沸英妓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔓纠。三九已至,卻和暖如春吗蚌,著一層夾襖步出監(jiān)牢的瞬間腿倚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工蚯妇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留敷燎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓箩言,卻偏偏與公主長得像硬贯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子陨收,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348