SQL server 面試查詢集合(包含分析)

drop database mytest

create database MyTest

use Mytest

--1、問題描述:

--已知關(guān)系模式:

--S (SNO,SNAME)學(xué)生關(guān)系捺弦。SNO 為學(xué)號括袒,SNAME 為姓名

--C (CNO,CNAME,CTEACHER)? 課程關(guān)系壁肋。CNO 為課程號变逃,CNAME 為課程名振愿,CTEACHER 為任課教師

--SC(SNO,CNO,SCGRADE)? ? ? ? 選課關(guān)系侍咱。SCGRADE 為成績

create table s(sno int, sname varchar(10))

insert into s values(100,'張三')

insert into s values(101,'李四')

insert into s values(102,'王五')

insert into s values(103,'趙六')

insert into s values(104,'田七')

insert into s values(105,'王八')

insert into s values(106,'王八2')

go

create table c(cno int, cname varchar(10),cteacher varchar(10))

insert into c values(1,'c語言','李明')

insert into c values(2,'sql','李果')

go

create table sc(sno int,cno int,scgrade int)

insert into sc values(100,1,50)

insert into sc values(100,2,55)

insert into sc values(101,2,87)

insert into sc values(102,1,50)

insert into sc values(102,2,55)

insert into sc values(103,1,80)

insert into sc values(103,2,55)

insert into sc values(104,1,90)

insert into sc values(105,1,85)

insert into sc values(106,1,85)

insert into sc values(106,2,20)

go

select * from s

select * from c

select * from sc

--1.找出沒有選修過“李明”老師講授

--課程的所有學(xué)生姓名

--分析

--1)先查詢出李明老師的編號

--2)在查詢出學(xué)過李明老師的學(xué)生編號

--3)在查詢出沒有學(xué)過李明老師的學(xué)生

select sname from s where sno not in(

select sno from sc where cno in(

select cno from c where cteacher = '李明'))

--2.列出有二門以上(含兩門)

--不及格課程的學(xué)生姓名及其平均成績

--分析

--1)先查詢出兩門不及格課程以上的學(xué)生編號

--2)在做連接查詢

--3)在根據(jù)學(xué)生編號查詢出學(xué)生姓名用avg聚合函數(shù)統(tǒng)計出平均成績 使用group by 進行分組

select sname,avg(sc.scgrade) from s s inner join sc

on s.sno = sc.sno

where sc.sno in (select sno from sc

where scgrade <60

group by sno

having count(*)>=2)

group by sname

--3.列出既學(xué)過“1”號課程柠并,又學(xué)過“2”號課程

--的所有學(xué)生姓名

--分析

--1)先根據(jù) 課程編號1 和課程編號2查詢學(xué)過1號和2號的學(xué)生編號

--2)在根據(jù) 學(xué)生編號查詢學(xué)生姓名

select sname from s where sno in(

select sno from sc where cno = 1 and sno in(

select sno from sc where cno = 2))

--4.列出“1”號課成績比

--“2”號同學(xué)該門課成績高的所有學(xué)生的學(xué)號

--分析

--1)先查詢出2號同學(xué)的該門的學(xué)生成績

--2)2號同學(xué)的成績對 所有學(xué)生的一號成績對比進行篩選

select * from sc where cno = 1 and scgrade >(

select scgrade from sc where sno = 101and cno = 1)

--5.列出“1”號課成績比“2”號課成績

--高的所有學(xué)生的學(xué)號? ?

--及其“1”號課和“2”號課的成績

--分析

--1)先查詢出同一名“2”號課成績

--2)在查詢出一號成績進行對比

select sc1.scgrade,(select scgrade? from sc sc where sc.sno = sc1.sno and sc.cno = 2

)

from sc sc1 where cno = 1 and scgrade >(

select scgrade from sc sc2 where cno = 2 and sc1.sno = sc2.sno

)

--2岭接、問題描述:

