欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

关系型数据库基础

程序员文章站 2022-06-07 10:15:36
...

嗯 上周五考试题 测试题(笔试) 关系型数据库基础 成都朗沃信息技术有限公司 不定项选择题( 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)

关于HashMapHashtable描述正确的是( )(多选) bcf

a)

HashMapHashtable都是Map的子类

b)

HashMapHashtable都是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 SnoSNAME FROM S WHERE SNAME=′王%

b)

SELECT SnoSNAME FROM S WHERE SNAME LIKE′王%

c)

SELECT SnoSNAME 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)

关于StatementPreparedStatement说法正确的是()(多选)ad

a)

StatementPreparedStatement的父接口

b)

PreparedStatementStatement的父接口

c)

Statement执行效率高

d)

PreparedStatement执行效率高

25)

SQL语言中,条件“BETWEEN 20 AND 30”表示年龄在2030之间,且( )(单选)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语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句INSERTDELETEUPDATE实现哪类功能( )(单选)b

a)

数据查询

b)

数据操纵(DML)

c)

数据定义(DDL)

d)

数据控制(DCL)

28)

JDBC中,要将数据库表记录转化为对象数据时,需要使用()(单选)d

a)

Connection

b)

DriverManager

c)

PreparedStatement

d)

ResultSet

29)

关于ListSetMap特点说法正确的是( )(多选)acd

a)

List元素可以重复,Set元素不可重复

b)

Set元素可以重复,List元素不可重复

c)

Map一个元素放两个对象,而ListSet只放一个对象

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