数据库理论习题五(123道题-含答案)

目录:

一:单项选择题(112道题)

二:多项选择题(11道题)


一:单项选择题(112道题)

1.使用SELECT语句随机地从表中挑出指定数量的行,可以使用的方法是(      )

A.在LIMIT子句中使用RAND()函数指定行数,并用ORDER BY子句定义一个排序规则

B.只要使用LIMIT子句定义指定的行数即可,不使用ORDER BY子句

C.只要在ORDER BY子句中使用RAND()函数,不使用LIMIT子句

D.在ORDER BY子句中使用RAND()函数,并用LIMIT子句定义行数

答案:D

Limit  5:输出查询结果集的前5行

Limit   1,3:输出查询结果集从第2行开始的连续3行记录

 

2.例如数据库中有A表,包括学生,学科,成绩三个字段 , 数据库结构为

学生     学科     成绩

张三     语文     60

张三     数学     100

李四     语文     70

李四     数学     80

李四     英语     80

如何统计最高分>80的学科(      )

A.SELECT MAX(成绩)  FROM A GROUP BY学科  HAVING MAX(成绩)>80;

B.SELECT学科  FROM A GROUP BY学科  HAVING成绩>80;

C.SELECT学科  FROM A GROUP BY学科  HAVING MAX(成绩)>80;

D.SELECT学科  FROM A GROUP BY学科 WHERE MAX(成绩)>80;

答案:C

 

3.统计每个部门中人数(      )

A.SELECT SUM(ID) FROM EMP GROUP BY DEPTNO;

B.SELECT SUM(ID) FROM EMP ORDER BY DEPTNO;

C.SELECT COUNT(ID) FROM EMP ORDER BY DEPTNO;

D.SELECT COUNT(ID) FROM EMP GROUP BY DEPTNO;

答案:D

 

4.例如数据库中有A表,包括学生,学科,成绩三个字段 , 数据库结构为

学生     学科     成绩

张三     语文     80

张三     数学     100

李四     语文     70

李四     数学     80

李四     英语     80

如何统计每个学科的最高分(      )

A.select 学生,max(成绩) from A group by 学生;

B.select 学科,max(成绩) from A group by学科;

C.select 学科,max(成绩) from A order by学生;

D.select 学生,max(成绩) from A group by 学科;

答案:B

 

5.查找条件为:姓名为NULL的记录(      )

A.WHERE NAME NULL

B.WHERE NAME IS NULL

C.WHERE NAME=NULL

D.WHERE NAME ==NULL

答案:B

 

6.条件“IN(20,30,40)”表示(      )

A.年龄在20到40之间

B.年龄在20到30之间

C.年龄是20或30或40

D.年龄在30到40之间

答案:C

 

7.SQL语句中的条件用以下哪一项来表达(      )

A.THEN

B.WHILE

C.WHERE

D.IF

答案:C

 

8.更新数据表中的记录用以下哪一项(      )

A.DELETE

B.ALTRE

C.UPDATE

D.SELECT

答案:C

 

9.返回字符串长度的函数是(      )

A.len()

B.length()

C.left()

D.long()

答案:B

 

10.从数据表中查找记录用以下哪一项(      )

A.UPDATE

B.FIND

C.SELECT

D.CREATE

答案:C

 

11.SELECT语句的完整语法较复杂,但至少包括的部分是(      )

A.仅SELECT

B.SELECT,FROM

C.SELECT,GROUP

D.SELECT,INTO

答案:B

 

12.下列说法错误的是(      )

A.GROUP BY 子句用来分组 WHERE 子句的输出

B.WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。

C.聚合函数需要和group by 一起使用

D.HAVING 子句用来从FROM的结果中筛选行

答案:D

 

13.条件年龄BETWEEN 15 AND 35表示年龄在15至35之间,且(      )

A.不包括15岁和35岁

B.包括15岁但不包括35岁

C.包括15岁和35岁

D.包括35岁但不包括15岁

答案:C

 

14.拼接字段的函数是(      )

A.SUBSTRING()

B.TRIM()

C.SUM()

D.CONCAT()

答案:D

 

15.按照姓名升序序排列(      )

A.ORDER BY NAME ASC

B.ORDER BY  ASC NAME

C.ORDER BY NAME DESC

D.ORDER BY DESC NAME

答案:A

 

16.有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄, C#是课程号,CNAME是课程名称。要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是( )。

A.SAGE>=20 and CNAME=’ ACCESS’

B.S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’

C.SAGE in>=20 and CNAME in ‘ACCESS’

D.S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’

答案:D

 

17.以下语句不正确的是(      )

A.select * from emp;

B.select ename,hiredate,sal from emp;

C.select * from emp order deptno;

D.select * from  emp  where deptno=1 and sal<300;

答案:C

 

18.delete from employee语句的作用是(      )

A.删除当前数据库中整个employee表,包括表结构

B.删除当前数据库中employee表内的所有行

C.由于没有where子句,因此不删除任何数据

D.删除当前数据库中employee表内的当前行

答案:B

 

19.以下哪项用于左连接(      )

A.JOIN

B.RIGHT JOIN

C.LEFT JOIN

D.INNER JOIN

答案:C

 

20.按照班级进行分组(      )

A.ORDER BY CLASSES

B.DORDER CLASSES

C.GROUP BY CLASSES

D.GROUP CLASSES

答案:C

 

21.以下哪项用来排序(      )

A.ORDERED BY

B.ORDER BY

C.GROUP BY

D.GROUPED BY

答案:B

 

22.以下聚合函数求个数的是(      )

A.AVG

B.SUM

C.MAX

D.COUNT

答案:D

 

23.查找数据表中的记录用以下哪一项(      )

A.ALTRE

