實驗?zāi)康模和ㄟ^使用SSMS工具,練習(xí)對數(shù)據(jù)庫中的數(shù)據(jù)表進(jìn)行單表查詢、多表連接查詢、子查詢。對數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行更改和刪除等操作。
實驗要求:將相關(guān)的SQL 語句和運行結(jié)果的截屏保存在文件中,或填寫在下面的實驗報告中,并通過網(wǎng)絡(luò)提交。
實驗內(nèi)容:
使用SSMS工具,在“可用數(shù)據(jù)庫”中選中Students數(shù)據(jù)庫,完成如下實驗。
1. 單表查詢。寫出實現(xiàn)如下查詢的SQL語句。
(1) 查詢學(xué)生選課表中的全部數(shù)據(jù)。
(2) 查詢計算機(jī)系的學(xué)生的姓名、年齡。
(3) 查詢成績在70~80分的學(xué)生的學(xué)號、課程號和成績。
(4) 查詢計算機(jī)系年齡在18~20歲男生的姓名、年齡。
(5) 查詢C001課程的考試成績最高分。
(6) 查詢計算機(jī)系學(xué)生的最大年齡和最小年齡。
(7) 統(tǒng)計各系的學(xué)生人數(shù)。
(8) 統(tǒng)計每門課程的選課人數(shù)和考試成績最高分。
(9) 統(tǒng)計每個學(xué)生的選課門數(shù)和考試總成績,并按選課門數(shù)升序顯示結(jié)果。
(10)查詢總成績超過200分的學(xué)生,要求列出其學(xué)號和總成績。
(11)查詢選課門數(shù)超過2門的學(xué)生的學(xué)號、平均成績和選課門數(shù)。
2. 多表連接查詢。寫出實現(xiàn)如下查詢的SQL語句。
(12) 查詢選了C002課程的學(xué)生的姓名和所在系。
(13) 查詢成績80分以上的學(xué)生的姓名、課程號和成績,并按成績降序排列結(jié)果。
(14) 查詢計算機(jī)系男生選修了“數(shù)據(jù)庫基礎(chǔ)”的學(xué)生的姓名和成績。
(15) 查詢學(xué)生的選課情況,要求列出每位學(xué)生的選課情況(包括未選課的學(xué)生),并列出學(xué)生的學(xué)號、姓名、課程號和考試成績。
(16) 查詢哪些課程沒有人選修,要求列出課程號和課程名。
(17) 查詢計算機(jī)系沒有選課的學(xué)生,列出學(xué)生的姓名。
3. 使用TOP和CASE的查詢。寫出實現(xiàn)如下查詢的SQL語句。
(18) 列出“數(shù)據(jù)庫基礎(chǔ)”課程考試成績前三名的學(xué)生的學(xué)號、姓名、所在系和考試成績。
(19) 查詢Java考試成績最低的學(xué)生的姓名、所在系和Java成績。
(20) 查詢選修了Java的學(xué)生學(xué)號、姓名、所在系和成績,并對所在系進(jìn)行如下處理:
當(dāng)所在系為“計算機(jī)系”時,顯示“CS”;
當(dāng)所在系為“信息管理系”時,顯示“IS”;
當(dāng)所在系為“通信工程系”時,顯示“CO”;
對其他系,均顯示“OTHER”。
4. 子查詢。寫出實現(xiàn)如下查詢的SQL語句。
(21) 查詢選修了C001課程的學(xué)生姓名和所在系。
(22) 查詢計算機(jī)文化學(xué)考試成績在80分以上的學(xué)生的學(xué)號和姓名。
(23) 查詢計算機(jī)文化學(xué)考試成績最高的學(xué)生姓名和所在系。
(24) 查詢年齡最大的男生的姓名和年齡。
(25) 查詢C001課程的考試成績高于C001課程的平均成績的學(xué)生的學(xué)號及其C001課程考試成績。
5. 數(shù)據(jù)更改。寫出實現(xiàn)如下操作的SQL語句。
(26) 將C001課程的考試成績加10分。
(27) 將計算機(jī)系所有選修了“計算機(jī)文化學(xué)”課程的學(xué)生考試成績加10分,分別用子查詢和多表連接形式實現(xiàn)。
6. 數(shù)據(jù)刪除。寫出實現(xiàn)如下操作的SQL語句。
(28) 刪除考試成績低于50分的學(xué)生的選課記錄。
(29) 刪除信息管理系考試成績低于50分的學(xué)生的該門課程的選課記錄,分別用子查詢和多表連接形式實現(xiàn)。
(30) 刪除Java考試成績最低的學(xué)生的Java選課記錄。

