数据库理论习题四(58道题-含答案)选择题

1、下列关于SQL的叙述中,正确的是

A)  SQL是专供MySQL使用的结构化查询语言

B)  SQL是一种过程化的语言

C)  SQL是关系数据库的通用查询语言

D)  SQL只能以交互方式对数据库进行操作

【解析】SQL是一个通用的、功能极强的关系数据库语言;SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航;作为独立的语言,SQL可以独立用于联机交互的使用方式,作为嵌入式语言,SQL语句能够嵌入到高级语言(C,Java)程序中。

答案C。

2、在CREATE TABLE语句中,用来指定外键的关键字是

A)  CONSTRAINT

B)  PRIMARY KEY

C)  FOREIGN KEY

D)  CHECK

【解析】constraint :用于各种约束的定义说明;PRIMARY KEY:主键约束; FOREIGN KEY: 外键约束;CHECK:条件约束(mysql中不支持该约束)。

答案C。

3、如果DELETE语句中没有使用WHERE子句,则下列叙述中正确的是

A)  删除指定数据表中的最后一条记录

B)  删除指定数据表中的全部记录

C)  不删除任何记录

D)  删除指定数据表中的第一条记录

解析】WHERE子句说明只删除表中满足WHERE子名条件的记录。如果省略,则表示要删除表中全部记录。

答案B。

4、指定一个数据库为当前数据库的SQL语句语法格式是

A)  CREATE DATABASE db_name;

B)  USE db_name;

C)  SHOW DATABASES;

D)  DROP DATABASE db_name;

答案:B

5、查询一个表中总记录数的SQL语句语法格式是

A)  SELECT COUNT(*) FROM tbl_name;

B)  SELECT COUNT FROM tbl_name;

C)  SELECT FROM COUNT tbl_name;

D)  SELECT * FROM tbl_name;

解析】在查询数据库中记录总数,应该使用关键的聚合函COUNT,并且指定要统计的属性,或者用"*"号来表示,因此B,C,D语法错误,答案A。

6、给定如下SQL语句

CREATE  VIEW   test.V_test

AS

SELECT * FROM   test.students

WHERE age<19;

该语句的功能是

A)  在test表上建立一个名为V_test的视图

B)  在students表上建立一个查询,存储在名为test的表中

C)  在test数据库的students表上建立一个名为V_test的视图

D)  在test表上建立一个名为students的视图

【解析】test.V_test,即为数据库test建立视图V_test,视图内容是选取数据库test中表students中年龄小于19的所有信息。

答案C。

7、MySQL中用来创建数据库对象的命令是

A)  CREATE

B)  ALTER

C)  DROP

D)  GRANT

【解析】CREATE用于创建数据库对象,ALTER 用于对数据库或数据库对象的结构进行修改;DROP用于删除数据库或数据库对象;grant用于给用户授予权限。答案A。

8、下列关于DROP、TRUNCATE和DELETE命令的描述中,正确的是

A)  三者都能删除数据表的结构

B)  三者都只删除数据表中的数据

C)  三者都只删除数据表的结构

D)  三者都能删除数据表中的数据

【解析】delete可以删除表中数据,DROP 语句可删除整个表对象,truncate删除表比较快,只能删除表中的所有数据。答案D。

9、下列关于空值的描述中,正确的是

A)  空值等同于数值

B)  空值等同于空字符串

C)  空值表示无值

D)  任意两个空值均相同

【解析】空值表示值未知。空值不同于空白或零值。没有两个相等的空值。答案C。

10、在MySQL中,关键字AUTO_INCREMENT用于为列设置自增属性,能够设置该属性的数据类型是

A)  字符串类型

B)  日期类型

C)  整型

D)  枚举类型

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

11、下列关于MySQL基本表和视图的描述中,正确的是

A)  对基本表和视图的操作完全相同

B)  只能对基本表进行查询操作,不能对视图进行查询操作

C)  只能对基本表进行更新操作,不能对视图进行更新操作

D)  能对基本表和视图进行更新操作,但对视图的更新操作是受限制的

解析】表可以建立各种触发器,可以建立索引,可以建立主健、约束等。但是视图不能建立这些对象(视图可以建立替代触发器)。表和视图可以更新,但是视图的更新受到约束。答案D。

12、下列关于PRIMARY KEY和UNIQUE的描述中,错误的是

A)  两者都要求属性值唯一,故两者的作用完全一样

B)  每个表上只能定义一个PRIMARY KEY约束

C)  每个表上可以定义多个UNIQUE约束

D)  建立UNIQUE约束的属性列上,允许属性值为空

