SQL Server2022學(xué)習(xí)2(連接查詢、嵌套查詢、插入元素、修改數(shù)據(jù)、視圖)
?1. 連接查詢
1.1?查詢每個學(xué)生及其選修課程的情況1

1.2?查詢每個學(xué)生及其選修課程的情況2

1.3?查詢選修2號課程且成績在90分以上的所有學(xué)生的學(xué)號和姓名

2.?自身連接
一個表與其自己進行連接,需要給表起別名以表示區(qū)別,由于所有屬性名都是同名屬性,因此必須使用別名前綴
2.1?查詢每一門課的間接先修課(即先修課的先修課)

2.2?左外連接:列出左邊關(guān)系中所有的元組。查詢每個學(xué)生及其選修課程的情況

2.3?查詢每個學(xué)生的學(xué)號、姓名、選修的課程名及成績(多表連接)

3.?嵌套查詢
3.1?查詢與“劉晨”在同一個系學(xué)習(xí)的學(xué)生,此查詢?yōu)椴幌嚓P(guān)查詢

3.2?用自身連接查詢與“劉晨”在同一個系學(xué)習(xí)的學(xué)生

3.3?查詢選修了課程名為‘信息系統(tǒng)’的學(xué)生學(xué)號和姓名

3.4?用連接查詢實現(xiàn):查詢選修了課程名為‘信息系統(tǒng)’的學(xué)生學(xué)號和姓名

帶有比較運算符的子查詢
3.5?假設(shè)一個學(xué)生只可能在一個系學(xué)習(xí),并且必須屬于一個系,則查詢與“劉晨”在同一個系學(xué)習(xí)的學(xué)生可以用=代替IN

3.6?找出每個學(xué)生超過他選修課程平均成績的課程號

帶有ANY(SOME)或ALL謂詞的子查詢
3.7?查詢非計算機科學(xué)系中比計算機科學(xué)系任意一個學(xué)生年齡小的學(xué)生姓名和年齡

3.8?查詢非計算機科學(xué)系中比計算機科學(xué)系所有學(xué)生年齡都小的學(xué)生姓名及年齡

3.9?查詢所有選修了1號課程的學(xué)生姓名

3.10?查詢沒有選修1號課程的學(xué)生姓名

3.11?查詢與‘劉晨’在同一個系學(xué)習(xí)的學(xué)生??梢杂脦XISTS謂詞的子查詢替換

4.?插入元素
4.1?將一個新學(xué)生元組(學(xué)號:201215138;姓名:陳小冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中

4.2?將學(xué)生張成民的信息插入到Student表中
4.3?插入一條選課記錄('200215128','1')
4.4?插入子查詢,對每一個系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫
5.?修改數(shù)據(jù)
5.1?將學(xué)生201215121的年齡改為22歲
5.2?將所有學(xué)生的年齡增加1歲
5.3?將計算機科學(xué)系全體學(xué)生的成績置零
5.4?刪除學(xué)號為201215128的學(xué)生記錄
5.5?刪除所有的學(xué)生選課記錄
5.6?刪除計算機科學(xué)系所有學(xué)生的選課記錄
5.7?找出選修1號課程的不及格的學(xué)生
5.8?選出選修1號課程的不及格的學(xué)生以及缺考的學(xué)生
6.視圖/檢視
6.1?建立信息系學(xué)生的視圖
6.2?建立信息系選修了1號課程的學(xué)生的視圖(包括學(xué)號、姓名、成績)
6.3?建立信息系選修了1號課程且成績在90分以上的學(xué)生的視圖
6.4?定義一個反映學(xué)生出生年份的視圖
6.5?將學(xué)生的學(xué)號及平均成績定義為一個視圖

6.6?刪除視圖BT_S和IS_S1
6.7?在信息系學(xué)生的視圖中找出年齡小于20歲的學(xué)生
6.8?查詢選修了1號課程的信息系學(xué)生
6.9?在S_G視圖中查詢平均成績在90分以上的學(xué)生學(xué)號和平均成績
6.10?將信息系學(xué)生視圖IS_Student中學(xué)號“201215122”的學(xué)生姓名改為'劉辰'。
6.11?刪除信息系學(xué)生視圖IS_Student中學(xué)號為’201215129‘的記錄
7. 參考文獻
[1]王珊、薩師煊,數(shù)據(jù)庫系統(tǒng)概論(第5版)[M].北京:高等教育出版社,2014.? ?