A. 計算機sql語言試題
(一)現有關系資料庫如下: 資料庫名:我班同學資料庫同學表(學號 char(6),姓名,性別,年齡,民族,身份證號,宿舍號) 宿舍表(宿舍號 char(6),宿舍電話) 用SQL語言實現下列功能的sql語句代碼:1.創建資料庫[我班同學資料庫]代碼。2.創建數據表[宿舍表]代碼; 宿舍表(宿舍號 char(6),宿舍電話) 要求使用:主鍵(宿舍號)、宿舍電話:以633開頭的7位電話號碼3.創建數據表[同學表]代碼; 同學表(學號 char(6),姓名,性別,年齡,民族,身份證號,宿舍號) 要求使用:主鍵(學號)、外鍵(宿舍號)、默認(民族)、非空(民族,姓名,年齡)、唯一(身份證號)、檢查(性別)4.將下列宿舍信息添加到宿舍表的代碼 宿舍號 宿舍電話 101 6331157 102 6331777 修改 宿舍號為101的 宿舍電話:6331158 刪除 宿舍號為102的 宿舍信息5.創建視圖[同學表視圖]代碼; 同學表視圖(學號, 姓名, 性別, 年齡, 民族, 身份證號, 宿舍號, 宿舍電話)6.從同學表視圖中查詢姓張的女同學的姓名、性別、宿舍電話。7.從同學表中查詢女同學的最大年齡、最小年齡、平均年齡。8.創建帶參數的存儲過程[某宿舍同學]:姓名, 性別, 宿舍電話 執行此過程,查詢'101'宿舍情況 (二) 現有關系資料庫如下: 資料庫名:學生成績資料庫學生表(學號 char(6),姓名,性別,民族,身份證號) 課程表(課號 char(6),名稱) 成績表(ID,學號,課號,分數) 用SQL語言實現下列功能的sql語句代碼:1.創建資料庫[學生成績資料庫]代碼 ;2.創建[課程表]代碼 ; 課程表(課號 char(6),名稱) 要求使用:主鍵(課號)、非空(名稱)3. 創建[學生表]代碼 ; 學生表(學號 char(6),姓名,性別,民族,身份證號) 要求使用:主鍵(學號)、默認(民族)、非空(民族,姓名)、唯一(身份證號)、檢查(性別)4. 創建[成績表]代碼 ; 成績表(ID,學號,課號,分數) 要求使用:主鍵(課號)、外鍵(成績表.學號,成績表.課號)、檢查(分數),自動編號(ID)5. 將下列課程信息添加到課程表的代碼 課號 課程名稱 100001 大學語文 100002 大學英語 100003 西班牙語 修改 課號為100002的課程名稱:實用英語 刪除 課號為100003的課程信息 6. 寫出創建:成績表視圖(學號,姓名,課號,課程名稱,分數)的代碼; 8. 寫出創建:某門課程高低均分 計算某門課程成績最高分、最低分、平均分 存儲過程以及執行的代碼; 執行:所有修 實用英語 這門學生的最高分、最低分、平均分;9. 檢索姓李的女同學的情況:姓名、性別、民族。 10.檢索有一門或一門以上課程成績大於等於90分的所有學生的信息,包括學號、姓名。 (三)有一個[學生課程]資料庫,資料庫中包括三個表:學生表Student由學號(Sno)、姓名(Sname)、性別(Ssex)、年齡(Sage)、所在系(Sdept)五個屬性組成,記為: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 為關鍵字。課程表Course由課程號(Cno)、課程名(Cname)、先修課號(Cpno)、學分(Ccredit)四個屬性組成,記為:Course(Cno,Cname,Cpno,Ccredit) Cno為關鍵字。 成績表SG由學號(Sno)、課程號(Cno)、成績(Grade)三個屬性組成,記為:SG(Sno Cno, Grade) (SNO, CNO)為關鍵字。用SQL語言實現下列功能:1.建立學生表Student,其中學號屬性不能為空,並且其值是唯一的。2.向Student表增加「入學時間(Scome)」列,其數據類型為日期型。3.查詢選修了3號課程的學生的學號及其成績,查詢結果按分數的降序排列。4.查詢學習1號課程的學生最高分數、平均成績。5.查詢與「李洋」在同一個系學習的學生。6.將計算機系全體學生的成績置零。
有些秘密是男人永遠不會說的,所以就不要再問了,因為再問,他們給的答案也不會是真的!
1、男人很容易喜歡一個女人,卻不輕易深愛一個女人。
2、男人在感情的王國里,絕對是個昏君。女人只要肯奉承,他什麼都答應。
3、男人普遍喜歡外表溫柔的女子,寧願把精力花在事業或其他地方,也不願全用來征服女人。
4、男人都不太重視對自己太好的女人。
5、男人都怕女人死纏爛打,但喜歡用同樣的方式對付沒追上的女人。
6、男人的夢想之一,是擁有可以超越友誼界限的紅顏知己。
7、男人會以很理性的態度取捨愛情,就算他感性上很愛一個人,但當他清楚她並非一個好妻子時,他會放棄她,另找合適家居生活的那一個。男人認為戀愛和結婚是兩回事,很多時候,他拖延結婚,根本原因就是他認為身邊的女人不是想像中的好妻子。
8、男人對妻子的要求,可能比對戀人更低——在外型上,在性格上則更高。
9、懂得欣賞聰明女人的男人不多,和她們在一起,男人總覺得缺乏安全感受。
10、當有喜歡的女人在場時,男人會有如下表現:話多;顯得聰明些;比平日慷慨;會把話題扯到得意成就上;會刻意顯露平時少見的好心腸;多說一些自以為好笑的笑話引大家發笑。
11、一個男人同時是大男人和小男人的化身。大男人的他,希望女人完全遷就他,令他放心;小男人的他,意識到自己懦弱無能的一面,猶豫不決。說穿了,他們很多都是忌妒心重的小器鬼,又像孩子般容易被哄騙。
12、男人追求女人的時候願意割捨一切自由,追到了越來越感到自由的重要性。
13、男人內心隱藏著狩獵心態,追捕,得到後就要馴服她,讓她變成可在家飼養的乖乖動物。
14、男人都有愛當英雄的自大心態,所以很容易愛上向他訴苦的女人。
15、男人希望身邊的女人明白:帶著同一個女人去所有地方,實在是一件很悶的事(或許女人也這樣覺得吧,只是不好意思說),所以和其他女人適度約會,是調劑和放鬆,完全可以沒有其他企圖。
16、兩性關系中,女人需要男人告訴她,他願意為她做任何犧牲,男人則需要女人告訴他,他很能幹。
17、男人自以為是的多情,常常是女人眼中不折不扣的薄倖。
18、在男人心底,親熱到哪個程度,就是和女人的戀情發展到什麼程度。
19、男人每隔一段時間,就有情緒和體力跌到谷底的幾天,不想見任何人,躲起來翻翻書,聽聽音樂,看看影碟或狂打電玩發泄。
20、有過戀愛經驗的男人都知道:女人是不能不騙的,類似像:「我會永遠愛你」,「我一直都會像現在這樣疼你」,「什麼時候需要我,一個電話我就立刻趕來」,「我以後再也不會像愛你這樣去愛另外一個人」這種話是必須要說但永遠堅持不了的「騙話」,誰讓女人這么愛聽呢!
21、男人遇上舊情人多半會自作多情,以為與自己有過感情的人,內心總會保存一份情,幻想愛過他的女人永遠愛他。女人只會美化眼前的男人,男人卻不自覺地美化逝去的戀情。所以男人比女人更認同:分手還是朋友。不管是甩人還是被甩,男人多半願意與前女友繼續保持聯絡。
22、女人在意男友以前的女友,男人卻在意女人離開他後找個什麼樣的男友。如果分手後仍是朋友的,他會時不時批評她的男友。
23、男人跌入愛河,很少問她的過去,不太關心她和哪種男人談過戀愛,因為男人較注重女人的外表——外表就是現在。
24、男人不願聽心上人的舊戀情,因為一想到自己愛的人之前和其他男人有過肌膚之親,就難以忍受。
25、面對兩個對自己有愛意的人,女人會在徘徊中選擇,男人不會為此煩惱——他其實只想同時追上兩個人呢!
26、男人愛上一個女人,不一定對她有強烈的親熱沖動,反倒對一些他只是喜歡而不愛的女人,沖動更大些。
27、男人很容易被女人吸引,但他分得出哪種渴求出於性還是愛,大概知道能從她身上得到什麼。
28、女人主動示愛,對男人來說,唯一的損失就是縮短了那段朦朦朧朧,若有若無的浪漫日子。
29、男人相信證明自身出色的重要表現之一是:擁有更多的女人。事業上越出色的男人,往往需要更多女人的仰慕和傾心以體現他的超凡脫俗。
30、男人在分手問題上拖泥帶水,其實是想把去留的難題丟給女人,減少自己決定帶來的內疚感。
31、男人說的「未來」是6個月到1年時間,女人的定義則可以是10年到50年。當男人愛上一個女人,他只會想像如何在短暫的未來與她親密發展;女人則幻想到戀愛,結婚,生孩子乃至如何白頭到老。
32、男人基本是都小器,大方是裝出來的。表面上他們不拘小節,其實內心和女人一樣,計算得清清楚楚。
33、女性較容易坦白心事,男人恰恰相反。遇到煩惱,他們找個別好友傾訴時,不會說得很完整,總會給自己留最後一點面子。男人的傾訴都是經過包裝或刻意切碎的,不讓一個人知道全部。這也是女人很難了解男人的原因——他們根本不想被人徹底了解。
34、一個男人可以愛上兩個女人,但究竟喜歡哪個多一點,他多半分不清楚。
35、男人看待婚外情比女人實際,因為他有更多機會涉及婚外情,而且他心裡明白——花心隱藏在男人的天性中。
36、男人要變心,其實和女人是否注意保持美麗儀表沒直接關系,那隻是他的借口之一。當他厭倦一個女人,不管她多漂亮,只要是她以外的任何女人,他都覺得比她有吸引力。
37、成熟男人對於崇拜他的少女,抵抗力是相當弱的。
38、男人年紀越大,擇偶越隨心所欲,乃至不顧他人的任何想法。
39、對許多男人來說,真愛意味著——愛情減去性。換句話,男人只要覺得女人缺乏性的吸引力,就可以一直跟她做單純的朋友。
40、男人在有尋求親熱的身體沖動那一刻,對異性的要求忽然降低,他會覺得一個平時普通的女人很可愛,甚至很性感。不過等沖動一旦消退,他立刻恢復了習慣的審美判斷。
41、男人對女人的愛天天快遞查詢 http://www.paijian.com/tt.html總是混合了生理沖動,親熱前他覺得女人什麼都好,之後卻可以無半點留戀,但為了不背負太多罪惡感,他們可以裝作溫柔地在事後繼續吐露纏綿的情話。
42、男人很容易愛上賣弄風情,看起來唾手可得的女人,因為他覺得有更多機會觸摸。
B. SQL試題求救,高分
4.SELECT命令
8.不滿足
17.some
18.to A
19.ALTER TABLE STUDENT add E-mail C(30)
20. group by
21.總編號 借書證號
25.借書證號 where
26.where group order distinct
27.PRIMARY tag REFERENCES
28.CURSOR dbf ARRAY TO FILE ADDITIVE
29.delete
31. 查詢 SELECT命令
32.互動式SQL 嵌入式SQL
34.!=
35.unique
C. SQL練習題
一 學生 – 課程資料庫
1 查詢 7號課程沒有考試成績的學生學號
select sno from sc where cno=』7』 and grade is not null
2 查詢 7號課程成績在90分以上或60分以下的學生學號
select sno from sc where grade>90 or grade<60
3 查詢課程名以「數據」兩個字開頭的所有課程的課程號和課程名。
Select cno,cname from c where cname like 『數據%』
4 查詢每個學生所有課程的平均成績,輸出學生學號、平均成績
select sno,avg(grade) from sc group by sno
5 查詢每門課程的選修人數,輸出課程號、選修人數。
Select cno,count(*) from sc group by cno
6 查詢選修 7號課程的學生的學號、姓名、性別。
Select s.sno, sname,ssex from s , sc where s.sno=sc.sno and cno = 『7』
7 查詢選修7號課程學生的平均年齡。
Select avg(sage) from s , sc where s.sno=sc.sno and cno = 『7』
8 查詢由30名以上學生選修的課程號。
Select sno from sc group by cno having count(*)>30
9 查詢至今沒有考試不及格的學生學號
a: select sno from s where sno not in ( select sno from sc where grade<60 )
b: select sno from sc group by sno having min(grade)>=60
二
1 找出選修課程號為 C2 的學生學號與成績。
Select sno,grade from sc where cno=』C2』
2 找出選修課程號為C4 的學生學號與姓名。
Select s.sno , sname from s,sc where s.sno=sc.sno and cno=』C4』
3 找出選修課程名為 Maths 的學生學號與姓名。
Select s.sno ,sname from s,sc,c
where s.sno=sc.sno and c.cno=sc.cno and cname = 『Maths』
4找出選修課程號為C2或C4 的學生學號。
Select distinct sno from sc where cno in (『C2』,』C4』)
或: Select distinct sno from sc where cno=』C2』 or cno =』C4』
5找出選修課程號為C2和C4 的學生學號。
Select sno from sc where cno =』C2』 and sno in (
select sno from sc where cno = 『C4』 )
6 找出不學C2課程的學生姓名和年齡
select sname , sage from s where sno not in ( select sno from sc where cno=』C2』 )
或:
select sname , sage from s where not exists ( select * from sc where sc.sno=s.sno and cno=』C2』 )
7 找出選修了資料庫課程的所有學生姓名。(與3同)
Select s.sno ,sname from s,sc,c
where s.sno=sc.sno and c.cno=sc.cno and cname = 『資料庫』
8 找出資料庫課程不及格的女生姓名
嵌套:
select sname from s where ssex = 『女』 and sno in ( select sno from sc where grade<60 and cno in ( select cno from c where cname=』資料庫』) )
連接:
Select sname from s,sc,c
where s.sno=sc.sno and c.cno=sc.cno and ssex=』女』 and cname = 『資料庫』 and grade<60
9 找出各門課程的平均成績,輸出課程名和平均成績
select cname , avg(grade) from sc , c where c.cno =sc.cno group by sc.cno
10找出各個學生的平均成績,輸出學生姓名和平均成績
select sname , avg(grade) from s , sc where s.sno=sc.sno group by sc.sno
11 找出至少有30個學生選修的課程名
select cname from c where cno in ( select cno from sc group by cno having count(*)>=30 )
12 找出選修了不少於3門課程的學生姓名。
Select sname from s where sno in ( select sno from sc group by sno having count(*)>=3)
13 找出各門課程的成績均不低於90分的學生姓名。
Select sname from s where sno not in ( select sno from sc where grade<90)
14* 找出資料庫課程成績不低於該門課程平均分的學生姓名。
Select sname from s where sno in (
Select sno from sc , c where sc.cno=c.cno and cname=』資料庫』 and
Grade > (Select avg(grade) from sc , c where sc.cno=c.cno and cname=』資料庫』 ) )
15 找出各個系科男女學生的平均年齡和人數。
Select sdept,ssex , avg(sage) , count(*) from s
Group by sdept , ssex
16 找出計算機系(JSJ)課程平均分最高的學生學號和姓名。
Select sc.sno , sname from s, sc where s.sno=sc.sno and sdept=』JSJ』
Group by sc.sno Having avg(grade) =
( Select top 1 avg(grade) from sc, s where s.sno=sc.sno and sdept=』JSJ』
group by sc.sno order by avg(grade) DESC )
三 客戶 – 商品資料庫中包括3按各表:KH,FP,YWY
1 查詢工資在 1000 到3000 元之間的男性業務員的姓名和辦公室編號。
Select Yname , Ono from YWY where salary between 1000 and 3000 and Ysex=』男』
2 查詢各個辦公室的業務員人數,輸出辦公室編號和對應的人數。
Select Ono , count(*) from YWY group by Ono
3 查詢每個客戶在2002年5月購買的總金額,輸出客戶號和相應的總金額。
Select Kno,sum(Fmoney) from FP where fdate between 『2002.5.1』 and 『2002.5.31』
Group by Kno
4 查詢2002年5月購買次數超過5次的所有客戶號,且按客戶號升序排序。
Select Kno from FP where fdate between 『2002.5.1』 and 『2002.5.31』
Group by Kno having count(*)>5
Order by Kno ASC
5 查詢各辦公室男性和女性業務員的平均工資。
Select Ono,Ysex ,avg(salary) from YWY group by Ono , Ysex
6 查詢2002年5月曾經在王海亮業務員手中購買過商品的客戶號、客戶姓名、聯系電話。
Select Kno,Kname,phone from KH where Kno in (
Select kno from FP where fdate between 『2002.5.1』 and 『2002.5.31』 and
Yno=(select Yno from YWY where Yname = 『王海亮』 )
7 查詢所有工資比1538號業務員高的業務員的編號、姓名、工資。
Select yno ,Yname, salary from YWY where salary >
( Select salary from YWY where Yno=』1538』 )
8 查詢所有與1538號業務員在同一個辦公室的其他業務員的編號、姓名。
Select Yno , Yname from YWY where Yno<>』1538』 and Ono in (
Select Ono from YWY where Yno=』1538』 )
9 查詢銷售總金額最高的業務員的編號。
Select Yno from FP Group By Yno Having sum(Fmoney) =
(Select top 1 sum(Fmoney) from FP group by Yno ORDER BY sum(Fmoney) DESC)
10 查詢所有業務員的編號、姓名、工資以及工資比他高的其他業務員的平均工資。
利用自身連接
Select y1.Yno ,y1.Yname ,y1.salary , avg( y2. salary) from YWY y1 , YWY y2
Where y1.Yno<>y2.Yno and y1.salary < y2.salary
Group by y1.Yno
Sno salary sno salary
1 100 1 100
2 120 2 120
3 90 3 90
4 110 4 110
四 某中學資料庫中由一張表:
學生選課表:由板及代碼、班內學號、姓名、科目、成績五個屬性組成,關系模式為
SC(BJDM,BNXH,XSXM,KM,CJ) ,其中(BJDM,BNXH)為主碼。
說明:每個學生每門科目存放一個記錄,科目有「語文」、「數學」、「外語」三門。
1 找出每個班級的班級代碼、學生人數、平均成績。
Select BJDM,count(*) ,avg(CJ) from SC group by BJDM
2 找出每個學生的班級代碼、學生姓名、考試科目數、總成績。
Select BJDM,XSXM,count(*) , sum(CJ) from SC
Group by BNXH
3 輸出一張表格,每位學生對應一條記錄,包括:班級代碼、姓名、語文成績、數學成績、外語成績。
方法一:利用視圖
create view v1 (bjdm,xsxm, yw,sx,wy ) AS
select bjdm , xsxm , cj , 0,0 from sc where km=』語文』
union
select bjdm , xsxm , 0 , cj,0 from sc where km=』數學』
union
select bjdm , xsxm , 0,0,cj from sc where km=』外語』
select bjdm, xsxm , sum(yw) as 語文, sum(sx) as 數學, sum(wy) as 外語 from v1 group by bjdm, xsxm
方法二:自身連接
select a.bjdm,a.xsxm , a.km,a.cj , b.km,b.cj , c.km,c.cj from sc a , sc b , sc c
where a.bjdm=b.bjdm and a.bnxh= b.bnxh and b.bjdm=c.bjdm and b.bnxh= c.bnxh
and a.km=』語文』 and b.km=』數學』 and c.km=』外語』
方法三:利用存儲過程(略)
4 輸出一張表格:由成績低於60分的每位學生對應一條記錄,包括欄位:班級代碼、姓名、最低成績。
Select bjdm,xsxm ,min(CJ) from sc where grade<60 group by bjdm,xsxm
5輸出一張表格:由成績低於60分的每位學生對應一條記錄,包括欄位:班級代碼、姓名、最高成績、平均成績。
得到平均成績:create view V1 (bjdm,bnxh ,avg_cj) AS
select bjdm,bnxh ,avg(cj) from sc where bjdm , bnxh
select sc.bjdm,sc.xsxm ,max(cj) , avg_cj from sc , V1
where sc.bjdm=v1.bjdm and sc.bnxh=V1.bnxh and cj<60
group by sc.bjdm,sc.xsxm
6輸出一張表格:所有成績不低於60分的每位學生對應一條記錄,包括欄位:班級代碼、姓名、平均成績。
select bjdm, xsxm , avg(cj) from sc
where sno not in ( select sno from sc where grade<60)
group by bjdm, xsxm
7輸出一張表格:每一位學生對應一條記錄,包括欄位:班級代碼、姓名、去掉一個最低分後的平均成績。
方法一:
得到每個學生的最低分:
create view V1 (bjdm,bnxh ,min_cj) as
select bjdm,bnxh,min(cj) from sc group by bjdm,bnxh
select sc.bjdm,sc.xsxm , avg(cj) from sc , v1
where sc.bjdm=v1.bjdm and sc.bnxh=v1.bnxh and sc.cj <> v1.min_cj
group by bjdm,bnxh
方法二:
select sc.bjdm,sc.xsxm , ( sum(cj) – min(cj) ) / count(*) from sc
group by bjdm , bnxh
8輸出一張表格:每門科目對應一條記錄,包括欄位:科目、去掉一個最低分後的平均成績。
方法一:
得到每門課的最低分:
create view V1 ( km, min_cj) as
select km,min(cj) from sc group by km
select sc.km , avg(cj) from sc , v1
where sc.km=v1.km and sc.cj <> v1.min_cj
group by sc.km
方法二:
select km , (sum( cj) – min(cj) )/count(*) from sc
group by km
補充9:輸出表格:每門科目對應一條記錄,包括欄位:科目、去掉一個最低分和最高分後的平均成績。
select km , (sum( cj) – min(cj) – max(cj) )/count(*) from sc
group by km
五 資料庫存放著某高校1990年以來英語四、六級的考試情況,且規定:
1 英語四、六級考試每年分別在6月和12月舉行二次;
2 四級沒有通過的學生不能報考六級;
3 某一級的考試只要沒有通過可以反復參加考試;
4 某一級的考試一旦通過就不能再報考同級的考試;
5 允許報了名但不參加考試。
該資料庫中有二張表,相應的關系模式如下:
學生表:S(Sno, Sname, Ssex, Sage, Sdept),其中Sno為主碼。
考試表:E(Sno, Year, Month, Level, Grade),學號、年、月、級別、成績。
其中(Sno, Year, Month)為主碼。
1. 找出各次四級和六級考試的參考人數和平均成績(報了名但沒有參加考試的不作統計)
select year , month,level ,count(*) , avg(grade)
group by year,month , level
2. 找出各次四級考試中平均分最高的系科(報了名但沒有參加考試的不作統計)。
A: Select sdept from s , e where s.sno=e.sno
Where level=4
Group by sdept
Having avg(grade)>=ALL(
Select avg(grade) from s , e where s.sno=e.sno where level=4 Group by sdept )
B: Select top 1 sdept from s , e where s.sno=e.sno
Where level=4
Group by sdept
Order by (avg(grade) desc
3. 找出已經通過英語六級考試的學生的學號、姓名和性別(用連接方法做)
select s.sno,sname,ssex from s,e
where s.sno=e.sno and level=6 and grade>=60
4. 找出在同一年中四、六級考試都參加了的學生的學號
1) select sno from E
where (level=4 and grade>=60) or level=6
group by year having count(*)>=2
2) select sno from E X where level=4 and grade>=60 and exists (
select * from E Y where Y.sno=X.sno and year=X.year and level=6 )
5. 找出只參加一次考試就通過了英語六級考試的學生的學號
select sno from E
where level=6
group by sno
having count(*)=1 錯,想想為何?
1) select sno from E
where level=6
group by sno
having count(*)=1 and max(grade)>=60
2) select sno from E where level=6 and grade>=60 and sno in (
select sno from E where level=6 group by sno having count(*)=1)
6. 找出至今沒有通過英語四級考試的學生的學號(應包括至今還沒有參加過考試或者是參加了但還沒有通過兩種)
select sno from E where level=4
group by sno
having max(grade)<60
Union
Select sno from s where sno not in( select sno from E)
7. 找出英語六級考試中合格人數最少的考試年份和月份(有並列的都要列出,用一句SQL語句)。
Select year , month From E
Where level = 6 and grade>=60
Group by year , month
Having count(*) <=all
(Select count(*) from E where level=6 and grade>=60 group by year , month )
我是從「上海全鼎軟體學院」畢業的————————
D. 資料庫SQL語句考試
1.
create table A (
S# varchar(20) primary key,
SN varchar(20),
Sex varchar(2),
Age number(10),
Dept varchar(50));
create table B (
C# varchar(20) primary key,,
CN varchar(20));
create table C (
S# number(10),
C# number(10),
Grade number(10));
2.
insert into table A(S#,Sn,Dept) values('010102','張靜','機電');
3.
update C set grade=59 where grade>=60;
4.
delete * from C where S# in (select S# from A where Sn like '李%');
delete * from A where Sn like '李%';
5.
select S#,Sex,Age from A where Sn='劉華';
6.
select A.S#,B.C#,B.Cn from A,B,C
where A.Dept not in('計算機系','法律系') and A.S#=C.S# and C.C#=B.C#;
7.
select C.S#,sum(Grade) G from B,C
where Cn='大學語文' and B.C#=C.C# group by C.S# order by G desc;
8.
alter table A drop column Sex;//刪除列
alter table A drop Column Age;
update A set SEX='',AGE='';//刪除列記錄
(不知道你這個刪除具體是什麼意思,2種你自己選擇。)
9.
drop table C;
drop table B;
drop table A; //先刪C再刪A,否則會報錯,無法刪除使用記錄。
E. SQL 查詢語句期中考試題2
--1.分別查詢學生表和學生修課表中的全部數據。
SELECT * FROM student--查詢學生表
SELECT * FROM course--查詢課程表
--2.查詢成績在70到80分之間的學生的學號、課程號和成績。
SELECT Sno 學號,Cno 課程號,Grade 成績
FROM SC
WHERE Grade BETWEEN 70 AND 80
--3.查詢C01號課程成績最高的分數
SELECT TOP 1 Grade
FROM SC
WHERE Cno='C01'
ORDER BY Grade DESC--降序DESC,升序ASC
--4.查詢學生都選修了哪些課程,要求列出課程號。
SELECT Cname AS 學生選修的課程,Cno AS 課程號
FROM course
WHERE Cno IN(SELECT DISTINCT Cno FROM SC)--DISTINCT用來去除重復
--5.查詢Northwind資料庫中orders表的OrderID、CustomerID和OrderDate,
--並將最新的定購日期(OrderDate)列在前邊。
USE Northwind
GO
SELECT OrderID,CustomerID,OrderDate
FROM orders
ORDER BY OrderDate DESC--降序DESC,升序ASC
--6.查詢Northwind資料庫中orders表的ShipCountry列以B,C,D,F --//ShipCountry BCDF
--開始且第三個字元為"a"的OrderID、CustomerID和ShipCountry的信息。//OrderID、CustomerID第三個字元為"a"
USE Northwind
GO
SELECT OrderID,CustomerID,ShipCountry FROM orders
WHERE ShipCountry LIKE '[BCDF]_a%'--_下劃線表示任意一個字元,%表示一個或多個字元
--7.查詢Northwind資料庫中orders表的ShipCountry列不以A,B,C,D,E,F開始且最後一個字
--母是"a"的OrderID、CustomerID和ShipCountry的信息。
USE Northwind
GO
SELECT OrderID,CustomerID,ShipCountry
FROM orders
WHERE ShipCountry LIKE '[^ABCDEF]%a'
--8.查詢修了C02號課程的所有學生的平均成績、最高成績和最低成績。
SELECT AVG(Grade) 平均成績,MAX(Grade) 最高成績,MIN(Grade) 最低成績
FROM SC
WHERE Cno='C02'
--9.統計每個系的學生人數。
SELECT Sdept 系別,COUNT(*) 人數
FROM student
WHERE Sdept IN(SELECT DISTINCT Sdept FROM student)
GROUP BY Sdept
--10.統計每門課程的修課人數和考試最高分。
SELECT Cname 課程名,COUNT(*) 修課人數,MAX(Grade) 考試最高分
FROM SC,course
WHERE SC.Cno IN(SELECT DISTINCT Cno FROM SC ) AND course.Cno=SC.Cno
GROUP BY course.Cname
--11.統計每個學生的選課門數,並按選課門數的遞增順序顯示結果。
SELECT student.Sname 學生姓名,student.Sno 學生學號,COUNT(SC.Sno) 選課門數
FROM student
inner join SC ON SC.Sno=student.Sno
GROUP BY student.Sname,student.Sno
ORDER BY COUNT(SC.Sno) ASC
--12.統計選修課的學生總數和考試的平均成績。
SELECT COUNT(DISTINCT(Sno)) AS 學生總數,AVG(Grade) AS 平均成績
FROM SC --//用DISTINCT消除重復的行
--13.查詢選課門數超過2門的學生的平均成績和選課門數。
SELECT Student.Sname,AVG(Sc.Grade) 平均成績,COUNT(SC.Sno) 選課門數
FROM SC
--內聯接join或inner join,內聯系是比較運算符,只返回符合條件的行
JOIN Student ON (SC.Sno = Student.Sno)
JOIN Course ON (SC.Cno = Course.Cno)
GROUP BY Student.Sname
HAVING COUNT(distinct Course.Cno) >2--分組條件
--14.列出總成績超過200分的學生,要求列出學號、總成績。
SELECT Sno 學號,SUM(Grade) 總成績
FROM SC
GROUP BY Sno
HAVING SUM(Grade)>200
--15.查詢pubs資料庫的titles表中每類圖書的平均價格超過12.0元的書的類型(Type)、
--平均價格和最高價格。
USE pubs
GO
SELECT Type AS 書的類型,AVG(price) AS 平均價格,MAX(price) AS 最高價格
FROM titles
GROUP BY Type
HAVING AVG(price)>12.0
--16.查詢pubs資料庫的titles表中每類圖書中圖書的數目超過3本的圖書的總價格。
USE pubs
GO
SELECT 圖書類型=Type,圖書的數目=count(Type),圖書的總價格=SUM(price)
FROM titles
GROUP BY Type
HAVING count(Type)>3
--17.查詢選修了c02號課程的學生的姓名和所在系。
SELECT Sname 學生姓名,Sdept 所在系,SC.Cno AS 選修課程
FROM student
inner join SC ON student.Sno=SC.Sno
WHERE SC.Cno='C02'
--18.查詢成績80分以上的學生的姓名、課程號和成績,並按成績的降序排列結果。
SELECT Sname 學生姓名,SC.Cno 課程號,SC.Grade 成績
FROM student
inner join SC ON student.Sno=SC.Sno--內連接表SC查詢
WHERE SC.Grade>80
ORDER BY SC.Grade DESC
--19.查詢計算機系男生修了"資料庫基礎"的學生的姓名、性別、成績。
SELECT Sname 姓名,Ssex 性別,SC.Grade 成績
FROM student
inner join SC ON Cno IN(SELECT Cno FROM course WHERE Cname='資料庫基礎') --顯示成績的條件
AND student.Sno=SC.Sno --顯示成績的學生的學號
WHERE Sdept='計算機系' AND Ssex='男'
--20.查詢哪些學生的年齡相同,要求列出年齡相同的學生的姓名和年齡。
--這題使用到了表的自連接,所以需要給表取兩個別名,如A和B
SELECT A.Sname 年齡相同的學生的姓名,A.Sage 年齡
FROM student A
inner join student B ON A.Sage IN(SELECT Sage FROM student WHERE A.Sage=B.Sage AND A.Sname!=B.Sname)
GROUP BY A.Sname,A.Sage
ORDER BY A.Sage
--21.查詢哪些課程沒有人選,要求列出課程號和課程名。
SELECT Cno AS 課程號,Cname AS 課程名
FROM course
WHERE Cno NOT IN(SELECT DISTINCT SC.Cno FROM SC)
--22.查詢有考試成績的所有學生的姓名、修課名稱及考試成績
--要求將查詢結果放在一張新的永久表(假設新表名為new-sc)中。
SELECT student.Sname AS 有考試成績的學生的姓名,course.Cname AS 修課名稱,SC.Grade AS 考試成績
INTO [new_sc] --將查詢結果放入新表new_sc中
FROM student,course,SC
WHERE SC.Grade IS NOT NULL AND student.Sno=SC.Sno AND course.Cno=SC.Cno
--23.分別查詢信息系和計算機系的學生的姓名、性別、修課名稱、修課成績,
--並要求將這兩個查詢結果合並成一個結果集,
--並以系名、姓名、性別、修課名稱、修課成績的順序顯示各列。
--//此題用到了並union查詢
SELECT Sdept 系名,Sname 姓名,Ssex 性別,course.Cname 修課名稱,SC.Grade 修課成績
FROM student
inner join SC ON student.Sno=SC.Sno
inner join course ON course.Cno=SC.Cno
WHERE Sdept='信息系'
UNION
SELECT Sdept 系名,Sname 姓名,Ssex 性別,course.Cname 修課名稱,SC.Grade 修課成績
FROM student
inner join SC ON student.Sno=SC.Sno
inner join course ON course.Cno=SC.Cno
WHERE Sdept='計算機系'
或
select sdept, sname,ssex,cname,grade from student,sc,course
where student.sno=sc.sno and sc.cno=course.cno and (sdept='信息系' or sdept='計算機系')
--24.用子查詢實現如下查詢:
--(1) 查詢選修了C01號課程的學生的姓名和所在系。
SELECT Sname AS 選修了C01號課程的學生的姓名,Sdept AS 所在系
FROM student
WHERE Sno IN(SELECT Sno FROM SC WHERE Cno='C01')
--(2) 查詢數學系成績80分以上的學生的學號、姓名。
SELECT Sno AS 數學系成績80分以上的學生的學號,Sname AS 姓名
FROM student
WHERE Sno IN(SELECT Sno FROM SC WHERE Grade>80)
AND Sno IN(SELECT Sno FROM student WHERE Sdept='數學系')
--(3) 查詢計算機系學生所選的課程名.
SELECT Cname AS 計算機系學生所選的課程名
FROM course
WHERE
course.Cno IN(SELECT DISTINCT Cno FROM SC WHERE SC.Sno IN(SELECT Sno FROM student WHERE Sdept='計算機系'))
--25.將計算機系成績高於80分的學生的修課情況插入到另一張表中,分兩種情況實現://////////////?????/
--(1) 在插入數據過程中建表。
--使用SELECT INTO插入數據的方法,是在插入數據的過程中建立新表
SELECT student.Sname AS 學生名字,course.Cname AS 選修課程,SC.Cno AS 課程編號
INTO [SC_Info1]--將計算機系成績高於80分的學生的修課情況插入到表SC_Info1中
FROM student,course,SC
WHERE student.Sdept='計算機系' AND SC.Grade>80 AND course.Cno=SC.Cno AND student.Sno=SC.Sno
--(2) 先建一個新表,然後再插入數據。
--創建表SC_Info2
CREATE TABLE SC_Info2
(
Sname char(7),
Cname char(20),
Cno char(10)
)
--往表SC_info2插入查詢得到的結果
INSERT SC_Info2
SELECT student.Sname AS 學生名字,course.Cname AS 選修課程,SC.Cno AS 課程編號
FROM student,course,SC
WHERE student.Sdept='計算機系' AND SC.Grade>80 AND course.Cno=SC.Cno AND student.Sno=SC.Sno
--26.刪除修課成績小於50分的學生的修課記錄
DELETE SC WHERE Grade<50 OR Grade IS NULL
--27.將所有選修了"c01"課程的學生的成績加10分。
UPDATE SC
SET Grade=Grade+10
WHERE Cno='C01'
F. sql資料庫一道試題幫忙做做
資料庫的專業英語吧,看看我答的Data 數據 Database 資料庫 RDBMS 關系型資料庫管理系統(Relational Database Management System) GRANT 授權 REVOKE 許可權回收 DENY 拒絕 DECLARE 聲明 PROCEDURE程序 Transaction 轉換 TRIGGER 觸發器 continue 連續 unqiue 唯一 primary key 主鍵 identity 標識 foreign key 外鍵
G. SQL、關系代數練習
一、
--1.建立學生表Student,其中以學號為主碼,以系號為外碼,姓名不可以為空值,性別取值為「男」或「女」
CREATETABLEStudent
(
Sno INT,
Name VARCHAR(20) NOTNULL,
Gender CHAR(2),
Class VARCHAR(20),
Major VARCHAR(20),
Dno CHAR(2)
CONSTRAINTpk_Student_SnoPRIMARYKEY(Sno),
CONSTRAINTfk_Student_DnoFOREIGNKEY(Dno)REFERENCESDept(Dno),
CONSTRAINTchk_Student_GenderCHECK(GenderIN('男','女'))
)
--2.檢索與「王強」在同一個班級的學生的學號、姓名、性別
SELECTSno,Name,Gender
FROMStudent
WHEREClass=(='王強')
--3.檢索管理學院沒有選修「電子商務」課程的學生的學號、姓名、班級、專業
SELECTS1.Sno,Name,Class,Major
FROMStudentS1
JOINDeptD
ONS1.Dno=D.Dno
WHEREDname='管理學院'
ANDSnoNOTIN
( SELECTS2.SnoFROMStudyS2
JOINCourseC
ONS2.Cno=C.Cno
WHERESubject='電子商務')
--4.檢索選修了「C語言」且C語言考試成績高於這門課平均成績的學生的學號、姓名
SELECTS1.Sno,Name
FROMStudentS1
JOINStudyS2
ONS1.Sno=S2.Sno
JOINCourseC1
ONS2.Cno=C1.Cno
WHERESubject='C語言'
ANDScore>( SELECTAVG(Score)
FROMStudyS3
WHERES3.Cno=S2.Cno)
--5.在院系表(Dept)中插入一條記錄,系號為06,系名為「物理系」,電話為8470660
INSERTINTODempVALUES('06','物理系','84706600')
--6.將「資料庫原理」課程的學時改為64,學分改為4
UPDATECourse
SETTime=64,
Credit=4
WHERESubject='資料庫原理'
--7.建立由班級、學號、姓名、課程號、課程名、學分、成績七個數據項組成的視圖
CREATEVIEWVW_SC
AS
SELECTClass,Sno,Name,Cno,Subject,Credit,Score
FROMStudentS1
JOINStudyS2
ONS1.Sno=S2.Sno
JOINCourseC
ONS2.Cno=C.Cno
二、
2.
H. sql 語句問題,考試題目。大蝦幫忙啊
--)
用SQL語句建立P表。
USE
[SPJ]
GO
/******
Object:
Table
[dbo].[P]
******/
SET
ANSI_NULLS
ON
GO
SET
QUOTED_IDENTIFIER
ON
GO
IF
EXISTS(SELECT
*
FROM
SYSOBJECTS
WHERE
NAME
=
'P')
DROP
TABLE
P
GO
CREATE
TABLE
[dbo].[P](
[PNO]
[nvarchar](50)
NOT
NULL,
[PNAME]
[nvarchar](50)
NOT
NULL,
[COLOR]
[nvarchar](50)
NOT
NULL,
[WEIGHT]
[int]
NOT
NULL
)
GO
--2)用SQL語句找出所有零件的名稱、顏色、重量。
SELECT
PNAME,COLOR,WEIGHT
FROM
P
--3)用SQL語句把全部紅色零件的顏色改為黃色。
UPDATE
P
SET
COLOR
=
'YELLOW'
WEHRE
COLOR
=
'RED'
--4)
用SQL語句由S5供給J4的零件P6改為由S3供應。
UPDATE
SPJ
SET
SNO
=
'S3'
WEHRE
PNO
=
'P6'
AND
JNO
=
'J4'
AND
SNO
=
'S5'
I. sql語句相關測試
sql語句相關測試
篇一:SQL語句測試
1、(10分)要求:
選擇受理時間在2008-5-1 到 2008-6-1之間的所有申請人姓氏為「劉」的數據,並把「新受理編號」列表示成當前機器時間的年月和原受理編號年月後的數值組合
格式如下:
受理編號,新受理編號,受理時間, 申請人
200801112 201008112 2008-01-13劉XX
需要的表
I_Optinst 業務實例表
REGDATE(受理日期)
Regnum(受理編號)
Proposer(申請人)
解答:select Regnum as 受理編號, as 新受理編號,REGDATE as 受理時間,Proposer as申請人 from Optinst 2、(15分)要求:
前提:只統計業務小類「存量房買賣」
①按照月份分12月列出2008年每個月份的月份對應月份的交易總面積
②按照月份分12月列出2008年每個月份的月份對應月份的交易均價(申報價格/建築面積)
格式
年度月份 交易總面積 年度月份交易均價(元/平方米)
2008-01 23232 2008-01 2323
2008-02 23232008-02 232
2008-03 232323 2008-03 7656
2008-04 232323 2008-03 565
2008-05 232323 2008-03 5656
2008-06 232323 2008-03 565
2008-07 232323 2008-03 67
2008-08 232323 2008-03 676
2008-09 232323 2008-03 6767
2008-10 232323 2008-03 8686
2008-11 232323 2008-03 867
2008-12 232323 2008-03 454
需要的表:
Fc_room 房間表
BAREA(建築面積)
I_Optinst業務實例表
regdate(受理時間)
fc_owner 產權表
COSTVAL(申報價格)
EVLVAL(評估價格)
fc_owoom 房間明細表
1.select regdate as年度月份,BAREA as 交易總面積 from Fc_room,Optinst where
3、(20分)要求:
①:按照時間統計收費明細 統計格式如下
受理編號繳費人收費日期 收費名稱收費金額核費人收費人
②:按照時間匯總(2008年度)統計收費項目分類 統計格式如下
收費名稱 總金額
需要的表:
I_OptInst(業務實例表)
Regnum 受理編號
Proposer 申請人
I_Charge(收費實例表)
HEFEIMAN 核費人
PAYEE 收款人
CDATE 收費日期
I_ChrDtl(收費實例明細表
CNAME 收費名稱
MONEY 收費金額
4、(15分)要求:用途是住宅並且建築面積<=140>140 定義為 「非普通住宅」
用途是商業並且建築面積>140 定義為 「商業A級」
其他情況定義為「非住宅」
根據用途和面積列表出所有數據
格式
受理編號, 用途
200406000386 普通住宅
200406004631 非普通住宅
200406004633 普通住宅
200406004638 普通住宅
200406004641 非住宅
200501000004 普通住宅
200406004568 非住宅
200406005677 商業A級
表:
fc_room
barea 建築面積
BUse 用途
i_optinst
regnum 受理編號
5、(30分)工作量統計
① 選擇出以下格式的數據;並創建視圖名稱為view_AAAA
業務小類業務實例 交易價格建築面積 登記時間
1 存量房買賣 14100 19400.0029.98 2005-11-10 11:32:50 2 新建商品房 15041 229530.00 124.07 2005-11-21 08:59:36 3 新建商品房 15043 177363.00 101.35 2005-11-21 09:15:59 4 新建商品房 13046 71130.0023.71 2005-11-02 10:15:37 5 新建商品房 11280 148563.00 87.39 2005-10-11 09:50:48 6 新建商品房 11353 267369.00 116.04 2005-10-11 15:34:53 7 房改售房 2689 35.22 2004-06-17 08:43:00 8 產權人名稱變更 11701 724.18 2005-10-17 10:05:20 9 新建商品房 7206 158257.00 88.69 2005-09-16 14:50:57 10 存量房買賣 (轉 載於:wWw.cnboThwiN.cOM 博 威範文 網: sql語句測試 )10100 103.07 2005-08-31 20:27:06 11 存量房買賣 12980 51500.0046.66 2005-11-01 14:41:32 12 新建商品房 13000 136782.00 80.46 2005-11-01 15:37:05 13 新建商品房 16946 300844.00 146.33 2005-12-15 14:15:07 14 存量房買賣 10091 509.18 2005-08-31 19:19:25 ② 使用視圖 view_AAAA 當做表 選擇出如下樣式數據
業務小類 件數合計金額 合計面積
1 用途變更 1151.3
2 轉移登記 184.03
3 新建商品房 31 263243643197.34
4 房改售房 8252.43
5 產權人名稱變更 3 778.6
6 單位產新建 311697.49
7 贈與 1 28.48
8 存量房買賣 24 4379004134.67
9 判決仲裁 2 439.41
10 繼承遺贈 1 49.17
11 換證 2 228.88
12 新建房屋 17 928.91
③ 用水晶報表關聯視圖 view_AAAA 設計出類似於②的數據格式 需要的表
FC_Owner
EvlVal交易價格
I_OptInst,
SOName 業務小類
fc_owoom,
BArea 建築面積
FC_Room
regdate 受理日期
篇二:sql查詢語句學習測試答案
第一部分SQL查詢語句的學習
單表查詢 1、--查詢訂購日期在1996年7月1日至1996年7月15日之間的訂單的訂購日期、訂單ID、客戶ID和雇員ID等欄位的值
use eee
SELECT 訂購日期,訂單ID,客戶ID,
雇員ID
FROM 訂單
WHERE 訂購日期BETWEEN '1996-7-1 00:00:00' AND '1996-7-15 23:59:59'
2、--查詢「Northwind」示例資料庫中供應商的ID、公司名稱、地區、城市和電話欄位的值。條件是「地區等於華北」並且「聯系人頭銜等於銷售代表」。
use eee
SELECT 供應商ID,公司名稱,地區,城市,電話
FROM 供應商
WHERE 地區='華北' AND 聯系人職務='銷售代表'
3、--查詢「Northwind」示例資料庫中供應商的ID、公司名稱、地區、城市和電話欄位的值。其中的一些供應商位於華東或華南地區,另外一些供應商所在的城市是天津 use eee
SELECT 供應商ID,公司名稱,地區,城市,電話
FROM 供應商
WHERE 地區IN('華東', '華南') OR 城市='天津'
4、--查詢「Northwind」示例資料庫中位於「華東」或「華南」地區的供應商的ID、公司名稱、地區、城市和電話欄位的值
use eee
SELECT 供應商ID,公司名稱,地區,城市,電話
FROM 供應商
WHERE 地區IN('華東', '華南')
多表查詢 5、--查詢訂購日期在1996年7月1日至1996年7月15日之間的訂單的訂購日期、訂單ID、相應訂單的客戶公司名稱、負責訂單的雇員的姓氏和名字等欄位的值,並將查詢結果按雇員的「姓氏」和「名字」欄位的升序排列,「姓氏」和「名字」值相同的記錄按「訂單 ID」的降序排列
use eee
SELECT 訂購日期,訂單ID,公司名稱,姓氏,名字
FROM 訂單,雇員,客戶
WHERE 訂購日期BETWEEN '1996-7-1 00:00:00' AND '1996-7-15 23:59:59'
AND 訂單.雇員ID = 雇員.雇員ID
AND 訂單.客戶ID = 客戶.客戶ID
ORDER BY 姓氏,名字ASC,訂單ID DESC
6、--查詢「10248」和「10254」號訂單的訂單ID、運貨商的公司名稱、訂單上所訂購的產品的名稱
use eee
SELECT 訂單.訂單ID,公司名稱,產品名稱
FROM 訂單,運貨商,產品,訂單明細
WHERE 訂單.訂單ID IN('10248','10254')
AND 訂單.訂單ID = 訂單明細.訂單ID
AND 訂單明細.產品ID = 產品.產品ID
AND
訂單.運貨商= 運貨商.運貨商ID
7、--查詢「10248」和「10254」號訂單的訂單ID、訂單上所訂購的產品的名稱、數量、單價和折扣
use eee
SELECT 訂單.訂單ID,產品名稱,數量,訂單明細.單價,折扣
FROM 訂單,產品,訂單明細
WHERE 訂單.訂單ID IN('10248','10254')
AND 訂單.訂單ID = 訂單明細.訂單ID
AND 訂單明細.產品ID = 產品.產品ID
篇三:sql語句練習題及答案
一 在資料庫 school 中建立student , sc, course 表。
學生表、課程表、選課表屬於資料庫 School ,其各自的數據結構如下:
學生 Student (Sno,Sname,Ssex,Sage,Sdept)
課程表 course(Cno,Cname,Cpno,Ccredit)
學生選課 SC(Sno,Cno,Grade)
二 設定主碼
1 Student表的主碼:sno2 Course表的主碼:cno 3 Sc表的主碼:sno,cno
1寫出使用 Create Table 語句創建表 student , sc, course 的SQL語句
2
3 刪除student表中的元組
4在資料庫school中刪除關系student
5在student表添加屬性sbirthdate 類型 datetime
Delete
1 刪除所有 JSJ 系的男生 from Student where Sdept=』JSJ』 and Ssex=』男』; 2 刪除「資料庫原理」的課的選課紀錄
from SC where Cno in (select Cno fromCourse where Cname=』資料庫原理』);
Update
1 修改 0001 學生的系科為: JSJ
2 把陳小明的年齡加1歲,性別改為女。 2 修改李文慶的1001課程的成績為 93 分 3 把「資料庫原理」課的成績減去1分
Select 查詢語句
一 單表
1查詢年齡在19至21歲之間的女生的學號,姓名,年齡,按年齡從大到小排列。 2查詢姓名中第2個字為「明」字的學生學號、性別。 3查詢 1001課程沒有成績的學生學號、課程號
4查詢JSJ 、SX、WL 系的年齡大於25歲的學生學號,姓名,結果按系排列 5按10分制查詢學生的sno,cno,10分製成績
(1-10分 為1 ,11-20分為2 ,30-39分為3,。。。90-100為10) 6查詢 student 表中的學生共分布在那幾個系中。(distinct) 7查詢0001號學生1001,1002課程的成績。
二 統計
1查詢姓名中有「明」字的學生人數。 2計算『JSJ』系的平均年齡及最大年齡。 3查詢學生中姓名為張明、趙英的人數
4計算每一門課的總分、平均分,最高分、最低分,按平均分由高到低排列 5 計算 1001,1002 課程的'平均分。
6 查詢平均分大於80分的學生學號及平均分 7 統計選修課程超過 2 門的學生學號
8 統計有10位成績大於85分以上的課程號。 9 統計平均分不及格的學生學號
10 統計有大於兩門課不及格的學生學號
三 連接
1查詢 JSJ 系的學生選修的課程號
2查詢選修1002 課程的學生的學生姓名 (不用嵌套及嵌套2種方法) 3查詢資料庫原理不及格的學生學號及成績
4查詢選修「資料庫原理」課且成績 80 以上的學生姓名(不用嵌套及嵌套2種方法) 5查詢平均分不及格的學生的學號,姓名,平均分。 6查詢女學生平均分高於75分的學生姓名。
7查詢男學生學號、姓名、課程號、成績。(一門課程也沒有選修的男學生也要列出,不能
四 嵌套、相關及其他
1 查詢平均分不及格的學生人數
2 查詢沒有選修1002 課程的學生的學生姓名
3 查詢平均分最高的學生學號及平均分 (2種方法 TOP , any , all) *4 查詢沒有選修1001,1002課程的學生姓名。
5 查詢1002課程第一名的學生學號(2種方法) 6 查詢平均分前三名的學生學號
7 查詢 JSJ 系的學生與年齡不大於19歲的學生的差集
8 查詢1001號課程大於90分的學生學號、姓名及平均分大於85分的學生學號、姓名 9 查詢每門課程成績都高於該門課程平均分的學生學號 10 查詢大於本系科平均年齡的學生姓名
答案
參考答案
1 create table student (sno6), sname var8), ssex2), sagesmallint, sdept var15), primary key(sno));
create table sc
(sno6), cno 4),
grade decimal(12,2), primary key(sno,cno));
into student
values( 』4001』,』趙茵』,』男』,20,』SX』)
from student
student
alter table student add sbirthdate datetime
1 select sno, sname, sage from student
where ssex=』女』 and sage between 19 and 21order by sage desc; 2 select sno, ssexfrom student
where sname like 』_明% 』 ; 3 select sno, cnofrom sc
where grade is null and cno=』1001』 ; 4 select sno, sname from student
where sdept in (』JSJ』,』SX』,』WL』) and sage>25 group by sdept;
select sno, cno, grade/10.0+1 as levelfrom sc ;
select distinct sdept from student ; select grade from sc
where sno=』0001』 and (cno=』1001』 or cno=』1002』) ;
select count(*) from student where sname like 』%明% 』 ; select avg(sage),max(sage) from student where sdept=』JSJ』 ; select cno,sum(grade),avg(grade),max(grade),min(grade) from sc group by cno
order by avg(grade) desc ;
select cno, avg(grade) from sc where cno in(『1001』,』1002』) group by cno ;
select sc.sno ,avg(grade) from scgroup by sc.sno
having avg(grade)>80 ;
select sno from sc group by sno having count(*)>2 ;
select cno from sc where grade>85 group by cno having count(*)=10 ; select sno from sc group by sno having avg(grade)<60 ;
select sno from sc where grade<60 group="" by="" sno="" having="">2 ;
select cno from student,sc where student.sno=sc.sno and sdept=』JSJ』 ; a:select sname from student,sc where student.sno=sc.sno and cno=』1002』
b:select sname from student where sno in (select sno from sc where cno=』1002』)
select sno,grade from sc,course
where sc.cno=course.cno and cname=』資料庫原理』 and grade<60 a:select sname from student ,sc,course
where student.sno=sc.sno and sc.cno=course.cno and grade>80 and cname=』 資料庫原理』 b:select sname from student where sno in (select sno from sc where grade>80 and cno in (select cno from course where cname=』 資料庫原理』)) select sno,sname,avg(grade) from sc,studentwhere student.sno=sc.snogroup by student.sno having avg(grade)<60
a:select sname from student where ssex=』女』 and sno in(select sno from sc group by sno having avg(grade)>75)
b:select sname from sc,student where student.sno=sc.sno and ssex=』女』group by student.sno having avg(grade)>75
select student.sno,sname,cno,grade from student left join sc on student.sno=sc.sno and ssex=』男』
select count(*) from student where sno in( select sno from sc group by sno havingavg(grade)<60)
select sname from student where sno not in(select sno from sc where cno=』1002』)
student
0001 aaX 0002 bb
0003 ccX Sc
0001 1001 0001 1002 0002 1001 0003 1002
Select sname from student where not exists(select* from sc where cno=』1002』 and sc.sno=student.sno)
a:select top 1 sno,avg(grade) from sc group by sno order by avg(grade) desc b:select sno, avg(grade) from sc group by sno
having avg(grade)=(select top 1 avg(grade) from scgroup by sno order by avg(grade) desc) c:select sno, avg(grade) from sc group by sno
having avg(grade)>=all ( select avg(grade) from sc group by sno)
select sname from student where not exists(
select * from course where cno in(『1001』,』1002』) and
not exists(select * from sc where sno =student.sno and cno=course.cno) ) a:select top 1 sno from sc cno=』1002』 order by grade desc b:select sno from sc where cno=』1002』 and grade >=all (
;J. 求解 SQL server 2000 考試試題
一、填空題(4小題、每空1分、共5分)
1、 在SELECT查詢語句中用_distinct____關鍵字來刪除重復記錄。
2、 DATEDIFF(YEAR,』2004-5-6』,』2008-9-7』)這個表達式的值__4__。
3、在SQL Server中,根據索引對數據表中記錄順序的影響,索引可以分為____asc____和___desc_____。
4、____檢查___約束通過檢查一個或多個欄位的輸入值是否符合設定的檢查條件來強制數據的完整性。