嗯 上周五考试题 测试题(笔试) 关系型数据库基础 成都朗沃信息技术有限公司 不定项选择题( 30 题,每题 2.5 分,满分 75 分) 1) 关系型数据库的核心单元是?(单选) b a) 对象 b) 表 c) 行 d) 列 2) 对于关系型数据库来说,表之间存在下面那些关系()
嗯 上周五考试题
测试题(笔试)
关系型数据库基础
成都朗沃信息技术有限公司
不定项选择题( 30 题,每题 2.5 分,满分 75 分)
1)
关系型数据库的核心单元是?(单选) b
a)
对象
b)
表
c)
行
d)
列
2)
对于关系型数据库来说,表之间存在下面那些关系()。(多选) abc
a)
一对一关系
b)
一对多关系
c)
多对多关系【需中间表描述】
d)
继承关系
3)
在 SQL 中,下面对于数据定义语言( DDL )描述正确的是(单选) d
a)
DDL 是对数据的查询操作
b)
完成数据的增、删、改、查操作
c)
控制对数据库的访问
d)
定义数据库的结构
4)
下面哪些属于 mysql 中存在的数据类型()。(多选) abde
a)
Float 【记到起】
b)
datetime
c)
String
d)
char
e)
int
5)
根据数据完整性实施的方法,可以将其分为 ( ) 。(多选) acdf
a)
实体完整性
b)
表完整性
c)
域完整性
d)
引用完整性【主表、从表】
e)
记录完整性
f)
用户自定义完整性
6)
Collection 有两个子接口,分别是()。(多选) ad
a)
List
b)
ArrayList
c)
Map
d)
Set
7)
如果一个字段的数据必须来源另一个表的主键 , 那么要在这个字段上建立( )。(单选) b
a)
PK( 主键 )
b)
FK( 外键 )
c)
UK( 唯一键 )
d)
复合主键
8)
当子查询返回多行时,可以采用的解决办法是( )。(单选) c
a)
使用聚合函数
b)
Where 条件判断
c)
使用 IN 运算符
d)
使用 Group by 进行分组
【引申,若用 ,则后面只能返回单行】
9)
下面题基于学生 - 课程数据库中的三个基本表:
学生信息表: s(sno, sname, sex, age, dept) 主键为 sno
课程信息表: c(cno, cname, teacher) 主键为 cno
学生选课信息表: sc(sno, cno, grade) 主键为 (sno, cno)
“ 从学生选课信息表中找出无成绩的学生信息 ” 的 SQL 语句是( ) (单选) c
a)
SELECT * FROM sc WHERE grade=NULL
b)
SELECT * FROM sc WHERE grade IS ‘ ’
c)
SELECT * FROM sc WHERE grade IS NULL
d)
SELECT * FROM sc WHERE grade =‘ ’
10)
下面 SQL 是来源于考试成绩表 t_exam :学号 stuId 、科目编号 subId 、成绩 score, 考试日期 :ex_date 。有以下 sql, 它表示的意思是:(单选) b
Select stu_id,subId,count(*) as x
From t_exam
Where ex_date=’2008-08-08’
Group stu_id,subId
Having count(*)>1
Order by x desc
a)
找出’ 2008-08-08 ’这天某科考试 2 次及以上的学生记录
b)
找出’ 2008-08-08 ’这天 , 某科考试 2 次及以上的学生记录 , 考试次数多的放在前面
c)
找出’ 2008-08-08 ’这天 , 某科考试 2 次及以上的学生记录 , 考试次数少的放在前面
d)
根据学号和学科分组 , 找出每个人考试科数 , 最后考试次数多的放在前面
11)
要打印出list储存的内容,以下语句正确的是()(多选) ab
ArrayList list=new ArrayList();
list.add("a");
list.add("b");
Iterator it=list.iterator();【Iterator:迭代器】
a)
while(it.hasNext())
System.out.println(it.next());
b)
for(int i=0;i
System.out.println(list.get(i));
c)
while(list.hasNext())
System.out.println(list.next());
d)
for(int i=0;i
System.out.println(it(i));
12)
EMP 表如下所示,下面哪些 SQL 语句的返回值为 3 :(多选) bd
EMP
雇员号 雇员名 部门号 工资
001 张山 02 2000
010 王宏达 01 1200
056 马林生 02 1000
101 赵敏 04 (null)
a)
select count(*) from emp
b)
select count(distinct 部门号 ) from emp
c)
select count(*) from emp group by 雇员号
d)
select count( 工资 ) from emp
13)
关于 HashMap 和 Hashtable 描述正确的是 ( )( 多选 ) bcf
a)
HashMap 和 Hashtable 都是 Map 的子类
b)
HashMap 和 Hashtable 都是 Map 的实现类
c)
HashMap 允许空键和空值, Hashtable 不允许
d)
Hashtable 允许空键和空值, HashMap 不允许
e)
HashMap 线程安全, Hashtable 线程不安全
f)
HashMap 线程不安全, Hashtable 线程安全
14)
下面关于 SQL 数据查询操作描述正确的有:( ) ( 多选 ) abd
a)
投影操作是选择对表中的哪些列进行查询操作
b)
使用 DISTINCT 关键字可以过滤查询中其它重复的记录
c)
在模糊查询中,通配符“ % ”表示匹配单个字符,而“ _ ”表示匹配零个或多个字符
d)
在 MySQL 中使用 LIMIT 关键字限制从数据库中返回记录的行数
15)
下面关于域完整性【列】的方法,不正确的是(单选) a
a)
主键约束
b)
检查约束
c)
非空约束
d)
默认值
16)
若要求查找 S 表中,姓名的第一个字为 ' 王 ' 的学生学号和姓名。下面列出的 SQL 语句中,哪个是正确的()(单选) b
a)
SELECT Sno , SNAME FROM S WHERE SNAME= ′王 % ′
b)
SELECT Sno , SNAME FROM S WHERE SNAME LIKE ′王 % ′
c)
SELECT Sno , SNAME FROM S WHERE SNAME LIKE ′王 _ ′
d)
全部
17)
下列哪个关键字在Select语句中表示所有列( )(单选)a
a)
*
b)
all
c)
desc
d)
DISTINCT
18)
下面可以通过聚合函数的结果来过滤查询结果集的 SQL 子句是( )。
( 单选 ) c
a)
WHERE 子句
b)
GROUP BY 子句
c)
HAVING 子句
d)
ORDER BY 子句
19)
下面有关JDBC说法正确的是:()(多选)ab
a)
JDBC就是一套接口,由SUN公司提出,各厂商实现
b)
使用JDBC连接不同数据库时调用的接口是相同的
c)
使用JDBC连接不同数据库时连接的字符串是相同的
d)
由于数据库厂商不一致,JDBC在连接不同的数据库时使用的接口不是一致的。
20)
若要求“查询选修了 3 门以上课程的学生的学生号”,正确的 SQL 语句是( )(单选) b
a)
SELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*)> 3
b)
SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*)> 3
c)
SELECT Sno FROM SC ORDER BY Sno WHERE COUNT(*)> 3
d)
SELECT Sno FROM SC ORDER BY Sno HAVING COUNT(*)> 3
21)
有关索引的说法正确的是( )(多选) bc
a)
索引的目的是为增加数据操作的速度
b)
索引被用于优化查询
c)
索引建立得太多,会降低数据增加、删除、修改速度
d)
索引建立越多查询速度越快。
22)
SQL中,“AGE IN(20,22)”的语义是( )。(单选) d
a)
AGE =20
b)
AGE 20
c)
AGE =20 AND AGE =22
d)
AGE =20 OR AGE =22
23)
SQL 语言中,删除 EMP 表中全部数据的命令正确的是( )。(多选) cd
a)
delete * from emp
b)
drop table emp 【全删没了,表都没了,题意是保留数据结构】
c)
truncate table emp
d)
delete from emp
24)
关于 Statement 和 PreparedStatement 说法正确的是()(多选) ad
a)
Statement 是 PreparedStatement 的父接口
b)
PreparedStatement 是 Statement 的父接口
c)
Statement 执行效率高
d)
PreparedStatement 执行效率高
25)
在 SQL 语言中,条件“ BETWEEN 20 AND 30 ”表示年龄在 20 到 30 之间,且( )(单选) a
a)
包括 20 岁和 30 岁
b)
不包括 20 岁和 30 岁
c)
包括 20 岁,不包括 30 岁
d)
不包括 20 岁,包括 30 岁
26)
有关 SQL 注入 , 说法正确的有:( )(多选) bd
a)
SQL 注入就是通过工具反复猜登录的用户名和密码 , 直到破解。
b)
SQL 注入指的是在 sql 加入特殊命令 , 从而达到破坏数据库的效果。
c)
Statement 可以防止 SQL 注入
d)
PreparedStatement 可以防止 SQL 注入
27)
SQL 语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句 INSERT 、 DELETE 、 UPDATE 实现哪类功能( )(单选) b
a)
数据查询
b)
数据操纵 (DML)
c)
数据定义 (DDL)
d)
数据控制 (DCL)
28)
在 JDBC 中,要将数据库表记录转化为对象数据时,需要使用()(单选) d
a)
Connection
b)
DriverManager
c)
PreparedStatement
d)
ResultSet
29)
关于 List 、 Set 、 Map 特点说法正确的是( )(多选) acd
a)
List 元素可以重复, Set 元素不可重复
b)
Set 元素可以重复, List 元素不可重复
c)
Map 一个元素放两个对象,而 List 和 Set 只放一个对象
d)
Map 元素键不可重复。
e)
Map 元素键可以重复。
30)
主键约束包括( )(多选) ac
a)
非空
b)
必须使用自动增长
c)
值不能重复
d)
只能用 int 类型
书写以下 SQL 语句(共 5 题,每题 5 分,满分 25 分)
有员工表 :employee(e_id,e_name,e_date,e_sex,d_id)
有部门表 dept(d_id,d_name)
1. 为员工表的 d_id 增加外键约束。
Alter table employee add contraint fk_em foreign key(d_id) references dept(d_id)
2. 增加一条如下记录:张三, 2008-1-2 参工,分配到 01 部门,工号使用自动编号。
insert into employee(e_name,e_date,d_id) values(' 张三 ','2008-01-02',1);
3. 将所有没有性别的人员性别更新为“男”。
Update employee set e_sex=' 男 ' where e_sex is null;
4. 请统计各部门的员工数。
Select count(*) from dept d left join employee e on e.d_id=d.d_id group by d.d_id;
5. 查询各部门员工人数超过 3 人及以上部门编号和名称。
Select d.d_id,d.d_name from employee e join dept d on e.d_id=d.d_id group by d.d_id having count(*)>3