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