B.UPDATE

C.SELECT

D.DELETE

答案:C

 

24.以下删除记录正确的(      )

A.delete from emp where name='dony';

B.Delete * from emp where name='dony';

C.Drop from emp where name='dony';

D.Drop * from emp where name='dony';

答案:A

 

25.有三个表,它们的记录行数分别是10行、2行和6行,三个表进行交叉连接后,结果集中共有(      )行数据

A.18

B.26

C.不确定

D.120

答案:D

 

26.从GROUP BY分组的结果集中再次用条件表达式进行筛选的子句是(      )

A.FROM

B.ORDER BY

C.HAVING

D.WHERE

答案:C

 

27.以下插入记录正确的(      )

A.insert into emp(ename,hiredate,sal) values (value1,value2,value3);

B.insert into emp (ename,sal)values(value1,value2,value3);

C.insert into emp (ename)values(value1,value2,value3);

D.insert into emp (ename,hiredate,sal)values(value1,value2);

答案:A

 

28.在SELECT语句中,使用关键字(      )可以把重复行屏蔽

A.TOP

B.ALL

C.UNION

D.DISTINCT

答案:D

 

29.以下聚合函数求平均数的是(      )

A.COUNT

B.MAX

C.AVG

D.SUM

答案:C

 

30.返回当前日期的函数是(      )

A.curtime()

B.adddate()

C.curnow()

D.curdate()

答案:D

 

31.用来插入数据的命令是(      ),用于更新的命令是(      )

A.INSERT,UPDATE

B.CREATE,INSERT INTO

C.DELETE,UPDATE

D.UPDATE,INSERT

答案:A

 

32.SELECT COUNT(SAL) FROM EMP GROUP BY DEPTNO;意思是(      )

A.求每个部门中的工资

B.求每个部门中工资的大小

C.求每个部门中工资的综合

D.求每个部门中工资的个数

答案:D

 

33.以下表达降序排序的是(      )

A.ASC

B.ESC

C.DESC

D.DSC

答案:C

 

34.删除经销商1018的数据记录的代码为(      ) from distributors where distri_num=1018

A.drop table

B.delete *

C.drop column

D.delete

答案:D

 

35.按照姓名降序排列(      )

A.ORDER BY DESC NAME

B.ORDER BY NAME DESC

C.ORDER BY NAME ASC

D.ORDER BY  ASC NAME

答案:B

 

36.以下哪项用来分组(      )

A.ORDER BY

B.ORDERED BY

C.GROUP BY

D.GROUPED BY

答案:C

 

37.下列(      )不属于连接种类

A.左外连接

B.内连接

C.中间连接

D.交叉连接

答案:C

 

38.以下语句错误的是(      )

A. alter table emp delete column addcolumn;

B. alter table emp modify column addcolumn char(10);

C.alter table emp change addcolumn  addcolumn int;

D. alter table emp add column addcolumn int;

答案:A

 

39.组合多条SQL查询语句形成组合查询的操作符是(      )

A.SELECT

B.ALL

C.LINK

D.UNION

答案:D

 

40.若用如下的SQL语句创建了一个表SC:(      )

CREATE TABLE SC (S# CHAR(6) NOT NULL,C# CHAR(3) NOT NULL,SCORE INTEGER,NOTE CHAR(20));向SC表插入如下行时,( )行可以被插入 。

A.(NULL,’103’,80,’选修’)

B.(’200823’,’101’,NULL,NULL)

C.(’201132’,NULL,86,’ ’)

D.(’201009’,’111’,60,必修)

答案:B

 

41.在SQL语言中,子查询是( ) 。

A.选取单表中字段子集的查询语句

B. 选取多表中字段子集的查询语句

C.返回单表中数据子集的查询语言

D.嵌入到另一个查询语句之中的查询语句

答案:D

 

42.向数据表中插入一条记录用以下哪一项(      )

A.CREATE

B.INSERT

C.SAVE

D.UPDATE

答案:B

 

43.SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。

其中最重要的,也是使用最频繁的语句是(   )。 

A.UPDATE

B.SELECT

C.DELETE

D.INSERT

答案:B

 

44.查找条件为:姓名不是NULL的记录(      )

A.WHERE NAME ! NULL

B.WHERE NAME NOT NULL

C.WHERE NAME IS NOT NULL

D.WHERE NAME!=NULL

答案:C

 

45.以下聚合函数求数据总和的是(      )

A.MAX

B.SUM

C.COUNT

D.AVG

答案:B

 

46.在SQL语句中,与表达式sno NOT IN("s1","s2")功能相同的表达式是()

A)  sno="s1" AND sno="s2"

B  sno!="s1" OR sno!="s2"

C)   sno="s1" OR sno="s2"   

D)  sno!="s1" AND sno!="s2"

【解析】原语句意为sno不为S1和 s2的任一个。A语句有误,sno不可能同时等于s1和s2的,错误。B的意思为sno不等于s1或s2,可等于其中一个,与原语句语意不一样。C为sno等于s1或s2,也原语句意不一样。D为sno不能等于s1和s2的任一个,与原语句一样。

答案D。

 

47.SQL中修改表结构的语句是

A)  MODIFY TABLE

B)  MODIFY STRUCTURE

C)  ALTER TABLE

D)  ALTER STRUCTURE

解析】SQLK中用ALTER TABLE允许你修改一个现有表的结构。Visual FoxPro 中用MODIFY STRUCTURE修改表结构。

答案C。

 

48.在MySQL中,使用关键字AUTO_INCREMENT设置自增属性时,要求该属性列的数据类型是

A)  INT  

B)  DATETIME

C)  VARCHAR  

D)  DOUBLE

