《MySQL数据库开发》期末复习试题1(14页).doc

上传人:1595****071 文档编号:36779403 上传时间:2022-08-28 格式:DOC 页数:14 大小:191KB
返回 下载 相关 举报
《MySQL数据库开发》期末复习试题1(14页).doc_第1页
第1页 / 共14页
《MySQL数据库开发》期末复习试题1(14页).doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《《MySQL数据库开发》期末复习试题1(14页).doc》由会员分享,可在线阅读,更多相关《《MySQL数据库开发》期末复习试题1(14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-MySQL数据库开发期末复习试题1-第 14 页MySQL数据库开发期末复习题考试题型一、单选题(每小题 2 分,共 40分)二、判断题(每小题1分,打”或”,共10分)三、 问答题(共15分,每小题5分)四、综合题 (共35分,每小题5分)一、填空1、用来表示数据库中行之间的关系的机制称为_外键_约束。2、_字符集_是一套符号与编码,它包括编码规则以定义字符如何被编码为数字。3、MySQL程序选项有两种通用形式:_长选项_ 和 _短选项_。4、MySQL数据类型分为四大主要类别:_数值_、_字符_、_二进制_、_时间_。5、_存储程序_是保存在服务器里的一组SQL语句的集合。6、_锁_是一

2、种用来防止多个客户端时访问数据而产生问题的机制。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 2、查看MySQL版本语句是(A )(A)mysql - - version(B)m

3、ysql - - 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语句的列必需是基于表的列的

4、。(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)将每组的

5、结果字符串连接起来(B)将每组的结果累加(C)统计每组的记录数(D)统计每组的平均值10、GROUP子句带WITH ROLLUP的作用是(D )(A)将每组的结果累加(B)统计每组的平均值(C)统计每组的记录数(D)产生多个级别的统计值11、查看全局SQL模式的命令是( C)(A)select sql_mode(B)select session.sql_mode(C)select global.sql_mode(D)select global.sql_mode12、关于在非严格模式下处理无效值,哪个是错误的( D)(A)基于列定义的限制隐含值来执行类型转化。(B)在可能的情况下调整无效的输入值

6、为合法值,并产生警告信息。(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两种数

7、据类型的描述,错误的是( 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(-14.7), FLOOR(14.7)的结果是( A)(A)-15

8、,14(B)-15,15(C)-14,14(D)-14,1521、SELECT CEILING(-14.7), CEILING(14.7)的结果是( 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

9、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)A/B/26、删除列指令是(D )(A)ALTER TABLE DELETE (B)ALTER TABLE DELETE COLUMN(C)ALTER TABLE DROP (D)ALTER TABLE DROP COLUMN27、修改列指令是( A)(A)ALTER TABLE MODIFY (B)ALTER TABLE MODIFY CO

10、LUMN(C)ALTER TABLE UPDATE (D)ALTER TABLE UPDATE COLUMN28、以下哪一种指令无法增加记录( D)(A)INSERT INTO VALUES (B)INSERT INTO SELECT(C)INSERT INTO SET (D)INSERT INTO UPDATE29、对于REPLACE语句描述错误的是(C )(A)REPLACE语句返回一个数字以表示受影响的行,包含删除行和插入行的总和。(B)通过返回值可以判断是否增加了新行还是替换了原有行。(C)因主键重复插入失败时直接更新原有行。(D)因主键重复插入失败时先删除原有行再插入新行。30、关于

11、DELETE和TRUNCATE TABLE区别描述错误的是( B)(A)DELETE可以删除特定范围的数据。(B)两者执行效率一样。(C)DELETE返回被删除的记录行数。(D)TRUNCATE TABLE返回值为0。31、查看是否启用自动提交的指令是( B)(A)SELECT auto(B)SELECT autocommit(C)SELECT commit(D)SELECT auto_commit32、查看当前隔离级别的指令是( A)(A)SELECT tx_isolation(B)SELECT transaction(C)SELECT isolation(D)SELECT isolatio

12、in_level三、多选题1、 MySQL数据库产品包括( ABCD)(A)MySQL企业服务器 (B)MySQL社区服务器 (C)MySQL嵌入数据库 (D)MySQL集群2、MySQL安装包括哪些主要部件(ABD )(A)MySQL服务器(B)MySQL客户端程序(C)PL/SQL(D)MySQL非客户端工具3、MySQL为哪些内容分配内存(ABCD )(A)线程句柄(B)MEMORY存储引擎创建的表(C)客户端缓冲区(D)全局缓冲区与高速缓存4、与MySQL服务器相互作用的通讯协议包括( ABCD)(A)TCP/IP(B)Socket(C)共享内存(D)命名管道5、SQL模式值TRADI

13、TIONAL是一个复合模式,包含哪些值(ABCD )(A)STRICT_TRANS_TABLES(B)STRICT_ALL_TABLES(C)NO_ZERO_DATE(D)NO_ZERO_IN_DATE6、导致输入值无效原因是(ABCD )(A)对于数据或时间列,值可能超出范围。(B)对于字符串列,字符串可能太长。(C)对于非NULL列赋予NULL值。(D)对于ENUM列赋予非合法的枚举值。7、当选择一个数值数据类型时,应该考虑的因素(ABC )(A)数据类型数值的范围。(B)列值所需要的存储空间数量(C)列的精度与标度(适用于浮点与定点数)(D)设计者的习惯8、数据库对象包括(ABCD )(

14、A)表(B)视图(C)存储过程(D)触发器9、使用键的好处是( ABC)(A)降低查找时间(B)强化每行的唯一标识(C)主键不能包含NULL(D)降低磁盘占用空间10、MySQL存储引擎类型有哪些( ABCD)(A)MyISAM(B)InnoDB(C)MEMORY(D)MERGE11、设置表的默认字符集关键字是( CD)(A)DEFAULT CHARACTER(B)DEFAULT SET(C)DEFAULT CHARSET(D)DEFAULT CHARACTER SET12、关于临时表的描述正确的是(ABCD )(A)只在创建的会话可见,其它会话不能访问另一个会话创建的临时表。(B)临时表只存

15、在于会话生命周期中。(C)临时表可以与非临时表有相同的名称。(D)临时表不能使用SHOW TABLES显示。13、改变表名的指令是( AB)(A)ALTER TABLE t1 rename to t2;(B)RENAME t1 to t2;(C)UPDATE NAME t1 to t2;(D)CHANGE NAME t1 to t2;14、外键定义中ON DELETE与ON UPDATE有几种设置( ABCD)(A)CASCADE(B)NO ACTION(C)RESTRICT(D)SET NULL15、关于TRUNCATE TABLE描述正确的是( ABC)(A)TRUNCATE TABLE返

16、回值为0。(B)表中包含AUTO_INCREMENT列,使用TRUNCATE TABLE可以重置序列值。(C)TRUNCATE TABLE本身不能回滚。(D)TRUNCATE TABLE删除表,然后根据表结构重新构建表。16、事务具有哪些特性(ABCD )(A)原子性(B)一致性(C)隔离性(D)持久性17、哪些语句会导致隐式提交( ABCD)(A)数据定义语句(ALTER、CREATE、DROP)(B)数据访问和用户管理(GRANT、REVOKE)(C)锁语句(LOCK TABLES、UNLOCK TABLES)(D)部分数据操作语句(TRUNCATE TABLE)18、在并行的事务之间可能

17、存在哪些现象(BCD )(A)隔离(B)脏读(C)不可重复读(D)幻像读19、MySQL数据库存在哪些隔离级别(ABCD )(A)读未提交(B)读已提交(C)可重复读(D)可串行化20、存储程序的优点( BCD)(A)逻辑只与MYSQL有关,与客户端语言无关(B)安全:最少的数据访问、单一位置的处理(C)性能:通过交互减少提高性能(D)函数库:可利用数据库服务器函数库21、存储程序的问题(ABCD )(A)增加服务器负担(B)开发工具有限(C)有限的语言函数与速度(D)有限的调试/配置能力22、存储程序中选择语句有哪些(AB )(A)IF (B)CASE(C)SELECT(D)SWITCH23

18、、存储程序中循环语句有哪些(ABC )(A)REPEAT (B)WHILE(C)LOOP(D)FOR24、存储程序中处理器有哪几种类型( CD)(A)HANDLE (B)CASE(C)CONTINUE(D)EXIT四、简答题1、分别写出启动、连接、停止和卸载MySql服务(服务名为MySql)的语句? 启动:net start mysql链接:mysql-u root proot停止:net stop mysql卸载:mysqld-remove mysql2、将下列预处理程序补充完整? mysql_prepare_abc from select * from city where countr

19、ycode=?;mysql_set_ code=CHN;mysqlexecute abc _uning_ code;3、请简述数据库语句执行过程,从预处理程序角度进行说明。数据库语句执行过程:(1)编译、判断程序语法(关键字),语义(表名、列名等数据库的对象)是否正确(2)生成执行计划:将编译后的语句执行,考虑性能问题(往往是数据库管理系统自身完全)(3)获取语句相关的数据*基于性能考虑,数据库会提前进行编译工作称为预编译,这样就可以节约执行时间4、请简述警告的级别,以及查看警告的命令(至少写两个)A.(1)Error:错误消息显示了一个严重的问题,并组织服务器完成该请求。(2)warning

20、:警告消息显示了服务器可以继续处理该请求的问题。(3)note:提示消息只是一个信息。B.(1)show warnings;(2)show errors;(3)show notes;5、将下列存储过程补充完整? mysql_delimiter_ mysqlCREATE PROCEDURE pro07(score INT) -BEGIN -_declare_ var1 VARCHAR(32) default XX ; - IF (score79) THEN SET var1=优秀; - ELSEIF (score69) THEN SET var1=良; - ELSEIF (score59) TH

21、EN SET var1=及格; - ELSE SET var1=不及格; -ENDIF; -SELECT var1 ; -_end_mysqlDELIMITER;6、请说明视图的的注意事项创建视图,只能产生一个结果集(1) 运行创建视图的语句需要用户具有创建视图(CRATE VIEW)的权限,若加了OR REPLACE时,还需要用户具有删除视图(DROP VIEW)的权限;(2) SELECT语句不能包含FROM子句中的子查询;(3) SELECT语句不能引用系统或用户变量;(4) SELECT语句不能引用预处理语句参数;(5) 在存储子程序内,定义不能引用子程序参数或局部变量;(6) 在定义

22、中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用CHECK TABLE语句;(7) 在定义中不能引用TEMPORARY表,不能创建TEMPORARY视图;(8) 在视图定义中命名的表必须已存在;(9) 不能将触发程序与视图关联在一起;(10) 在视图定义中允许使用ORDER BY,但是,如果从特定视图进行了选择,而该视图使用了具有自己ORDER BY的语句,它将被忽略。7、MySQL处理列缺失值或遗漏值的规则。答:有定义default子句,值插入该子句指定的值;没有指定default子句时,在非严格模式下插入列数据类型的隐含缺省

23、值,在严格模式下产生错误。8、请说明ENUM类型和SET类型的区别。ENUM类型ENUM类型是一个枚举数据类型。当定义一个列为ENUM类型时,将提供给该列所有可用的一系列值,最多可达65535个不同的值。当插入或修改一个ENUM列时,从所有可用的值中选择一个值。如果列值不在预先定义的列表里,该值将被删除并使用一个空字串。ENUM数据类型将确保只有有效的continent列值才能被插入ENUM数据类型所指定的值的顺序是很重要的。在内部,ENUM值由一个整数表示,该整数值被识别为实际的字符串值。这将有益于ENUM列的排序与比较,因为它是通过内部的整数值而不是字符串的值来操作。SET类型像ENUM数

24、据类型一样,当定义一个列为set类型时,也必须提供一系列值。不像ENUM,set类型可以从给定的列表中选择多个值组合为一个有效的值。而该set值的字符串使用逗号分开列表里的字符串,模仿数学里的数据集合的概念。ENUM类型l 枚举数据类型l 内部有一个整数表示l ENUM (value1, ., valuen)SET类型l 集合类型l 从给定的列表中选择多个组合为一个有效的值l SET (value1, ., valuen)答:ENUM和SET都是比较特殊的字符串数据列类型,它们的取值范围是一个预先定义好的列表。ENUM或SET数据列的取值只能从这个列表中进行选择。ENUM和SET的主要区别是:

25、ENUM只能取单值,它的数据列表是一个枚举集合。它的合法取值列表最多允许有65535个成员。例如:ENUM(N,Y)表示,该数据列的取值要么是Y,要么就是N。SET可取多值。它的合法取值列表最多允许有64个成员。空字符串也是一个合法的SET值。ENUM和SET的值是以字符串形式出现的,但在内部,MySQL以数值的形式存储它们。ENUM的合法取值列表中的字符串被按声明定义的顺序被编号,从1开始。SET的编号不是按顺序进行编号的,SET中每一个合法取值都对应着SET值里的一个位。第一个合法取值对应0位,第二个合法取值对应1位,以此类推,如果数值形式的SET值等于0,则说明它是一个空字符串,如果某个

26、合法的取值出现在SET数据列里,与之对应的位就会被置位;如果某个合法的取值没有出现在SET数据列里,与之对应的位就会被清零。正因为SET值与位有这样的对应关系,所以SET数据列的多个合法取值才能同时出现并构成SET值。9、请说明truncate table和delete from的区别。l DELETE from 通过where指定删除范围 执行效率低 返回被删除的记录 数 面向事务l TRUNCATE table 只能删除全部数据 执行效率高 返回值为0 没有事务答:TRUNCATE TABLE 和不带 WHERE 的 DELETE 功能是一样的,都是删除表中的所有数据,不过 TRUNCAT

27、E TABLE 速度更快,占用的日志更少,这是因为 TRUNCATE TABLE 直接释放数据页并且在事务日志中也只记录数据页的释放,而 DELETE 是一行一行地删除,在事务日志中要记录每一条记录的删除。那么可不可以用 TRUNCATE TABLE 代替不带 WHERE 的 DELETE 呢?在以下情况是不行的: 1、要保留标识的情况下不能用 TRUNCATE TABLE,因为 TRUNCATE TABLE 会重置标识。2、需要使用触发器的情况下不能使用 TRUNCATE TABLE ,它不会激发触发器。 3、对于由 FOREIGN KEY 约束引用的表(即主键所在的表,不是外键所在的表)不

28、能使用 TRUNCATE TABLE。4、对于参与了索引视图的表不能使用 TRUNCATE TABLE ,注意指索引视图,并非普通视图。 10、请说明mysql数据库中标识符大小写敏感规则?答:(1)数据库、表的标识符依赖于操作系统的文件系统以及系统变量lower_case_table_names的设置(2) 列、索引和存储过程标识符大小写不敏感(3) 列别名也不敏感(4) 触发器的大小写敏感规则同表和数据库(但不受lower_case_table_names影响)11、存储过程和存储函数有什么区别?(5分)答:存储过程是一系列保存在数据库里的指令,过程将按照指令执行但不会返回任何值,该过程由

29、call语句调用,并且只能使用输出变量来传递返回值。存储函数是一系列保存在数据库里的指令,并且返回一个值。就像其他任何函数一样,函数可在语句中被调用,并返回一个值。12、排序顺序一般服从什么规则,可以从数字,字母,汉字等角度进行说明。答:排序顺序一般服从以下规则:1.数字字母9如果数字变为字符型那就不一定按照数字大小规律1523.字母:AZaz,按照ASSIIC比较4.汉字:你ni他ta我wo,,你ni=1 and kaikexueqi = 8), Xueshi tinyint(1) not null, Xuefen tinyint(1) null)engine=InooDB;Create t

30、able xs_kc( sno char(6) not null, Kno char(3) not null, Chengji tinyint(1) null, Primary key(sno,kno), Foreign key(sno) references xs(sno) on delete cascade on update cascade, Foreign key(kno) references kc(kno) on delete cascade on update cascade(2)Create table xc_kc(学号 char(6) foreign key referenc

31、es xs(学号),课程号 char(3) foreign key references kc(课程号),成绩tinyint(1),学分tinyint(1),Primary key (学号,课程号);2、 给成绩表增加一个列“补考成绩”,允许为空Alert table 成绩add column 补考成绩 tinyint(1);3、查询课程表中所有学生的情况Select * from kc;4、删除课程表中课程名称为C语言的记录Delete from kc where 课程名=c语言;5、添加一要学生表的记录,该记录信息为学生的个人信息Insert into xs values(学号,自己的姓名

32、,专业,1,1991-09-12,60,null);6、创建学生表的一个名为stucopy的拷贝,并且复制其内容Select *into stucopy from xs或 create table stucopy as select *from xs7、查询xs表中计算机系各同学的学号,姓名和总学分,对其总分按以下规则进行替换;若总学分为空值,替换为”尚未选课”;若总学分小于60,替换为“不及格”;若总学分在6080之间,则替换为“合格”;若总学分大于80,替换为“优秀”。列表题更改为“等级”。Select 学号,姓名 caseWhen 总学分is null then 尚未选课When 总学分

33、=60 and 总学分80 then 优秀end as 等级From xsWhere 专业名=计算机系8、查询xs表中计算机系各同学的学号,姓名和性别,对其性别按以下规则进行替换;若性别为空值,替换为”未设置性别”;若性别为0,替换为“女”;若性别为1,替换为“男”;列表题更改为“性别”。Select 学号,姓名 case When 性别 is null then 未设置性别When 性别=0 then女When 性别=1 then男 end as 性别From xsWhere 专业名=计算机系9、查询出没有选课的学生信息Select *from xs where 学号not in (Sele

34、ct 学号From xs_kc);10、删除成绩表中学分字段Alert table xs_kc drop column 学分11、新建“test”用户,密码为“111”,授予对stuDB数据库中所有表的select权限。Create user test localhostIndentified by111;Grant select on xs to test;Grant select on kc to test;Grant select on xs_kc to test; 合并为 :grant select on stuDB to test;12、用from的join关键字表达下列查询:查找选

35、修了“mysql”课程且成绩及格的学生学号、姓名、课程名及成绩。Select 学号,姓名,课程名,成绩From xsInner join xs_kc on xc.学号=xs_kc.学号Inner join kc on kc.课程号=xs_kc.课程号Where 课程名=mysql and 成绩=6013、查询学生表中所有学分不为空的信息Select *from xsWhere 总学分is not null14、查询出学生姓名重复的学生信息Select *from xs t1.xs t2 where t1.姓名=t2.姓名 and t1.学分t2.学分15、创建存储过程sp_kc,返回kc表中的

36、总记录数,并调用该存储过程。Create procedure sp_kc()Select count(*) from kc;Call sp-kc();1、 给XS表增加一个列“备注”,数据类型为text,不允许为空alter from xsadd comment text not null;2、 创建表 XS的一个名为student的拷贝,并且复制其内容Create table student as (select * from xs);3、 用from的join关键字表达下列查询:查找选修了“计算机基础”课程且成绩在80分以上的学生学号、姓名、课程名及成绩。Select xs.sno,sna

37、me,kname,chengji From xs join xs_kc on xs.sno=xs_kc.sno Join kc on xs_kc on kc.kno=xs_kc.kno Where kname=计算机基础 and chengji=80;4、 用root用户新建“dsh”用户,密码为“shangwu”,授予对sxcj数据库中所有表的select权限。Create user dshlocalhost identified by shangwu;Grani select On sxcj.* To dshlocalhost;A预编译的语法:Select *from city where countrycode=?;外部再传入参数值即可Select *from city where countrycode=usa;这种操作就形成存储程序(过程、函数)的雏形存储程序:定义与调用引入存储程序的原因:预编译程序仅在当前会话窗口有效,当前会话结束时预命编译的程序就消失(变量最好手工释放以节省资源)因此有些常用程序就有必要存储起来方便后续使用,这种存储预编译的程序称为存储程序(过程、函数)欢迎您的光临,Word文档下载后可修改编辑.双击可删除页眉页脚.谢谢!你的意见是我进步的动力,希望您提出您宝贵的意见!让我们共同学习共同进步!学无止境.更上一层楼。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