sql期末考试试题及答案

sql期末考试试题及答案,第1张

mysql> create table Score

-> (Sno char(10),Cno char(10),Grade real,

-> constraint pk foreign key(Sno)

-> references student(Sno),

-> constraint pk1 foreign key(Cno)

-> references Course(Cno));

Query OK, 0 rows affected (001 sec)

2. 增加、修改和删除字段,要求:

(1) 给Student表增加一个memo(备注)字段,类型为Varchar(200)

mysql> alter table student add memo varchar(200);

Query OK, 0 rows affected (025 sec)

Records: 0 Duplicates: 0 Warnings: 0

(2)将memo字段的类型修改为Varchar(300)

mysql> alter table student

-> modify memo varchar(300);

Query OK, 0 rows affected (006 sec)

(3)删除memo 字段

mysql> alter table student drop memo;

Query OK, 0 rows affected (002 sec)

(1)已知表T1中有2行数据,T2中有3行数据,执行SQL语句

“select a from T1 a,T2 b”后,返回的行数为______

A、2行

B、3行

C、5行

D、6行

多表查询没有指定连接条件,会导致笛卡尔积的出现,返回行数等于2张表的行数乘积,返回6行记录

考察:对多表连接、笛卡尔积的理解

答案:A

(2)、已知表T1和T2的字段定义完全相同,T1,T2中各有5条不同的数据,其中T1有2条数据存在于表T2中,语句“select from T1 union select from T2”

返回的行数为_______

A、8行

B、10行

C、3行

D、12行

第二题 UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

考察:UNION 的理解

答案: A

(3)、 已知表T1含有字段ID、CourseID和Score,且数据为

ID CourseID Score

3 1 90

2 1 85

2 2 90

3 2 80

则语句“select id,sum(ScorE) from T1 group by ID”的执行结果为_________

A、 ID sum(ScorE)

—– ———-

3 170

2 175

B、 ID sum(ScorE)

—– ———-

2 175

3 170

C、 ID sum(ScorE)

—– ———-

2 170

3 175

D、 ID sum(ScorE)

—– ———-

3 175

2 170

第三题 GROUP BY 对按照ID字段进行分组,同时对ID相同字段的ScorE进行求和,GROUP by 会自动对结果集进行排序所以答案选B

考察:group by 的理解

答案: B

(4)、电话号码表t_phonebook中含有100万条数据,其中号码字段PhoneNo上创建了唯一索引,且电话号码全部由数字组成,要统计号码头为321的电话号码的数量,下面写法执行速度最慢的是_________

A、 select count() from t_phonebook where phoneno >= ‘321’ and phoneno < ‘321A’

B、 select count() from t_phonebook where phoneno like ‘321%’

C、 select count() from t_phonebook where substring(phoneno,1,3) = ‘321’

A>或者< *** 作符会采用索引查找

B:LIKE通配符在XXX%情况下会应用索引,如果在%xxx%等情况下不会应用索引

答案: C:采用函数处理的字段不能利用索引,例如substr() 这个题好像写成java的函数了

答案: C

(5)、已知表tbl中字段land_ID建有索引,字段cust_id建有唯一索引,下列语句查询逻辑相同,其中执行效率最优的是

A、 SELECT FROM tbl

WHERE land_id > 750

or (cust_id=180 or cust_id=560)

B、 SELECT FROM tbl

WHERE (cust_id=180 or cust_id=560)

or land_id > 750

C、 SELECT FROM tbl WHERE land_id > 750

UNION

SELECT FROM tbl WHERE cust_id = 180

UNION

SELECT FROM tbl WHERE cust_id = 560

D、 SELECT FROM tbl WHERE land_id > 750

UNION

( SELECT FROM tbl WHERE cust_id = 180

UNION ALL

SELECT FROM tbl WHERE cust_id = 560

)

C/D相比较而言,D的执行效率更高一些

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录

采用UNION ALL *** 作符替代UNION,因为UNION ALL *** 作只是简单的将两个结果合并后就返回。

(6)、员工技能表Staffskill结构如下,Staff和Skill字段建有唯一约束

staff VARCHAR2(10),

skill VARCHAR2(10)

哪条语句可以查询同时拥有技能A和技能B的员工

A、 select staff from Staffskill where skill=’A’ OR skill=’B’

B、 select staff from Staffskill where skill=’A’ AND skill=’B’

C、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff

D、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff having count()>1

答案:D

(7)员工表staff表结构如下

staffNo varchar2(10),

Email varchar2(50)

哪一个SQL语句查询出没有E_mail地址的员工号

A、select staffno from Staff where Email = NULL

B、select staffno from Staff where Email <> NULL

C、select staffno from Staff where Email is null

D、select staffno from Staff where Email is not null

答案: C

