杰普软件数据库测试题及答案Word文档下载推荐.docx

上传人:b****6 文档编号:16301109 上传时间:2022-11-22 格式:DOCX 页数:9 大小:20.50KB
下载 相关 举报
杰普软件数据库测试题及答案Word文档下载推荐.docx_第1页
第1页 / 共9页
杰普软件数据库测试题及答案Word文档下载推荐.docx_第2页
第2页 / 共9页
杰普软件数据库测试题及答案Word文档下载推荐.docx_第3页
第3页 / 共9页
杰普软件数据库测试题及答案Word文档下载推荐.docx_第4页
第4页 / 共9页
杰普软件数据库测试题及答案Word文档下载推荐.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

杰普软件数据库测试题及答案Word文档下载推荐.docx

《杰普软件数据库测试题及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《杰普软件数据库测试题及答案Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。

杰普软件数据库测试题及答案Word文档下载推荐.docx

c).数据独立性会提高 

d).增加数据冗余度

7.使用sql查询时,使用where子句指出的是(B)

a)查询目标b) 

查询条件 

c)查询视图 

d)查询结果

8.在Oracle中,有一个教师表teacher的结构如下:

ID 

NUMBER(5)

NAME 

VARCHAR2(25)

EMAIL 

VARCHAR2(50)

下面哪个语句显示没有Email地址的教师姓名(C)

a).SELECT 

name 

FROM 

teacher 

WHERE 

email 

NULL;

b).SELECT 

<

>

c).SELECT 

IS 

d).SELECT 

NOT 

9.9.典型的jdbc程序按________顺序编写(DBECFA)

A.释放资源

B.获取与数据库的物理连接

C.执行Sql语句

D.注册jdbcdriver

E.创建不同类型的statement

F.如果有结果集,处理结果集

10.在Oracle中,下面哪条语句当COMM字段为空时显示0,不为空时显示COMM的值_____A______

a)SELECT 

ename, 

NVL(comm, 

0) 

emp;

b)SELECT 

NULL(comm, 

c)SELECT 

NULLIF(comm, 

d)SELECT 

DECODE(comm, 

NULL, 

11.在Oracle中,有一个名为seq的序列对象,以下语句能返回序列值但不会引起序列值增加的是____C_______

a).select 

seq.ROWNUM 

b).select 

seq.ROWID 

c).select 

seq.CURRVAL 

d).select 

seq.NEXTVAL 

12.有表一的查询结果如下,该表为学生成绩表:

select 

id,grade 

student_grade 

GRADE 

-------- 

----------- 

50 

40 

70 

80 

30 

90 

表二为补考成绩表 

student_makeup 

60 

现在通过如下语句把补考成绩更新到成绩表中,并提交:

update 

set 

s.grade 

(select 

t.grade 

where 

s.id=t.id);

commit;

请问之后查询:

id 

3;

结果为_________C_____

A.0

B.70

C.Null

D.以上都不对

13.在Oracle中,可用于提取日期时间特定字符串(如年、月、日、时、分、秒)的函数有______B_______

a).DATEPART 

b).TO_CHAR 

c).TRUNC 

d).TIMPSTAMP

14.MyBatis指定配置文件的根元素使用的是(B 

)。

a).<

sqlMapConfig>

b).<

configuration>

c).<

setting>

d).<

environments>

15.SQL语言按照用途可以分为三类,不包括下面选项中的(C)。

(A)DML(B)DCL(C)DQL(D)DDL

在sql语法中,SELECT语句的完整语法较复杂,但至少包括的部分(_16_B),使用关键字(_17_A)可以把行屏蔽,如果在SELECT语句中使用组函数时,可以在后面使用(_18_A)。

(16)A、SELECT,INTOB、SELECT,FROMC、SELECT,GROUPD、SELECT

(17)A、DISTINCTB、UNIONC、ALLD、TOP

(18)A、GROUPBYB、COMPUTEBYC、HAVINGD、COMPUTE

