SQL經(jīng)典5個題【招聘面試 工作中】

1:假定有一個“員工”表,表結(jié)構(gòu)以下:(14分)

員工號

名字

年紀(jì)

月薪

單位號

電話

公司辦公室

1

張三

25

2000

1

12345

101

2

李四

26

1500

1

54321

102

3

王五

23

900

2

23456

201

…..

….

…..

……

…….

……

……..

難題:

查看每一個單位中月薪最大的“員工號”的SQL查看句子以下:

SELECT 員工號 FROM 員工 AS A

WHERE員工.月薪 = (SELECT MAX(月薪) FROM 員工 AS BWHERE A.單位號 = B.單位號;

1:請簡略的表明該查看句子對查看高效率的危害(六分)

2:對該查看句子開展改動,使它既能夠進(jìn)行同樣的作用,又可以提升 查看高效率。(8分)

1.針對表層員工關(guān)聯(lián)A 中的每一個紀(jì)錄,必須對里層員工關(guān)聯(lián)B開展查找,全部高效率不高

2.(1)應(yīng)用臨時表

SELECT MAX(月薪) as 最大薪水,單位號 INTO tempFROM 員工

GROUP BY 單位號;

SELECT 員工號 FROM 員工,temp WHERE 月薪=最大薪水

AND 員工.單位號 = temp.單位號;

(2)

SELECT 員工號 FROM 員工,(SELECT MAX(月薪) as 最大薪水,單位號 FROM 員工 GROUP BY 單位號) as DEPMAX

WHERE 月薪 = 最大薪水 AND 員工.單位號 = DEPMAX.單位號;

2:有一個“員工”表,表結(jié)構(gòu)以下:(14分)

員工號

名字

年紀(jì)

月薪

單位號

電話

公司辦公室

1

張三

25

2000

1

12345

101

2

李四

26

1500

1

54321

102

3

王五

23

900

2

23456

201

…..

….

…..

……

…….

……

……..

難題:

假定在“員工”表格中的“年紀(jì)”和“月薪”字段名上建立了數(shù)據(jù)庫索引,下述的查看句子很有可能不容易促進(jìn)查看優(yōu)化器應(yīng)用數(shù)據(jù)庫索引,進(jìn)而減少了高效率,請寫成能夠進(jìn)行同樣作用又可以提升 查看高效率的SQL句子

SELECT 名字,年紀(jì),月薪 FROM 員工

WHERE 年紀(jì) 45 OR 月薪 1000;

SELECT 名字,年紀(jì),月薪 FROM 員工

WHERE 年紀(jì) 45

UNION

SELECT 名字,年紀(jì),月薪 FROM 員工

WHERE月薪 1000;

應(yīng)用UNION就可以促進(jìn) 查看優(yōu)化器應(yīng)用數(shù)據(jù)庫索引

3:設(shè)立關(guān)聯(lián)EMP(ENO,ENAME,SALARY,DNO),在其中各特性的含意先后為員工號、名字、薪水和所屬單位號,

及其關(guān)聯(lián)DEPT(DNO,DNAME,MANAGER),在其中各特性含意先后為單位號、部門名稱、業(yè)務(wù)經(jīng)理的員工號。(回應(yīng)下述題型)(20分)

1. 列舉各單位中薪水不少于600元的員工的平均收入。(10分)

2. 請使用SQL句子將“營銷部”的這些薪水金額小于600的員工的薪水上漲10%。(10分)

1.SELECT DNO, AVG (SALARY)

FROM EMP

WHERE SALARY>=600

GROUP BY DNO

2.UPDATE EMP

SET SALARY=SALARY*1.1

WHERE ENO IN

(SELECT ENO

FROM EMP, DEPT

WHERE EMP.DNO=DEPT.DNO

AND DNAME='營銷部'

AND SALARY<600;

或是

UPDATE EMP

SET SALERY = SALERY * 1.1

FROM EMP A,ENO B

WHERE A.DNO = B.DNO

AND B.DNAME='營銷部'

AND B.SALARY<600;

4:設(shè)員工---社團活動數(shù)據(jù)庫查詢有三個基礎(chǔ)表:(20分)

員工(員工號,名字,年紀(jì),性別);

社團組織(序號,名字,責(zé)任人,主題活動地址);

報名參加(員工號,序號,報名參加時間);

在其中:

1)員工表的主鍵為員工號。

2)社團組織表的主鍵為序號;外碼為責(zé)任人,被參考表為員工表,相匹配特性為員工號。

3)報名參加表的員工號和序號為主導(dǎo)鍵;員工號為外碼,其被參考表為員工表,相匹配特性為員工號;序號為外碼,其被參考表為社團組織表,相匹配特性為序號。

使用SQL語句表達(dá)下述實際操作:

1)界定員工表、社團組織表和報名參加表,并表明其主鍵和參考關(guān)聯(lián)。

2)創(chuàng)建下述2個主視圖。

社團活動責(zé)任人(序號,名字,責(zé)任人員工號,責(zé)任人名字,責(zé)任人性別);