解析】Auto-increment 会在新记录插入表中时生成一个唯一的数字,一个表只能有一个AUTO_INCREMENT属性,且该属性必须为主键的一部分。AUTO_INCREMENT属性可以是任何整数类型(tinyint,smallint,int,bigint等)。

答案A

 

49.在使用INSERT语句插入数据时,正确的使用形式不包括

A)  INSERT…VALUES语句

B)  INSERT…SELECT语句

C)  INSERT… WHERE语句

D)  INSERT…SET语句

【解析】insert…values为一般常用的插入数据,A选项正确。Insert…select 常用于表复制式插入,B对。where用于条件地从表中选取数据,不用于insert语句中。C错。Insert…set适合插入单行,D对。

答案C。

用INSERT…SET语句插入数据的命令格式

INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;

 

50.SQL中,不能创建索引的语句是()

A)  CREATE TABLE

B)  ALTER TABLE

C)  CREATE INDEX  

D)  SHOW INDEX

解析】create table创建表中可以建索引,A对。Alter table改变表的结构中可建索引,B对。Create index 为创建索引语句,C对。SHOW INDEX用于返回表索引信息,不能用于创建索引。

答案D。

 

51.学生表student如下所示:

学号       姓名        所在系编号       总学分

021        林山            02             32

026        张宏            01             26

056        王林            02             22

101        赵松            04            NULL

下面SQL语句中返回值为3的是()

A)  SELECT COUNT(*) FROM student;

B)  SELECT COUNT(所在系编号) FROM student;

C)  SELECT COUNT(*) FROM student GROUP BY 学号;

D)  SELECT COUNT(总学分) FROM student;

答案C。

 

52.下面SQL语句中返回值为3的是()

A)  SELECT COUNT(*) FROM student;

B)  SELECT COUNT(所在系编号) FROM student;

C)  SELECT COUNT(*) FROM student GROUP BY 学号;

D)  SELECT COUNT(总学分) FROM student;

解析】A返回4;B返回4;C返回4四个1;D返回3。

答案D。

 

53.以下关于PRIMARY KEY和UNIQUE的描述中,错误的是()

A)  UNIQUE约束只能定义在表的单个列上

B)  一个表上可以定义多个UNIQUE,只能定义一个PRIMARY KEY

C)  在空值列上允许定义UNIQUE,不能定义PRIMARY KEY

D)  PRIMARY KEY和UNIQUE都可以约束属性值的唯一性

【解析】UNIQUE可为空,可以在一个表里的一个或多个字段上定义,A错。主关键字(primary key)是一种唯一关键字,表定义的一部分,一个表只能有一个,且不可为空,B、C对。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。D对。

答案A。

 

54.在MySQL中创建视图时,WITH CHECK OPTION 子句的作用是()

A)  对于可更新视图,保证更新、插入或删除的行要满足视图定义中的谓词条件

B)  使用户能从多种角度看待同一数据

C)  防止通过视图插入或更新行

D)  去掉基本表的某些行和某些列

【解析】WITH CHECK OPTION表示对视图进行UPDATE INSERT DELETE操作时,要保证操作的数据满足视图定义的谓词条件,也就是视图子查询中的WHERE子句的条件。即数据的改变,不能超出WITH CHECK OPTION所约束的范围。B、C、D错。

答案为A

 

55.查看触发器内容的语句是()

A)  SHOW TRIGGERS;

B)  SELECT * FROM information_schema;

C)  SELECT * FROM TRIGGERS;

D)  SELECT * FROM TRIGGER;

解析】答案A。

 

56.在MySQL中,存储过程可以使用()

A)  局部变量  

B)  用户变量

C)  系统变量

D)  以上皆可以使用

【解析】存储过程可用使用局部变量、用户变量、系统变量。

答案D。

 

57.把对Student表和Course表的全部操作权授予用户User1和User2的语句是()

A)  GRANT All ON Student, Course TO User1, User2;

B)  GRANT Student, Course ON All TO User1, User2;

C)  GRANT All TO Student, Course ON User1, User2;

D)   GRANT All TO User1, User2 ON Student, Course;

解析】表操作权授权给用户的语法:

    GRANT <权限>[,<权限>]...

        [ON <对象类型> <对象名>]

        TO <用户>[,<用户>]...

        [WITH GRANT OPTION];

On后面跟表名student、course;To后面跟用户User1,User2。

答案A。

 

58.设有学生表student,包含的属性有学号sno、学生姓名sname、性别sex、年龄age、所在专业smajor。下列语句正确的是()

A)  SELECT sno, sname FROM student  ORDER BY sname

     Union

     SELECT sno, sname FROM student WHERE smajor='CS';

B)    SELECT sno, sname FROM student WHERE sex='M'

     Union

     SELECT sno, sname, sex FROM student WHERE smajor='CS';

C)    SELECT sno, sname FROM student WHERE sex='M' ORDER BY sname

     Union

     SELECT sno, sname FROM student WHERE smajor='CS';

D)  SELECT sno, sname FROM student WHERE sex='M'

     Union

SELECT sno, sname FROM student WHERE smajor='CS';

解析】使用union,两条查询语句的字段个数和类型必须一致,B选项错。Union中不能使用order by,A、C错。

答案D

 

59.在MySQL中,要删除某个数据表中所有用户数据,不可以使用的命令是()

A)  DELETE

B)  TRUNCATE

C)  DROP

【解析】delete常用于数据删除;TRUNCATE TABLE将删除表中的所有记录;DROP语句,删除索引、表和数据库。

答案C。

 

60.设有客户表customers(id, name, tel),各字段的含义分别是客户编号、客户姓名和客户联系电话,其中id字段设置为AUTO_INCREMENT属性,且当前表中id字段最大值为22306。若此刻执行语句"INSERT INTO customers VALUES(22500,'李明',87556655);"之后,接着执行语句"INSERT INTO customers VALUES(0,'张良',87523012);",

