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