sql題

常見的學(xué)生老師課程分?jǐn)?shù):

建表:

CREATE TABLE students

(sno VARCHAR(3) NOT NULL,

sname VARCHAR(4) NOT NULL,

ssex VARCHAR(2) NOT NULL,

sbirthday DATETIME,

class VARCHAR(5))

CREATE TABLE courses

(cno VARCHAR(5) NOT NULL,

cname VARCHAR(10) NOT NULL,

tno VARCHAR(10) NOT NULL)

CREATE TABLE scores

(sno VARCHAR(3) NOT NULL,

cno VARCHAR(5) NOT NULL,

degree NUMERIC(10, 1) NOT NULL)

CREATE TABLE teachers

(tno VARCHAR(3) NOT NULL,

tname VARCHAR(4) NOT NULL, tsex VARCHAR(2) NOT NULL,

tbirthday DATETIME NOT NULL, prof VARCHAR(6),

depart VARCHAR(10) NOT NULL)

插數(shù):

INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (108 ,'曾華' ,'男' ,'1977-09-01',95033);

INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (105 ,'匡明' ,'男' ,'1975-10-02',95031);

INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (107 ,'王麗' ,'女' ,'1976-01-23',95033);

INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (101 ,'李軍' ,'男' ,'1976-02-20',95033);

INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (109 ,'王芳' ,'女' ,'1975-02-10',95031);

INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (103 ,'陸君' ,'男' ,'1974-06-03',95031);

INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('3-105' ,'計算機(jī)導(dǎo)論',825);

INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('3-245' ,'操作系統(tǒng)' ,804);

INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('6-166' ,'數(shù)據(jù)電路' ,856);

INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('9-888' ,'高等數(shù)學(xué)' ,100);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (103,'3-245',86);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (105,'3-245',75);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (109,'3-245',68);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (103,'3-105',92);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (105,'3-105',88);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (109,'3-105',76);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (101,'3-105',64);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (107,'3-105',91);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (108,'3-105',78);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (101,'6-166',85);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (107,'6-106',79);

INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (108,'6-166',81);

INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (804,'李誠','男','1958-12-02','副教授','計算機(jī)系');

INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (856,'張旭','男','1969-03-12','講師','電子工程系');

INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (825,'王萍','女','1972-05-05','助教','計算機(jī)系');

INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (831,'劉冰','女','1977-08-14','助教','電子工程系');

---------------------

12.查詢Score表中至少有5名學(xué)生選修的并以3開頭的課程的平均分?jǐn)?shù)知押。

SELECT Cno,AVG(Degree)

FROM Scores

WHERE Cno LIKE '3%'

GROUP BY Cno

HAVING COUNT(Sno) >= 5;

13.查詢最低分大于70,最高分小于90的Sno列。

SELECT Sno

FROM Scores

GROUP BY Sno

HAVING MAX(Degree)<90 AND MIN(Degree)>70;

18.假設(shè)使用如下命令建立了一個grade表:

CREATE TABLE grade(low TINYINT,upp TINYINT,rank CHAR(1));

INSERT INTO grade VALUES(90,100,'A');

INSERT INTO grade VALUES(80,89,'B');

INSERT INTO grade VALUES(70,79,'C');

INSERT INTO grade VALUES(60,69,'D');

INSERT INTO grade VALUES(0,59,'E');

現(xiàn)查詢所有同學(xué)的Sno、Cno和rank列。

解法1:

SELECT SNO,CNO,RANK FROM scores,GRADE WHERE DEGREE BETWEEN LOW AND UPP

ORDER BY Sno;

解法2:

SELECT Sno,Cno,rank

FROM Scores INNER JOIN grade

ON(Scores.Degree>=grade.low AND Scores.Degree<=grade.upp)

ORDER BY Sno;

19.查詢選修“3-105”課程的成績高于“109”號同學(xué)成績的所有同學(xué)的記錄。

SELECT s1.Sno,s1.Degree

FROM Scores AS s1 INNER JOIN Scores AS s2

ON(s1.Cno=s2.Cno AND s1.Degree>s2.Degree)

WHERE s1.Cno='3-105' AND s2.Sno='109'

ORDER BY s1.Sno;

另外兩種解法:

1.