解析】PRIMARY KEY是主键约束,UNIQUE是唯一性约束,一张表只能设置一个主键,但可以设置多个唯一键,主键值不能重复也不能为null,唯一键的值不能重复但可以为null,答案A。

13、SQL中,激活触发器的命令包括

A)  CREATE、DROP、INSERT

B)  SELECT、CREATE、UPDATE

C)  INSERT、DELETE、UPDATE

D)  CREATE、DELETE、UPDATE

【解析】对一个表进行操作( insert,delete, update)时才会激活触发器执行,即对表进行基本数据的操作时会激活触发器。答案C。

14、下列关于MySQL触发器的描述中,错误的是

A)  触发器的执行是自动的

B)  触发器多用来保证数据的完整性

C)  触发器可以创建在表或视图上

D)  一个触发器只能定义在一个基本表上

【解析】触发器(trigger)的执行不是由程序调用,也不是手工启动,而是由事件来触发自动执行。触发器仅能在表上创建,而不能在视图上定义。答案C。

15、使用关键字CALL可以调用的数据库对象是

A)  触发器

B)  事件

C)  存储过程    

D)  存储函数

【解析】mysql中call 调用存储过程。C对。触发器是由select、updae、delete语句激活,A错。事件是系统调用,B错。存储函数用select调用。答案C。

16、

17、下列不能使用ALTER命令进行修改的数据库对象是

A)  触发器

B)  事件

C)  存储过程

D)  存储函数

【解析】若要修改触发器,将其重新创建并重新部署,将原始版本替换为修改后的版本。事件、存储过程、存储函数都能通过alter修改。答案A。

18、函数NOW()返回的结果是

A)  系统的当前日期

B)  系统的当前时间

C)  系统的当前日期和时间

D)  系统的当前用户

【解析】NOW() 函数返回当前的日期和时间。答案C。

19、撤销用户的权限应使用的语句是

A)  DROP

B)  ALTER

C)  REVOKE

D)  GRANT

解析】drop是删除表、数据库对象时使用,A错。Alter是变更表的结构等时会用,B错,grant 是给数据库用户授权时使用,D错。要取消一个用户的权限,使用REVOKE语句。答案C。

20、MySQL中,下列关于授权的描述中,正确的是

A)  只能对数据表和存储过程授权

B)  只能对数据表和视图授权

C)  可以对数据项、数据表、存储过程和存储函数授权

D)  可以对属性列、数据表、视图、存储过程和存储函数授权

解析】授权包括:创建表、索引、列、视图、存储过程、函数等权限。答案D。

21、MySQL成功安装后,在系统中默认建立的用户个数是

A)  0

B)  1

C)  2

D)  3

解析】安装后,建立的用户是默认root。答案B。

22、用户LISA在MySQL中建立了一个读者借阅图书数据库,在该数据库中创建了读者表、图书表和借阅表,并为该数据库添加了两个用户U1和U2,给U1授予对所有数据表的查询权限,给U2授予对所有数据表的插入权限,下列用户中不能使用CREATE USER创建用户的是

A)  root

B)  LISA

C)  U1

D)  U2

【解析】。Root是超级管理员用记,拥有所有的权限,包括建用户的权限,A对。lisa在本题中已建用户U1、U2,显然有建新用户的权限,B对。U1只有查询权限,不具有创建用户的权限,C错,U2拥有插入权限,使用create user命令创建用户等同于向mysql.user表插入数据,可建新用户,D对。答案C。

23、备份整个数据库的命令是

A)  mysqldump

B)  mysql

C)  mysqlimport

D)  backup

【解析】mysqldump可以备份数据库、备份数据表的结构、备份整个数据库系统,A对。mysql是恢复数据库使用的命令,B错。mysqlimport用于恢复数据表中的数据,C错。无backup命令,D错。答案A。

24、下列关于MySQL数据库的叙述中,错误的是

A)  执行ATLER DATABASE语句更改参数时,不影响数据库中现有对象

B)  执行CREATE DATABASE语句后,创建了一个数据库对象的容器

C)  执行DROP DATABASE语句后,数据库中的对象同时被删除

D)  CREATE DATABASE与CREATE SCHEMA作用相同

【解析】执行ATLER DATABASE语句更改参数时,更改数据库属性,会影响数据库现有对象。A错。Create database..是创建数据库的语句,B对。Drop database..是删除数据库,C对。CREATE SCHEMA从MySQL5.0.2起,可作为CREATE DATABASE的一个代名词,D对。答案A 。

25、在MySQL中,NULL的含义是

A)  无值

