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 ) A.insert B.update C.create D.select
4设置每页显示20行的Sql Plus命令是 (A D) A.set pagesize 20 B.set page 20 C.set size 20 D.set pages 20
5查询当前帐户下有多少个表的sql语句是 (A ) A.select count(*) from user_tables ; B.select count(*) from tables ; C.select count(*) from users ;
D.select count(*) from user_name_tables ;
6 Sql语句select round(45.925,0),trunc(45.925) from dual;执行后, round(45.925,0)和trunc(45.925)的结果分别是 ( B) A.45,45 B.46,45 C.45,46
D.46,46
7、在oracle中,下列函数中能把字符类型数据转换成日期类型数据的函数是 (D ) A.to_char() B.add_months() C.last_day() D.to_date()
8按emp表ename升序排列,下列sql语句正确的是 (AD ) A.select ename , salary from emp order by ename asc ;
B.select ename , salary from emp order by ename desc ;
C.select ename , salary from emp order by salary asc ;
D.select 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. rs.getString(0);
B. rs.getString(\C. rs.getString(1);
D. rs.getString(“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 C.class_name as “Name”, s.class_time FROM classes c, schedule s
WHERE C.id = s.class_id ORDER BY teacher_id;
A. 语句创建视图 CLASS_SCHEDULE 且可产生预期结果. B.“Name”别名有语法错误
C. 语法错误,因为视图不可基于连接查询.
D. 语法错误,因为视图不可包含 ORDER BY 子句.
18. SQL语言中修改表结构的命令是?( C) A.MODIFY TABLE
B.MODIFY STRUCTURE C.ALTER TABLE
D.ALTER STRUCTURE
19.下列属于DML语句的是 (BC ) A.commit B.update C.delete D.create
20. 从“员工”表的“姓名”字段中找出名字包含“玛丽”的人,哪条select语句正确:(D )
A.Select * from员工 where 姓名 =’_玛丽_’ B.Select * from员工 where 姓名 =’%玛丽_’ C.Select * from员工 where 姓名 like‘_玛丽%’ D.Select * from员工 where 姓名 like‘%玛丽%’
二、简答题(5+5=10分)
1 简述哪些列适合建索引(5)
2写出Oracle数据库语言的分类(5)
三、代码题(12+18=30分)
(1)创建表employee,字段如下表所示,字段统一定义为varchar2(20); ID 为主键
ID FIRST_NAME LAST_NAME MGRID SALARY 1 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 );