(8)Oracle数据库启动步骤的顺序为

1Mount 2Open 3Nomount

A、3-1-2

B、2-3-1

C、2-1-3

D、3-2-1

答案:A

(9)存在两个结构相同的数据库表T1(col1,col2,col3)、T2(col1,col2,col3),写出一SQL语句将所有T1数据导入到T2表

A、select col1,col2,col3 from T1 INTO T2 (col1,col2,col3)

B、INSERT T1 (col1,col2,col3) INTO T2(col1,col2,col3)

C、insert into T2 (col1,col2,col3) AS select col1,col2,col3 from T1;

D、insert into T2 (col1,col2,col3) select col1,col2,col3 from T1;

答案: D

10)一个表的字段为varchar2,如果建表时没有指定长度,则默认长度为:

A、1

B、25

C、38

D、255

E、4000

F、建表时varchar2类型字段必须指定长度

答案:F

(11)用TRUNCATE和DELETE语句删除表中数据的区别

A、TRUNCATE命令不记录日志

B、TRUNCATE命令记录日志

C、DELETE命令不记录日志

答案:A

(12)如下查询语句SELECT id_number,100/quantity from inventory如果quantity为空,则查询语句的第二个字段将返回

A、 a space

B、 a null value

C、 a value of 0

D、 a value of 100

E、 the keywork null

答案:B

(13)如下语句:SELECT iid_number,mid_number FROM inventory i,manufacturer m

WHERE imanufacturer_id = mid_number

Order by inventorydescription

执行时是错误的,请问以下措施哪个能够改正这个错误

A 在order by的子句中使用表的别名

B 在where子句中去掉表的别名

C 在where子句中用表名代替表的别名

D 在order by子句中去掉表名,只要字段名称即可

(如果2张表中,不同时存在字段名为description的话,D答案也是正确的)

答案:A

14)A表字段a 类型int中有100条记录,值分别为1至100。如下语句

SELECT a FROM A

WHERE A BETWEEN 1 AND 50

OR (A IN (25,70,95)

AND A BETWEEN 25 AND 75)

则如下哪个值在这个sql语句返回的结果集中

A、30 B、51 C、75 D、95

答案:A

15) 变量v_time = ‘23-MAY-00’,如下那条语句返回值为‘01-JAN-00’

A SELECT ROUND(V_TIME,’DAY’) FROM DUAL;

B SELECT ROUND(V_TIME,’YEAR’) FROM DUAL;

C SELECT ROUND(V_TIME,’MONTH’) FROM DUAL;

D SELECT ROUND(TO_CHAR(V_TIME,’YYYY’)) FROM DUAL;

答案:B

16)关于索引(index)的说法哪些是错误

A、创建索引能提高数据插入的性能

B、索引应该根据具体的检索需求来创建,在选择性好的列上创建索引

C、索引并非越多越好

D、建立索引可使检索 *** 作更迅速

答案: A

(17)指出下面sql语句的错误之处:

select id_number “Part Number”,sum(price) “price” from inventory

where price > 50

group by “Part Number”

order by 2;

A、order by 2

B、from inventory

C、 where price > 50

D、group by “Part Number”

答案:D

(18)如下语句

if v_num > 5 then

v_example := 1;

elsif v_num > 10 then

v_example := 2;

elsif v_num < 20 then

v_example := 3;

elsif v_num < 39 then

v_example := 4;

else v_example := 5;

如果v_num = 37,则v_example的值是多少

A、1 B、2 C、3 D、4 E、5

答案:A

1 .下列说法错误的是( )。

D 上述说法都是错误的。

2 . 从关系中找出满足给定条件的元组的 *** 作称为( )。

A .选择

3 关闭 Access 可以方法不正确的是( )。

D .使用 Ctrl+X 快捷键。

4 .数据库技术是从 20 世纪( )年代中期开始发展的。

A 60

5 .使用 Access 按用户的应用需求设计的结构合理、使用方便、高效的数据库和配套的应用程序系统,属于一种( )。

B 数据库管理系统

6 .二维表由行和列组成,每一行表示关系的一个( )。

D 记录

7 .数据库是( )。

A 以—定的组织结构保存在辅助存储器中的数据的集合。

8 .关系数据库是以( )为基本结构而形成的数据集合。

B.关系模型

一、不定项选择题(共40题,每小题25分,总分100分)

1 数据库管理系统的发展历经了如下那些模型阶段( ACDE )

A 层次模型 B 结构模型 C 关系模型

D 网状模型 E对象模型

2 关系型数据库的核心单元是( B )

A 对象 B 表

C 行 D 列

3 对于关系型数据库来说,表之间存在下面那些关系( ABC )

A 一对一关系 B 一对多关系

C 多对多关系 D 继承关系

