数据库运维丨期末复习资料 5 月 30, 2024 ZTRE 0 0 单项选择题 1. 以下哪个选项是关系数据库中外模式的具体体现( )。 答案:B.视图 2. 创建用户的命令是( )。 答案:B. create user 3.SQL标准中事务的四种隔离级,MySQL数据库的InnoDB存储引擎中默认采用的是( )。 答案:C. 可重复读(Repeatable Read) 4.MySQL中,使用命令行查看二进制文件(filename.number)的命令是( )。 答案:D. SHOW binlog events in filename.number 5.MySQL关于表的存储引擎叙述正确的是( )。 答案:A. 主机和从机可以是不同类型的存储引擎表 6. 查找数据库中所有的数据表用以下哪一项( )。 答案:B.SHOW TABLES 7. 关于视图,不正确的说法是( )。 答案:C. 若一个视图view_1由基本表t1和t2导出,删除t1不会对视图view_1有影响 8.( )是用来存储数据库中数据对象的描述信息和数据库管理系统需要的控制信息。 答案:A. 数据字典 9. 在MySQL的授权表中,记录各个账号在各个数据库上操作权限的权限表是( )。 答案:C.db权限表 10. MySQL主键规则的规则的描述错误的是( )。 答案:A. 一个或多个主键列对应不同行之间的值可以完全相同 11.数据库中缓冲区写入磁盘使用的算法是( )。 答案:D. LRU 12. MySQL中,可以用于备份数据库的命令是( )。 答案:B. mysqldump 13. 以下关于数据库性监视,错误的说法是( )。 答案:A.数据库性能监视不仅要监视MySQL当前的状态,还需监视OS的状态 14. 有时为了数据统计的方便会建立( )来加速辅助统计量的计算工作。 答案:C. 汇总表 15. 查看复制线程的语句是( )。 答案:A.SHOW PROCESSLIST 16.以下不属于数据库必须提供的数据控制功能的是( )。 答案:B.可移植性 17. MySQL服务器的存储引擎中支持事务处理、支持外键、支持崩溃修复能力和并发控制的存储引擎是( )。 答案:A. InnoDB 18.MySQL数据库通过命令行参数和配置文件来获得配置信息,查看当前使用的配置文件路径的DOS命令是( )。 答案:B. select @@datadir 19.MySQL中设置停止二进制文件的操作是( )。 答案:B. 使用SET命令设置SQL_LOG_BIN的值为0 20.SQL模式(sql_mode)这个设置可以接受多种选项来改变服务器行为,不允许置换存储引擎的选项值是( )。 答案:C. NO_ENGINE_SUBSTITUTION 21. 为数据库表创建索引的目的是( )。 答案:C. 提高查询的检索性能 22. 下列关于视图说法不正确的是( )。 答案:C. 使用视图可以加快查询语句的执行 23. DBMS内的数据字典用于存储( )。 答案:D. A和B 24. 在MySQL的授权表中,不受GRANT和REVOKE语句影响的权限表是 ( )。 答案:A.host权限表 25. 一张表的主键个数为( )。 答案:C.至多1个 26. 若使用load data infile命令中,若想要跳过数据文件中的前3行,命令子句正确的是( )。 答案:C. IGNORE 3 LINES 27. 可以查看二进制日志文件的工具为( )。 答案:C. mysqlbinlog 28.以下哪个命令可以查看查询语句的执行计划( )。 答案:D.explain 29. 将子查询的结果缓存于内存或临时表中的技术叫做( )。 答案:B.物化子查询 30. 从数据库服务器中SQL线程的作用是( )。 答案:A.中继日志文件的管理 二、多项选择题 1. 以下属于数据库系统运维的主要内容的是( )。 答案:A. 数据库安装与配置 答案:B. 数据库安全性管理 答案:C. 数据库备份与恢复 答案:D. 预防性巡检 2.在MySQL数据库中,数据库文件的扩展名包括( )。 答案:B. .myi 答案:C. .ibd 答案:D. .frm 3. MySQL中,对二进制文件的功能描述正确的是( )。 答案:A. 主从数据库通过二进制文件的传递达到主从同步目的 答案:B. 二进制文件可用于数据恢复,通过应用二进制日志文件,能够将数据库恢复到故障发生前的状态。 4. 在MySQL数据库中,下列关于创建数据库表的描述不正确的是( )。 答案:B. 在删除表的时候通过外键约束连接在一起的表会被一同删除 答案:C. 在创建表时必须设置列类型 答案:D. 通过CREATE TABLE new_t SELECT * FROM old_t复制表的同时,表的约束能够一起被复制到新表中 5. 在MySQL中,下列说法正确的是( )。 答案:B.建立数据表之前必须先建立表结构 答案:D.可以建立多个数据库,但也可以通过限定,使用户只能建立一个数据库 6. 关于MySQL列约束的下列描述中正确的有( )。 答案:B. 外键约束会影响表的插入操作执行效率,应当谨慎使用 答案:D. 一个表可以声明多个外键列 7. 下列关于事务日志和二进制日志说法正确的是( )。 答案:A.二进制日志记录了对MySQL数据库中的DML操作 答案:B.事务日志是InnoDB存储引擎特有的日志 8. 查询代价估算是基于哪些指标进行的( )。 答案:A. I/O代价 答案:D. CPU代价 9. 以下关于CHAR和VARCHAR的区别,说法正确的是( )。 答案:A.CHAR是固定长度,VARCHAR是可变长度。 答案:B. CHAR会占据多余的空间 答案:C.CHAR最多存放255个字符,VARCHAR最多存放65532个字符 10. 在MySQL复制中,复制模式分为哪几种( )。 答案:B. 基于语句的复制模式 答案:C. 基于行的复制模式 答案:D. 混合记录模式 11. 数据库管理员的核心目标是保证数据库管理系统的( )。 答案:A.稳定性 答案:B.安全性 答案:C.高性能 答案:D.完整性 12.MySQL数据库正常使用情况下必须含有以下哪三种文件( )。 答案:A. ibd文件 答案:B. myd文件 答案:C. myi文件 13.关于临时表的描述正确的是( )。 答案:A. 只在创建的会话可见,其它会话不能访问另一个会话创建的临时表 答案:B. 临时表只存在于会话生命周期中 答案:C. 临时表可以与非临时表有相同的名称 答案:D. 临时表不能使用SHOW TABLES显示 14. 关于索引的描述正确的是( )。 答案:A.一个表上可以创建多个索引 答案:B.一个索引可以包括多个字段 答案:C.一个字段可以出现在多个不同的索引中 15. SELECT语句完整性比较复杂,但至少包含的部分有( )。 答案:A.SELECT 答案:B. FROM 16. MySQL可以授予的权限包括( )。 答案:A.列权限 答案:B. 表权限 答案:C.数据库权限 答案:D.用户权限 17. 基于拷贝文件的恢复说法正确的是( )。 答案:B.进行数据库恢复的MySQL服务的版本要与备份的MySQL服务的版本保持一致 答案:C.恢复过程中需要备份的配置文件与数据文件 18. 以下属于索引的缺点的是( )。 答案:A.使用索引会降低表的更新速度 答案:B. 索引会占用大量的磁盘空间 答案:C.索引文件的大小会随着表的增大迅速膨胀 19. 使用垂直拆分的方式拆分表的优点有以下哪些( BCD ) 答案:B.垂直拆分会减少查询时的I/O次数 答案:C.垂直拆分能最大化地利用Cache加速查询 答案:D.垂直拆分可以减少行数据的大小使得数据块存放更多数据 20. 主从同步过程中,从数据库可能发生错误并导致数据不一致的原因可能是( ABCD) 答案:A.网络中断 答案:B. 服务器崩溃 答案:C.MySQL的Bug 答案:D. 服务器非正常关闭 综合题 1. 最常见的两种存储引擎是InnoDB和MyISAM,叙述两者各自的特点和适用场景。 答案: InnoDB支持事务处理、支持外键、支持崩溃修复能力和并发控制,不支持全文索引,行锁设置即默认情况下读操作不产生锁,缺点是读写效率较差,占用的数据空间相对较大。如果需要频繁地更新、删除操作的数据库,也可以选择InnoDB。 MyISAM是非事务安全型的,不支持外键,为表级锁,支持全文索引,支持数据可压缩,空间和内存使用率低,只缓存索引块查询速度快;缺点是不支持事务的完整性和并发性。适用于频繁查询操作,主要面向一些OLAP数据库应用。 2. 写出如下操作语句,并简要说明操作结果: (1) 登入root账户并在student数据库中创建一个名为stuinfo的表,表中字段包括:Stuno、Stuname、Stubir、Stuage,其中Stuno为主键。 答案: mysql -u root -p; USE student CREATE TABLE stuinfo (Stuno varchar(10) primary key, Stuname varchar (8), Stubir datetime, Stuage int); 操作结果为创建成功 (2)向stuinfo表中添加一条记录,使得对应字段分别为“2019211001”,“David”,“2002-02-05”,17。 答案: insert into stuinfo values(‘2019211001’,’David’,’2002-02-05’,17); 操作结果为插入成功 (3)向stuinfo表中添加一条记录,使得对应字段分别为“2019211001”,“Tina”,“2002-05-26”,17。 答案: insert into stuinfo values(‘2019211001’,’David’,’2002-02-05’,17); 操作结果为插入成功 (会显示:ERROR 1142 (42000): INSERT command denied to user ‘dbnormal’@’localhost’ for table ‘stuinfo’) (4)向stuinfo表中添加一条记录,使得对应字段分别为“2019211002”,“David”,“2002-02-05”,17。 答案: insert into stuinfo values(‘2019211002′,’David’,’2002-02-05′,17); 操作结果为插入成功 (5)向stuinfo表中添加一条记录,使得对应字段分别为null,“David”,“2002-02-05”,17。 答案: insert into stuinfo values(null,’David’,’2002-02-05’,17); 操作结果为插入失败 (访问被拒绝:ERROR 1048 (23000): Column ‘stuno’ cannot be null) 3. MySQL数据库运维的五大指标具体是什么? 答案: (1)数据的可恢复性。有些时候也说成数据可靠,数据库运维人员的首要职责是必须保证不丢数据; (2)系统高可用性。系统高可用性提供稳定服务的时间,即年度可服务时间比例要高。 (3)响应时间。响应时间是指一条查询或者更新语句从发出请求到接收完数据的时间。对于一般应用来说,在50 ms内返回是比较理想的结果,超过200 ms的查询可以视为慢查询。 (4)成本问题。数据库系统的成本主要是硬件成本+软件成本+人力成本,如何提高硬件或者软件的使用率,降低人工运维成本,提高人均产出,就是成本问题的目标。 (5)运维人员的幸福指数。运维的很多工作需要人工来完成,为了体现运维的人文关怀,必须加入运维人员幸福指标。运维人员的幸福指数可以从以下三个方面考量。①人均承担数据库读写量(如果数据库读写量大,这个值低,那么必然是运维人员多,人均产值/薪酬低)。②运维人员长期从事机械化的、重复性工作的时间比例。③运维人员在工作时间以外进行切换上线、故障处理的时间比例。 4. 数据库CAP下有如下几张表: 顾客表:C(cid,cname,city,discnt) 商品表:P(pid,pname,city,quantity,price) 代理商表:A(aid,aname,city,percent) 连接数据库的用户名为root,密码为123456,写出如下操作语句: (1)使用select… into outfile 对数据库代理商表A进行备份,备份数据字段的分隔符为‘,’,包裹字段的符号为‘”’, 行的结束符为‘\n’ 答案: SELECT * FROM cap.a INTO OUTFILE a.txt FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘”’ LINES TERMINATED BY ‘\n’ (2)使用truncate语句清空代理商表A中的数据 答案: truncate table a (3)利用(1)备份的数据文件,恢复代理商表A中的数据 答案: mysqlimport –uroot -p123456 cap a.txt –field-terminated-by=, –fields-enclosed-by=\” 单项选择题 1. ITIL(Information Technology Infrastructure Library,信息技术基础架构库)运维服务体系中问题管理流程的目标是( )。 答案:B. 消除运维服务中的潜在问题以防止事件的发生 2. MySQL配置文件当中,正确的语法格式是( )。 答案:D. auto-increment-offset=5 3.关于MySQL动态设置变量叙述正确的是( ) 答案:D. DEFAULT值赋给会话级变量可以把变量改为使用全局值,把它赋值给全局变量可以设置这个变量为编译内置的默认值 4.在关系数据库中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的方法是( )。 答案:D. 视图 5.下列( )数据不适合创建索引。 答案:C. 包含太多重复选用值得列 6. 以下表示可变长度字符串的数据类型是( )。 答案:B. VARCHAR 7. 以下哪个命令是使用超级管理员身份创建普通账户( )。 答案:D. create user ‘username’@‘localhost’ identified by ‘123456’ 8.执行语句grant select on *.* to username@localhost的意义( )。 答案:D.赋予username用户全局在任意表任意列的select权限 9. 关于MySQL修改密码权限说法错误的是( )。 答案:D. 普通用户账户密码的修改可以由其他普通账户进行修改 10. 关系数据库中,主键是( )。 答案:D.为标识表中唯一的实体 11. 数据库恢复用到的技术是( )。 答案:A.数据库备份和登记日志文件 12. select…into outfile语句中用于指定字段值之间符号的子句是( )。 答案:B.fileds terminated by 13. 从sys_schema中查询哪些语句出现错误的命令是( )。 答案:A.SELECT * FROM sys.statements_with_errors_or_warnings 14. 查询优化策略中,正确的策略是( )。 答案:D.尽可能早地执行选择操作 15. 下面关于复制的基本步骤哪一项是错误的?( ) 答案:C.主数据库服务器将从数据库服务器上的日志复制到自己的中继日志中 16.MySQL数据库运维中系统高可用性,其中年度可服务时间比例“5个9”,其年度停机时间大约为( )。 答案:C.5min 17. MySQL数据库中创建表并指定MyISAM存储引擎的语句是( )。 答案:D. Create table t_myisam(id int(10) auto_increment, name varchar(10), age int(3), primary key (id)) engine = MyISAM; 18.SQL模式(sql_mode)这个设置可以接受多种选项来改变服务器行为,不允许置换存储引擎的选项值是( )。 答案:C. NO_ENGINE_SUBSTITUTION 19.语句DELETE FROM stu表明( )。 答案:A. 删除stu表中的全部记录 20.关于索引正确的说法是( )。 答案:B. 使用索引可以提高数据查询速度,但会降低数据更新速度 21. 存储用户密码的MD5哈希值,一般使用的数据类型是( )。 答案:A.CHAR 22. 在Mysql的授权表中,记录各个账号在各个数据库上操作权限的权限表是( )。 答案:C.db权限表 23. Mysql服务器安装时,下列说法正确的是( )。 答案:C. Mysql建立一个名为mysql的数据库和一个名为test的数据库 24. 关于限制MySQL账户资源次数,表示限定同时段内该用户账户连接到MySQL服务器的最大并发连接数的是( )。 答案:D. max_user_connections 25. 下列哪些语句对主键的说明正确( )。 答案:C.在数据表中的唯一索引 26. MySQL中查询系统变量的命令是( )。 答案:A. show variables 27. 使用命令select…into outfile将数据库employees中的数据表departments中的数据导出到D盘下的tmp.txt文件中的命令是 ( )。 答案:B.SELECT * FROM employees.departments INTO OUTFILE “D:/tmp.txt” 28.以下哪个数据库保存所有的临时表和临时存储过程( )。 答案:A.tempdb数据库 29. MySQL支持以下哪种情况的子查询优化( )。 答案:A.简单SELECT查询中的子查询 30. 下列关于复制过滤描述正确的是( )。 答案:D.在主数据库上可以使用选项binlog_do_db来控制过滤 31.MySQL二进制日志binlog其作用是记录MySQL内部( )的内容。 答案:A.增删改 32. 下面哪种方式是MySQL默认事务隔离级别。( ) 答案:C. repeatable read 33.关于MySQL日志文件叙述正确的是( )。 答案:D. 日志文件会记录MySQL服务器的各种信息,所以当MySQL服务器遇到意外的损害时,不仅可以通过日志文件来查看出错的原因,还可以通过日志文件进行数据恢复 34.关系的所有人若允许某用户仅访问该关系指定的字段或元组,可用的方法是( )。 答案:D. 提供适当的视图 35.在MySQL数据库中,以下数据库对象与数据库三级模式对应关系正确的是( )。 答案:A. 表属于模式、索引属于内模式、视图属于外模式 36. 下列关于数据库对象的描述,错误的是( )。 答案:D.一个关系可以有多个主码 37. MySQL权限系统对用户可操作行为的认证说法不正确的是( )。 答案:B. 如果用户名和密码都匹配,IP不匹配,用户仍可继续访问 38. Mysql的自身防御机制不包括( )。 答案:A. 数据库注入 39. 关于限制MySQL账户资源次数,表示限定每小时内该用户账户向MySQL服务器发送查询语句或者mysql命令的最大允许次数的是( )。 答案:A. max_questions 40. 用户自定义完整性中,不同表的两列或多列之间可能存在的直接要求关系,这种直接要求关系涉及两个不同的表,这种约束为( )。 答案:C.关系间约束 41. 系统变量中哪一个的值对应MySQL的数据目录 ( )。 答案:A.datadir 42. 如果误删除了employees数据库中的数据表departments,现使用命令恢复SQL格式的备份数据( )。 答案:A.mysql -uroot -p123456 employees < departments.sql 43.关于PROCESSLIST结果中字段的含义,正确的说法是( )。 答案:B.STATE显示当前连接的SQL语句的执行状态 44. 以下关于使用逆规范化技术优化数据库对象说法错误的是( )。 答案:C.逆规范化不会带来数据完整性的额外问题 45. 在MySQL复制中,复制模式为( )。 答案:D.上述所有模式 多项选择题 1. 数据库系统的重要特征包括( )。 答案:A.数据的独立性 答案:C.数据的完整性 答案:D.数据的共享性 2.MySQL数据库中,存储引擎InnoDB的功能特点有( )。 答案:A. 支持事务的提交和回滚 答案:B. 崩溃修复能力 答案:C. 并发控制 3. 在配置MySQL服务器时缓存池的大小设置,下面正确的是( )。 答案:C. 缓冲池的配置,不仅要兼顾系统中其他程序使用的内存空间,还要减去其他配置的MySQL缓存和缓存需要的内存空间 答案:D. 缓冲池大小的设置过大,则可能会造成更严重的问题,如出现内存交换、磁盘抖动,甚至内存耗尽和硬件死机等现象 4. MySQL中可以创建的索引有( )。 答案:A.聚簇索引 答案:B.普通索引 答案:C.主键索引 答案:D.全文索引 5. 必须明确指定组成视图的所有列名的情况有( )。 答案:B.多表连接时选出了几个同名列作为视图的字段 答案:C.需要在视图中为某个列启用新的、更合适的名字 答案:D.某个目标列不是单纯的属性名,而是聚集函数或列表达式 6. MySQL服务器安装时,自动建立两个数据库,首先是mysql数据库,该数据库是MySQL权限系统的核心,包含以下哪几个表:( )。 答案:A. user表 答案:B. db表 答案:D. tables_priv表 7. MySQL数据库创建外键可以通过哪些SQL语句实现( )。 答案:A.CREATE TABLE 答案:C.ALTER TABLE 8. 关于文件系统冷备份的说法正确的是( )。 答案:A. 文件系统冷备份就是直接使用操作系统提供的命令对文件进行拷贝 答案:C. 对于InnoDB存储引擎的数据表中的数据文件包含在根目录下的ibdata*文件中,在文件系统冷备份过程中需要拷贝此文件 答案:D. 要备份只有MyISAM存储引擎的数据库,只需要复制数据库对应名称的目录下的数据文件,不需要复制ibdata*文件。 9. 以下哪些语句会导致查询缓存失效( )。 答案:B. update 答案:C. Insert 答案:D. truncate 10. 在MySQL中,复制比较常见的用途有( )。 答案:A. 数据分布 答案:B. 负载均衡 答案:C. 备份 答案:D. 高可用性和故障切换 11. 数据库系统运维内容包括数据库备份与恢复,其中数据库备份分级包括()。 答案:A.本地备份 答案:B.异地备份 答案:C.同步备份 答案:D.实时备份 12.在数据库中事务的ACID原则中,包含下列哪些内容( )。 答案:A. 原子性 答案:B. 一致性 答案:C. 隔离性 答案:D. 持久性 13.MySQL中,关于各类日志文件叙述正确的是( )。 答案:B. 错误日志会记录MySQL服务器启动、关闭和运行时出错等信息。 答案:C. 慢查询日志记录执行时间超过指定时间的各种操作,通过工具分析慢查询日志可以定位MySQL服务器性能瓶颈所在。 答案:D. 通用查询日志记录MySQL服务器的启动和关闭信息、客户端的连接信息、更新数据记录SQL语句和查询数据记录SQL语句。 14. 外键定义中ON DELETE与ON UPDATE有几种设置( )。 答案:A.CASCADE 答案:B.NO ACTION 答案:C.RESTRICT 答案:D.SET NULL 15. 创建数据库时,下列哪些类型的长度是可以省略的( )。 答案:A.DATE 答案:C. TEXT 答案:D. INT 16. MySQL中权限的范围可以到数据库或表的权限为( )。 答案:C.create 答案:D. drop 17. 用户自定义完整性约束包括以下哪几种约束( )。 答案:A.元组约束 答案:B. 关系间约束 答案:D. 域约束 18. 基于拷贝文件的恢复说法正确的是( )。 答案:B.进行数据库恢复的MySQL服务的版本要与备份的MySQL服务的版本保持一致 答案:C.恢复过程中需要备份的配置文件与数据文件 19. 以下哪些修改表结构的操作可以通过修改.frm文件提升效率( )。 答案:C.增加/删除字段的AUTO_INCREMENT属性 答案:D.增加/删除/修改 ENUM的常量值 20. 在MySQL复制中,复制模式分为哪几种( )。 答案:B. 基于语句的复制模式 答案:C. 基于行的复制模式 答案:D. 混合记录模式 21. 数据库系统日常的运维管理中包括日维护作业计划, 以下属于日维护作业计划的是( )。 答案:A. 检查数据库网络连通与否 答案:B.检查磁盘空间的使用情况,监视数据库的表空间利用率 22.关于MySQL数据库的MyISAM存储引擎描述正确的是( )。 答案:A. 表锁、全文索引和不支持事务 答案:B. 不缓存数据文件,只缓存索引文件 23.关于MySQL查询日志表特点描述正确的是( )。 答案:A. 日志表的写操作不会记入二进制日志,同样,如果有复制环境的话,日志表的内容也不会被复制到其他Slaves节点 答案:B. 刷新日志表或日志文件,可以使用FLUSH TABLES或FLUSH LOGS 答案:C. 日志表不支持LOCK TABLES,并且也不允许用户在其上进行INSERT、UPDATE、DELETE操作,该表的增、删、改、查都是由MySQL服务内部操作的 24. 创建唯一性索引的方法有( )。 答案:A.设置主键约束 答案:B.CREATE INDEX 25. 关于DELETE和TRUNCATE TABLE说法正确的是( )。 答案:A.两者都可以删除表中所有记录 答案:B.两者都可以删除指定条目的记录 答案:C.前者可以删除指定条目的记录,后者不能 答案:D.后者可以清空一个表的所有数据,并归1自增ID的值 26. MySQL中主键的规则包括以下哪几项( )。 答案:A.每个表必须定义一个主键 答案:C.一个表主键可以有两列 答案:D.主键的指定应满足最小化原则 27. 下列对命名完整性描述正确的是( )。 答案:A.使得数据库中每个完整性约束都有一个名字 答案:B.完整性约束名字能够体现完整性约束种类以及作用表的名称 28. 关于InnoDB崩溃恢复说法正确的是( )。 答案:A.InnoDB崩溃恢复借助于InnoDB引擎的Redo和Undo日志 答案:B.InnoDB的恢复过程是在MySQL线程中进行的 答案:C.多数情况下,InnoDB会自觉地执行线程恢复 29. .MySQL中的sys_schema库中存储以下哪些信息( )。 答案:A.Innodb相关信息 答案:B.IO使用情况 答案:C.连接与会话信息 答案:D.索引信息 30. 复制配置成功后,如果在主数据库上做一些数据更新,下列情况会出现的是( )。 答案:A.从数据库上文件增加 答案:B. 从数据库日志文件增加 答案:C. 从数据库数据更新 综合题 1.请陈述MySQL服务器中,数据库和数据库实例的概念。 答案: 在MySQL服务器下,数据库就是物理操作系统文件或其他形式文件类型的集合,是指以一定方式存储在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 数据库实例由后台线程和一个共享内存组成,是位于用户与操作系统之间的一层数据管理软件,用户对数据库的定义、运行控制,及对数据的查询、维护等都是通过数据库实例来完成的。 2. 快递业务中,有快递单号信息表exp_info(id, address, create_time, last_update_time) (1)使用ALTER TABLE 语句给exp_info中的create_time字段创建索引; 答案: ALTER TABLE exp_info ADD INDEX create_time_idx(create_time); (2)使用ALTER TABLE 给id字段创建名称为id_idx的唯一索引,并以降序排列; 答案: ALTER TABLE exp_info ADD UNIQUE INDEX id_idx(id DESC); (3)使用CREATE INDEX 在id和create_time两个字段上建立组合索引; 答案: CREATE INDEX id_create_time_idx ON exp_info (id, create_time); (4)使用ALTER TABLE 语句删除exp_time中名称为id_idx的唯一索引; 答案: ALTER TABLE exp_info DROP INDEX id_idx; (5)使用DROP INDEX 语句删除exp_info表中名称为id_create_time_idx的索引。 答案: DEOP INDEX id_create_time_idx ON exp_info; 3. 写出5条使用mysqladmin 命令行工具的语句。 答案: mysqladmin 工具的使用格式: mysqladmin [option] command [command ] command 查看服务器的状况:status:mysqladmin -uroot -p status; 显示服务器所有运行的进程:mysqladmin -uroot -p processlist; 结束进程:mysqladmin -uroot -p kill idnum; 使用安全模式关闭数据库:mysqladmin -uroot -p shutdown; 清空线程缓冲池:mysqladmin -u root -p password flush-threads 4. 主键唯一性验证: (1) 登入root账户并在student数据库中创建一个名为stuinfo的表,表中字段包括:Stuno、Stuname、Stubir、Stuage。 答案: mysql -u root -p; USE student CREATE TABLE stuinfo (Stuno varchar(10) primary key, Stuname varchar (8), Stubir datetime, Stuage int); (2)向stuinfo表中添加一条记录,使得对应字段分别为“2019211001”,“David”,“2002-02-05”,17。 答案: insert into stuinfo values(‘2019211001’,’David’,’2002-02-05’,17); (3)向stuinfo表中添加一条记录,使得对应字段分别为“2019211001”,“Tina”,“2002-05-26”,17。 答案: insert into stuinfo values(‘2019211001’,’Tina’,’2002-5-26’,17); (会显示:ERROR 1142 (42000): INSERT command denied to user ‘dbnormal’@’localhost’ for table ‘stuinfo’) (4)向stuinfo表中添加一条记录,使得对应字段分别为“2019211002”,“David”,“2002-02-05”,17。 答案: insert into stuinfo values(‘2019211002′,’David’,’2002-02-05′,17); (插入成功) (5)向stuinfo表中添加一条记录,使得对应字段分别为null,“David”,“2002-02-05”,17。 答案: insert into stuinfo values(null,’David’,’2002-02-05’,17); (访问被拒绝:ERROR 1048 (23000): Column ‘stuno’ cannot be null) 5. 数据库运维的核心任务是什么? 答案: 数据库运维的核心任务: 对数据库实例进行优化调整配置、 对数据库对象进行管理、 对数据库安全性进行管理、 对数据库进行备份和恢复、 对数据库性能进行不断优化,来提高系统性能,保证数据可靠等。 6. 简单购物系统涉及如下表: (1)产品表(数据量10w,稳定) (2)订单表(数据量200w,且有增长趋势) (3)用户表 (数据量100w,且有增长趋势) 请以MySQL为例讲述下如何进行拆分。 答案: 垂直拆分 mysql能够容忍数据量的数量级在百万到千万,所以进行垂直拆分可以解决表与表之间的IO竞争,但是无法解决单表中数据量增长的问题,按照垂直拆分的思路可以将产品表和用户表放到一个server上,将订单表放到一个server上。 水平拆分 水平拆分可以解决数据量增长的问题,但是无法解决表与表之间的IO竞争问题。水平拆分可以将用户表拆分为男女用户,将订单表拆分为已完成订单和未完成订单。 一、单项选择题 1.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是( )。 答案:A.DBS包括DB和DBMS 2.对数据库特征的描述不准确的是( )。 答案:D. 数据没有冗余 3.连接MySQL服务器的指令是?( ) 答案:C. mysql -u root -p test 4.在Windows 的DOS(命令提示符)下启动和停止MySQL服务器的命令是( ) 答案:B. net start mysql 和 net stop mysql 5.关于MySQL数据库存储引擎描述正确的是( ) 答案:C.Memory存储引擎默认使用哈希索引,这使得它们对于单值查找非常快速,并且对于创建临时表非常有用 6. 下列特点( )是视图不具备的。 答案:D. 提高数据的网络传输速度 7. 下列( )数据不适合创建索引。 答案:C. 包含太多重复选用值得列 8. 为数据表创建索引的目的是( ) 答案:A.提高查询的检索性能 9. 在MySQL中关于limit 2,4,说法正确的是( ) 答案:B. 表示检索出第三行开始的四条数据 10. 以下哪个命令是使用超级管理员身份创建普通账户( ) 答案:D. create user ‘username’@‘localhost’ identified by ‘123456’ 11. 下列语句中创建新用户的语句为( ) 答案:A. insert into mysql.user(Host,User,Password) VALUES(‘host_name’, ‘user_name’,PASSWORD(‘password’) 12. 下列属于数据层级操作权限的是( ) 答案:A. select权限、insert权限、update权限、delete权限 13. 数据库恢复用到的技术是( ) 答案:A.数据库备份和登记日志文件 14. MySQL中,可以用于备份数据库的命令是( ) 答案:B. mysqldump 15. 查询优化策略中,正确的策略是( ) 答案:D.尽可能早地执行选择操作 16. 以下哪个选项属于关系数据库中内模式的范畴( )。 答案:A.索引 17.要保证数据库的数据独立性,需要修改的是( )。 答案:C. 三级模式之间的两层映射 18.MySQL使用的默认端口是( ) 答案:B. 3306 19.慢查询日志为MySQL软件非常重要的日志之一,下面对其描述正确的是( ) 答案:A. 主要是用来记录执行时间超过规定时间的查询语句 20.MySQL中,关于各类日志文件叙述正确的是( ) 答案:B. 错误日志会记录MySQL服务器启动、关闭和运行时出错等信息 21. SQL语言集数据查询、数据操纵、数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能( ) 答案:C.数据定义 22. ( )的视图,是可以完全更新的。 答案:C. 仅由一个表的行列子集构成的 23. 下列关于视图说法不正确的是( ) 答案:C. 使用视图可以加快查询语句的执行 24. 执行语句grant select on *.* to username@localhost的意义( ) 答案:D.赋予username用户全局在任意表任意列的select权限 25. MySQL权限系统对用户可操作行为的认证说法不正确的是( ) 答案:B. 如果用户名和密码都匹配,IP不匹配,用户仍可继续访问 26. 关于Mysql修改密码权限说法错误的是( ) 答案:D. 普通用户账户密码的修改可以由其他普通账户进行修改 27. 适用通配符查看名称包含dir的系统变量的值 ( ) 答案:B.show variables like ‘%dir%’ 28. 设置日志清理时间为5天的命令正确的是 ( ) 答案:D. set global expire_logs_days=5 29. 若使用load data infile命令中,若想要跳过数据文件中的前3行,命令子句正确的是( ) 答案:C. IGNORE 3 LINES 30. 以下关于数据库性监视,错误的说法是( ) 答案:A.数据库性能监视不仅要监视MySQL当前的状态,还需监视OS的状态 31.数据库系统的核心是( )。 答案:C.数据库管理系统 32.MySQL服务器的存储引擎中支持事务处理、支持外键、支持崩溃修复能力和并发控制的存储引擎是( ) 答案:A. InnoDB 33.在MySQL中,建立数据库用( ) 答案:D. CREATE DATABASE 34. 为数据库表创建索引的目的是( ) 答案:C. 提高查询的检索性能 35. 在视图上不能完成的操作是( ) 答案:C.在视图上定义新的表 36.数据库审计的内容不包括( ) 答案:B. 数据库内容 37. 关于create user语句,下列说法正确的是( ) 答案:C. 每增加一个新用户,都会在User表中添加一条新记录 38. 下列全部属于数据库层级操作权限(操作对象为表或者其他数据库逻辑层面)的是( ) 答案:B. index权限、drop权限、reload权限、alter权限 39. 系统故障的恢复操作正确的是( ) 答案:D. 正向扫描日志文件,对故障发生前已经提交的事务记入重做队列,故障发生时未完成的事务计入撤销队列 40.使用命令select…into outfile将数据库employees中的数据表departments中的数据导出到D盘下的tmp.txt文件中的命令是 ( ) 答案:B.SELECT * FROM employees.departments INTO OUTFILE “D:/tmp.txt” 41. 获取当前二进制日志文件所在的位置的正确命令是 ( ) 答案:A. show master status 42. 查询已执行SELECT语句总数的命令是?( ) 答案:D.show global status Com_select 43.关于MySQL最大连接数,以下说法错误的是( ) 答案:B.可以通过命令行永久修改max_connections的值 44. 主数据库的进行服务器ID等相关配置的文件是( ) 答案:A.my.ini 45. 从数据库服务器中I/O线程的作用是( ) 答案:D.访问主数据库的二进制文件存放在中继日志文件中 46.以下不属于数据库特点的是( )。 答案:B.数据冗余度高 47. 以下哪个选项是关系数据库中外模式的具体体现( )。 答案:B.视图 48.数据库中数据的逻辑独立性是指( )。 答案:D.数据与程序之间的逻辑相互独立 49. MySQL内部有4种常见日志, 哪种日志是不能直接cat或more文件查阅日志内容( ) 答案:B. 二进制日志(bin-log) 50.MySQL数据文件类型中,下列表示索引文件的是( ) 答案:C. myi文件 51. 以下关于聚集索引和非聚集索引说法正确的是( ) 答案:B. 每个表只能建立一个聚集索引 52. 下列的SQL语句中,( )不是数据定义语句 答案:D. GRANT 53. 若要在基本表中添加一列CNAME(课程名),可用( ) 答案:C. ALTER TABLE S ADD (CNAME CHAR(8)) 54. 在Mysql的授权表中,记录各个账号在各个数据库上操作权限的权限表是( ) 答案:C.db权限表 55. 下面关于写日志优先准则描述正确的是( ) 答案:C. 当数据库执行更新操作时,先把更新信息写进日志,然后更新数据库 56. 下面关于mysqldump命令使用正确的是( ) 答案:A. mysqldump -uroot -p123456 –databases employees test> file.sql 57. 存储数据文件的student.txt文本中存储的内容形式如下: “2012110708”,19, “张三” “2012110710”,20, “李四” 将上述的数据导入到数据表:学生(学号,姓名,年龄),正确的命令应为( ) 答案:C. load data infile ‘student.txt’ into table 学生(学号,年龄,姓名) fields terminated by ‘,’ optionally enclosed by ‘”‘ lines terminated by ‘\n’; 58. 以下关于慢查询日志说法正确的是 ( ) 答案:C. 慢查询会导致CPU、内存消耗过高 59. 以下哪个命令可以查看查询语句的执行计划( ) 答案:D. explain 60.确认二进制日志文件是否已经在主库上创建的命令是( ) 答案:B. SHOW MASTER STATUS 多项选择题 1. 数据库系统的重要特征包括( )。 答案:A.数据的独立性 答案:C.数据的完整性 答案:D.数据的共享性 2. 一个完整的IT运维服务体系主要有( )部分组成。 答案:A.运维服务管理流程 答案:B.运维规章制度与工作规范 答案:D.运维服务团队 3.关于临时表的描述正确的是( ) 答案:A. 只在创建的会话可见,其它会话不能访问另一个会话创建的临时表 答案:B. 临时表只存在于会话生命周期中 答案:C. 临时表可以与非临时表有相同的名称 答案:D. 临时表不能使用SHOW TABLES显示 4. 下面数据库名称合法的是( ) 答案:C.db1_student 答案:D.db1&student 5. MySQL服务器安装时,自动建立两个数据库,首先是mysql数据库,该数据库是MySQL权限系统的核心,包含以下哪几个表:( ) 答案:A. user表 答案:B. db表 答案:D. tables_priv表 6. MySQL可以授予的权限包括( ) 答案:A.列权限 答案:B. 表权限 答案:C.数据库权限 答案:D.用户权限 7. 数据库中的故障种类可以分为( ) 答案:A.事务故障 答案:B. 系统故障 答案:C.介质故障 答案:D. 计算机病毒 8.下面关于select…into outfile使用的命令正确的是( ) 答案:A. SELECT employees.departments INTO OUTFILE “D:/tmp.txt” 答案:B. SELECT employees.departments INTO OUTFILE “D:\\tmp.txt” 答案:D. SELECT employees.departments INTO OUTFILE “D:\\tmp.txt”lines 9. 将外连接消除转化为内连接的好处是( ) 答案:B.内连接的操作所需要的时间低于内连接 答案:C.优化器可以更好地选择多表连接顺序,降低IO消耗 10. 主从同步过程中,从数据库可能发生错误并导致数据不一致的原因可能是( ) 答案:A.网络中断 答案:B. 服务器崩溃 答案:C.MySQL的Bug 答案:D. 服务器非正常关闭 11. 数据库运维的目标是保证数据库系统的( )。 答案:B.高性能 答案:C.高可用性 12.MySQL数据库中,存储引擎InnoDB的功能特点有( ) 答案:A. 支持事务的提交和回滚 答案:B. 崩溃修复能力 答案:C. 并发控制 13.在配置MySQL服务器时缓存池的大小设置,下面正确的是( ) 答案:C. 缓冲池的配置,不仅要兼顾系统中其他程序使用的内存空间,还要减去其他配置的MySQL缓存和缓存需要的内存空间 答案:D. 缓冲池大小的设置过大,则可能会造成更严重的问题,如出现内存交换、磁盘抖动,甚至内存耗尽和硬件死机等现象 14. 在MySQL数据库中,下列关于创建数据库表的描述不正确的是( ) 答案:A. 在创建表时必须设定列的约束 答案:B. 在删除表的时候通过外键约束连接在一起的表会被一同删除 答案:D. 通过CREATE TABLE new_t SELECT * FROM old_t复制表的同时,表的约束能够一起被复制到新表中 15. 对于显示操作以下说法正确的是( ) 答案:B.SHOW databases;显示所有数据库 答案:D.DESC table_name;显示表定义 16. 关于外键说法正确的是() 答案:A.在一个数据表中定义了外键后,数据库系统会保证插入外键中的每一个非空值都在被参照表当中作为主键出现 答案:B. 使用RESTRICT动作时,将待插入的记录值相应外键字段改成其所参照表中不存在的数据值,插入操作会被数据库拒绝 17.事务故障的恢复的步骤包括( ) 答案:B. 反向扫描日志文件,查找此事务的更新操作 答案:C. 对事务的更新操作执行逆操作 18.下面所示为某二进制日志的部分内容 # at 7667 #190527 21:30:05 server id 1 end_log_pos 7810 CRC32 0x1b66e482 Query thread_id=25 exec_time=0 error_code=0 SET TIMESTAMP=1558963805/*!*/; create table course (id int(11) primary key, cname varchar(23)) /*!*/; 可以看出( ) 答案:A. 二进制日志的开始时间为2019-05-27 21:30:05 答案:B. 二进制日志的位置为7667 答案:C. 进行的操作为创建了表course 19. 以下哪些方法可以减少对MySQL的访问次数( ) 答案:A.避免重复检索 答案:B. 使用查询缓存 答案:C.使用Cache层 20. 在MySQL中,复制比较常见的用途有( ) 答案:A. 数据分布 答案:B. 负载均衡 答案:C. 备份 答案:D. 高可用性和故障切换 21. 数据库的特点包括( )。 答案:A. 实现数据共享 答案:B. 减少数据的冗余 答案:C. 数据的独立性 答案:D. 数据实现集中控制 22.在数据库中事务的ACID原则中,包含下列哪些内容( ) 答案:A. 原子性 答案:B. 一致性 答案:C. 隔离性 答案:D. 持久性 23.MySQL中,对二进制文件的功能描述正确的是( ) 答案:A. 主从数据库通过二进制文件的传递达到主从同步目的 答案:B. 二进制文件可用于数据恢复,通过应用二进制日志文件,能够将数据库恢复到故障发生前的状态。 24.下列关于MySQL通用日志查询文件叙述正确的是( ) 答案:A. 动态地控制通用查询日志的开启与关闭,设置MySQL的环境变量general_log_file为OFF可以停止该日志 答案:C. 如果要启用或禁止某个会话产生的通用查询日志,可以通过会话级设置sql_log_off参数的值为OFF/ON来控制, sql_log_off仅作用于当前会话. 25. 下面关于创建和管理索引不正确的描述是( ) 答案:A. 索引的目的是为增加数据操作的速度 答案:B. 索引是数据库内部使用的对象 答案:D. 只能为一个字段建立索引 26. SELECT语句完整性比较复杂,但至少包含的部分有( ) 答案:A. SELECTB 答案:B. FROM 27. 用户自定义完整性约束包括以下哪几种约束( ) 答案:A. 元组约束 答案:B. 关系间约束 答案:C. 替代键约束 28. 下面正确恢复SQL格式备份数据的命令正确的是( ) 答案:B.mysql -uroot -p123456 employees < departments.sql 答案:C.直接在mysql命令行工具输入source departments.sql 29. 查询语句优化有以下哪些方法( ) 答案:A. 查询重写 答案:B. 并行查询 答案:C. 查询重用 30. 测量从数据库延迟的方法有( ) 答案:A.SHOW SLAVE STATUS命令 答案:D.采用第三方工具 31. 数据实现集中控制,包括( )。 答案:A.安全性控制 答案:B.完整性控制 答案:C.并发控制 32. 数据库管理系统的主要功能包括( )。 答案:A. 数据定义功能 答案:B. 数据操作功能 答案:C. 数据库的运行管理 答案:D. 数据库的建立和维护 33.MySQL数据库中,关于Memory存储引擎描述正确的是( ) 答案:A. 默认使用哈希索引 答案:B. MySQL使用Memory存储引擎作为临时表来存放查询的中间结果集 答案:D. 将表中数据存放在内存中 34. 在MySQL数据库中,下列关于创建、管理数据库的操作语句不正确的是( ) 答案:C. NEW DATABASE Instant 答案:D. Connection Instant 35. 关于临时表的描述正确的是( ) A. 只在创建的会话可见,其它会话不能访问另一个会话创建的临时表 答案:B. 临时表只存在于会话生命周期中 答案:C. 临时表可以与非临时表有相同的名称 答案:D. 临时表不能使用SHOW TABLES显示 36.关于MySQL列约束的下列描述中正确的有( ) 答案:B. 外键约束会影响表的插入操作执行效率,应当谨慎使用 答案:D. 一个表可以声明多个外键列 37. MySQL的备份策略收到哪些因素的影响( ) 答案:A. 数据库的可用性 答案:B. 存储引擎 答案:C. 锁策略 答案:D. MySQL拓扑结构 38. 关于load data infile命令和mysqlimport命令的说法正确的是( ) 答案:B. mysqlimport本质上是load data infile的命令接口 答案:C. mysqlimport可以导入多张表 答案:D. 两种方法都可以导入select…into outfile导出的文件 39. 以下哪些语句会导致查询缓存失效( ) 答案:B. update 答案:C. Insert 答案:D. truncate 40. 实现MySQL负载均衡的方法有( ) 答案:A.读写分离 答案:C.修改DNS 答案:D.使用中间件 综合题 1.仓库业务中,一个仓库数据库包括如下三张表: 仓库表warehouses(wid,name,area),wid是主键 零件表compnents(cid,name,mode,unit,price),cid为主键 组装表stores(wid,cid,qrty),wid、cid是外键,分别参照仓库表的wid和零件表的cid (1)创建以上表,写出创建语句; 答案: CREATE TABLE warehouses (wid char(11), Name char(30) Area numerirc(4,1) PRIMRY KEY wid); CREATE TABLE compnents (cid char(11), Name char(50), mode char(50), unit char(8), price numerirc(4,1) PRIMRY KEY cid); CREATE TABLE stores (wid char(11), cid char(11) qrty numerirc(4,1) FOREIGN KEY (wid) REFERENCES warehouses(wid) FOREIGN KEY (cid) REFERENCES compnents(cid); (2)创建一个包含仓库号、仓库名、零件号、零件名、价格、库存量的视图VIEW1,写出创建语句; 答案: CREATE VIEW view1 AS SELECT wid,warehouse.name,cid,compnents.name,price,qrty FROM warehouse,stores,compnents WHERE warehouse.wid=stores.wid and stores.cid=compnents.cid; (3)创建零件表上的聚簇索引,写出创建语句; 答案: CREATE TABLE compnents (cid int(11), Name char(50), PRIMRY KEY cid); (4)使用create user创建新用户“wangwu”,密码为“666666”,写出创建语句; 答案: CREATE USER “wangwu@localhost””666666”; (5)授予wangwu@localhost用户在视图view1在列库存量上的select权限,并且限定该用户此种select访问权限的每小时最多访问次数为20次,写出授权语句; 答案: mysql>GRANT SELECT(qrty ) ON view TO wangwu@localhost WITH MAX_QUERIES_PER_HOUR 20; 2. 登录root账户创建普通账户并给普通账户授权: (1) 创建一个密码为“123456”的普通用户账户“databasenormal”; 答案: create user ‘databasenormal’@’localhost’ identified by ‘123456’; (2) 创建名为student的数据库; 答案: create database student; (3) 创建名为student2的表,包括stuno(学号列)、stubir(生日列)、age(年龄列),并设置主键为stuno; 答案: create table student2 ( stuno char(50), stubir char(4), age int, PRIMRY KEY stuno ); (4) 使用grant命令对其进行student 数据库的student2的表的stuno列的select操作授权; 答案: grant select(stuno) on student.student2 to databasenormal@localhost; (5) 查看mysql数据库下user表中该用户的所有信息; 答案: select * from user where User=’databasenormal’ (6) 查看mysql数据库下table_priv表中该用户的所有信息; 答案: select * from tables_priv where User=’databasenormal’ ; (7) 查看mysql数据库下columns_priv表中该用户的所有信息; 答案: select * from columns_priv where User=’databasenormal’ ; 3.请回答以下几个问题: (1)数据库运维的目标是什么? 答案: 数据库运维的目标就是保证数据库系统高性能地稳定运行、持续可用,只有保证数据库系统运行的连续性与规律性,才能保证整个企业的运行秩序与效率。 (2)数据库运维的核心任务是什么? 答案: 数据库运维的核心任务:对数据库实例进行优化调整配置、对数据库对象进行管理、对数据库安全性进行管理、对数据库进行备份和恢复、对数据库性能进行不断优化,来提高系统性能,保证数据可靠等。 (3)MySQL数据库运维的五大指标具体是什么? 答案: (1)数据的可恢复性。有些时候也说成数据可靠,数据库运维人员的首要职责是必须保证不丢数据; (2)系统高可用性。系统高可用性提供稳定服务的时间,即年度可服务时间比例要高。 (3)响应时间。响应时间是指一条查询或者更新语句从发出请求到接收完数据的时间。对于一般应用来说,在50 ms内返回是比较理想的结果,超过200 ms的查询可以视为慢查询, (4)成本问题。数据库系统的成本主要是硬件成本+软件成本+人力成本,如何提高硬件或者软件的使用率,降低人工运维成本,提高人均产出,就是成本问题的目标。 (5)运维人员的幸福指数。运维的很多工作需要人工来完成,为了体现运维的人文关怀,必须加入运维人员幸福指标。运维人员的幸福指数可以从以下三个方面考量。①人均承担数据库读写量(如果数据库读写量大,这个值低,那么必然是运维人员多,人均产值/薪酬低)。②运维人员长期从事机械化的、重复性工作的时间比例。③运维人员在工作时间以外进行切换上线、故障处理的时间比例。 (4)请陈述MySQL服务器中,数据库和数据库实例的概念。 答案: 在MySQL服务器下,数据库就是物理操作系统文件或其他形式文件类型的集合,是指以一定方式存储在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 数据库实例由后台线程和一个共享内存组成,是位于用户与操作系统之间的一层数据管理软件,用户对数据库的定义、运行控制,及对数据的查询、维护等都是通过数据库实例来完成的。 4. 数据库company中有如下两张表 表offices(office_code, city, address, country, postal_code)office_code为主键, 表employees(employee_number, name, mobile, office_code, job_title, note, gender),employee_number为主键且自增. (1)创建数据库company,写出创建语句; 答案: CREATE DATABASE company; (2)创建表offices和employees,写出创建语句; 答案: CREATE TABLE offices( Office_code int(10) not null, city varchar(50), address varchar(50), country varchar(50), postal_code varchar(15) PRIMARY KEY (office_code) ); CREATE TABLE employees( Employee_number INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), mobile VARCHAR(25), office_code INT(10), job_title VARCHAR(50), note VARCHAR(255), gender VARCHAR(5), ); (3)将表employees的mobile字段修改到office_code字段后面; 答案: ALTER TABLE employees MODIFY mobile VARCHAR(25) AFTER office_code; (4)修改表employees的gender字段,数据类型为CHAR(1),非空约束; 答案: ALTER TABLE employees MODIFY gender CHAR(1) NOT NULL; (5)给表employees增加字段名favoriate_activity,数据类型为VARCHAR(100); 答案: ALTER TABLE employees ADD favoriate_activity VARCHAR(100); 5. MySQL中的数据库中有两张表: 消费者表customers(cid,cname,caddress,cgender),cid是主键 北京消费者表beijing_customers(cid,cname,cgender),cid为主键 其中消费者表中已经存在部分数据,而北京消费者表为一个空表。 (1)查询customers表中地址为北京的消费者; 答案: SELECT * FFROM customers WHERE caddress=’北京’; (2)使用select… into outfile语句导出customers表中消费者的地址为北京的数据,导出的字段中不包含地址,并且指定数据导出到C盘的BACKUP目录下一个名为backupfile.txt的文件中,要求字段值如果是字符则用双引号标注,字段值之间用逗号隔开,每行以问好为结束标志。 答案: SELECT cid,cname,cgender FROM customers WHERE caddress=’北京’ INTO OUTFILE ‘C:/BACKUP/backupfile.txt’ FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”’ LINES TERMINATED BY ‘?’; (3)假设(1)语句执行完后,得到如下所示的结果 +—–+——-+———-+———+ | cid | cname | caddress | cgender | +—–+——-+———-+———+ | 1 | 张三 | 北京 | F | | 2 | 李四 | 北京 | M | +—–+——-+———-+———+ 那么执行完成(2)之后backupfile.txt文件中得到的数据的形式为: 答案: 1,”张三”,”F”? 2,”李四”,”M”? (4)使用load data infile命令将(3)导出的数据导入到空表beijing_customers中,具体的命令为: 答案: LOAD DATA INFILE ‘C:/BACKUP/backupfile.txt‘ INTO TABLE beijing_customers FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”’ LINES TERMINATED BY ‘?’; 6.实现对用户账户方面的基本操作: (1)创建一个密码为“123456”的普通用户账户“databasenormal”; 答案: create user ‘databasenormal’@’localhost’ identified by ‘123456’; (2)修改账户databasenormal@localhost用户名称为dbnormal 答案: rename user databasenormal@localhost to dbnormal@localhost; (3)登录dbnormal@localhost账户并使用set password语句修改账户密码为‘654321’ 答案: mysql -u dbnormal -p; set password=password(‘654321’); (4)登录dbnormal@localhost账户并使用update语句修改账户密码为‘123456’ 答案: UPDATE mysql.user SET password=PASSWORD(‘db123456’) WHERE user=”dbnormal” and host=”localhost”; (5)查看该用户所拥有所有权限; 答案: show grants; 7. 图书管理系统中有张book表, book(bookid, bookname, authors, info, comment, year_publication); (1)请给作者为“刘杰”的书籍创建视图; 答案: CREATE VIEW book_lj_view (bookid, info, comment) AS SELECT bookid, info, comment FROM book WHERE authors=“刘杰”; (2)使用book_lj_view修改bookid为‘34523’的书籍的year_publication字段; 答案: UPDATE book_lj_view SET year_publication=1998 WHERE bookid=34523; (3)查看更新后的视图情况 答案: SELECT book_id, bookname, authors, comment FROM book_lj_view; (4)查询视图book_lj_view的结构; 答案: DESC book_lj_view;(不唯一) (5)删除book_lj_view视图 答案: DROP VIEW book_lj_view; 8. 主键唯一性验证: (1) 登入root账户并在student数据库中创建一个名为stuinfo的表,表中字段包括:Stuno、Stuname、Stubir、Stuage; 答案: mysql -u root -p; USE student CREATE TABLE stuinfo (Stuno varchar(10) primary key, Stuname varchar (8), Stubir datetime, Stuage int); (2)向stuinfo表中添加一条记录,使得对应字段分别为“2019211001”,“David”,“2002-02-05”,17。 答案: insert into stuinfo values(‘2019211001’,’David’,’2002-02-05’,17); (3)向stuinfo表中添加一条记录,使得对应字段分别为“2019211001”,“Tina”,“2002-05-26”,17 ;并说明可能产生的结果。 答案: insert into stuinfo values(‘2019211001’,’Tina’,’2002-5-26’,17); (会显示:ERROR 1142 (42000): INSERT command denied to user ‘dbnormal’@’localhost’ for table ‘stuinfo’) (4)向stuinfo表中添加一条记录,使得对应字段分别为“2019211002”,“David”,“2002-02-05”,17;并说明可能产生的结果 答案: insert into stuinfo values(‘2019211002′,’David’,’2002-02-05′,17); (插入成功) (5)向stuinfo表中添加一条记录,使得对应字段分别为null,“David”,“2002-02-05”,17;并说明可能产生的结果 答案: insert into stuinfo values(null,’David’,’2002-02-05’,17); (访问被拒绝:ERROR 1048 (23000): Column ‘stuno’ cannot be null)