B)  数值0

C)  空串

D)  FALSE

【解析】无值。B、C、D皆不对。答案A。

26、在使用MySQL进行数据库程序设计时,若需要支持事务处理应用,其存储引擎应该是

A) InnoDB

B) MyISAM

C) MEMORY

D)  CSV

【解析】InnoDB存储引擎支持事务处理,其他几个都不支持事务处理,答案A。

27、使用SQL语句查询学生信息表tbl_student中的所有数据,并按学生学号stu_id升序排列,正确的语句是

A)  SELECT * FROM tbl_student ORDER BY stu_id ASC;

B)  SELECT * FROM tbl_student ORDER BY stu_id DESC;

C)  SELECT * FROM tbl_student stu_id ORDER BY ASC;

D)  SELECT * FROM tbl_student stu_id ORDER BY DESC;

解析】基本语法,ASC为升序,DESC为降序,ORDER BY后面必须跟上要排序的属性名,B为降序排列,C、D语法错误。答案A。

28、统计表中所有记录个数的聚集函数是

A)  COUNT

B)  SUM

C)  MAX

D)  AVG

【解析】COUNT:统计,SUM:求和,MAX:求最大值,AVG:求均值。答案A。

29、下列关于索引的叙述中,错误的是

A)  索引能够提高数据表读写速度

B)  索引能够提高查询效率

C)  UNIQUE索引是唯一性索引

D)  索引可以建立在单列上,也可以建立多列上

【解析】索引能够提高查询速度,但会降低数据表的读写速度。A错,B对。Unique是唯一性关键词,该索引是唯一性索引,C对。索引可以建立在单列或多列上,D对。答案A。

30、下列关于视图的叙述中,正确的是

A)  使用视图,能够屏蔽数据库的复杂性

B) 更新视图数据的方式与更新表中数据的方式相同

C)  视图上可以建立索引

D)  使用视图,能够提高数据更新的速度

【解析】视图向用户隐藏了表与表之间的复杂的连接操作;对视图的更新操作有一定限制;视图不可建索引;数据更新速度与视图无关。答案A。

31、修改表中数据的命令是

A)  UPDATE

B)  ALTER TABLE

C)  REPAIR TABLE

D)  CHECK TABLE

解析】ALTER TABLE语句用于修改表的结构; 无C、D这种语法。答案A。

32、下列关于表的叙述中,错误的是

A)  所有合法用户都能执行创建表的命令

B)  MySQL中建立的表一定属于某个数据库

C)  建表的同时能够通过Primary Key指定表的主键

D)  MySQL中允许建立临时表

【解析】不同的用户享有的权限不一,可以只有查询权限,可以只有创建表权限,A错。Mysql中,表是属于数据库的一部分,不可独立存在,B对。建表时可通过关键字primary key指定主键,C对。可通过CREATE TEMPORARY TABLE建立临时表。D对。答案A。

33、下列关于存储过程的叙述中,正确的是

A)  存储过程可以带有参数

B)  存储过程能够自动触发并执行

C)  存储过程中只能包含数据更新语句

D)  存储过程可以有返回值

【解析】存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、触发器才能由增、删、改事件触发执行,存储函数才能有返回值。答案A。

34、下列关于用户及权限的叙述中,错误的是

A)  删除用户时,系统同时删除该用户创建的表

B)  root用户拥有操作和管理MySQL的所有权限

C)  系统允许给用户授予与root相同的权限

D)  新建用户必须经授权才能访问数据库

【解析】删除用户时,系统不会删除该用户创建的表。root是系统中的超级管理员用户帐户,拥有所有的权限,B对。新建用户时,并不任何权限,只有授权后才能访问操作数据库,D对。系统允许授予用户和root 权限,C对。答案A。

35、MySQL数据库中最小授权对象是

A)  列B)  表 C)  数据库D)  用户

【解析】答案A。

36、执行REVOKE语句的结果是

A)  用户的权限被撤销,但用户仍保留在系统中

B)  用户的权限被撤销,并且从系统中删除该用户

C)  将某个用户的权限转移给其他用户

D)  保留用户权限

【解析】revoke用于撤销权限,drop 可删除用户。用户的权限被撤销,系统中仍保留用户,只是暂时不能用该用户的身份登录系统。答案A。

37、下列关于MySQL数据库备份与恢复的叙述中,错误的是

A)  mysqldump命令的作用是备份数据库中的数据

B)  数据库恢复是使数据库从错误状态恢复到最近一次备份时的正确状态

C)  数据库恢复的基础是数据库副本和日志文件