SELECT A.* FROM SCOREs A JOIN SCOREs B WHERE A.CNO='3-105' AND A.DEGREE>B.DEGREE AND

B.SNO='109' AND B.CNO='3-105';

2.

SELECT A.* FROM SCOREs A? WHERE A.CNO='3-105' AND A.DEGREE>ALL(SELECT DEGREE FROM

SCOREs B WHERE B.SNO='109' AND B.CNO='3-105');

20.查詢score中選學(xué)一門以上課程的同學(xué)中分?jǐn)?shù)為非最高分成績的記錄。

SELECT * FROM Scores?

GROUP BY Sno?

HAVING COUNT(cno)>1?

AND?

Degree!=MAX(Degree);

21.查詢成績高于學(xué)號為“109”凶朗、課程號為“3-105”的成績的所有記錄。

SELECT s1.Sno,s1.Degree

FROM Scores AS s1 INNER JOIN Scores AS s2

ON(s1.Cno=s2.Cno AND s1.Degree>s2.Degree)

WHERE s1.Cno='3-105' AND s2.Sno='109'

ORDER BY s1.Sno;

22.查詢和學(xué)號為108的同學(xué)同年出生的所有學(xué)生的Sno显拳、Sname和Sbirthday列棚愤。

解法1:

SELECT SNO,SNAME,SBIRTHDAY

FROM STUDENTs WHERE YEAR(SBIRTHDAY)=(SELECT YEAR(SBIRTHDAY) FROM STUDENTs WHERE SNO='108');

解法2:

SELECT s1.Sno,s1.Sname,s1.Sbirthday

FROM Students AS s1 INNER JOIN Students AS s2

ON(YEAR(s1.Sbirthday)=YEAR(s2.Sbirthday))

WHERE s2.Sno='108';

23.查詢“張旭“教師任課的學(xué)生成績。

解法1:

SELECT Sno,Degree

FROM Scores INNER JOIN Courses

ON(Scores.Cno=Courses.Cno) INNER JOIN Teachers

ON(Courses.Tno=Teachers.Tno)

WHERE Teachers.Tname='張旭';

解法2:

SELECT A.SNO,A.DEGREE?

FROM scores A JOIN (TEACHERs B,COURSEs C)

ON A.CNO=C.CNO AND B.TNO=C.TNO

WHERE B.TNAME='張旭';

24.查詢選修某課程的同學(xué)人數(shù)多于5人的教師姓名。

SELECT DISTINCT Tname

FROM Scores INNER JOIN Courses

ON(Scores.Cno=Courses.Cno) INNER JOIN Teachers

ON(Courses.Tno=Teachers.Tno)

WHERE Courses.Cno IN(SELECT Cno FROM Scores GROUP BY(Cno) HAVING COUNT(Sno)>5);

27.查詢出“計算機(jī)系“教師所教課程的成績表宛畦。

SELECT Tname,Cname,SName,Degree

FROM Teachers INNER JOIN Courses

ON(Teachers.Tno=Courses.Tno) INNER JOIN Scores

ON(Courses.Cno=Scores.Cno) INNER JOIN Students

ON(Scores.Sno=Students.Sno)

WHERE Teachers.Depart='計算機(jī)系'

ORDER BY Tname,Cname,Degree DESC;

28.查詢“計算機(jī)系”與“電子工程系“不同職稱的教師的Tname和Prof瘸洛。

SELECT Tname,Prof

FROM Teachers

WHERE Depart='計算機(jī)系' AND Prof NOT IN(

? ? SELECT DISTINCT Prof

? ? FROM Teachers

? ? WHERE Depart='電子工程系');

29.查詢選修編號為“3-105“課程且成績至少高于任意選修編號為“3-245”的同學(xué)的成績的Cno、Sno和Degree,并按Degree從高到低次序排序次和。

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;

30.查詢選修編號為“3-105”且成績高于所有選修編號為“3-245”課程的同學(xué)的Cno反肋、Sno和Degree.

SELECT Cno,Sno,Degree

FROM Scores

WHERE Cno='3-105' AND Degree > ALL(

? ? SELECT Degree

? ? FROM Scores

? ? WHERE Cno='3-245')

ORDER BY Degree DESC;

32.查詢所有“女”教師和“女”同學(xué)的name、sex和birthday.

SELECT Sname,Ssex,Sbirthday

FROM Students

WHERE Ssex='女'

