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