SQL經典5个题【招聘面试 工作中】
1:假定有一个“员工”表,表结构以下:(14分)
员工号
名字
年纪
月薪
单位号
电話
公司办公室
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:对该查看句子开展改动,使它既能够进行同样的作用,又可以提升 查看高效率。(8分)
1.针对表层员工关联A 中的每一个纪录,必须对里层员工关联B开展查找,全部高效率不高
2.(1)应用临时表
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:有一个“员工”表,表结构以下:(14分)
员工号
名字
年纪
月薪
单位号
电話
公司办公室
1
张三
25
2000
1
12345
101
2
李四
26
1500
1
54321
102
3
王五
23
900
2
23456
201
…..
….
…..
……
…….
……
……..
难题:
假定在“员工”表格中的“年纪”和“月薪”字段名上建立了数据库索引,下述的查看句子很有可能不容易促进查看优化器应用数据库索引,进而减少了高效率,请写成能够进行同样作用又可以提升 查看高效率的SQL句子
SELECT 名字,年纪,月薪 FROM 员工
WHERE 年纪 45 OR 月薪 1000;
SELECT 名字,年纪,月薪 FROM 员工
WHERE 年纪 45
UNION
SELECT 名字,年纪,月薪 FROM 员工
WHERE月薪 1000;
应用UNION就可以促进 查看优化器应用数据库索引
3:设立关联EMP(ENO,ENAME,SALARY,DNO),在其中各特性的含意先后为员工号、名字、薪水和所属单位号,
及其关联DEPT(DNO,DNAME,MANAGER),在其中各特性含意先后为单位号、部门名称、业务经理的员工号。(回应下述题型)(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:设员工---社团活动数据库查询有三个基础表:(20分)
员工(员工号,名字,年纪,性別);
社团组织(序号,名字,责任人,主题活动地址);
报名参加(员工号,序号,报名参加时间);
在其中:
1)员工表的主键为员工号。
2)社团组织表的主键为序号;外码为责任人,被参考表为员工表,相匹配特性为员工号。
3)报名参加表的员工号和序号为主导键;员工号为外码,其被参考表为员工表,相匹配特性为员工号;序号为外码,其被参考表为社团组织表,相匹配特性为序号。
使用SQL语句表达下述实际操作:
1)界定员工表、社团组织表和报名参加表,并表明其主键和参考关联。
2)创建下述2个主视图。
社团活动责任人(序号,名字,责任人员工号,责任人名字,责任人性別);
报名参加人状况(员工号,名字,社团活动序号,社团活动名字,报名参加时间)
3)搜索报名参加歌唱队或篮球俱乐部的员工号和名字。
4)求报名参加总数超出100人的社团组织的名字和责任人。
答:
1) CREATTABLE员工(员工号 CHAR(10)NOTNULL,
名字 CHAR(8)NOTNULL,
年纪 SMALLINT,
性別 CHAR(2),
CONSTRAINT C1_PKPRIMARYKEY(员工号);
CREAT TABLE社团组织(序号 CHAR(8)NOTNULL,
名字 CHAR(12)NOTNULL,
责任人 CHAR(8),
主题活动地址 VARCHAR(50),
CONSTRAINT C2_PK PRIMARYKEY(员工号)
CONSTRAINT C2FOREIGNKEY(责任人)REFERENCES 员工(员工号));
CREAT TABLE报名参加(员工号 CHAR(8),
序号 CHAR(8),
报名参加时间 DATA,
CONSTRAINT C3_PKPRIMARYKEY(员工号,序号),
CONSTRAIN C3 FOREIGN KEY(员工号)REFERENCES员工(员工号));
2)
CREAT VIEW 社团活动责任人(序号,名字,责任人员工号,责任人名字,责任人性別)
AS SELECT 序号,名字,责任人,名字,性別
FROM社团组织,员工
WHERE社团组织.责任人=员工.员工号;
CREAT VIEW报名参加人状况(员工号,名字,社团活动序号,报名参加时间)
AS SELECT报名参加.员工号,名字,社团组织.序号,名字,报名参加时间 FROM 员工,社团组织,报名参加
WHERE员工.员工号=报名参加.员工号AND 报名参加.序号=社团组织.序号;
3) SELECT员工号,名字
FROM员工,社团组织,报名参加
WHERE员工.员工号=报名参加.员工号 AND 报名参加.序号=社团组织.序号
AND社团组织.名字 IN('歌唱队','篮球俱乐部');
4) SELECT社团组织.名字,员工.名字
FROM员工,社团组织,报名参加
WHERE社团组织.序号=报名参加.序号 AND社团组织.责任人=员工.员工号
GROUP BY报名参加.序号 HAVINGCOUNT(报名参加.序号)>100;
5:设工程项目—零件数据库查询中有四个基础表:(18分)
经销商(经销商编码,名字,所在地,联系方式);
工程项目(工程项目编码,工程项目名,责任人,成本预算);
零件(零件编码,零件名,规格型号,原产地,色调);
供货零件(经销商编码,工程项目编码,零件编码,总数)
使用SQL句子进行下述实际操作:
1) 搜索成本预算在50000~10000零元中间的工程项目的信息内容,并将結果按成本预算降序排序。
2) 找到应用上海市产的零件的工程项目名字。
3)将由经销商S5提供工程项目编码为J4的零件P6改成由S3供货,并将零件P6的原产地改成S3供应商的所在地。
4)从经销商关联中删掉S2的纪录,并从供货零件关联中删掉相对的纪录。
1.SELECT*
FROM 工程项目
WHERE成本预算 BETWEEN50000AND100000 (或是 WHERE 成本预算 = 50000 AND 成本预算 = 1000000)
ORDER BY成本预算 DESC;
2.SELECT工程项目名
FROM经销商,供货零件,工程项目
WHERE经销商.经销商编码=供货零件.经销商编码AND
供货零件.工程项目编码=工程项目.工程项目编码 AND
经销商.所在地='上海市';
3.UPDATE供货零件
SET经销商编码='S3'
WHERE经销商编码='S5' AND 工程项目编码='J4' AND 零件编码='P6';
UPDATE零件
SET原产地 = B. 所在地
FROM 零件 A, 经销商 B
WHERE A. 零件编码 = 'P6'
AND B. 经销商编码 = 'S3';
4.DELETE
FROM 供货零件
WHERE 经销商编码='S2';
DELETE
FROM 经销商
WHERE 经销商编码='S2';
1.《SQL经典5个题【招聘面试工作中】》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《SQL经典5个题【招聘面试工作中】》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/340754.html