1、二级 MYSQL 数据库程序设计-3 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.设有如下表达式: CHECK(score =0 AND score =100) 关于该表达式,下列叙述中错误的是_。(分数:2.50)A.CHECK 是能够单独执行的 SQL 语句B.该表达式定义了对字段 score 的约束C.score 的取值范围为 0-100(包含 0 和 100)D.更新表中数据时,检查 score 的值是否满足 CHECK 约束2.在 CREATE TABLE 语句中,用来指定外键的关键字是_。(分数:2.50)A.CONSTR
2、AINTB.PRIMARY KEYC.FOREIGN KEYD.CHECK3.定义学生表时,若规定年龄字段取值不得超过 30 岁,应该使用的约束是_。(分数:2.50)A.关系完整性约束B.实体完整性约束C.参照完整性约束D.用户定义完整性约束4.下列关于表级约束和列级约束的描述中,不正确的是_。(分数:2.50)A.列级约束针对某个特定的列,包含在列定义中B.表级约束与列定义相互独立,不包含在列定义中C.列级约束可能涉及到多个列,也可能仅涉及一个列D.表级约束可能涉及到多个列,也可能仅涉及一个列5.下列有关 MySQL 完整性约束的叙述中,正确的是_。(分数:2.50)A.实体完整性可由主键
3、约束或候选键约束来实现B.对完整性约束只能进行添加操作C.使用 ALTER TABLE 语句删除完整性约束的同时,会自动删除表本身D.使用 DROP TABLE 语句删除一个表的同时,表中的完整性约束不会自动删除6.部门表 tb_dept 的定义如下: CREATE TABLE tb_dept( deptno CHAR(2) primary key, dname CHAR(20) Not null, manager CHAR(12), telephone CHAR(15) ); 下列说法中正确的是_。(分数:2.50)A.dname 的取值允许为空,不允许重复B.deptno 的取值不允许为空
4、,不允许重复C.deptno 的取值允许为空,不允许重复D.dname 的取值不允许为空,不允许重复7.MySQL 数据库中的数据完整性,不包括_。(分数:2.50)A.数据删除、更新完整性B.参照完整性C.用户自定义完整性D.实体完整性8.MySQL 中,激活触发器的命令包括_。(分数:2.50)A.CREATE、DROP、INSERTB.SELECT、CREATE、UPDATEC.INSERT、DELETE、UPDATED.CREATE、DELETE、UPDATE9.下列关于 MySQL 触发器的描述中,错误的是_。(分数:2.50)A.触发器的执行是自动的B.触发器多用来保证数据的完整性
5、C.触发器可以创建在表或视图上D.一个触发器只能定义在一个基本表上10.下列不能使用 ALTER 命令进行修改的数据库对象是_。(分数:2.50)A.存储过程B.事件C.触发器D.存储函数11.当触发器涉及对触发表白身的更新操作时,使用的触发器必须是_。(分数:2.50)A.BEFORE UPDATEB.AFTER UPDATEC.UPDATE BEFORED.UPDATE AFTER12.下列操作中,不可能触发对应关系表上触发器的操作是_。(分数:2.50)A.SELECTB.INSERTC.UPDATED.DELETE13.以下关于触发器的叙述中,正确的是_。(分数:2.50)A.触发器可
6、以建立在视图上B.触发器可以由 CREATE 操作触发C.触发器可以带有参数D.触发器由数据表上的特定事件所触发14.在 MySQL 中,INSERT 触发器操作数据时,可以使用的临时表是_。(分数:2.50)A.NEWB.OLDC.NEW 和 OLDD.LAST15.下列关于触发器的叙述中,错误的是_。(分数:2.50)A.在触发器的创建中,每个表每个事件每次只允许一个触发器B.触发器可以建立在视图上C.每个表最多支持 6 个触发器D.同一表不能拥有两个具有相同触发时刻和事件的触发器16.设有触发器: CREATE TRIGGER test.insTrg AFTER INSERT ON te
7、st.student FOR EACH ROW SET msg=“Hello!“ 以下叙述中正确的是_。(分数:2.50)A.在对 student 表进行插入操作时,自动执行 insTrg 触发器B.在对 test 表进行插入操作时,自动执行 insTrg 触发器C.在对 insTrg 表进行插入操作时,自动执行 test 触发器D.在对 student 表进行插入操作时,自动执行 test 触发器17.设有一个成绩表 Student_JAVA(id,name,grade),现需要编写一个触发器,监视对该表中数据的插入和更新,并判断学生的成绩 grade,如果成绩超过 100 分,在触发器中强
8、制将其修改为 100(最高分),那么应该将触发器定义为_。(分数:2.50)A.AFTER 触发器和 BEFORE 触发器都不可以B.AFTER 触发器C.AFTER 触发器和 BEFORE 触发器都可以D.BEFORE 触发器18.以下有关 MySQL 事件的叙述中,错误的是_。(分数:2.50)A.事件是由操作系统调用的过程B.事件能够按设定的时间自动执行C.在事件中可以调用存储过程D.在事件中可以对数据表进行数据更新操作19.以下不能开启事件调度器的语句是_。(分数:2.50)A.SET GLOBAL EVENT_SCHEDULER=TRUE;B.SETGLOBAL EVENT_SCHE
9、DULER=1;C.SELECT EVENT_SCHEDULER;D.SETGLOBAL EVENT_SCHEDULER=ON;20.现要求删除 MySQL 数据库中已创建的事件,通常使用的语句是_。(分数:2.50)A.DROP EVENTB.DROP EVENTSC.DELETE EVENTD.DELETE EVENTS21.以下关于事件的叙述中,正确的是_。(分数:2.50)A.删除事件的语句是 DELETE EVENTB.事件必须与特定的数据表相关C.事件用于维护系统的完整性D.活动的事件能够在指定时刻执行某些任务22.下列关于事件的描述中,错误的是_。(分数:2.50)A.事件是基于
10、特定时间周期来触发的B.创建事件的语句是 CREATE EVENTC.事件触发后,执行事件中定义的 SQL 语句序列D.如果不显式地指明,事件在创建后处于关闭状态23.设有如下创建数据库对象的部分语句: CREATE EVENT Test ON SCHEDLE EVERY 1 WEEK STARTS CLIRDATE() + INTERVAL 1 WEEK ENDS “2013-6-30“ DO BEGIN END 关于上述语句,下列叙述中错误的是_。(分数:2.50)A.Test 事件从创建之时开始执行B.创建了一个名称为 Test 的事件C.Test 事件每周自动执行一次D.Test 事件
11、的结束时间是 2013 年 6 月 30 日24.存储过程和存储函数的主要区别在于_。(分数:2.50)A.存储函数可以被其他应用程序调用,而存储过程不能被其他应用程序调用B.存储过程中必须包含一条 RETURN 语句,而存储函数中不允许出现该语句C.存储函数只能建立在单个数据表上,而存储过程可以同时建立在多个数据表上D.存储过程可以拥有输出参数,而存储函数不能拥有输出参数25.下列关于存储过程的叙述中,正确的是_。(分数:2.50)A.存储过程中只能包含数据更新语句B.存储过程能够自动触发并执行C.存储过程可以带有参数D.存储过程可以有返回值26.设有如下语句: DECLARE tmpVar
12、 TYPE CHAR(10) DEFAULT “MySQL“ 关于以上命令,下列叙述中错误的是_。(分数:2.50)A.tmpVar 的默认值是“MySQL“B.该语句声明了一个用户变量C.tmpVar 被声明为字符类型变量D.tmpVar 的作用域是声明该变量的 BEGINEND 语句块27.在存储过程的定义中,其参数的输入输出类型包括_。(分数:2.50)A.IN、OUTB.IN、OUT、INOUTC.IND.OUT28.在存储过程中,使用游标的一般流程是_。(分数:2.50)A.打开- - 读取- - 关闭B.声明- - 读取- - 关闭C.声明- - 打开- - 读取- - 关闭D.声
13、明- - 填充内容- - 打开- - 读取- - 关闭29.设有学生成绩表 score(sno,cno,grade),各字段含义分别是学生学号、课程号及成绩。现有如下创建存储函数的语句: CREATE FUNCTION fun() RETURNS DECIMAL BEGIN DECLARE x DECIMAL SELECT AVG(grade)INTO x FROM score RETURN x END; 以下关于上述存储函数的叙述中,错误的是_。(分数:2.50)A.表达式 AVG(grade) INTO x 有语法错误B.x 是全体学生选修所有课程的平均成绩C.fun 没有参数D.RETU
14、RNS DECIMAL 指明返回值的数据类型30.在 MySQL 中,不可以声明和使用游标的情况有_。(分数:2.50)A.存储过程B.存储函数C.交互式 SQL 查询D.触发器31.设有如下定义存储过程的语句框架: CREATE PROCEDURE test(IN x INT) BEGIN END; 调用该存储过程的语句是_。(分数:2.50)A.CALL test(10);B.CALL test 10;C.SELECT test(10);D.SELECT test 10;32.下列创建游标的语法格式中,正确的是_。(分数:2.50)A.DECLARE cursor_name CURSOR
15、FOR select_statementB.DECLARE CURSOR cursor_name FOR select_statementC.CREATE cursor_name CURSOR FOR select_statementD.CREATE CURSOR cursor_name FOR select_statement33.存储过程与存储函数的区别之一是存储过程不能包含_。(分数:2.50)A.SET 语句B.局部变量C.RETURN 语句D.游标34.现有如下语句: CREATE PROCEDURE p(IN nol INT,OUT pname VARCHAR(10) BEGIN
16、SELECT sname INTO pname FROM student WHERE sno=nol: END; 能够直接调用过程 p,并能得到正确返回结果的语句是_。(分数:2.50)A.CALL p(100,x);B.CALL p(100,“张红“);C.CALL p(a,b);D.CALL p(a,“张红“);35.在 MySQL 的命令行中调用存储过程 sp 和函数 fn 的方法分别是_。(分数:2.50)A.CALL sp(),SELECT fn();B.SELECT sp(),CALL fn();C.CALL sp(),CALL fn();D.SELECT sp(),SELECT
17、fn();36.下列关于局部变量和用户变量的描述中,错误的是_。(分数:2.50)A.局部变量只在 BEGIN.ENI)语句块之间有效B.用户变量以“开头,局部变量没有这个符号C.用户变量使用 SET 语句定义,局部变量使用 DECLARE 语句定义D.在存储函数中只能使用局部变量37.在 MySQL 中执行如下语句:_。 SHOW GRANTS FOR “wang“localhost“; 结果显示为: GRANT USAGE ON * . * TO“wang“localhost“ 该结果显示的是_。(分数:2.50)A.系统中所有的用户信息B.用户名以 wang 开头的用户拥有的所有权限C.
18、用户 wang 拥有的所有权限D.系统中所有的资源信息38.撤销用户的权限应使用的语句是_。(分数:2.50)A.DROPB.ALTERC.REVOKED.GRANT39.MySQL 中,下列关于授权的描述中,正确的是_。(分数:2.50)A.只能对数据表和存储过程授权B.只能对数据表和视图授权C.可以对数据项、数据表、存储过程和存储函数授权D.可以对属性列、数据表、视图、存储过程和存储函数授权40.MySQL 成功安装后,在系统中默认建立的用户个数是_。(分数:2.50)A.0B.1C.2D.3二级 MYSQL 数据库程序设计-3 答案解析(总分:100.00,做题时间:90 分钟)一、选择
19、题(总题数:40,分数:100.00)1.设有如下表达式: CHECK(score =0 AND score =100) 关于该表达式,下列叙述中错误的是_。(分数:2.50)A.CHECK 是能够单独执行的 SQL 语句 B.该表达式定义了对字段 score 的约束C.score 的取值范围为 0-100(包含 0 和 100)D.更新表中数据时,检查 score 的值是否满足 CHECK 约束解析:2.在 CREATE TABLE 语句中,用来指定外键的关键字是_。(分数:2.50)A.CONSTRAINTB.PRIMARY KEYC.FOREIGN KEY D.CHECK解析:3.定义学
20、生表时,若规定年龄字段取值不得超过 30 岁,应该使用的约束是_。(分数:2.50)A.关系完整性约束B.实体完整性约束C.参照完整性约束D.用户定义完整性约束 解析:4.下列关于表级约束和列级约束的描述中,不正确的是_。(分数:2.50)A.列级约束针对某个特定的列,包含在列定义中B.表级约束与列定义相互独立,不包含在列定义中C.列级约束可能涉及到多个列,也可能仅涉及一个列 D.表级约束可能涉及到多个列,也可能仅涉及一个列解析:5.下列有关 MySQL 完整性约束的叙述中,正确的是_。(分数:2.50)A.实体完整性可由主键约束或候选键约束来实现 B.对完整性约束只能进行添加操作C.使用 A
21、LTER TABLE 语句删除完整性约束的同时,会自动删除表本身D.使用 DROP TABLE 语句删除一个表的同时,表中的完整性约束不会自动删除解析:6.部门表 tb_dept 的定义如下: CREATE TABLE tb_dept( deptno CHAR(2) primary key, dname CHAR(20) Not null, manager CHAR(12), telephone CHAR(15) ); 下列说法中正确的是_。(分数:2.50)A.dname 的取值允许为空,不允许重复B.deptno 的取值不允许为空,不允许重复 C.deptno 的取值允许为空,不允许重复D
22、.dname 的取值不允许为空,不允许重复解析:7.MySQL 数据库中的数据完整性,不包括_。(分数:2.50)A.数据删除、更新完整性 B.参照完整性C.用户自定义完整性D.实体完整性解析:8.MySQL 中,激活触发器的命令包括_。(分数:2.50)A.CREATE、DROP、INSERTB.SELECT、CREATE、UPDATEC.INSERT、DELETE、UPDATE D.CREATE、DELETE、UPDATE解析:9.下列关于 MySQL 触发器的描述中,错误的是_。(分数:2.50)A.触发器的执行是自动的B.触发器多用来保证数据的完整性C.触发器可以创建在表或视图上 D.
23、一个触发器只能定义在一个基本表上解析:10.下列不能使用 ALTER 命令进行修改的数据库对象是_。(分数:2.50)A.存储过程B.事件C.触发器 D.存储函数解析:11.当触发器涉及对触发表白身的更新操作时,使用的触发器必须是_。(分数:2.50)A.BEFORE UPDATE B.AFTER UPDATEC.UPDATE BEFORED.UPDATE AFTER解析:12.下列操作中,不可能触发对应关系表上触发器的操作是_。(分数:2.50)A.SELECT B.INSERTC.UPDATED.DELETE解析:13.以下关于触发器的叙述中,正确的是_。(分数:2.50)A.触发器可以建
24、立在视图上B.触发器可以由 CREATE 操作触发C.触发器可以带有参数D.触发器由数据表上的特定事件所触发 解析:14.在 MySQL 中,INSERT 触发器操作数据时,可以使用的临时表是_。(分数:2.50)A.NEW B.OLDC.NEW 和 OLDD.LAST解析:15.下列关于触发器的叙述中,错误的是_。(分数:2.50)A.在触发器的创建中,每个表每个事件每次只允许一个触发器B.触发器可以建立在视图上 C.每个表最多支持 6 个触发器D.同一表不能拥有两个具有相同触发时刻和事件的触发器解析:16.设有触发器: CREATE TRIGGER test.insTrg AFTER IN
25、SERT ON test.student FOR EACH ROW SET msg=“Hello!“ 以下叙述中正确的是_。(分数:2.50)A.在对 student 表进行插入操作时,自动执行 insTrg 触发器 B.在对 test 表进行插入操作时,自动执行 insTrg 触发器C.在对 insTrg 表进行插入操作时,自动执行 test 触发器D.在对 student 表进行插入操作时,自动执行 test 触发器解析:17.设有一个成绩表 Student_JAVA(id,name,grade),现需要编写一个触发器,监视对该表中数据的插入和更新,并判断学生的成绩 grade,如果成绩超
26、过 100 分,在触发器中强制将其修改为 100(最高分),那么应该将触发器定义为_。(分数:2.50)A.AFTER 触发器和 BEFORE 触发器都不可以B.AFTER 触发器C.AFTER 触发器和 BEFORE 触发器都可以D.BEFORE 触发器 解析:18.以下有关 MySQL 事件的叙述中,错误的是_。(分数:2.50)A.事件是由操作系统调用的过程 B.事件能够按设定的时间自动执行C.在事件中可以调用存储过程D.在事件中可以对数据表进行数据更新操作解析:19.以下不能开启事件调度器的语句是_。(分数:2.50)A.SET GLOBAL EVENT_SCHEDULER=TRUE;
27、B.SETGLOBAL EVENT_SCHEDULER=1;C.SELECT EVENT_SCHEDULER; D.SETGLOBAL EVENT_SCHEDULER=ON;解析:20.现要求删除 MySQL 数据库中已创建的事件,通常使用的语句是_。(分数:2.50)A.DROP EVENT B.DROP EVENTSC.DELETE EVENTD.DELETE EVENTS解析:21.以下关于事件的叙述中,正确的是_。(分数:2.50)A.删除事件的语句是 DELETE EVENTB.事件必须与特定的数据表相关C.事件用于维护系统的完整性D.活动的事件能够在指定时刻执行某些任务 解析:22
28、.下列关于事件的描述中,错误的是_。(分数:2.50)A.事件是基于特定时间周期来触发的B.创建事件的语句是 CREATE EVENTC.事件触发后,执行事件中定义的 SQL 语句序列D.如果不显式地指明,事件在创建后处于关闭状态 解析:23.设有如下创建数据库对象的部分语句: CREATE EVENT Test ON SCHEDLE EVERY 1 WEEK STARTS CLIRDATE() + INTERVAL 1 WEEK ENDS “2013-6-30“ DO BEGIN END 关于上述语句,下列叙述中错误的是_。(分数:2.50)A.Test 事件从创建之时开始执行 B.创建了一
29、个名称为 Test 的事件C.Test 事件每周自动执行一次D.Test 事件的结束时间是 2013 年 6 月 30 日解析:24.存储过程和存储函数的主要区别在于_。(分数:2.50)A.存储函数可以被其他应用程序调用,而存储过程不能被其他应用程序调用B.存储过程中必须包含一条 RETURN 语句,而存储函数中不允许出现该语句C.存储函数只能建立在单个数据表上,而存储过程可以同时建立在多个数据表上D.存储过程可以拥有输出参数,而存储函数不能拥有输出参数 解析:25.下列关于存储过程的叙述中,正确的是_。(分数:2.50)A.存储过程中只能包含数据更新语句B.存储过程能够自动触发并执行C.存
30、储过程可以带有参数 D.存储过程可以有返回值解析:26.设有如下语句: DECLARE tmpVar TYPE CHAR(10) DEFAULT “MySQL“ 关于以上命令,下列叙述中错误的是_。(分数:2.50)A.tmpVar 的默认值是“MySQL“B.该语句声明了一个用户变量 C.tmpVar 被声明为字符类型变量D.tmpVar 的作用域是声明该变量的 BEGINEND 语句块解析:27.在存储过程的定义中,其参数的输入输出类型包括_。(分数:2.50)A.IN、OUTB.IN、OUT、INOUT C.IND.OUT解析:28.在存储过程中,使用游标的一般流程是_。(分数:2.50
31、)A.打开- - 读取- - 关闭B.声明- - 读取- - 关闭C.声明- - 打开- - 读取- - 关闭 D.声明- - 填充内容- - 打开- - 读取- - 关闭解析:29.设有学生成绩表 score(sno,cno,grade),各字段含义分别是学生学号、课程号及成绩。现有如下创建存储函数的语句: CREATE FUNCTION fun() RETURNS DECIMAL BEGIN DECLARE x DECIMAL SELECT AVG(grade)INTO x FROM score RETURN x END; 以下关于上述存储函数的叙述中,错误的是_。(分数:2.50)A.表
32、达式 AVG(grade) INTO x 有语法错误 B.x 是全体学生选修所有课程的平均成绩C.fun 没有参数D.RETURNS DECIMAL 指明返回值的数据类型解析:30.在 MySQL 中,不可以声明和使用游标的情况有_。(分数:2.50)A.存储过程B.存储函数C.交互式 SQL 查询 D.触发器解析:31.设有如下定义存储过程的语句框架: CREATE PROCEDURE test(IN x INT) BEGIN END; 调用该存储过程的语句是_。(分数:2.50)A.CALL test(10); B.CALL test 10;C.SELECT test(10);D.SELE
33、CT test 10;解析:32.下列创建游标的语法格式中,正确的是_。(分数:2.50)A.DECLARE cursor_name CURSOR FOR select_statement B.DECLARE CURSOR cursor_name FOR select_statementC.CREATE cursor_name CURSOR FOR select_statementD.CREATE CURSOR cursor_name FOR select_statement解析:33.存储过程与存储函数的区别之一是存储过程不能包含_。(分数:2.50)A.SET 语句B.局部变量C.RETU
34、RN 语句 D.游标解析:34.现有如下语句: CREATE PROCEDURE p(IN nol INT,OUT pname VARCHAR(10) BEGIN SELECT sname INTO pname FROM student WHERE sno=nol: END; 能够直接调用过程 p,并能得到正确返回结果的语句是_。(分数:2.50)A.CALL p(100,x); B.CALL p(100,“张红“);C.CALL p(a,b);D.CALL p(a,“张红“);解析:35.在 MySQL 的命令行中调用存储过程 sp 和函数 fn 的方法分别是_。(分数:2.50)A.CAL
35、L sp(),SELECT fn(); B.SELECT sp(),CALL fn();C.CALL sp(),CALL fn();D.SELECT sp(),SELECT fn();解析:36.下列关于局部变量和用户变量的描述中,错误的是_。(分数:2.50)A.局部变量只在 BEGIN.ENI)语句块之间有效B.用户变量以“开头,局部变量没有这个符号C.用户变量使用 SET 语句定义,局部变量使用 DECLARE 语句定义D.在存储函数中只能使用局部变量 解析:37.在 MySQL 中执行如下语句:_。 SHOW GRANTS FOR “wang“localhost“; 结果显示为: GR
36、ANT USAGE ON * . * TO“wang“localhost“ 该结果显示的是_。(分数:2.50)A.系统中所有的用户信息B.用户名以 wang 开头的用户拥有的所有权限C.用户 wang 拥有的所有权限 D.系统中所有的资源信息解析:38.撤销用户的权限应使用的语句是_。(分数:2.50)A.DROPB.ALTERC.REVOKE D.GRANT解析:39.MySQL 中,下列关于授权的描述中,正确的是_。(分数:2.50)A.只能对数据表和存储过程授权B.只能对数据表和视图授权C.可以对数据项、数据表、存储过程和存储函数授权D.可以对属性列、数据表、视图、存储过程和存储函数授权 解析:40.MySQL 成功安装后,在系统中默认建立的用户个数是_。(分数:2.50)A.0B.1 C.2D.3解析: