亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

SQL總結(七)查詢實戰

2024-07-21 02:47:48
字體:
來源:轉載
供稿:網友
SQL總結(七)查詢實戰 Posted on 2015-01-27 18:32 停留的風 閱讀(...) 評論(...) 編輯 收藏SQL總結(七)查詢實戰一、場景

給定一個場景,學生選課系統為例,大家很熟悉。

主要關系:

學生(學號、姓名、年齡、性別)

教師(教師ID,教師姓名)

課程(課程ID,課程名稱,任教教師ID)

成績(學生ID,課程ID,成績)

二、創建表并預置數據

創建關系表:

--學生:Student(SID,SName,SAge,SSex)--學生表(學號、姓名、年齡、性別)--性別,0表示男,1表示女----IF EXISTS(SELECT OBJECT_ID('Student')) /*此處永遠為true,原因是OBJECT_ID返回具體ID,或者NULL*/--使用下列語句,如果沒有,什么都不返回,也就不存在IF EXISTS(SELECT id FROM sysobjects WHERE name='Student')    DROP Table StudentCreate table Student(    SID nvarchar(20) PRimary key not null,    SName nvarchar(20),    SAge int,    SSex bit)--教師:Teacher(TID,TName)--教師表(教師ID,教師姓名)IF EXISTS(SELECT id FROM sysobjects WHERE name='Teacher') Drop table Teacher GOCreate table Teacher(    TID nvarchar(20) primary key not null,    TName nvarchar(20) not null,    )--課程:Course(CID,CName,TID)--課程表(課程ID,課程名稱,任教教師ID)IF EXISTS(SELECT id FROM sysobjects WHERE name='Course') BEGIN    DROP Table CourseENDCreate table Course(    CID  nvarchar(20)  primary key not null,    CName nvarchar(50) not null,    TID nvarchar(20))IF EXISTS(SELECT id FROM sysobjects WHERE name='SC') DROP TABLE SC--成績:SC(SID,CID,Score)--成績表(學生ID,課程ID,成績)Create table SC(    SID nvarchar(20) not null,    CID nvarchar(20) not null,    Score int)alter table SC add constraint PK_SC primary key(SID,CID)
預置數據

這里僅僅是個例子,針對不同的題目,可以預置適當的數據進行檢測。

/*預置數據*/DELETE FROM StudentINSERT INTO Student(SID,SName,SAge,SSex) VALUES('S001','Tom','20','0')INSERT INTO Student(SID,SName,SAge,SSex) VALUES('S002','Lucy','21','1')INSERT INTO Student(SID,SName,SAge,SSex) VALUES('S003','Jim','18','0')INSERT INTO Student(SID,SName,SAge,SSex) VALUES('S004','Brush','20','0')INSERT INTO Student(SID,SName,SAge,SSex) VALUES('S005','Kim','22','1')INSERT INTO Student(SID,SName,SAge,SSex) VALUES('S006','Fka','20','0')INSERT INTO Student(SID,SName,SAge,SSex) VALUES('S007','Cidy','17','1')INSERT INTO Student(SID,SName,SAge,SSex) VALUES('S008','YouNi','19','0')GODELETE FROM TeacherINSERT INTO Teacher(TID,TName) VALUES('T001','張三')INSERT INTO Teacher(TID,TName) VALUES('T002','李四')INSERT INTO Teacher(TID,TName) VALUES('T003','王五')GODELETE FROM CourseINSERT INTO Course(CID,CName,TID) VALUES('C01','英語','T001')INSERT INTO Course(CID,CName,TID) VALUES('C02','體育','T002')INSERT INTO Course(CID,CName,TID) VALUES('C03','數學','T003')GODELETE FROM SCINSERT INTO SC(SID,CID,Score) VALUES('S001','C01','78')INSERT INTO SC(SID,CID,Score) VALUES('S001','C02','60')INSERT INTO SC(SID,CID,Score) VALUES('S001','C03','97')INSERT INTO SC(SID,CID,Score) VALUES('S002','C01','56')INSERT INTO SC(SID,CID,Score) VALUES('S003','C01','55')INSERT INTO SC(SID,CID,Score) VALUES('S004','C01','55')GO
View Code三、具體題目

以下題目,希望是一種練習題,是對具體SQL查詢方法的具體應用。對于一些復雜查詢,也進行分步求解,希望不只是明白了一道題的解法,培養一種解題思路。

以后遇到類似的問題就能輕易破解。

答案默認隱藏,意在希望讀者在思考之后,再看參考答案。

當然參考答案也不一定完全正確,或許還有更優解,如果你發現了,請提出。

