《MySQL数据库开发》期末复习题1

更新时间:2023-10-06 04:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《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=myhost.example.com (B)mysql –h myhost.example.com (C)mysql –hmyhost.example.com (D)mysql –H myhost.example.com 2、查看MySQL版本语句是(A ) (A)mysql - - version (B)mysql - - VERSION (C)mysql - - help (D)mysql - - v 3、设置语句结束符的命令是(C )

(A)set (B)end (C)delimiter 4、设置MySQL提示符的命令是( B)

(A)tip

(B)prompt

5、导入sql脚本文件的命令是(A ) (A)source (B)script (C)file

(D)finish

(D)message

(C)popup

(D)sql

6、关于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、LOW 8、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 (C)select @@global.sql_mode

(B)select @@session.sql_mode (D)select global.sql_mode

12、关于在非严格模式下处理无效值,哪个是错误的( D) (A)基于列定义的限制隐含值来执行类型转化。

(B)在可能的情况下调整无效的输入值为合法值,并产生警告信息。 (C)转换超出范围的值为范围内的值。

(D)拒绝无效值,产生错误。

13、关于在严格模式下处理无效值,哪个是错误的( A) (A)允许超出范围的值

(B)拒绝超出范围的值。

(C)拒绝不正确数据类型的值。 (D)拒绝没有缺省值的非空列。

14、VARCHAR类型字段保存最大的字符数是( C) (A)255 (B) 1025 (C)65533 (D)65535 15、查看系统中可用的字符集命令是(A ) (A)show character set (B)show collation

(C)show character (D)show set

16、关于DATETIME与TIMESTAMP两种数据类型的描述,错误的是( B)

(A)两者值的范围不一样。 (B)两者值的范围一样。 (C)两者占用空间不一样。

(D)TIMESTAMP可以自动记录当前日期时间。

17、在非严格模式下保存250到TINYINT类型字段时实际保存值是( C) (A)250 (B)0 (C)127 (D)128 18、SELECT GREATEST(‘ab’,’cd’,’ef’,’gh’)结果是(D ) (A)ab (B)cd (C)ef (D)gh 19、SELECT LEAST(‘ab’,’cd’,’ef’,’gh’)结果是( A) (A)ab (B)cd (C)ef (D)gh

20、SELECT FLOOR(-14.7), FLOOR(14.7)的结果是( A) (A)-15,14 (B)-15,15 (C)-14,14 (D)-14,15 21、SELECT CEILING(-14.7), CEILING(14.7)的结果是( D) (A)-15,14 (B)-15,15 (C)-14,14 (D)-14,15 22、SELECT LOCATE(‘to’, ‘Welcome to China’)的结果是( C) (A)7 (B)8 (C)9 (D)10 23、SELECT SUBSTRING(‘Welcome to China’, 9, 2)的结果是(B ) (A)Welcome (B)to (C)China (D)Welcome to 24、SELECT SUBSTRING_INDEX(‘Welcome to China’, ‘to’, -1)的结果是(C) (A)Welcome (B)to (C) China (D)Welcome to 25、SELECT CONCAT_WS(‘/’, ‘A’, NULL, ‘B’, NULL)的结果是( C) (A)AB (B)NULL 26、删除列指令是(D )

(C) A/B

(D)A//B/

(A)ALTER TABLE … DELETE … (B)ALTER TABLE … DELETE COLUMN… (C)ALTER TABLE … DROP … (D)ALTER TABLE … DROP COLUMN…

27、修改列指令是( A) (A)ALTER TABLE … MODIFY … (B)ALTER TABLE … MODIFY COLUMN…

(C)ALTER TABLE … UPDATE … (D)ALTER TABLE … UPDATE COLUMN… 28、以下哪一种指令无法增加记录( D) (A)INSERT INTO … VALUES … (B)INSERT INTO … SELECT… (C)INSERT INTO … SET … (D)INSERT INTO … UPDATE… 29、对于REPLACE语句描述错误的是(C )

