JDBCjava测试题
JDBC(oracle)考试试卷
考题总分:100分制考试时间:一个小时
一、选择题,20题共60分(每小题3分多选不给分)
1工资加上奖金是月薪水,下列Sql语句计算出来的每月工资是否准确( A)
select ename , salary , bonus , salary+bonus month_sal from emp ;
A.不准确,bonus列数据可能存在null值, null值和任何数据做算数运算 , 结果都是null
B.准确,oracle会自动把数字类型的null值在做运输的时候转换成0
C.准确,oracle忽略null值,不计入运算
D.不准确,Sql语句中月薪的算法公式错误。
2插入数据时关于字符数据和数字数据的处理说法正确的是( A)
A.字符数据要用单引号引起来,数字数据不用
B.字符数据和数字数据都需要单引号引起来
C.字符数据要用双引号引起来,数字数据不用
D.字符数据和数字数据都需要双引号引起来
3下列属于数据操作语言的是 (A,B )
4设置每页显示20行的Sql Plus命令是 (A D)
pagesize 20
page 20
size 20
pages 20
5查询当前帐户下有多少个表的sql语句是 (A )
count(*) from user_tables ;
count(*) from tables ;
count(*) from users ;
count(*) from user_name_tables ;
6 Sql语句select round,0),trunc from dual;执行后, round,0)和trunc的结果分别是 ( B)
,45
,45
,46.
,46
7、在oracle中,下列函数中能把字符类型数据转换成日期类型数据的函数是
(D )
()
()
()
()
8按emp表ename升序排列,下列sql语句正确的是 (AD )
ename , salary from emp
order by ename asc ;
ename , salary from emp
order by ename desc ;
ename , salary from emp
order by salary asc ;
ename , salary from emp
order by ename ;
9下列说法正确的是: ( AC)
A.一个表只允许一个主键
B. 一个表可以有多个主键
C.数据库会为主键自动创建对应的唯一索引
D.主键只表示该字段不允许为空
10 delect 和truncate 都可以用来删除表内容,一下描述正确的是 (AB )
A.Truncate 不需要 commit
B.Delete 需要commit
C.Truncate在提交commit之前仍可回滚
D.Truncate还可以删除表结构
11.EMPLOYEES表的结构如下:
EMPLOYEE_ID NUMBER Primary Key
FIRST_NAME VARCHAR2(25)
LAST_NAME VARCHAR2(25)
下面选项中可以向该表中插入一行数据的是 ( AC)
A.INSERT INTO employees(employee_id) VALUES (1000);
B.INSERT INTO employees (first_name,last_name) VALUES (‘John','Smith');
C.INSERT INTO employees VALUES(1000,'John','NULL');
D.INSERT INTO employees VALUES (‘1000','John');
12.下列属于java语言的接口是 ( ABC)
A Statement
B Collection
C ResultSet
D DriverManager
13. 下面的描述错误的是 ( B)
A. Statement的executeQuery()方法会返回一个结果集
B. Statement的executeUpdate()方法会返回是否更新成功的boolean值
C. 使用ResultSet中的getString()可以获得一个对应于数据库中char类型的值
D. ResultSet中的next()方法会使结果集中的下一行成为当前行
14.包含事务控制方法setAutoCommit, commit, rollback的是 (A)
A. Connection
B. Statement
C. ResultSet
D. DriverManager
15. 在JDBC编程中执行完下列SQL语句: SELECT name, rank, serialNo FROM employee.,能得到rs的第一列数据的代码是(BC )
A. (0);
B. (
ame);
C. (1);
D. (“ename”);
16.下面关于PreparedStatement的说法错误的是 ( C)
A. PreparedStatement继承了Statement
B. PreparedStatement可以有效的防止SQL注入
C. PreparedStatement不能用于批量更新的操作
D. PreparedStatement可以存储预编译的Statement,从而提升执行效率
17.表 CLASSES 和表 SCHEDULE 结构如下: (A)
CLASSES:
ID NUMBER(9)
CLASS_NAME VARCHAR2(20)
TEACHER_ID NUMBER(9)
SCHEDULE:
CLASS_TIME DATE
CLASS_ID NUMBER(9)
你建一个视图显示每一课的课名、课时,并按教师ID排序
判断下面语句将返回何种结果
CREATE VIEW class_schedule AS
SELECT as “Name”,
FROM classes c, schedule s
WHERE = ORDER BY teacher_id;
A. 语句创建视图 CLASS_SCHEDULE 且可产生预期结果.
B.“Name”别名有语法错误
C. 语法错误,因为视图不可基于连接查询.
D. 语法错误,因为视图不可包含 ORDER BY 子句.
18.SQL语言中修改表结构的命令是( C)
TABLE
STRUCTURE
TABLE
STRUCTURE
19.下列属于DML语句的是 (BC )
20.从“员工”表的“姓名”字段中找出名字包含“玛丽”的人,哪条select
语句正确:) (D
_'姓名员工 where ='_玛丽 * from'_姓名 ='%玛丽 * from员工 where ' like‘_玛丽% * from员工 where 姓名%玛丽%' where * from
员工姓名 like‘
二、简答题(5+5=10分)1 简述哪些列适合建索引(5)
(5)2写出Oracle数据库语言的分类
三、代码题(12+18=30分) (1)varchar2(20);,创建表employee,字段如下表所示字段统一定义为ID 为主键 ID FIRST_NAME LAST_NAME MGRID SALARY1 rose Tyler 4 1500
2 Matha Jones 4 2200
3 Donna Noble
4 1300
4 Doctor Who 5500
5 Jack Harkness 1 3500
1, 创建该表,并向表中插入下列数据并提交,查询数据;
2, 将3号员工的last_name修改”Tate”,并提交,查询数据
3, 将所有工资少于2000的员工的工资修改为2000(不提交), 查询数据
4, 删除employee表中所有数据(不提交),查询数据;
(2)有如下一张表,请完成一个相对完整的jdbc的注册登录流程。建议分层:util,entity,dao,service层
create table t_user (
uid number(6) primary key,
username varchar(20) not null,
password varchar(20) not null
);