報名參加人狀況(員工號,名字,社團活動序號,社團活動名字,報名參加時間)

3)搜索報名參加歌唱隊或籃球俱樂部的員工號和名字。

4)求報名參加總數(shù)超出100人的社團組織的名字和責(zé)任人。

答:

1) CREATTABLE員工(員工號 CHAR(10)NOTNULL,

名字 CHAR(8)NOTNULL,

年紀(jì) SMALLINT,

性別 CHAR(2),

CONSTRAINT C1_PKPRIMARYKEY(員工號);

CREAT TABLE社團組織(序號 CHAR(8)NOTNULL,

名字 CHAR(12)NOTNULL,

責(zé)任人 CHAR(8),

主題活動地址 VARCHAR(50),

CONSTRAINT C2_PK PRIMARYKEY(員工號)

CONSTRAINT C2FOREIGNKEY(責(zé)任人)REFERENCES 員工(員工號));

CREAT TABLE報名參加(員工號 CHAR(8),

序號 CHAR(8),

報名參加時間 DATA,

CONSTRAINT C3_PKPRIMARYKEY(員工號,序號),

CONSTRAIN C3 FOREIGN KEY(員工號)REFERENCES員工(員工號));

2)

CREAT VIEW 社團活動責(zé)任人(序號,名字,責(zé)任人員工號,責(zé)任人名字,責(zé)任人性別)

AS SELECT 序號,名字,責(zé)任人,名字,性別

FROM社團組織,員工

WHERE社團組織.責(zé)任人=員工.員工號;

CREAT VIEW報名參加人狀況(員工號,名字,社團活動序號,報名參加時間)

AS SELECT報名參加.員工號,名字,社團組織.序號,名字,報名參加時間 FROM 員工,社團組織,報名參加

WHERE員工.員工號=報名參加.員工號AND 報名參加.序號=社團組織.序號;

3) SELECT員工號,名字

FROM員工,社團組織,報名參加

WHERE員工.員工號=報名參加.員工號 AND 報名參加.序號=社團組織.序號

AND社團組織.名字 IN('歌唱隊','籃球俱樂部');

4) SELECT社團組織.名字,員工.名字

FROM員工,社團組織,報名參加

WHERE社團組織.序號=報名參加.序號 AND社團組織.責(zé)任人=員工.員工號

GROUP BY報名參加.序號 HAVINGCOUNT(報名參加.序號)>100;

5:設(shè)工程項目—零件數(shù)據(jù)庫查詢中有四個基礎(chǔ)表:(18分)

經(jīng)銷商(經(jīng)銷商編碼,名字,所在地,聯(lián)系方式);

工程項目(工程項目編碼,工程項目名,責(zé)任人,成本預(yù)算);

零件(零件編碼,零件名,規(guī)格型號,原產(chǎn)地,色調(diào));

供貨零件(經(jīng)銷商編碼,工程項目編碼,零件編碼,總數(shù))

使用SQL句子進(jìn)行下述實際操作:

1) 搜索成本預(yù)算在50000~10000零元中間的工程項目的信息內(nèi)容,并將結(jié)果按成本預(yù)算降序排序。

2) 找到應(yīng)用上海市產(chǎn)的零件的工程項目名字。

3)將由經(jīng)銷商S5提供工程項目編碼為J4的零件P6改成由S3供貨,并將零件P6的原產(chǎn)地改成S3供應(yīng)商的所在地。

4)從經(jīng)銷商關(guān)聯(lián)中刪掉S2的紀(jì)錄,并從供貨零件關(guān)聯(lián)中刪掉相對的紀(jì)錄。

1.SELECT*

FROM 工程項目

WHERE成本預(yù)算 BETWEEN50000AND100000 (或是 WHERE 成本預(yù)算 = 50000 AND 成本預(yù)算 = 1000000)

ORDER BY成本預(yù)算 DESC;

2.SELECT工程項目名

FROM經(jīng)銷商,供貨零件,工程項目

WHERE經(jīng)銷商.經(jīng)銷商編碼=供貨零件.經(jīng)銷商編碼AND

供貨零件.工程項目編碼=工程項目.工程項目編碼 AND

經(jīng)銷商.所在地='上海市';

3.UPDATE供貨零件

SET經(jīng)銷商編碼='S3'

WHERE經(jīng)銷商編碼='S5' AND 工程項目編碼='J4' AND 零件編碼='P6';

UPDATE零件

SET原產(chǎn)地 = B. 所在地

FROM 零件 A, 經(jīng)銷商 B

WHERE A. 零件編碼 = 'P6'

AND B. 經(jīng)銷商編碼 = 'S3';

4.DELETE

FROM 供貨零件

WHERE 經(jīng)銷商編碼='S2';

DELETE

FROM 經(jīng)銷商

WHERE 經(jīng)銷商編碼='S2';

1.《SQL經(jīng)典5個題【招聘面試工作中】》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《SQL經(jīng)典5個題【招聘面試工作中】》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。

3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/guonei/340754.html