1、查詢“C01”課程比“C02”課程成績高的所有學生的學號
--1) 最笨的方法--分別得到C01成績單和C02課程的成績單,然后再得到C01課程比C02課程高的學生學號SELECT SID,Score FROM SC WHERE CID='C01' SELECT SID,Score FROM SC WHERE CID='C02' SELECT A.SID FROM (SELECT SID,Score FROM SC WHERE CID='C01') AS AINNER JOIN(SELECT SID,Score FROM SC WHERE CID='C02') AS BON A.SID = B.SID WHERE A.Score>B.Score
點擊查看,參考答案2、查詢平均成績大于60分的同學的學號和平均成績
SELECT SID,AVG(Score) AS ScoreAverage FROM SC GROUP BY SID HAVING AVG(Score)>60 
點擊查看,參考答案3、查詢所有同學的學號、姓名、選課數、總成績
--1)通過Group查詢總成績和選課數,然后再聯表查詢SELECT SID,COUNT(CID) AS CourseCount,SUM(Score) as SumScore FROM SC GROUP BY SIDSELECT Student.SID,SName,CourseCount,SumScore FROM Student LEFT JOIN (SELECT SID,COUNT(CID) AS CourseCount,SUM(Score) as SumScore FROM SC GROUP BY SID) AS B ON Student.SID = B.SID--2)聯表查詢后再GROUP BySELECT Student.SID,Student.Sname,COUNT(SC.CID),SUM(Score)FROM Student LEFT OUTER JOIN SC ON Student.SID=SC.SIDGROUP BY Student.SID,Sname
參考答案4、查詢姓“李”的老師的個數,不能重復
SELECT COUNT(DISTINCT(TID)) FROM Teacher WHERE TName LIKE '李%'
參考答案5、查詢沒學過“張三”老師課的同學的學號、姓名
--1)查詢沒有學過“張三”老師課的同學的學號,然后再查詢得到學生姓名SELECT SID FROM SC LEFT JOIN Course ON SC.CID = Course.CID LEFT JOIN Teacher ON Course.TID = Teacher.TID WHERE Tname ='張三'SELECT SID,Sname FROM Student WHERE SID NOT IN (SELECT SID FROM SC LEFT JOIN Course ON SC.CID = Course.CID LEFT JOIN Teacher ON Course.TID = Teacher.TID WHERE Tname ='張三')--2)先查詢張三老師的所有課程,然后查詢選擇了張三老師課程的學生ID,最后查詢未選其課程的學生信息SELECT CID FROM Course INNER JOIN Teacher ON Course.TID = Teacher.TID WHERE Teacher.TName='張三'SELECT SID FROM SC LEFT JOIN (SELECT CID FROM Course INNER JOIN Teacher ON Course.TID = Teacher.TID WHERE Teacher.TName='張三') AS TeacherCID ON SC.CID = TeacherCID.CIDSELECT SID,SName FROM Student WHERE SID NOT IN(SELECT SID FROM SC LEFT JOIN (SELECT CID FROM Course INNER JOIN Teacher ON Course.TID = Teacher.TID WHERE Teacher.TName='張三') AS TeacherCID ON SC.CID = TeacherCID.CID)--3)查詢多表,獲取張三老師的課程SELECT Student.SID,Student.SName FROM Student WHERE SID NOT IN (SELECT DISTINCT(SC.SID) FROM SC,Course,Teacher WHERE  SC.CID=Course.CID and Teacher.TID=Course.TID and Teacher.Tname='張三')
參考答案6、查詢兩門以上不及格課程的同學的學號及其平均成績
--1)查詢有課程不及格的學生IDSELECT DISTINCT(SID) FROM SC WHERE Score<60SELECT SID,AVG(Score) AS ScoreAverage FROM SC GROUP BY SID HAVING  COUNT(SID)>2  AND SID IN (SELECT DISTINCT(SID) FROM SC WHERE Score<60)--2)查詢有兩門以上不及格的學號SELECT SID FROM SC WHERE Score<60 GROUP B
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品久久久久久久免费观看| 美日韩精品视频免费看| 亚洲精品99久久久久中文字幕| 性欧美xxxx| 国产噜噜噜噜噜久久久久久久久| 成人免费淫片视频软件| 在线观看精品自拍私拍| 91精品一区二区| 97视频免费在线观看| 欧美性视频在线| 深夜精品寂寞黄网站在线观看| 成人av色在线观看| 亚洲美女中文字幕| 中文字幕无线精品亚洲乱码一区| 欧美丝袜一区二区| 国产精品观看在线亚洲人成网| 久久噜噜噜精品国产亚洲综合| 欧美成人中文字幕| 久久理论片午夜琪琪电影网| 欧美性猛交xxxx乱大交蜜桃| 成人精品福利视频| 亚洲男人天堂久| 在线成人激情黄色| 欧美裸身视频免费观看| 久久99精品久久久久久噜噜| 亚洲欧美色婷婷| 亚洲三级av在线| 国产又爽又黄的激情精品视频| 色噜噜国产精品视频一区二区| 中文字幕v亚洲ⅴv天堂| 日本道色综合久久影院| 福利一区福利二区微拍刺激| 欧美xxxx14xxxxx性爽| 欧美中文字幕精品| 久久精品国产96久久久香蕉| 91精品国产777在线观看| 久久99热精品这里久久精品| 久久精品国产99国产精品澳门| 中文字幕国产精品久久| 国产玖玖精品视频| 在线国产精品视频| 国产精品永久在线| 亚洲男人天堂2019| 国产精品三级美女白浆呻吟| 日韩电影中文字幕av| 国产有码一区二区| 久久久久国产精品免费网站| 亚洲丝袜一区在线| 亚洲最大av在线| 韩国19禁主播vip福利视频| 亚洲a在线播放| 欧美激情精品在线| 色综久久综合桃花网| 69久久夜色精品国产7777| 久久亚洲精品毛片| 北条麻妃一区二区三区中文字幕| 欧美福利小视频| 最新日韩中文字幕| 日韩久久精品成人| 岛国av一区二区在线在线观看| 亚洲www在线观看| 亚洲成**性毛茸茸| 亚洲成人精品久久| 亚洲欧美综合另类中字| 亚洲第一福利网站| 2020国产精品视频| 亚洲男女性事视频| 亚洲第一天堂av| 最近2019中文免费高清视频观看www99| 亚洲精品美女久久久久| 久久久久久av| 91九色单男在线观看| 亚洲另类图片色| 欧美大片在线影院| 亚洲国产精品中文| 国产欧美精品日韩精品| 久热爱精品视频线路一| 欧美成人黄色小视频| 国产亚洲一级高清| 91麻豆国产精品| 91在线精品视频| 久久夜色精品国产亚洲aⅴ| 国产97人人超碰caoprom| 91欧美视频网站| 欧美成人黄色小视频| 国产一区二区日韩| 日韩免费在线看| 欧美日韩在线视频首页| 91精品视频播放| 国产精品麻豆va在线播放| 国产精品1234| 国模私拍一区二区三区| 免费99精品国产自在在线| 久久91亚洲人成电影网站| 亚洲美女动态图120秒| 欧美一区二区三区免费视| 亚洲国产高清自拍| 亚洲性日韩精品一区二区| 黑人巨大精品欧美一区二区| 色综合久久久久久中文网| 欧美香蕉大胸在线视频观看| 一区二区三区 在线观看视| 精品国产欧美一区二区三区成人| 国产精品高精视频免费| 日韩av在线看| 亚洲免费视频一区二区| 国产999在线| 欧美性猛交99久久久久99按摩| 中文字幕亚洲一区二区三区| 欧美电影院免费观看| 亚洲精品久久久久久久久久久久久| 国产成人精品久久二区二区91| 欧美在线视频导航| 性欧美办公室18xxxxhd| 国产精品一区二区在线| 日韩国产在线播放| 久久综合久久八八| 国产亚洲人成网站在线观看| 久久久久久久久久久免费精品| 91精品久久久久久久久久| 日本精品久久久| 亚洲三级免费看| 欧美一区二区大胆人体摄影专业网站| 亚洲女人初尝黑人巨大| 欧美日韩一区免费| 亚洲欧美资源在线| 亚洲国产精品字幕| 亚洲xxxx妇黄裸体| 夜夜嗨av色综合久久久综合网| 在线观看精品国产视频| 亚洲高清色综合| 日韩女在线观看| 97视频在线观看免费高清完整版在线观看| 日韩精品极品毛片系列视频| 国产精品久久久久久一区二区| 亚洲第一区中文字幕| 高清日韩电视剧大全免费播放在线观看| 91av免费观看91av精品在线| 日韩风俗一区 二区| 日韩成人性视频| 中文字幕精品av| 久久综合亚洲社区| 欧美视频国产精品| 国产精品第3页| 青青在线视频一区二区三区| 亚洲精品理论电影| 美日韩精品视频免费看| 亚洲一级免费视频| 久热精品视频在线| 亚洲男人天堂2024| 欧美一区二区视频97| 欧美激情精品在线| 黑人极品videos精品欧美裸| 精品香蕉一区二区三区| 社区色欧美激情 | 2019最新中文字幕| 精品国产一区二区三区四区在线观看| 日韩a**中文字幕| 黄网站色欧美视频| 久久久91精品国产一区不卡| 亚洲激情国产精品| 久久亚洲影音av资源网| 另类视频在线观看| 久久久亚洲国产天美传媒修理工|