(A)REPLACE语句返回一个数字以表示受影响的行,包含删除行和插入行的总和。 (B)通过返回值可以判断是否增加了新行还是替换了原有行。 (C)因主键重复插入失败时直接更新原有行。

(D)因主键重复插入失败时先删除原有行再插入新行。

30、关于DELETE和TRUNCATE TABLE区别描述错误的是( B) (A)DELETE可以删除特定范围的数据。 (B)两者执行效率一样。 (C)DELETE返回被删除的记录行数。 (D)TRUNCATE TABLE返回值为0。 31、查看是否启用自动提交的指令是( B)

(A)SELECT @@auto (C)SELECT @@commit

(B)SELECT @@autocommit (D)SELECT @@auto_commit

(B)SELECT @@transaction (D)SELECT @@isolatioin_level

32、查看当前隔离级别的指令是( A)

(A)SELECT @@tx_isolation (C)SELECT @@isolation

三、多选题

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模式值TRADITIONAL是一个复合模式,包含哪些值(ABCD ) (A)STRICT_TRANS_TABLES (B)STRICT_ALL_TABLES

(C)NO_ZERO_DATE

6、导致输入值无效原因是(ABCD ) (A)对于数据或时间列,值可能超出范围。

(B)对于字符串列,字符串可能太长。 (C)对于非NULL列赋予NULL值。

(D)对于ENUM列赋予非合法的枚举值。

(D)NO_ZERO_IN_DATE

7、当选择一个数值数据类型时,应该考虑的因素(ABC ) (A)数据类型数值的范围。

(B)列值所需要的存储空间数量

(C)列的精度与标度(适用于浮点与定点数) (D)设计者的习惯

8、数据库对象包括(ABCD ) (A)表 (B)视图 (C)存储过程 (D)触发器 9、使用键的好处是( ABC) (A)降低查找时间

(B)强化每行的唯一标识

(C)主键不能包含NULL (D)降低磁盘占用空间 10、MySQL存储引擎类型有哪些( ABCD)

(A)MyISAM

(B)InnoDB

(C)MEMORY

(D)MERGE

11、设置表的默认字符集关键字是( CD)

(A)DEFAULT CHARACTER (B)DEFAULT SET

(C)DEFAULT CHARSET (D)DEFAULT CHARACTER SET 12、关于临时表的描述正确的是(ABCD )

(A)只在创建的会话可见,其它会话不能访问另一个会话创建的临时表。 (B)临时表只存在于会话生命周期中。

