java面试题网

普通会员

15

帖子

1

回复

33

积分

楼主
发表于 2018-06-06 18:06:41 | 查看: 830| 回复: 0

题目:

1. 查询employee表,显示“John”20%的薪水,“Roy”10%的薪水,其他员工15%的薪水。

2. 查询EMPLOYEE表department字段,如果查询结果是"Banking"则显示"Bank Dept",是"Insurance"则显示"Insurance Dept",是"Services"则显示"Services Dept"。

3. 查询employyee表,选择 TOP N 薪水。

4. 什么是SQL注入式攻击?

5. SQL性能提升的开发注意事项有哪些?

为管理业务培训信息,建立3个表:

students(sno,sname,dept,age) 分别代表学号,学员姓名,所属单位,学员年龄

course(cno,cname) 分别代表课程编号,课程名称

study(sno,cno,grade) 分别代表学号,所选的课程编号,学习成绩

请回答 6 ~ 10 题:

6. 使用标准SQL嵌套语句查询选修课程名称为“税收基础”的学员学号和姓名?

7. 使用标准SQL嵌套语句查询选修课程编号为“C2”的学员姓名和所属单位?

8. 使用标准SQL嵌套语句查询不选修课程编号为“C5”的学员姓名和所属单位?

9. 查询选修了课程的学员人数

10. 查询选修课程超过5门的学员学号和所属单位?


答案:


1. SELECT FIRST_NAME, CASE FIRST_NAME

WHEN 'John' THEN SALARY * .2

WHEN 'Roy' THEN SALARY * .10

ELSE SALARY * .15 END

"Deduced_Amount" FROM EMPLOYEE

2. SELECT case DEPARTMENT

when 'Banking' then 'Bank Dept'

when 'Insurance' then 'Insurance Dept'

when 'Services' then 'Services Dept' end

FROM EMPLOYEE

3. Oracle:

select * from (select * from employee order by SALARY desc) where rownum <N + 1

SQL Server:

select top N * from employee

MySQL:

select * from employee order by salary desc limit N

4. 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。

5. a. 尽量少 join

b. 尽量少排序

c. 尽量避免 select *泛查询

d. 尽量用 join 代替子查询

e. 尽量少 or

f. 尽量用 union all 代替 union

g. ...

6. select sno, sname from students where sno in(select sno from course, study where course.cno = study.cno and cname = '税收基础')

7. select sname, dept from students, study where students.sno = study.sno and study.cno = 'c2'

8. select sno, dept from students where sno not in (select sno from study where cno = 'c5')

9. select 学员人数=count(distinct sno) from study

10. select sno, dept from students where sno in(select sno from study group by sno having count(distinct cno) > 5)



您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018