UNION

SELECT Tname,Tsex,Tbirthday

FROM Teachers

WHERE Tsex='女';

33.查詢成績比該課程平均成績低的同學(xué)的成績表踏施。

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);

34.查詢所有任課教師的Tname和Depart.

SELECT Tname,Depart

FROM Teachers

WHERE Tno IN(

? ? SELECT Tno

? ? FROM Courses

);

35.查詢所有未講課的教師的Tname和Depart.

SELECT Tname,Depart

FROM Teachers

WHERE Tno NOT IN(

? ? SELECT Tno

? ? FROM Courses

);

36.查詢至少有2名男生的班號石蔗。

SELECT Class,COUNT(1) AS boyCount

FROM Students

WHERE Ssex='男'

GROUP BY Class

HAVING boyCount>=2;

38.查詢Student表中每個學(xué)生的姓名和年齡。

SELECT Sname,YEAR(NOW())-YEAR(Sbirthday) AS Sage

FROM Students;

39.查詢Student表中最大和最小的Sbirthday日期值畅形。

SELECT MIN(Sbirthday),MAX(Sbirthday)

FROM Students;

41.查詢“男”教師及其所上的課程养距。

SELECT Teachers.Tname,Courses.Cname

FROM Teachers INNER JOIN Courses

ON(Teachers.Tno=Courses.Tno)

WHERE Teachers.Tsex='男';

42.查詢最高分同學(xué)的Sno、Cno和Degree列日熬。

SELECT *

FROM Scores

GROUP BY Cno

HAVING Degree=Max(Degree);

44.查詢和“李軍”同性別并同班的同學(xué)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.查詢所有選修“計算機(jī)導(dǎo)論”課程的“男”同學(xué)的成績表

SELECT *

FROM Scores

WHERE Sno IN (

? ? SELECT Sno

? ? FROM Students

? ? WHERE Ssex='男') AND

? ? Cno IN (

? ? SELECT Cno

? ? FROM Courses

? ? WHERE Cname='計算機(jī)導(dǎo)論');


遞歸查詢:

CREATE TABLE `digui` (

? `id` int(11) NOT NULL AUTO_INCREMENT,

? `parent_id` int(255) DEFAULT NULL,

? `name` varchar(255) DEFAULT NULL,

? PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;

表結(jié)構(gòu)

SELECT t1.name 城市,t2.name 街區(qū),t3.name 道路

FROM digui t1

LEFT JOIN digui t2 ON t1.id = t2.parent_id

LEFT JOIN digui t3 ON t2.id = t3.parent_id

WHERE t1.id = '1';


結(jié)果

參考鏈接:https://blog.csdn.net/mrbcy/article/details/68965271

https://blog.csdn.net/qaz13177_58_/article/details/5575711/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棍厌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子竖席,更是在濱河造成了極大的恐慌定铜,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怕敬,死亡現(xiàn)場離奇詭異,居然都是意外死亡帘皿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坦刀,“玉大人吞彤,你說我怎么就攤上這事〔芏” “怎么了斋日?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長墓陈。 經(jīng)常有香客問我恶守,道長,這世上最難降的妖魔是什么贡必? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任兔港,我火速辦了婚禮,結(jié)果婚禮上仔拟,老公的妹妹穿的比我還像新娘衫樊。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布科侈。 她就那樣靜靜地躺著载佳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪臀栈。 梳的紋絲不亂的頭發(fā)上蔫慧,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機(jī)與錄音挂脑,去河邊找鬼藕漱。 笑死,一個胖子當(dāng)著我的面吹牛崭闲,可吹牛的內(nèi)容都是我干的肋联。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼刁俭,長吁一口氣:“原來是場噩夢啊……” “哼橄仍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起牍戚,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤侮繁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后如孝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宪哩,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年第晰,在試婚紗的時候發(fā)現(xiàn)自己被綠了锁孟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡茁瘦,死狀恐怖品抽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情甜熔,我是刑警寧澤圆恤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站腔稀,受9級特大地震影響盆昙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜焊虏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一弱左、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炕淮,春花似錦拆火、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽币叹。三九已至,卻和暖如春模狭,著一層夾襖步出監(jiān)牢的瞬間颈抚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工嚼鹉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贩汉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓锚赤,卻偏偏與公主長得像匹舞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子线脚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容