--為管理崗位業(yè)務(wù)培訓(xùn)信息富拗,建立3個表:

--S (Sno,SName,SDept,SAge)? S#,SN,SD,SA 分別代表學(xué)號、學(xué)員姓名鸣戴、所屬單位啃沪、學(xué)員年齡

--C (Cno,CName )? ? ? ? C#,CN? ? ? 分別代表課程編號、課程名稱

--SC ( Sno,Cno,Grade )? ? S#,C#,G? ? 分別代表學(xué)號葵擎、所選修的課程編號谅阿、學(xué)習成績

-- 學(xué)生信息表

--字段分別代表:學(xué)號、學(xué)員姓名酬滤、所屬單位签餐、學(xué)員年齡

create table stu(Sno int,SName varchar(10), SDept varchar(50) ,SAge int )

insert into stu values(1,'小明','稅務(wù)局',26)

insert into stu values(2,'小王','鐵路局',27)

insert into stu values(3,'小和','電力局',28)

insert into stu values(4,'小寶','文化局',29)

go

--課程信息表

--字段分別代表:課程編號、課程名稱

create table cc(Cno char(2), CName varchar(20))

insert into cc values('c1','計算機原理')

insert into cc values('c2','經(jīng)濟學(xué)原理')

insert into cc values('c3','稅收基礎(chǔ)')

insert into cc values('c4','C語言基礎(chǔ)')

insert into cc values('c5','中國刑法')

insert into cc values('c6','心理學(xué)')

insert into cc values('c7','會計學(xué)')

go

--選課信息表

--字段分別代表代表學(xué)號盯串、所選修的課程編號氯檐、學(xué)習成績

create table scc(Sno int, Cno char(2) , Grade int)

insert into scc values(1,'c1',60)

insert into scc values(1,'c2',70)

insert into scc values(1,'c3',80)

insert into scc values(1,'c4',90)

insert into scc values(1,'c5',100)

insert into scc values(1,'c6',65)

insert into scc values(2,'c2',65)

insert into scc values(3,'c1',60)

insert into scc values(3,'c2',70)

insert into scc values(3,'c3',80)

insert into scc values(3,'c4',90)

insert into scc values(3,'c5',100)

insert into scc values(3,'c6',65)

insert into scc values(3,'c7',70)

go

select * from stu

select * from cc

select * from scc

go

--要求實現(xiàn)如下5個處理:

? --1. 使用標準SQL嵌套語句查詢選

--修了課程名稱為’稅收基礎(chǔ)’的學(xué)員學(xué)號和姓名

--分析

--1)先查詢稅收基礎(chǔ)的編號

--2)在根據(jù)該編號查詢出修過的學(xué)員編號

--3)在根據(jù)該學(xué)員編號查詢到學(xué)員信息

select

from stu where Sno in(

select Sno from scc where Cno = (

select Cno from cc where CName = '稅收基礎(chǔ)'

))

-- 2. 使用標準SQL嵌套語句

--查詢選修課程編號為’C2’的學(xué)員姓名和所屬單位

--分析

--1)根據(jù)課程名查詢到修改c2的學(xué)生編號

--2)在根據(jù)該學(xué)員編號查詢到學(xué)生的對應(yīng)信息

select SName,SDept from stu where Sno in(

select Sno from scc where Cno = 'C2')

--3. 使用標準SQL嵌套語句

--查詢不選修課程編號為’C5’的學(xué)員姓名和所屬單位

--分析

--1)根據(jù)課程查出對應(yīng)修過C5的學(xué)生編號

--2)在根據(jù)該學(xué)生編號 查詢沒有修改過的學(xué)生

select SName,SDept from stu where Sno != all(

select Sno from scc where cno = 'C5')

-- 4. 使用標準SQL嵌套語句

--查詢選修全部課程的學(xué)員姓名和所屬單位

--分析

--1)根據(jù) 分組 使用聚合函數(shù)統(tǒng)計出 每個學(xué)生的次數(shù)