D)  数据库恢复措施与数据库备份的类型有关

【解析】mysqldump可以备份表、备份数据库、备份整个数据库系统的命令,A错。数据库的恢复是需要最近一次的备份文件、日志文件,且状态正常,B、C对。根据数据库备份的类型要采用不同的措施来恢复,D对。答案A。

38、恢复MySQL数据库可使用的命令是

A)  mysqldump

B)  mysqladmin

C)  mysql

D)  mysqld

解析】答案C。

39、MySQL服务器使用TCP/IP网络的默认端口号是

A)  3306

B)  8088

C)  8080

D)  3124

解析】TCP/IP 连接的默认端口号是 3306。答案A。

40、在SQL语言按功能的分类中,不包括

A)  DDL

B)  DML

C)  DCL

D)  DLL

解析】sql按语言分类为:数据操纵语言(DML);数据定义语言(DDL);数据控制语言(DCL)。答案D。

41、在MySQL中,可用于创建一个新数据库的SQL语句为

A)  CREATE DATABASE

B  CREATE TABLE

C)  CREATE DATABASES

D)  CREATE DB

【解析】建库语句为:CREATE DATABASE db_name,A对。B是建表,C、D语法错。答案A。

42、在使用INSERT INTO插入记录时,对于AUTO_INCREMENT列,若需要使其值自动增长,下面填充方式中错误的是

A)  填充NULL值

B)  不显式地填充值

C)  填充数字0

D)  填充数字1

【解析】AUTO_INCREMENT所在列在插入数据时自动加1,且起始值是1,填充数字不可为1,可为null、0或不写。答案D。

43、SQL语句中,判断字段sno是否为空值时,应该使用的表达式是

A)  sno IS NULL

B)  sno =NULL

C)  sno NULL OR NOT

D)  以上方式皆可

【解析】NULL是空值,判断是否为空用IS NULL。答案A。

44、要消除查询结果集中的重复值,可在SELECT语句中使用关键字

A)  UNION

B)  DISTINCT

C)  LIMIT

D)  REMOVE

解析】union用于合并两个查询语句的结果集,A错。关键词 DISTINCT 用于返回唯一不同的值,B对。Limit用于限定select查询结果最大返回行数,C错。答案B。

45、设WHERE子句中的条件表达式是:num  20  between 30,其含义是:num的值是20到30范围内的所有整数,且()

A)包含20和30

B)不包含20和30

C)包含20,不包含30

D)不包含20,包含30

答案C

46、在使用ALTER TABLE修改表结构时,关于CHANGE和MODIFY两子句的描述中,不正确的是

A)  CHANGE后面需要写两次列名,而MODIFY后面只写一次

B)  两种方式都可用于修改某个列的数据类型

C)  都可以使用FIRST或AFTER来修改列的排列顺序

D)  MODIFY可用于修改某个列的名称  

【解析】change可以修改列的名称和数据类型,MODIFY只能修改列的数据类型。答案D。

47、在下列有关GROUP BY语句的描述中,不正确的是

A)  分组条件可以有多个,并且每一个可以分别指定排序方式

B)  可以使用WHERE子句对所得的分组进行筛选

C)  GROUP BY可配合聚合函数一起使用,但GROUP BY子句中不能直接使用聚合函数

D)  除了聚合函数,SELECT语句中的每个列都必须在GROUP BY子句中给出

解析:GROUP BY对查询结果按字段列表进行分组,字段值相等的记录分为一组,指定用于分组的字段列表可以是一列,也可以是多个列,彼此间用逗号分隔,HAVING短语对分组的结果进行过滤,仅输出满足条件的组。

答案B。

48、对于索引,正确的描述是

A)  索引的数据无需存储,仅保存在内存中

B)  一个表上可以有多个聚集索引

C)  索引通常可减少表扫描,从而提高检索的效率

D)  所有索引都是唯一性的索引  

解析】索引需要占物理空间,不存储在内存;一个表可以有多个索引;索引可以提高检索效率。答案C。

49、在MySQL数据库中,可以在服务器、数据库、表等级别上指定缺省字符集,而这些字符集的设定将作用于

A)  所有字段

B)  CHAR、VARCHAR、TEXT等字符类型的字段

C)  所有数据库连接

D)  数值型字段

解析】服务器、数据库、表等级别上指定缺省字符集作用于CHAR、VARCHAR、TEXT等字符类型的字段。答案B。

50、对于SQL查询:

SELECT * FROM tbl_name WHERE id=(SELECT id FROM tbl_name),假设该表中包含id字段,那么该语句正确执行的条件是