4 在SQL中,下面对于数据定义语言(DDL)描述正确的是( D )。

A DDL关心的是数据库中的数据 B 完成数据的增、删、改、查 *** 作

C 控制对数据库的访问 D 定义数据库的结构

5 MySQL是一种( C )数据库管理系统。

A 层次型 B 网络型 C 关系型 D 对象型

6 SQL中,下列 *** 作有语法错误的是( B )

A AGE IS NOT NULL B NOT(AGE IS NULL)

C SNAME=‘王五’ D SNAME=‘王%’

7 SQL中,下列关于创建、管理数据库的 *** 作语句不正确的是( CDE )

A CREATE DATABASE Instant B USE Instant C NEW DATABASE Instant

D Connection Instant E Delete DATEBASE Instant

8 在MySQL中,不存在的数据类型是( F )。

A INT B TEXT C DECIMAL

D VARCHAR E DATETIME F VARCHAR2

9 在MySQL中,下列关于创建数据库表的描述正确的是( C )。

A 在创建表时必须设定列的约束

B 在删除表的时候通过外键约束连接在一起的表会被一同删除

C 在创建表时必须设置列类型

D 通过CREATE TABLE new_t SELECT FROM old_t复制表的同时,表的约束能够一起被复制到新表中

10 根据数据完整性实施的方法,可以将其分为( ACDF )

A 实体完整性 B 表完整性 C域完整性

D 引用完整性 E 记录完整性 F用户自定义完整性

11 下面关于域完整性的方法,不正确的是( A )。

A 主键约束 B 外键约束 C检查约束

D 非空约束 E 默认值

12 下面关于创建和管理索引正确的描述是( C )。

A 创建索引是为了便于全表扫描

B 索引会加快DELETE、UPDATE和INSERT语句的执行速度

C 索引被用于快速找到想要的记录

D 大量使用索引可以提高数据库的整体性能

13 SQL中,“AGE IN(20,22)”的语义是( D )。

A AGE<=22 AND AGE >=20 B AGE <22 AND AGE >20

C AGE =20 AND AGE =22 D AGE =20 OR AGE =22

14 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于( C )

A 实体完整性约束 B 参照完整性约束

C 用户自定义完整性约束 D 关键字完整性约束

15 下面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 根据学号和学科分组,找出每个人考试科数,最后考试次数多的放在前面

16 EMP表如下所示,下面哪些SQL语句的返回值为3:( BD )

EMP

雇员号 雇员名 部门号 工资 

001  张山  02 2000

010  王宏达 01 1200

056  马林生 02 1000

101  赵敏 04

A select count() from emp

B select count(distinct 部门号) from emp

C select count() from emp group by 雇员号

D select count(工资) from emp

17 下面那一项不是SELECT语句对数据的 *** 作:( D )

A 投影 B 联接 C 并 D 级联

18 下面关于SQL数据查询 *** 作描述正确的有:( ABD )

A 投影 *** 作是选择对表中的哪些列进行查询 *** 作

B 使用DISTINCT关键字可以过滤查询中重复的记录

C 在模糊查询中,通配符“%”表示匹配单个字符,而“_”表示匹配零个或多个字符

D 在MySQL中使用LIMIT关键字限制从数据库中返回记录的行数

19 在SQL语言中,条件“BETWEEN 20 AND 30”表示年龄在20到30之间,且( A )。

A 包括20岁和30岁 B 不包括20岁和30岁

C 包括20岁,不包括30岁 D 不包括20岁,包括30岁

20 SQL语言中,删除EMP表中全部数据的命令正确的是( C )。

A delete from emp B drop table emp

C truncate table emp D 没有正确答案

21 有关索引的说法错误的是( AD )

A 索引的目的是为增加数据 *** 作的速度

B 索引是数据库内部使用的对象

C 索引建立得太多,会降低数据增加删除修改速度

D 只能为一个字段建立索引

22 下列哪个关键字在Select语句中表示所有列( A )

A B ALL C DESC D DISTINCT

23 在表中设置外键实现的是哪一类数据完整性( B )

A 实体完整性 B 引用完整性

C 用户定义的完整性 D 实体完整性、引用完整性和用户定义的完整性

24 下面正确表示Employees表中有多少非NULL的Region列的SQL语句是( B )

A SELECT count( ) from Employees

B SELECT count(ALL Region) from Employees

C SELECT count(Distinct Region) from Employees

D SELECT sum(ALL Region) from Employees

25 下面可以通过聚合函数的结果来过滤查询结果集的SQL子句是( C )

A WHERE子句 B GROUP BY子句

C HAVING 子句 D ORDER BY子句

26 t_score(stu_id,sub_id,score),即成绩表(学号,科目编号,成绩)。学生如果某科没有考试,则该科成绩录入null。能够获取各位学生的平均成绩的选项是( A )

