《MySQL数据库开发》期末复习题考试题型一、单选题(每小题 2 分,共40分)二、判断题(每小题1分,打”√”或”×”,共10分)三、问答题(共15分,每小题5分)四、综合题(共35分,每小题5分)一、填空1、用来表示数据库中行之间的关系的机制称为______外键_约束。
2、_____字符集___是一套符号与编码,它包括编码规则以定义字符如何被编码为数字。
3、MySQL程序选项有两种通用形式:_______长选项__ 和__短选项_________。
4、MySQL数据类型分为四大主要类别:______数值___、__字符______、__二进制_______、_____时间____。
5、_____存储程序_____是保存在服务器里的一组SQL语句的集合。
6、_____锁_是一种用来防止多个客户端时访问数据而产生问题的机制。
7、_____事务_是将一个数据处理执行步骤的集合作为一个单一单元来处理。
8、______innoDB____引擎是目前唯一可提供外键实现支持的引擎。
9、CREATE ___temporary__________ TABLE创建临时表。
10、_______union_关键字能够将两个或多个SELECT语句的结果连接起来。
选择题主要在认证复习题中。
二、选择(单选)每小题 2 分,共40分1、哪个连接语句的格式是错误的(D)(A)mysql - - host= (B)mysql –h (C)mysql –(D)mysql –H 、查看MySQL版本语句是(A)(A)mysql - - version (B)mysql - - VERSION(C)mysql - - help (D)mysql - - v3、设置语句结束符的命令是(C)(A)set (B)end (C)delimiter (D)finish4、设置MySQL提示符的命令是(B)(A)tip (B)prompt (C)popup (D)message5、导入sql脚本文件的命令是(A)(A)source (B)script (C)file (D)sql6、关于SELECT语句以下哪一个描述是错误的(C )(A)SELECT语句用于查询一个表或多个表的数据。
(B)SELECT语句属于数据操作语言(DML)。
(C)SELECT语句的列必需是基于表的列的。
(D)SELECT语句表示数据库中一组特定的数据记录。
7、ENUM类型的字段level定义为(LOW、MIDDLE、HIGH),ORDER BY level asc的顺序是(B)(A)HIGH、LOW、MIDDLE (B)LOW、MIDDLE、HIGH(C)MIDDLE、LOW、HIGH (D)HIGH、MIDDLE、LOW8、SELECT * FROM city limit 5,10描述正确的是(C)(A)获取第6条到第10条记录。
(B)获取第5条到第10条记录。
(C)获取第6条到第15条记录。
(D)获取第5条到第15条记录。
9、GROUP_CONCAT()函数作用是(A )(A)将每组的结果字符串连接起来(B)将每组的结果累加(C)统计每组的记录数(D)统计每组的平均值10、GROUP子句带WITH ROLLUP的作用是(D)(A)将每组的结果累加(B)统计每组的平均值(C)统计每组的记录数(D)产生多个级别的统计值11、查看全局SQL模式的命令是(C)(A)select @@sql_mode (B)select(C)select (D)select12、关于在非严格模式下处理无效值,哪个是错误的(D)(A)基于列定义的限制隐含值来执行类型转化。
(B)在可能的情况下调整无效的输入值为合法值,并产生警告信息。
(C)转换超出范围的值为范围内的值。
(D)拒绝无效值,产生错误。
13、关于在严格模式下处理无效值,哪个是错误的(A)(A)允许超出范围的值(B)拒绝超出范围的值。
(C)拒绝不正确数据类型的值。
(D)拒绝没有缺省值的非空列。
14、VARCHAR类型字段保存最大的字符数是(C)(A)255 (B)1025 (C)65533 (D)6553515、查看系统中可用的字符集命令是(A)(A)show character set (B)show collation(C)show character (D)show set16、关于DATETIME与TIMESTAMP两种数据类型的描述,错误的是(B)(A)两者值的范围不一样。
(B)两者值的范围一样。
(C)两者占用空间不一样。
(D)TIMESTAMP可以自动记录当前日期时间。
17、在非严格模式下保存250到TINYINT类型字段时实际保存值是(C)(A)250 (B)0 (C)127 (D)12818、SELECT GREATEST(‘ab’,’cd’,’ef’,’gh’)结果是(D)(A)ab (B)cd (C)ef (D)gh19、SELECT LEAST(‘ab’,’cd’,’ef’,’gh’)结果是(A)(A)ab (B)cd (C)ef (D)gh20、SELECT FLOOR, FLOOR的结果是(A)(A)-15,14 (B)-15,15 (C)-14,14 (D)-14,1521、SELECT CEILING, CEILING的结果是(D)(A)-15,14 (B)-15,15 (C)-14,14 (D)-14,1522、SELECT LOCATE(‘to’, ‘Welcome to China’)的结果是(C)(A)7 (B)8 (C)9 (D)1023、SELECT SUBSTRING(‘Welcome to China’, 9, 2)的结果是(B )(A)Welcome (B)to (C)China (D)Welcome to24、SELECT SUBSTRING_INDEX(‘Welcome to China’, ‘to’, -1)的结果是(C)(A)Welcome (B)to (C)China (D)Welcome to25、SELECT CONCAT_WS(‘/’, ‘A’, NULL, ‘B’, NULL)的结果是(C)(A)AB (B)NULL (C)A/B (D)A1)Error:错误消息显示了一个严重的问题,并组织服务器完成该请求。
(2)warning:警告消息显示了服务器可以继续处理该请求的问题。
(3)note:提示消息只是一个信息。
B.(1)show warnings;(2)show errors;(3)show notes;5、将下列存储过程补充完整mysql>_____________delimiter________mysql>CREATE PROCEDURE pro07(score INT)->->BEGIN->___declare________ var1 VARCHAR(32) default 'XX' ;-> IF (score>79) THEN SET var1='优秀';-> ELSEIF (score>69) THEN SET var1='良';-> ELSEIF (score>59) THEN SET var1='及格';-> ELSE SET var1='不及格';->ENDIF;->SELECT var1 ;->_____end__->‘valuen’)SET类型集合类型从给定的列表中选择多个组合为一个有效的值SET (‘value1’, …., ‘valuen’)答:ENUM和SET都是比较特殊的字符串数据列类型,它们的取值范围是一个预先定义好的列表。
ENUM或SET数据列的取值只能从这个列表中进行选择。
ENUM和SET的主要区别是:ENUM只能取单值,它的数据列表是一个枚举集合。
它的合法取值列表最多允许有65535个成员。
例如:ENUM("N","Y")表示,该数据列的取值要么是"Y",要么就是"N"。
SET可取多值。
它的合法取值列表最多允许有64个成员。
空字符串也是一个合法的SET值。
ENUM和SET的值是以字符串形式出现的,但在内部,MySQL以数值的形式存储它们。
ENUM的合法取值列表中的字符串被按声明定义的顺序被编号,从1开始。
SET的编号不是按顺序进行编号的,SET中每一个合法取值都对应着SET值里的一个位。
第一个合法取值对应0位,第二个合法取值对应1位,以此类推,如果数值形式的SET值等于0,则说明它是一个空字符串,如果某个合法的取值出现在SET数据列里,与之对应的位就会被置位;如果某个合法的取值没有出现在SET数据列里,与之对应的位就会被清零。
正因为SET值与位有这样的对应关系,所以SET数据列的多个合法取值才能同时出现并构成SET值。
9、请说明truncate table和delete from的区别。
DELETE from•通过where指定删除范围•执行效率低•返回被删除的记录数•面向事务TRUNCATE table•只能删除全部数据•执行效率高•返回值为0•没有事务答:TRUNCATE TABLE 和不带WHERE 的DELETE 功能是一样的,都是删除表中的所有数据,不过TRUNCATE TABLE 速度更快,占用的日志更少,这是因为TRUNCATE TABLE 直接释放数据页并且在事务日志中也只记录数据页的释放,而DELETE 是一行一行地删除,在事务日志中要记录每一条记录的删除。
那么可不可以用TRUNCATE TABLE 代替不带WHERE 的DELETE 呢在以下情况是不行的:1、要保留标识的情况下不能用TRUNCATE TABLE,因为TRUNCATE TABLE 会重置标识。
2、需要使用触发器的情况下不能使用TRUNCATE TABLE ,它不会激发触发器。
3、对于由FOREIGN KEY 约束引用的表(即主键所在的表,不是外键所在的表)不能使用TRUNCATE TABLE。
4、对于参与了索引视图的表不能使用TRUNCATE TABLE ,注意指索引视图,并非普通视图。
10、请说明mysql数据库中标识符大小写敏感规则答:(1)数据库、表的标识符依赖于操作系统的文件系统以及系统变量lower_case_table_names的设置(2)列、索引和存储过程标识符大小写不敏感(3)列别名也不敏感(4)触发器的大小写敏感规则同表和数据库(但不受lower_case_table_names影响)11、存储过程和存储函数有什么区别(5分)答:存储过程是一系列保存在数据库里的指令,过程将按照指令执行但不会返回任何值,该过程由call语句调用,并且只能使用输出变量来传递返回值。