则此时该表中"张良"的客户编号是()

A)  22501

B)  22500

C)  0  

D)  22308

解析】Auto-increment 会在新记录插入表中时生成一个唯一的数字,此数字是原有的最大数字(22500)加1,即22501。

答案A。

 

61.以下关于使用ALTER TABLE 命令的叙述中,错误的是()

A)  在ALTER TABLE命令中使用MODIFY能够更改字段名

B)  ALTER TABLE命令能够更改字段的默认值

C)  ALTER TABLE命令能够删除表中的字段

D)  ALTER TABLE命令能够更改表名

解析】ALTER TABLE命令中使用MODIFY ,用于修改某些列的数据类型。A错。ALTER TABLE 语句用于在已有的表中添加、修改或删除列,也可改字段的默认值,改表名。B、C、D正确。

答案A

 

1.添加列

ALTER TABLE 表名

ADD  [COLUMN] 字段名  数据类型

2.修改字段名

alter table 表名 change [column] 旧字段名  新字段名 新数据类型;

3.修改列的数据类型及位置

alter table 表名  

modify [COLUMN] 字段1 新数据类型

4.删除列

ALTER TABLE 表名

DROP  [COLUMN]  列名;

5.修改表名

alter table 旧表名 rename to 新表名;

 

62.要将员工表tb_emp中的年龄字段age更名为出生年份birth,下列语句中正确的是()

A)  ALTER TABLE tb_emp CHANGE COLUMN age birth YEAR(4);

B)  ALTER TABLE tb_emp ADD COLUMN birth YEAR(4);

C)  ALTER TABLE tb_emp ALTER COLUMN age birth YEAR(4);

D)  ALTER TABLE tb_emp MODIFY COLUMN age birth YEAR(4)

解析】语法alter table  tablename chang  old_field_name  new_field_name  old_type; 改字段名用关键字change,B、C、D皆错。

答案A。

 

63.下列关于表和视图的叙述中错误的是()

A)  表和视图上都可以创建索引

B)  视图可以和表一起使用

C)  表和视图的数据都可以进行更新操作,但视图的更新受限

D)  表和视图都可以使用SQL语句进行查询

解析】答案A。

 

64.当数据库出现故障时,下列关于数据库恢复的叙述中错误的是()

A)  数据库系统提供的恢复策略,可自动对数据库进行恢复,无需人工干预

B)  数据库恢复是以数据库备份为基础,如果数据库没有备份则无法恢复

C)  对数据库进行恢复时,应将最新的数据库副本加载到系统

D)  进行数据库恢复操作时,先执行一些系统安全性检查

【解析】数据库出现故障时,需人工干预恢复,A错。数据库没有备份,则没有恢复的依据,B对。数据库恢复用最新的备份数据,C对。恢复前要先进行安全性检查,D对。

答案A

 

65.在MySQL中,使用mysqldump并以root用户(密码"123")备份数据库mysql1和mysql2,以下正确的命令是()

A)  mysqldump -u root -p123 --databases mysql1 mysql2 > c:\backup\data.sql

B)  mysqldump -u root -p 123 --databases mysql1 mysql2 > c:\backup\data.sql

C)  mysqldump -u root -p123 --databases mysql1 mysql2 < c:\backup\data.sql

D)  mysqldump -u root -p123 --database mysql1 mysql2 < c:\backup\data.sql

【解析】 B错,-p与密码123之间不能有空格,CD错,备份应该用>符号,

答案A。

 

66.下列关于数据库的叙述中,错误的是()

A)  数据库中只保存数据

B)  数据库中的数据具有较高的数据独立性

C)  数据库按照一定的数据模型组织数据

D)  数据库是大量有组织、可共享数据的集合

【解析】数据库是收集数据文件的仓库或容器,可保存数据,图片等,A错。数据库特点之一就是数据的独立性,B对。数据库是按特定模型建立,C对。数据库实现数据共享、且有组织性,D对。

答案A。

 

67.DBS的中文含义是()

A)  数据库系统

B)  数据库管理员

C)  数据库管理系统

D)  数据定义语言

解析】Database System,A对。数据库管理员(Database Administrator,简称DBA);数据管理系统( Data Base Management Systems ,DBMS)数据定义语言 (Data Definition Language, DDL)。

答案A。

 

68.下列关于数据库的叙述中,不准确的是()

A)  数据库中存放的对象是数据表

B)  数据库是存放数据的仓库

C)  数据库是长期存储在计算机内的、有组织的数据集合

D)  数据库中存放的对象可为用户共享

【解析】数据库中存放的对象是各种数据,A错。数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,实现数据共享是其特点之一。B、C、D对。

答案A。

 

69.设有学生表student,包含的属性有学号sno、学生姓名sname、性别sex、年龄age、所在专业smajor。基于student表建立如下视图,其中可以进行数据更新的是()

A)    CREATE VIEW V1

     AS

     SELECT sno,sname FROM student;

B)       CREATE VIEW V2(major)

     AS

     SELECT DISTINCT(smajor) FROM student;

C)    CREATE VIEW V3(major,scount)

     AS

     SELECT smajor,COUNT(*) FROM student GROUP BY smajor;

D)   CREATE VIEW V4(sname,sage)

     AS

     SELECT sname,age+5 FROM student where sno='101';

【解析】在视图中包含计算或分组或聚合的话,就不允许修改,A对。B、C、D错。

答案A。

 

70.现有如下命令:

mysql –u root -puser

以下关于上述命令的叙述中,错误的是()

A)  没有写明主机地址,命令执行有误  