--2)在根據(jù) 課程統(tǒng)計出課程的門數(shù),然后進行對比查詢到學(xué)生編號

--3)在根據(jù)該學(xué)生編號 獲取對應(yīng)信息

select SName,SDept from stu where sno in(

select Sno? from scc

group by Sno

having count(*) = (select count(*) from cc))

-- 5. 查詢選修了課程的學(xué)員人數(shù)

--分析

--1)根據(jù) 去重復(fù)編號 查詢出學(xué)過課程的人數(shù)

select count(distinct sno) from scc

--6. 查詢選修課程超過5門的學(xué)員學(xué)號和所屬單位

--分析

--1)根據(jù) 分組 使用聚合函數(shù)統(tǒng)計出 每個學(xué)生的次數(shù)

--2)在根據(jù) 課程統(tǒng)計出課程的門數(shù)体捏,然后進行對比查詢到學(xué)生編號

--3)在根據(jù)該學(xué)生編號 獲取對應(yīng)信息

select SName,SDept from stu where sno in(

select Sno? from scc

group by Sno

having count(*) >5)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冠摄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子几缭,更是在濱河造成了極大的恐慌河泳,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,207評論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件年栓,死亡現(xiàn)場離奇詭異拆挥,居然都是意外死亡,警方通過查閱死者的電腦和手機某抓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評論 3 400
  • 文/潘曉璐 我一進店門纸兔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人否副,你說我怎么就攤上這事汉矿。” “怎么了备禀?”我有些...
    開封第一講書人閱讀 170,031評論 0 366
  • 文/不壞的土叔 我叫張陵洲拇,是天一觀的道長。 經(jīng)常有香客問我曲尸,道長呻待,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,334評論 1 300
  • 正文 為了忘掉前任队腐,我火速辦了婚禮,結(jié)果婚禮上奏篙,老公的妹妹穿的比我還像新娘柴淘。我一直安慰自己迫淹,他們只是感情好,可當我...
    茶點故事閱讀 69,322評論 6 398
  • 文/花漫 我一把揭開白布为严。 她就那樣靜靜地躺著敛熬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪第股。 梳的紋絲不亂的頭發(fā)上应民,一...
    開封第一講書人閱讀 52,895評論 1 314
  • 那天,我揣著相機與錄音夕吻,去河邊找鬼诲锹。 笑死,一個胖子當著我的面吹牛涉馅,可吹牛的內(nèi)容都是我干的归园。 我是一名探鬼主播,決...
    沈念sama閱讀 41,300評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼稚矿,長吁一口氣:“原來是場噩夢啊……” “哼庸诱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起晤揣,我...
    開封第一講書人閱讀 40,264評論 0 277
  • 序言:老撾萬榮一對情侶失蹤桥爽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后昧识,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钠四,經(jīng)...
    沈念sama閱讀 46,784評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,870評論 3 343
  • 正文 我和宋清朗相戀三年滞诺,在試婚紗的時候發(fā)現(xiàn)自己被綠了形导。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,989評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡习霹,死狀恐怖朵耕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淋叶,我是刑警寧澤阎曹,帶...
    沈念sama閱讀 36,649評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站煞檩,受9級特大地震影響处嫌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜斟湃,卻給世界環(huán)境...
    茶點故事閱讀 42,331評論 3 336
  • 文/蒙蒙 一熏迹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凝赛,春花似錦注暗、人聲如沸坛缕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赚楚。三九已至,卻和暖如春骗卜,著一層夾襖步出監(jiān)牢的瞬間宠页,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評論 1 275
  • 我被黑心中介騙來泰國打工寇仓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留举户,地道東北人。 一個月前我還...
    沈念sama閱讀 49,452評論 3 379
  • 正文 我出身青樓焚刺,卻偏偏與公主長得像敛摘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乳愉,可洞房花燭夜當晚...
    茶點故事閱讀 45,995評論 2 361

推薦閱讀更多精彩內(nèi)容