數(shù)據(jù)庫練習1

建表語句

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ù)據(jù)

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' ,'計算機導(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','副教授','計算機系');

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','助教','計算機系');

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

題目

1、 查詢Student表中的所有記錄的Sname泣矛、Ssex和Class列短蜕。

2、 查詢教師所有的單位即不重復(fù)的Depart列河胎。

3、 查詢Student表的所有記錄。

4姆怪、 查詢Score表中成績在60到80之間的所有記錄也物。

5宫屠、 查詢Score表中成績?yōu)?5,86或88的記錄滑蚯。

6浪蹂、 查詢Student表中“95031”班或性別為“女”的同學(xué)記錄。

7告材、 以Class降序查詢Student表的所有記錄坤次。

8、 以Cno升序斥赋、Degree降序查詢Score表的所有記錄缰猴。

9、 查詢“95031”班的學(xué)生人數(shù)疤剑。

10滑绒、查詢Score表中的最高分的學(xué)生學(xué)號和課程號。

11隘膘、查詢‘3-105’號課程的平均分疑故。

12、查詢Score表中至少有5名學(xué)生選修的并以3開頭的課程的平均分數(shù)弯菊。

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

14钦铁、查詢所有學(xué)生的Sname软舌、Cno和Degree列。

15牛曹、查詢所有學(xué)生的Sno乙嘀、Cname和Degree列池户。

16撑毛、查詢所有學(xué)生的Sname恋腕、Cname和Degree列。

17焰手、查詢“95033”班所選課程的平均分糟描。

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

create table grade(low? number(3,0),upp? number(3),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');

commit;

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

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

20见间、查詢score中選學(xué)一門以上課程的同學(xué)中分數(shù)為非最高分成績的記錄。

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

22篷帅、查詢和學(xué)號為108的同學(xué)同年出生的所有學(xué)生的Sno史侣、Sname和Sbirthday列。

23魏身、查詢“張旭“教師任課的學(xué)生成績惊橱。

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

25税朴、查詢95033班和95031班全體學(xué)生的記錄。

26家制、查詢存在有85分以上成績的課程Cno.

27正林、查詢出“計算機系“教師所教課程的成績表。

28颤殴、查詢“計算機系”與“電子工程系“不同職稱的教師的Tname和Prof觅廓。

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

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

31蝇棉、查詢所有教師和同學(xué)的name、sex和birthday.

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

33、查詢成績比該課程平均成績低的同學(xué)的成績表埋涧。

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

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

36、查詢至少有2名男生的班號棘催。

37劲弦、查詢Student表中不姓“王”的同學(xué)記錄。

38醇坝、查詢Student表中每個學(xué)生的姓名和年齡邑跪。

39、查詢Student表中最大和最小的Sbirthday日期值呼猪。

40画畅、以班號和年齡從大到小的順序查詢Student表中的全部記錄。

41宋距、查詢“男”教師及其所上的課程轴踱。

42、查詢最高分同學(xué)的Sno谚赎、Cno和Degree列淫僻。

43、查詢和“李軍”同性別的所有同學(xué)的Sname.

44沸版、查詢和“李軍”同性別并同班的同學(xué)Sname.

45嘁傀、查詢所有選修“計算機導(dǎo)論”課程的“男”同學(xué)的成績表

1.查詢Student表中的所有記錄的Sname、Ssex和Class列视粮。

SELECT Sname,Ssex,Class

FROM Student;

2.查詢教師所有的單位即不重復(fù)的Depart列细办。

SELECT DISTINCT Depart

FROM teachers;

3.查詢Student表的所有記錄。

SELECT *

FROM students;

4.查詢Score表中成績在60到80之間的所有記錄蕾殴。

SELECT *

FROM scores

WHERE Degree BETWEEN 60 AND 80;

5.查詢Score表中成績?yōu)?5笑撞,86或88的記錄。

SELECT *

FROM scores

WHERE Degree IN (85,86,88);

6.查詢Student表中“95031”班或性別為“女”的同學(xué)記錄钓觉。

SELECT *

FROM students

WHERE Class='95031' OR Ssex='女';

7.以Class降序查詢Student表的所有記錄茴肥。

SELECT *

FROM students

ORDER BY Class DESC;

8.以Cno升序、Degree降序查詢Score表的所有記錄荡灾。

SELECT *

FROM scores

ORDER BY Cno,Degree DESC;

9.查詢“95031”班的學(xué)生人數(shù)瓤狐。

SELECT COUNT(1) AS StuNum

FROM students

WHERE Class='95031';

10.查詢Score表中的最高分的學(xué)生學(xué)號和課程號瞬铸。

SELECT Sno,Cno

FROM scores

ORDER BY Degree DESC

LIMIT 1;

11.查詢‘3-105’號課程的平均分。

SELECT AVG(Degree)

FROM scores

WHERE Cno='3-105';