B)  用户名是root

C)密码是user

D)该命令是连接mysql服务器的命令

解析】

在当前主机上使用,不用写明地址,A对。命令中root是用户名、user是用户密码,该命令是连接mysql数据库。B、C、D对。

答案A。

 

71.设有学生选课表score(sno,cname,grade),其中sno表示学生学号,cname表示课程名,grade表示成绩。以下能够统计每个学生选课数的语句是()

A)  SELECT COUNT(*)  FROM score GROUP BY sno ;

B)  SELECT COUNT(*)  FROM score GROUP BY cname ;

C)  SELECT SUM(*)  FROM score GROUP BY cname ;

D)  SELECT SUM(*)  FROM score GROUP BY sno ;

【解析】答案A。

 

72.设职工表tb_employee,包含字段eno(职工号)、ename(姓名)、age(年龄)、salary(工资)和dept(所在部门),要查询工资在4000-5000之间(包含4000、5000)的职工号和姓名,正确的WHERE条件表达式是()

A)  salary BETWEEN 4000 AND 5000

B)  salary <=4000 AND salary >=5000

C)  4000 =< salary <=5000

D)  salary IN [4000,5000]

【解析】答案A

 

73.假设有Student表,查询名字中第二个字为"丽"的所有学生姓名、学号的正确命令是()

A)  SELECT Sname, Sno FROM Student WHERE Sname LIKE '_丽%';

B)  SELECT Sname, Sno FROM Student WHERE Sname IS '_丽%';

C)  SELECT Sname, Sno FROM Student WHERE Sname LIKE '%丽_';

D)   SELECT Sname, Sno FROM Student WHERE Sname LIKE '_丽_';

【解析】答案A

 

74.设有学生表Student(Sno,Sname,Sdept),若要收回用户User1修改学生学号Sno的权限,正确的语句是()

A)  REVOKE UPDATE(Sno) ON Student FROM User1;

B)  REVOKE UPDATE ON Student FROM User1;

C)  REVOKE UPDATE(Sno) ON User1 FROM Student;

D)  REVOKE UPDATE Student(Sno) FROM User1;

【解析】答案A。

 

75.设有如下语句:

REVOKE SELECT ON student FROM 'tmpuser'@'localhost'

35以下关于该语句的叙述中,正确的是()

A)  收回对student的SELECT权限  

B)  收回localhost用户的SELECT权限

C)  回滚对tmpuser用户授权操作

D)  回滚对student的授权操作

【解析】revoke是删除权限。revoke后跟相应的权限,on后跟表名,from 后跟用户名。本题是将对表student的select权限删除,A对。用户是tmpuser,B错。C、D均错。

答案A。

 

76.按功能对SQL语言分类,对数据库各种对象进行创建、删除、修改的操作属于()

A)  DDL

B)  DML

C)  DCL  

D)  DLL

【解析】 数据定义语言(DDL)由CREATE、ALTER与DROP三个语法所组成,作用于数据库各对象的建、删、修,A对。DML(Data Manipulation Language)数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据。基本的数据操作分成两类四种:检索(查询)和更新(插入、删除、修改)。DCL(Data Control Language)是数据库控制语言。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。B、C错。SQL语言无DLL,D错。

答案A。

 

77.在MySQL中,下列有关CHAR和VARCHAR的比较中,不正确的是()

A)  CHAR是固定长度的字符类型,VARCHAR则是可变长度的字符类型

B)  由于CHAR固定长度,所以在处理速度上要比VARCHAR快,但是会占更多存储空间

C)  CHAR和VARCHAR的最大长度都是255

D)  使用CHAR字符类型时,将自动删除末尾的空格

【解析】char长度固定,处理速度上要比varchar快,varchar可变长。A、B对。Char最长为255、varchar支持到65535,C错。使用char字符,会自动删除末尾空格,D对。

答案C。

 

78.设有学生表student(sno,sname,sage,smajor),各字段的含义分别是学生学号、姓名、年龄和专业。要求输入一学生记录,学号为100,姓名为张红,年龄为20。以下不能完成如上输入要求的语句是()

A)  INSERT INTO student VALUES(100,'张红',20);

B)  INSERT INTO student(sno,sname,sage,smajor) VALUES(100,'张红',20,NULL);

C)  INSERT INTO student VALUES(100,'张红',20,NULL);   

D) INSERT  INTO  STUDENT(sno,sname,sage)  values(100,'张红',20);

【解析】答案A。

 

79.以下关于触发器的叙述中,正确的是()

A)  触发器由数据表上的特定事件所触发

B)  触发器可以由CREATE操作触发

C)  触发器可以带有参数

D)  触发器可以建立在视图上

【解析】对一个表进行操作( insert,delete, update)时就会激活触发器执行。CREATE操作触发不了,不可带参数,也不可建立在视图上。

答案A。

 

80.给名字为wangsan的用户授予对数据库studb中的stuinfo表的查询和插入数据权限的语句是()

A)  GRANT SELECT, INSERT on studb.stuinfo FOR 'wangsan'@'localhost';

B)  GRANT SELECT, INSERT on studb.stuinfo TO 'wangsan'@'localhost';

C)  GRANT 'wangsan'@'localhost' TO SELECT, INSERT FOR studb.stuinfo;

D)   GRANT 'wangsan'@'localhost' TO studb.stuinfo ON SELECT, INSERT;

【解析】授权的基础语法为:GRANT <权限>[,<权限>]...

        [ON <对象类型> <对象名>]

        TO <用户>[,<用户>]...

        [WITH GRANT OPTION];

答案B。

 

81.下列关于存储过程和存储函数的叙述中正确的是()

A)  存储过程和存储函数都可以直接调用,但调用方式不同