19.下列关于PreparedStatement对象的说法错误的是__C_________

a)PreparedStatement对象继承了Statement对象

b)PreparedStatement可以有效的防止sql注入

c)PreparedStatement不能用于批量更新操作

d)PreparedStatement可以存储预编译的Sql,从而提升执行效率

20. 

下面select语句的执行顺序正确的是___D____

group 

by 

order 

having 

by

二.填空题(1题2分,其余1分)

1.使用SELECT语句显示当前系统时间,显示格式为如:

2009-03-2520:

13:

43

selectto_char(sysdate,’yyyy-mm-ddhh24:

mi:

ss’)fromdual;

2.数据库事务的特性___原子性______、___一致性________、_____隔离性_______、____持久性______

3.执行脚本estore.sql文件的两种方式_____@________和___start______。

4.请写出两种清空表order中数据的方法____delete_________和_____truncate_______。

哪一种方式是彻底删除数据____truncate________

5.JDBC编程中负责事务管理的类是____Connection______;

6.设置name列显示长度为20个字符__colnameformata20________,设置salary列显示格式为$23,200.00

_colsalaryformat$99,999.00______。

7.oracle通配符:

“ 

” 

代表:

_通配一个字符______;

代表_通配0到多个字符_______,通过____escape______关键字将字符转义。

以练习的s_emp表,写出查询last_name第二个字符为"

g"

的用户信息语句

selectlast_namefroms_empwherelast_namelike'

_g%'

8.oracle数据库字符函数的substr(‘hello 

world’,3,4)操作的结果是:

___llo____

9.在mybatis的配置文件中,我们使用__typeAliases_____标签给类取别名

三.简答题(每题5分,共25分):

1.请分别简述xml中原生的解析方式有哪两种,并且各自特点是什么。

DOM和SAX的不同:

1.DOM是基于内存的,不管文件有多大,都会将所有的内容预先装载到内存中。

从而消耗很大的内存空间。

而SAX是基于事件的。

当某个事件被触发时,才获取相应的XML的部分数据,从而不管XML文件有多大,都只占用了少量的内存空间。

2.DOM可以读取XML也可以向XML文件中插入数据,而SAX却只能对XML进行读取,而不能在文件中插入数据。

这也是SAX的一个缺点。

3.SAX的另一个缺点:

DOM我们可以指定要访问的元素进行随机访问,而SAX则不行。

SAX是从文档开始执行遍历的。

并且只能遍历一次。

也就是说我们不能随机的访问XML文件,只能从头到尾的将XML文件遍历一次(当然也可以中间截断遍历)。

2.MyBatis实现一对一有几种方式?

具体怎么操作的?

(1)使用嵌套结果ResultMap实现一对一关系映射,我们可以使用一个嵌套结果ResultMap方式来获取主表及其关联表信息,使用<

association>

引用另外的在同一个XML文件中定义的<

resultMap>

(2)通使用嵌套select查询来获取主表及其关联表信息,此时<

引用另外的在同一个XML文件中定义的select查询语句。

3.以练习的S_emp表为基表查看薪资高于Chang经理薪资的员工信息

select*froms_empwheresalary>

selectsalary

froms_emp

whereid=(

selectmanager_id

froms_emp

wherelast_name='

Chang'

);

4.查询平均工资大于1200的部门,并显示这些部门的部门编号,名字,和平均工资

selectsd.id,sd.name,avg(salary)

froms_empse,s_deptsd

wherese.dept_id=sd.id

groupbysd.id,sd.name

havingavg(salary)>

1200;

selecta.dept_id,d.id,a.sal,d.name

from(selectavg(salary)sal,dept_id

groupbydept_id

havingavg(salary)>

1200)a,s_deptd

wherea.dept_id=d.id

5.请简述Statement对象和PreparedStatement对象的关系和区别。

1、关系

PreparedStatement继承Statement,他们属于父与子的关系。