12.查詢Score表中至少有5名學(xué)生選修的并以3開頭的課程的平均分數(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;

14.查詢所有學(xué)生的Sname皆警、Cno和Degree列拦宣。

SELECT Sname,Cno,Degree

FROM students INNER JOIN scores

ON(students.Sno=scores.Sno)

ORDER BY Sname;

15.查詢所有學(xué)生的Sno、Cname和Degree列信姓。

SELECT Sno,Cname,Degree

FROM scores INNER JOIN courses

ON(scores.Cno=courses.Cno)

ORDER BY Sno;

16.查詢所有學(xué)生的Sname鸵隧、Cname和Degree列。

SELECT Sname,Cname,Degree

FROM students INNER JOIN scores

ON(students.Sno=scores.Sno) INNER JOIN courses

ON(scores.Cno=courses.Cno)

ORDER BY Sname;

17.查詢“95033”班所選課程的平均分意推。

SELECT Cname,AVG(Degree)

FROM students INNER JOIN scores

ON(students.Sno=scores.Sno) INNER JOIN courses

ON(scores.Cno=courses.Cno)

WHERE Class='95033'

GROUP BY courses.Cno

ORDER BY Cname;

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列。

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;

20.查詢score中選學(xué)一門以上課程的同學(xué)中分數(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列。

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é)生成績定页。

SELECT Sno,Degree

FROM scores INNER JOIN courses

ON(scores.Cno=courses.Cno) INNER JOIN teachers

ON(courses.Tno=teachers.Tno)

WHERE teachers.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);

25.查詢95033班和95031班全體學(xué)生的記錄。

SELECT *

FROM students

WHERE Class IN ('95033','95031')

ORDER BY Class;

26.查詢存在有85分以上成績的課程Cno.

SELECT DISTINCT Cno

FROM scores

WHERE Degree>85;

27.查詢出“計算機系“教師所教課程的成績表典徊。

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='計算機系'

ORDER BY Tname,Cname,Degree DESC;

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”的同學(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;

31.查詢所有教師和同學(xué)的name、sex和birthday.

SELECT Sname,Ssex,Sbirthday

FROM students

UNION

SELECT Tname,Tsex,Tbirthday

FROM teachers;

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;

37.查詢Student表中不姓“王”的同學(xué)記錄腰湾。

SELECT *

FROM students

WHERE Sname NOT LIKE '王%';

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

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

FROM students;

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

SELECT MIN(Sbirthday),MAX(Sbirthday)

FROM students;

40.以班號和年齡從大到小的順序查詢Student表中的全部記錄费坊。

SELECT *

FROM students

ORDER BY Class DESC,Sbirthday ASC;

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

43.查詢和“李軍”同性別的所有同學(xué)的Sname.

SELECT s1.Sname

FROM students AS s1 INNER JOIN students AS s2

ON(s1.Ssex=s2.Ssex)

WHERE s2.Sname='李軍';

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.查詢所有選修“計算機導(dǎo)論”課程的“男”同學(xué)的成績表

SELECT *

FROM scores

WHERE Sno IN (

? ? SELECT Sno

? ? FROM students

? ? WHERE Ssex='男') AND

? ? Cno IN (

? ? SELECT Cno

? ? FROM courses

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末讨越,一起剝皮案震驚了整個濱河市两残,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌把跨,老刑警劉巖磕昼,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異节猿,居然都是意外死亡,警方通過查閱死者的電腦和手機漫雕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門滨嘱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浸间,你說我怎么就攤上這事太雨。” “怎么了魁蒜?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵囊扳,是天一觀的道長。 經(jīng)常有香客問我兜看,道長锥咸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任细移,我火速辦了婚禮搏予,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘弧轧。我一直安慰自己雪侥,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布精绎。 她就那樣靜靜地躺著速缨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪代乃。 梳的紋絲不亂的頭發(fā)上旬牲,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音搁吓,去河邊找鬼引谜。 笑死,一個胖子當著我的面吹牛擎浴,可吹牛的內(nèi)容都是我干的员咽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贮预,長吁一口氣:“原來是場噩夢啊……” “哼贝室!你這毒婦竟也來了契讲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤滑频,失蹤者是張志新(化名)和其女友劉穎捡偏,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體峡迷,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡银伟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了绘搞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彤避。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖夯辖,靈堂內(nèi)的尸體忽然破棺而出琉预,到底是詐尸還是另有隱情,我是刑警寧澤蒿褂,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布圆米,位于F島的核電站,受9級特大地震影響啄栓,放射性物質(zhì)發(fā)生泄漏娄帖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一昙楚、第九天 我趴在偏房一處隱蔽的房頂上張望块茁。 院中可真熱鬧,春花似錦桂肌、人聲如沸数焊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佩耳。三九已至,卻和暖如春谭跨,著一層夾襖步出監(jiān)牢的瞬間干厚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工螃宙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛮瞄,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓谆扎,卻偏偏與公主長得像挂捅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子堂湖,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

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