数据库面试题答案Word文件下载.docx
- 文档编号:1499017
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:5
- 大小:15.42KB
数据库面试题答案Word文件下载.docx
《数据库面试题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库面试题答案Word文件下载.docx(5页珍藏版)》请在冰点文库上搜索。
b)列出各部门’工作类型’为’普通职员’的最低和最高工资
Where工作类型=’普通职员’
c)列出高于本部门平均工资的员工姓名,工资,部门
select姓名,工资,部门fromempe1where工资>
(
selectavg(工资)fromempe2wheree2.部门=e1.部门
)
存储过程和函数的区别是什么?
答:
存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程。
而函数通常是数据库已定义的方法,它接受参数并返回某种类型的值,并且不涉及特定用户表。
4.事务是什么?
事务是作为一个逻辑单元执行的一系列操作。
一个逻辑工作单元必须有4个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能称为一个事务。
5.游标的作用是什么?
如何知道游标已经到了最后?
游标用于定位结果集的行。
通过判断全局变量@@FETCH_STATUS可以判断其是否到了最后。
通常此变量不等于0表示出错或到了最后。
7.什么叫做SQL注入式攻击?
如何防范?
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。
在某些表单中,用户输入的内容直接用来构造动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
防范SQL注入式攻击闯入:
只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。
过滤输入内容可以按多种方式进行。
如:
替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令的含义。
10.什么是聚集索引?
什么是非聚集索引?
什么是主键?
表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。
这样的一列或多列称为表的主键。
聚集索引确定表中数据的物理顺序。
一个表中只能包含一个聚集索引。
非聚集索引与课本中的索引类似。
数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。
索引中的项目按索引键值的顺序存储,而表中的信息按另一种顺序存储。
11.现有一张表,有两个字段:
ID,NAME。
ID为主键。
如果希望查询出所有拥有2个或更多ID的NAME,查询语句应该如何写?
select[Name]from[table]groupby(name)having(count([ID]>
=2)。
15.一般数据库若出现日志满了,会出现什么情况,是否还能使用?
只能执行查询等读操作,不能执行更改,备份等写操作,原因是任何写操作都要记录日志。
也就是说基本上处于不能使用的状态。
19.学生其存放在Student表中,学生选课情况存放在SC表中,课程情况存放在Course表中。
(1)查询与“刘晨”在同一个系学习的学生。
SELECTSno,Sname,SdeptFROMStudentWHERESdeptIN(SELECTSdeptFROMStudentWHERESname=’刘晨’);
或者:
SELECTS1.Sno,S1.Sname,S1.SdeptFROMStudentS1,StudentS2WHERES1.Sdept=S2.SdeptANDS2.Sname=’刘晨’;
(2)查询选修了课程名为“信息系统”的学生学号和姓名
SELECTSno,SnameFROMStudentWHERESnoIN(SELECTSnoFROMSC)WHERECnoIN(SELECTCnoFROMCourseWHERECname=’信息系统’);
SELECTSno,SnameFROMStudent,SC,CourseWHEREStudent.Sno=SC.SnoANDSC.Cno=Course.CnoANDCourse.Cname=’信息系统’;
用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。
(employee:
eid,ename,salary,deptid;
select*fromemployeeorderbydeptiddesc,salary
列出各个部门中工资高于本部门的平均工资的员工号和部门号,并按部门号排序
createtableemployee921(idintprimarykey,namevarchar(5
0),salarybigint,deptidint);
Selectid,deptidfromemployee921ase1wheresalary>
Selectavg(salary)fromemployee921ase2whree2.deptid=e1.deptId
selecta.ename,a.salary,a.deptid
fromempa,
(selectdeptd,avg(salary)avgsalfromempgroupbydeptid)b
wherea.deptid=b.deptidanda.salary>
b.avgsal;
分页语句取出sql表中第31到40的记录(以自动增长ID为主键)
sqlserver方案:
selecttop10*fromtwhereidnotin(selecttop30idfromtorderbyid)ordebyid
用一条SQL语句查询出每门课都大于80分的学生姓名
name
kecheng
fenshu
张三
语文
81
数学
75
李四
76
90
王五
100
英语
selectdistinctnamefromscore
where
namenotin(selectdistinctnamefromscorewherescore<
=80)
用JDBC如何调用存储过程
Connectionconn=super.getConn();
CallableStatementstatement=null;
try{
statement=conn.prepareCall("
{callproc_UpdateLevel(?
?
)}"
);
statement.setString(1,cusNo);
statement.setInt(2,year);
statement.registerOutParameter(3,Types.VARCHAR);
statement.registerOutParameter(4,Types.FLOAT);
statement.execute();
Stringcuslevel=(String)statement.getObject(3);
Doublemoney=(Double)statement.getObject(4);
System.out.println(cuslevel+"
"
+money);
}catch(SQLExceptione){
e.printStackTrace();
}finally{
try{
statement.close();
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 试题答案