B)  存储过程可以带参数,存储函数不能带参数

C)  存储过程和存储函数中都可以包含RETURN语句

D)  存储过程中能使用游标,而存储函数中不能使用游标

【解析】存储函数嵌入在sql中使用的,可以在select中调用,就像内建函数一样,比如now()等,存储过程只能通过call语句进行调用,A对。存储过程和函数都能带参数,B错。存储函数带returns语句,存储过程无,C错。存储函数中也能使用游标,D错。

答案A。

 

 

82.MySQL中,子查询中可以使用运算符ANY,它表示的意思是()

A)  所有的值都满足条件

B)  至少一个值满足条件

C)  一个值都不用满足

D)  至多一个值满足条件

解析】any即至少一个。

答案B。

 

83.为字段设定默认值,需要使用的关键字是()

A)  NULL

B)  TEMPORARY

C)  EXIST

D)  DEFAULT

解析】答案D。

 

84.设有学生表student(sno,sname,sage,smajor),各字段含义分别为学号、姓名、年龄、专业;学生选课表score(sno, cname,grade),各字段含义分别为学生学号、课程名、成绩。若要检索"信息管理"专业、选修课程DB的学生学号、姓名及成绩,如下能实现该检索要求的语句是()

A)   SELECT s.sno,sname, grade

     FROM student s ,score sc

     WHERE s.sno=sc.sno AND s.smajor='信息管理' AND cname='DB' ;

B)  SELECT s.sno,sname, grade

     FROM student s,score sc

     WHERE s.smajor='信息管理' AND cname='DB';

C)  SELECT s.sno,sname, grade

     FROM student s

     WHERE smajor='信息管理' AND cname='DB';

D)   SELECT s.sno,sname, grade

     FROM student s  

     WHERE s.sno=sc.sno AND s.smajor='信息管理'  AND cname='DB';

解析】从两表里选数据,From 后应为student s ,score sc;两表关联,所以有s.sno=sc.sno AND;同时条件为检索"信息管理"专业、选修课程DB的学生学号。

答案A。

 

85.MySQL中的视图机制能够在一定程度上提高数据库系统的()

A)  安全性

B)  稳定性

C)  可靠性

D)  完整性

【解析】视图能够对机密数据提供安全保护。答案A。

 

86.MySQL命令行客户端的提示符是()

A)  mysql>

B)  c:\>

C  sql>

D)   $

析】mysql提示符为mysql>,其它皆不对。答案A。

 

87.把查询语句的各个子句按执行的先后顺序排列,正确的是()

A) FROM→WHERE→GROUP BY→SELECT→ORDER BY

B)  SELECT→FROM→WHERE→GROUP BY→ORDER BY

C)  WHERE→FROM→SELECT→GROUP BY→ORDER BY

D)  FROM→WHERE→SELECT→ORDER BY→GROUP BY

【解析】查询语句的顺序为FROM→WHERE→GROUP BY→SELECT→ORDER BY。

答案A。

注意:此处是查询语句执行的先后顺序,而不是书写的先后顺序

 

88.存储过程与存储函数的区别之一是存储过程不能包含()

A)  RETURNS语句

B)  局部变量

C)  SET语句

D)  游标

解析】RETURNS 意思是返回,在存储函数里用于返回函数结果,存储过程是流程控制语句的集合,没返回语句。

答案A。

 

89.在MySQL的命令行中调用存储过程sp和函数fn的方法分别是()

A)  CALL sp(),  SELECT fn();

B)  SELECT sp(), CALL fn();

C)  CALL sp(),  CALL fn();

D)  SELECT sp(),  SELECT fn();

【解析】调用存储过程用CALL,调用函数用SELECT。

答案A。

 

90.下列关于MySQL的叙述中,正确的是()

A)  MySQL能够运行于多种操作系统平台

B)  MySQL的编程语言是PHP

C)  MySQL只适用于中小型应用系统

D)  MySQL具有数据库检索和界面设计的功能

解析】MySQL是一种开放源码的软件;可用于linux、windows  Mac OS、Novell、Netware等多个平台;MySQL的编程语言不仅仅是PHP,几乎所有的语言都支持;MySQL也可以用于大型系统;MySQL仅仅提供数据库系统功能,不提供图形化界面。

答案A。

 

91.MySQL中,删除用户的命令是()

A)  DROP USER

B)  REVOKE USER

C)  DELETE USER

D)  REMOVE USER

解析】删除用户用DROP。

答案A。

 

92.下列关于AUTO_INCREMENT的描述中,不正确的是()

A)  一个表只能有一个AUTO_INCREMENT属性

B)  该属性必须定义为主键的一部分

C)  在默认情况下,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1

D)  只有INT类型能够定义为AUTO_INCREMENT

【解析】AUTO_INCREMENT列的类型可为:tinyint、smallint、mediumint、int 。

答案D。

 

93.设smajor是student表中的一个字段,以下能够正确判断smajor字段是否为空值的表达式是()

A)  smajor IS NULL

B)  smajor = NULL

C  smajor=0

D)  smajor=''

解析】空是Null,判断是否为空用 is null。

答案A。

 

94.设有成绩表,包含学号、分数等字段。现有查询要求:查询有3门以上课程的成绩在90分以上的学生学号及90分以上课程数。以下SQL语句中正确的是()

A)  SELECT 学号, COUNT(*) FROM 成绩 WHERE 分数>90 GROUP BY 学号 HAVING COUNT(*)>3;

B)   SELECT 学号, COUNT(学号) FROM 成绩 WHERE 分数>90 AND COUNT(学号)>3;

C) SELECT 学号, COUNT(*) FROM 成绩 GROUP BY 学号 HAVING COUNT(*)>3 AND 分数>90;