(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 15、关于TRUNCATE TABLE描述正确的是( ABC) (A)TRUNCATE TABLE返回值为0。

(D)SET NULL

(B)表中包含AUTO_INCREMENT列,使用TRUNCATE TABLE可以重置序列值。 (C)TRUNCATE TABLE本身不能回滚。

(D)TRUNCATE TABLE删除表,然后根据表结构重新构建表。

(C)隔离性

(D)持久性

16、事务具有哪些特性(ABCD ) (A)原子性 (B)一致性

17、哪些语句会导致隐式提交( ABCD) (A)数据定义语句(ALTER、CREATE、DROP)

(B)数据访问和用户管理(GRANT、REVOKE)

(C)锁语句(LOCK TABLES、UNLOCK TABLES) (D)部分数据操作语句(TRUNCATE TABLE)

18、在并行的事务之间可能存在哪些现象(BCD ) (A)隔离 (B)脏读 (C)不可重复读 19、MySQL数据库存在哪些隔离级别(ABCD ) (A)读未提交 (B)读已提交 (C)可重复读 20、存储程序的优点( BCD) (A)逻辑只与MYSQL有关,与客户端语言无关

(B)安全:最少的数据访问、单一位置的处理

(D)幻像读 (D)可串行化

学分 tinyint(1) 允许为空

XS_KC表(成绩表):

学号 char(6) 不允许为空 主键 课程号 char(3) 不允许为空 主键 成绩 tinyint(1) 允许为空 学分 tinyint(1) 允许为空 根据这三张表完成下列操作: 1、 写出三张表的建表语句 create database sxcj;

use sxcj

create table xs

( sno char(6) primary key , Sname char(8) not null, Zhuanyeming char(10) null,

Sex tinyint(1) not null check(sex int(0,1)), sbir date not null,

record tinytin(1) null, photo blob null, comment text null )engine=InooDB;

Create table kc

( kno char(3) primary key,

Kname char(16) not null,

Kaikexueqi tinyint(1) not null default 1 check(kaikexueqi >=1 and kaikexueqi <= 8),

Xueshi tinyint(1) not null, Xuefen tinyint(1) null )engine=InooDB;

Create table 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 references 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(学号,’自己的姓名’,‘专业’,1,’1991-09-12’,60,null); 6、创建学生表的一个名为stucopy的拷贝,并且复制其内容 Select *into stucopy from xs

或 create table stucopy as select *from xs

7、查询xs表中计算机系各同学的学号,姓名和总学分,对其总分按以下规则进行替换;若总学分为空值,替换为”尚未选课”;若总学分小于60,替换为“不及格”;若总学分在60—80之间,则替换为“合格”;若总学分大于80,替换为“优秀”。列表题更改为“等级”。 Select 学号,姓名 case

When 总学分is null then ‘尚未选课’ When 总学分<60 then ‘不及格’

When 总学分>=60 and 总学分<=80 then’合格’

When 总学分>80 then ‘优秀’end as 等级 From xs

Where 专业名=‘计算机系’

8、查询xs表中计算机系各同学的学号,姓名和性别,对其性别按以下规则进行替换;若性别为空值,替换为”未设置性别”;若性别为0,替换为“女”;若性别为1,替换为“男”;列表题更改为“性别”。 Select 学号,姓名 case

When 性别 is null then ‘未设置性别’ When 性别=‘0’ then‘女’

When 性别=‘1’ then‘男’ end as ‘性别’ From xs

Where 专业名=‘计算机系’ 9、查询出没有选课的学生信息 Select *from xs where 学号not in ( Select 学号 From xs_kc);

10、删除成绩表中学分字段

Alert table xs_kc drop column 学分

11、新建“test”用户,密码为“111”,授予对stuDB数据库中所有表的select权限。 Create user ‘test’ @’localhost’ Indentified by’111’;

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关键字表达下列查询:查找选修了“mysql”课程且成绩及格的学生学号、姓名、课程名及成绩。

Select 学号,姓名,课程名,成绩 From xs

Inner join xs_kc on xc.学号=xs_kc.学号 Inner join kc on kc.课程号=xs_kc.课程号 Where 课程名=‘mysql’ and 成绩>=60 13、查询学生表中所有学分不为空的信息 Select *from xs

Where 总学分is not null

14、查询出学生姓名重复的学生信息

Select *from xs t1.xs t2 where t1.姓名=t2.姓名 and t1.学分<>t2.学分 15、创建存储过程sp_kc,返回kc表中的总记录数,并调用该存储过程。 Create procedure sp_kc() Select count(*) from kc;

Call sp-kc();

1、 给XS表增加一个列“备注”,数据类型为text,不允许为空

alter from xs add comment text not null;

2、 创建表 XS的一个名为student的拷贝,并且复制其内容

Create table student as (select * from xs);

3、 用from的join关键字表达下列查询:查找选修了“计算机基础”课程且成绩在80分

以上的学生学号、姓名、课程名及成绩。 Select xs.sno,sname,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

‘dsh@localhost’ identified by ‘shangwu’; Grani select

On sxcj.*

To dsh@localhost; A预编译的语法:

Select *from city where countrycode=?; 外部再传入参数值即可

Select *from city where countrycode=’usa’; 这种操作就形成存储程序(过程、函数)的雏形

存储程序:定义与调用

引入存储程序的原因:预编译程序仅在当前会话窗口有效,当前会话结束时预命编译的程序就消失(变量最好手工释放以节省资源)因此有些常用程序就有必要存储起来方便后续

使用,这种存储预编译的程序称为存储程序(过程、函数)

本文来源:https://www.bwwdw.com/article/ssgd.html

Top