A)  该表中必须有多条记录

B)  该表中必须只有一条记录

C)  该表中记录数必须小于等于一条

D)  此SQL语句错误

【解析】当表中记录多于1条记录时,(SELECT id FROM tbl_name)返回的是一个结果集,把结果集赋给id,显然执行语句失败,当记录小于等于1时,返回的是空或者是id值,可以作为条件查询。答案C。

51、下列操作中,不可能触发对应关系表上触发器的操作是

A)  SELECT

B)  INSERT

C)  UPDATE

D)  DELETE

【解析】对一个表进行操作( insert,delete, update)时就会激活触发器执行。答案A。

52、在存储过程的定义中,其参数的输入输出类型包括

A)  IN、OUT

B)  IN、OUT、INOUT

C)  IN

D)  OUT

【解析】在存储过程的定义中,其参数的输入输出类型包括IN、OUT、INOUT答案B。

53、在存储过程中,使用游标的一般流程是

A)  打开-->读取-->关闭

B)  声明-->读取-->关闭

C)  声明-->打开-->读取-->关闭

D)  声明-->填充内容-->打开-->读取-->关闭  

【解析】使用游标的一般流程是 声明、打开、读取、关闭。C对,其它选项流程错误。答案C。

54、关于MySQL中存储函数和存储过程的区别,不正确的是

A)  存储过程可以有输出参数,而存储函数则没有

B)  存储函数必须使用RETURN语句返回结果

C)  调用存储函数无需使用CALL语句

D)   存储函数中不能像存储过程那样定义局部变量

解析】存储函数中可以定义局部变量,D错。存储过程有输出参数out,存储函数可通过且必须通过return返回结果值,无输出参数,A、B对。调用存储过程用call,调整存储函数用select。C对。答案D。

55、修改用户登录口令的命令是

A)  SET PASSWORD

B)  UPDATE PASSWORD

C)  CHANGE PASSWORD

D)   MODIFY PASSWORD

【解析】修改用户登录口令用SET PASSWORD。无B、C、D相当语句。答案A。

56、用户刚创建后,只能登录服务器,而无法执行任何数据库操作的原因是

A)  用户还需要修改密码

B)  用户尚未激活

C)  用户还没有任何数据库对象的操作权限

D)  以上皆有可能

【解析】用户创建时,是不具有访问数据库权限的,只有在给用户授予操作数据库的权限,才可以操作数据库。答案C。

57、在GRANT授权语句中,WITH GRANT OPTION的含义是

A)  用户权限在服务器重启之后,将自动撤销

B)  该用户权限仅限于所指定的用户

C)  用户将获得指定数据库对象上的所有权限

D)  允许该用户将此权限转移授予其他用户

 解析】允许将权限传递给第三方。答案D。

58、在GRANT ALL ON *.* TO…授权语句中,ALL和*.*的含义分别是

A)  所有权限、所有数据库表

B)  所有数据库表、所有权限

C)  所有用户、所有权限

D)  所有权限、所有用户

析】*.*意为所有权限、所有数据库中的所有表。答案A

  • 14
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
战德臣数据库MOOC模拟练习题解析主要是对数据库相关知识的应用和理解进行考察和分析。这些题目旨在帮助学生巩固和加强对数据库概念、操作和优化的认识和应用能力。 解析这些练习题,首先需要对题目进行仔细阅读和理解。了解题意后,根据问题的要求,运用数据库知识进行建模、查询或优化等方面的操作。 对于涉及数据库建模的题目,需要根据题目描述,设计合适的数据库结构,包括表的数量、字段及其数据类型,以及表与表之间的关系。同,要注意保证数据库的范式,避免冗余数据和数据一致性问题的出现。 对于查询题目,需根据题目描述,编写合适的SQL语句进行查询。要注意查询条件和字段选择的准确性,以及查询结果的正确性。相关知识点包括:SELECT语句的使用、连接操作、条件筛选、排序、分组、聚合函数等。 对于性能优化题目,需根据题目描述,分析数据库操作的瓶颈,提出相应的优化方案。可以从索引优化、查询语句优化、表结构优化等方面进行思考和答题。 在解析这些练习题需要熟悉数据库的相关概念和操作技巧,如关系型数据库管理系统(例如MySQL、Oracle等)的使用,SQL语言的基本语法和常用操作等。同,还需了解数据库的设计原则、范式理论、查询优化技巧、索引设计等内容。 通过解析这些练习题,可以提高对数据库知识的理解和应用能力,进一步夯实数据库相关的基础知识,为后续的数据库开发和管理工作打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘鑫磊up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值