D)  SELECT 学号, COUNT(*) FROM 成绩 WHERE 分数>90 AND COUNT(*)>3 GROUP BY 学号;

【解析】查询成绩在90分以上,条件用where 分数>90,查询一个学号有三门90分以上的,用having count(*)>3。 先选出大于90分之上的,然后按学号进行分组,对每个分组判断是否大于3,最后返回结果。

答案A。

 

95.在使用 CREATE INDEX 创建索引时,其默认的排序方式是()

A)  升序

B)  降序

C)  无序

D)  聚簇

解析】建索引默认是升序。

答案A。

 

96.设有一个成绩表Student_JAVA(id,name,grade),现需要查询成绩grade倒数第二的同学信息(假设所有同学的成绩各不相同),正确的SQL语句应该是()

A)   SELECT * FROM Student_JAVA ORDER BY grade limit 1,1;

B)  SELECT * FROM Student_JAVA ORDER BY grade DESC limit 1,1;

C)  SELECT * FROM Student_JAVA ORDER limit 1,1;

D)   SELECT * FROM Student_JAVA ORDER BY grade DESC limit 0,1;

【解析】ORDER BY 默认是升序;Limit从0开始,Limit 1,1意为从第二值开始取一个值,即成绩倒数第二个学生,A对。 B是按降序排列,得到结果是正数第二个学生。C未排序,得到的是结果集中第二个,不定是倒数第二个。D得到的是正数第一。

答案A。

 

97.数据库系统可能发生各种各样的故障,如下可能破坏数据库中数据的故障是()

A)  磁盘损坏

B)  操作系统故障

C)  系统断电

D)  CPU发生故障

解析】数据存于磁盘中,当磁盘损坏时,数据库的物理存放地址有可能损坏,即数据库中相应数据得到破坏,A对。其它几个故障并不影响数据库数据的存放,不会破坏数据库数据。

答案A。

 

98. MySQL客户端程序mysqldump的作用是()

A)  备份数据库

B)  创建数据库

C)  启动MySQL服务器

D)  删除数据库

【解析】mysqldump[OPTIONS]database[tables]是备份整个数据库的命令。

答案A。

 

99.查找学生表student中姓名的第二个字为"t"的学生学号sno和姓名sname,下面SQL语句正确的是()

A)  SELECT sno, sname FROM student WHERE sname='_t%';

B)  SELECT sno, sname FROM student WHERE sname LIKE '_t%';

C)  SELECT sno, sname FROM student WHERE sname='%t_';

D)  SELECT sno, sname FROM student WHERE sname LIKE '%t_';

解析】第二字字是t,查询时用like关键字进行模糊查询及百分号通配符。A、C是指定查询,错。'_t%'即第二个字是t,%表示后面可为0或多个,A对。'%t_',表示t前面有不确定个字符,t是倒数第二个字,D错。

答案B。

 

100.订单表tb_order包含用户信息uid和产品信息 pid等属性列,以下语句能够返回至少被订购过三次的pid是()

A)  SELECT pid FROM tb_order WHERE count(pid)>3;

B)  SELECT pid FROM tb_order WHERE max(pid)>=3;

C)  SELECT pid FROM tb_order GROUP BY pid HAVING COUNT(pid)>3;

D)  SELECT pid FROM tb_order GROUP BY pid HAVING COUNT(pid)>=3;

答案:D

 

101.设当前用户正在操作数据库db1,现该用户要求跳转到另一个数据库db2,下列可使用的SQL语句是()

A)  USE db2

B)  JUMP db2

C)  GO db2;

D)  FROM db1 TO db2;

解析】use db_name切换至当前数据库。B、C、D皆语法错误。

答案A

 

102.设有学生表student(sno,sname,sage,smajor),字段含义分别为学生学号、姓名、年龄、专业。现有语句:

SELECT sno,sname,sage, smajor  

FROM student

ORDER BY smajor, sage DESC

执行上述语句,其检索结果()

A)  按smajor升序、sage降序排列

B)  按smajor降序、sage升序排列

C)  按smajor及sage的降序排列

D)  按smajor及sage的升序排列

【解析】DESC降序,有效范围为紧邻的一个;排序默认是升序。

答案A。

 

103.语句"SELECT * FROM tb_emp ORDER BY age DESC LIMIT 1,3"执行后返回的记录是()

A)  按age排序为2、3、4的三条记录

B)  按age排序为1、2、3的三条记录

C)  age最大的记录

D)  age排序第二的记录

解析】LIMIT[offset,num]即从offest个记录开始的num个记录,记录从0开始。本题即按age降序排序,表示第一条记录是指从第2条开始,取3条。

答案A。

 

104.向Student表增加入学时间"EDate"列,其数据类型为日期型,正确的SQL命令是()

A)  ALTER TABLE Student Add EDate Date;

B)  Add EDate Date ALTER TABLE Student;

C)  Add EDate Date TO TABLE Student;

D)  ALTER TABLE Student Add Date EDate;

【解析】增加列的基本语法为:ALTER TABLE table_name ADD column_name datatype。

答案A。

 

105.下列有关NULL值的描述中,正确的是()

A)  要想查找NULL值,必须使用IS NULL

B)  NULL和空字符是完全一样的

C)  可以使用"= NULL"进行NULL值的测试

D)  在使用ORDER BY时,NULL值被当做最大值处理

解析】答案A。

 

106.在MySQL数据库中,以下不会受字符集设置影响的数据类型有()

A)  CHAR

B)  INT

C)  VARCHAR

D)  TEXT

【解析】不同的字符集如UTF8、GBK、DEC8等,汉字明显会受到影响,可能显示乱码,但整形却都能显示正常。