使用上来说Statement使用的地方都可以换成PreparedStatement。

2、安全性

Statement的直接执行SQL语句,无法防止SQL注入问题。

PreparedStatement可以使用占位符,可以防止SQL注入问题。

3、性能

PreparedStatement:

1)addBatch()将一组参数添加到PreparedStatement对象内部。

2)executeBatch()将一批参数提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。

Statement:

1)addBatch(Stringsql)方法会在批处理缓存中加入一条sql语句。

2)executeBatch()执行批处理缓存中的所有sql语句。

从第一次执行的角度:

PreparedStatement由于占位符的使用,第一次执行需要很多额外的工作,例如占位符转换等等,这些都需要消耗一定的事件和资源。

而Statement直接执行相对来说效率要高、消耗要少一些。

从多次执行的角度:

PreparedStatement由于使用占位符进行预编译时,保存的执行代码被缓存,下次调用的时候就可以不再被编译而可以直接执行。

而Statement即使执行一样的操作,由于操作数据不同,所以执行语句也需要再次编译。

四.编程题

1.数据库中有Student表,以下为建表语句。

请将学生A的信息保存入数据库中,要求使用JDBC技术,采用两种方式(Statement,PreparedStatement)将此记录插入表中。

学生A信息为:

学号:

001;

姓名:

张三;

生日:

2012年1月12号。

create 

table 

Student_jdbc(

number(3) 

primary 

key,

varchar2(20),

birthday 

date 

Class.forName("

oracle.jdbc.driver.OracleDriver"

Connectionconnection=DriverManager.getConnection("

jdbc:

oracle:

thin:

@localhost:

1521:

xe"

"

briup16"

/*Stringsql="

insertintoStudent_jdbcvalues(001,'

张三'

'

12-1月-2012'

)"

;

Statementstatement=connection.createStatement();

statement.execute(sql);

if(statement!

=null){

statement.close();

}*/

insertintoStudent_jdbcvalues(?

?

PreparedStatementpreparedStatement=connection.prepareStatement(sql);

preparedStatement.setInt(1,001);

preparedStatement.setString(2,"

张三"

preparedStatement.setDate(3,newDate(newSimpleDateFormat("

yyyy-mm-dd"

).parse("

2012-01-12"

).getTime()));

preparedStatement.execute();

if(preparedStatement!

preparedStatement.close();

if(connection!

connection.close();

}

2.现有用户表,以下为建表语句

createtablet_user(

idnumberprimarykey,

namevarchar(20)notnull,

agenumber

(2),

birthdaydate)

用户类(com.briup.mybatis.User)的属性如下

privateintuserid;

privateintage;

privateStringname;

privateDatebirthday;

映射文件内容为:

mappernamespace="

com.briup.mybatis.mapper.UserMapper"

/mapper>

(1)向用户表中插入用户(写出:

insert标签,mapper接口方法)

insertid="

insertUser"

parameterType="

User"

insertintot_user(id,name,age,birthday)values(#{userid},#{name},#{age},#{birthday})

/insert>

publicvoidinsertUser(Useruser);

(2)查询id为001的用户的编号,姓名,年龄和生日,并将结果封装成User对象(xml中的select标签,mapper接口方法,使用命名空间、接口两种方式的测试代码)

Xml

selectid="

findUserById"

int"

resultType="

>

selectidasuserid,name,age,birthday

fromt_user

whereid=#{id}

/select>

Mapper

publicUserfindUserById(intid);

测试代码一

InputStreaminputStream=Resources.getResourceAsStream("

com/briup/mybatis/mybatis-config.xml"

SqlSessionFactoryfactory=newSqlSessionFactoryBuilder().build(inputStream);

SqlSessionsession=factory.openSession();

ObjectselectOne=session.selectOne("

com.briup.mybatis.mapper.UserMapper.findUserById"

001);

测试代码二

UserMappermapper=session.getMapper(UserMapper.class);

UserfindUserById=mapper.findUserById(001);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1