A select avg(nvl(socre,0)) from score group by stu_id

B select stu_id,avg(sorce) from score

C select stu_id,avg(score) from score

D select stu_id,sum(score)/count(score) from score

27 若要求查找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 全部

28 若要求“查询选修了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

29 对下面的查询语句描述正确的是( D )

Select StudentID,Name,

(select count() from StudentExam

where StudentExamStudentID = StudentStudentID) as ExamsTaken

from Student

order by ExamsTaken desc

A 从Student表中查找StudentID和Name,并按照升序排列

B 从Student表中查找StudentID和Name,并按照降序排列

C 从Student表中查找StudentID、Name和考试次数

D 从Student表中查找StudentID、Name,并从StudentExam表中查找与StudentID一致的学生考试次数,并按照降序排列

30 下面题基于学生-课程数据库中的三个基本表:

学生信息表:s(sno, sname, sex, age, dept) 主键为sno

课程信息表:c(cno, cname, teacher) 主键为cno

学生选课信息表:sc(sno, cno, grade) 主键为(sno, cno)

“从学生选课信息表中找出无成绩的学生信息”的SQL语句是( C d )

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 =‘ ’

31 当子查询返回多行时,可以采用的解决办法是( C )。

A 使用聚合函数 B Where条件判断

C 使用IN运算符 D 使用Group by进行分组

32 下面关于在子查询中使用运算符描述不正确的是( D )。

A 使用IN运算符用于查找字段值属于某一组值的行

B 使用Exists运算符用于测试子查询是否返回行,如果返回其值就为真

C 使用ALL运算符用于测试子查询结果集的所有行是否满足指定的条件

D 使用Any运算符用于测试子查询结果集中的一行或多行不满足指定的条件

33 下面关于组合查询描述不正确的是( D )。

A 从一个表中获取的数据必须和其它表中的数据具有相同的列数

B 两个表中相对应的列必须具有相同的数据类型

C UNION的结果集列名与第一个SELECT语句的结果集中的列名相同

D UNION的结果集列名与第二个SELECT语句的结果集中的列名相同

E UNION ALL运算符返回每个数据集的所有成员

34 下面关于联接的描述正确的是( A )。

A 内联接使用比较运算符根据每个表共有的列值来匹配两个表中的行

B 左外联接结果集包含从右边的表返回的所有行

C 右外联接结果集包含从左边的表返回的所有行

D 全外联接返回左表和右表中的所有匹配的行

35 下面关于数据库设计过程正确的顺序描述是( C )。

A 需求收集和分析、逻辑设计、物理设计、概念设计

B 概念设计、需求收集和分析、逻辑设计、物理设计

C 需求收集和分析、概念设计、逻辑设计、物理设计

D 需求收集和分析、概念设计、物理设计、逻辑设计

36 ER图属于下面哪一种数据库设计模型( B )。

A 物理数据模型

B 概念数据模型

C 逻辑数据模型

D 需求模型

37 非主键必须完全依赖于主键列,这属于下列范式的内容( BC )

A 1NF B 2NF C 3NF D 都没有的

38 如果一个字段的数据必须来源另一个表的主键,那么要在这个字段上建立( B )。

A PK(主键) B FK(外键) C UK(唯一键) D 复合主键

39 根据三个范式的定义,下面哪个选项的设计是正确的( C )

职工编号 姓名 工种 车间 车间主任

1001 李宁 车工 一车间 周杰

1002 王海 铣工 一车间 周杰

1003 赵亮 钳工 二车间 吴明

1001 李宁 钳工 二车间 吴明

A 员工表、工种表、车间表

B 员工表、工种表、车间表、车间主任表

C 员工表、工种表、车间表、员工工种表、员工车间表

D 以上设计均不正确

40 下列说法中,哪些是正确的( BD )

A RDBMS是数据库管理系统的简称

B 各行记录都不能重复,是第二范式要求的

C 在数据库设计中一定要满足第三范式

D 索引越多,查询越快,数据更新越慢

select fph from mz_brsf

whereje > 200;

2select sum(je) from mz_brsf

where sfsj >=  '2012-01-01'

and sfsj < '2012-02-01';

3delete from mz_bfsf

where cfh is null;

4update mz_bfsf

set substr(sfsj,1,4) =2013

where ks ='内科' ;

5 select ks, sum(je) from mz_bfsf

group by ks

having sum(je) >500;

6select top 2 ys,sum(je)

from mz_bfsf

group by ys

order by sum(je) desc;

7update  a

set azc = bzc

from mz_bfsf a,mz_brxx b

where  ays = bys

以上就是关于sql期末考试试题及答案全部的内容,包括:sql期末考试试题及答案、IBM认证数据库考试试题、二级数据库试卷(3)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9314902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存