答案B。

 

107.部门表tb_dept的定义如下:

CREATE TABLE tb_dept(

deptno CHAR(2)  primary key,

dname CHAR(20)  Not null,

manager CHAR(12),

telephone CHAR(15)

);

下列说法中正确的是()

A)  deptno的取值不允许为空,不允许重复

B)  dname的取值允许为空,不允许重复

C)  deptno的取值允许为空,不允许重复

D)  dname的取值不允许为空,不允许重复

【解析】deptno是主键,不可为空,不能重复。

答案A。

 

108.于MySQL中UNION操作符的使用,描述错误的是()

A)  UNION 用于合并两个或多个 SELECT 语句的结果集,但不会消去任何重复行

B)  UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型

C)  每条 SELECT 语句中的列的顺序必须相同

D)  UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名

【解析】union合并结果集时,会消去重复行,A错。 Union中每个select语句中的列数量、排序要一样,数据类型也必须类似,B、C对。Union结果集列总与其中第一个select语句中的列名一致,D对。

答案A。

 

109.在MySQL的实用工具中,用于对数据库进行备份的程序是()

A)  mysqladmin

B)  mysqldump

C)  mysqlcheck

D)  mysqlimport

答案B。

 

110.数据库的英文缩写是()

A)  DB

B)  DBS

C)  DBMS

D)  DBA

答案:A

 

111.删除数据表student的语句是()

A)  DROP TABLE student;

B)  REMOVE TABLE student;

C)  UPDATE TABLE student;

D)  DELETE TABLE student;

【解析】drop命令用于删除数据库、表等,A对。revoke是删除权限时使用,B错。C、D中语法错误。

答案A。

 

112.设有学生表student(sno,sname,sage, smajor),要从student表中检索sname字段值第2个字是"红"的所有学生信息。以下能够按照上述条件进行检索的WHERE表达式是()

A)  sname LIKE '_红%'

B)  sname LIKE '_红_'

C)  sname LIKE '%红%'

D)  sname LIKE '%红_'

【解析】答案A。

 

二:多项选择题(11道题)

1.语句select * from products where prod_name like '%se%'结果集包括(      )

A.检索products表中prod_name字段以'se'结尾的数据

B.检索products表中prod_name字段以'se'开头的数据

C.检索products表中prod_name字段包含'se'的数据

D.检索products表中prod_name字段不包含'se'的数据

答案:ABC

 

2.关于语句limit 5,5,说法正确的是()

A.表示检索出第5行开始的5条记录

B.表示检索出行6开始的5条记录

C.表示检索出第6行开始的5条记录

D.表示检索出行5开始的5条记录

答案:C,D

 

3.假设相关表中只有两个字段,下面关于insert语句下列说法正确的是()

A.insert into 表名values(字段名1对应的值);

B.insert into 表名 values(字段名1对应的值,字段名2对应值);

C.insert into 表名(字段名1)  value (字段名1对应的值);

D. insert into 表名(字段名1,字段名2)  values(字段名1对应的值,字段名2对应值);

答案:D,B

 

4.您需要显示从2009年1月1日到2009年12月31日雇佣的所有职员的姓名和雇佣日期。职员信息表tblEmployees包含列Name和列HireDate,下面哪些语句能完成该功能 (      )

A.SELECT Name, HireDate FROM tblEmployees

B.SELECT Name, HireDate FROM tblEmployees WHERE HireDate >=’2009-01-01’ and HireDate <=‘2009-12-31’

C.SELECT Name, HireDate FROM tblEmployees WHERE HireDate BETWEEN ‘2009-01-01’ AND ‘2009-12-31’

D.SELECT Name, HireDate FROM tblEmployees WHERE substring(HireDate,1,4)=2009;

答案:BCD

 

5.下面对 union 的描述错误的是(      )

A.union 只连接结果集完全一样的查询语句

B.union 可以连接结果集中数据类型与个数相同的多个结果集

C.union 是筛选关键词,对结果集再进行操作

D.任何查询语句都可以用 union 来连接

答案:ACD

 

6.下面语句中,表示过虑条件是vend_id=1002或vend_id=1003的是(      )

A.select * from products where vend_id=1002 or vend_id=1003

B.select * from products where vend_id in (1002,1003);

C.select * from products where vend_id not in (1004,1005);

D.select * from products where vend_id=1002 and vend_id=1003

答案:A,B

 

7.关于检索结果排序,正确的是(      )

A.关键字DESC表示降序,ASC表示升序

B.如果指定多列排序,只能在最后一列使用升序或降序关键字

C.如果指定多列排序,可以在任意列使用升序或降序关键字

D.关键字ASC表示降序,DESC表示升序

答案:A,C

 

8.以下语句错误的是()

A.SELECT rank, AVG(salary) FROM people GROUP BY rank  HAVING AVG(salary) > 1000

B.SELECT rank, AVG(salary) FROM people  HAVING AVG(salary) > 1000 GROUP BY rank;

C.SELECT  AVG(salary) FROM people GROUP BY rank  HAVING AVG(salary) > 1000;

D.SELECT rank, AVG(salary) FROM people GROUP BY rank  WHERE AVG(salary) > 1000;

答案:B,D

 

9.下列语句错误的是(      )

A.select * from orders where ordername is not null;

B.select * from orders where ordername<>null;

C.select * from orders where ordername is null;

D.select * from orders where ordername not  is null;

答案:B,D

 

10.下列是MYSQL比较运算符的是(      )

A.!=

B.<>

C.==

D.>=

答案:A,B,D

 

11.以下否定语句搭配正确的是()

A.not in

B.in not

C.not between  and

D.is not null

答案:A,C,D

 

你可能感兴趣的:(数据库)