版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MySQL第2章习题答案1.通过本章的学习,您了解的MySQL特点有哪些?(1)开源免费,易于获取和使用,降低开发与运维成本;(2)跨平台性,支持Windows、Linux、macOS等多种操作系统;(3)支持多种存储引擎(如InnoDB、MyISAM等),可根据业务场景灵活选择;(4)拥有核心配置文件(Windows下为my.ini,Linux/macOS下为f),可通过配置参数自定义服务器和客户机运行规则;(5)支持多种字符集(如gb2312、gbk、utf8mb4、big5等),能适配不同语言的存储需求,可通过配置避免字符乱码;(6)提供完善的注释机制(单行、多行、内联注释),便于SQL代码的维护和理解;(7)支持SQL脚本文件批量执行SQL语句,提升开发效率;(8)拥有全局系统变量和会话系统变量,可通过配置或命令调整服务器和会话的运行状态;(9)支持共享表空间和独享表空间两种存储方式,适配不同的存储需求;(10)自带系统数据库,用于存储账户信息、权限、性能数据等核心系统数据,保障服务器正常运行。2.什么是MySQL客户机?什么是MySQL会话?简单描述MySQL的使用流程。(1)MySQL客户机:是与MySQL服务器进行交互的工具/程序,用于向服务器发送SQL命令(如查询、增删改等)并接收执行结果。常见形式包括CMD命令提示符窗口(执行mysql.exe)、Navicat等可视化工具。其特征是以“mysql>”作为命令提示符,以“;”或“\g”作为命令结束标记。(2)MySQL会话:指MySQL客户机成功连接MySQL服务器后,两者之间建立的交互链路。每个客户机连接都会产生独立的会话,会话系统变量记录了当前会话的状态,且会话间的配置(如会话变量修改)互不影响。(3)MySQL使用流程:①启动MySQL服务:通过CMD执行“mysqld”命令,或通过Windows系统服务启动;②打开MySQL客户机并登录:通过CMD执行“mysql-u用户名-p”命令,输入密码后登录服务器;③执行SQL操作:在客户机中输入SQL命令(如查看数据库、创建表、增删改查记录等);④关闭MySQL客户机:使用“Ctrl+z”组合键(Windows)退出客户机;⑤停止MySQL服务:关闭启动服务的CMD窗口,或通过“netstopmysql”命令、Windows系统服务停止。3.一台主机可以安装多种MySQL客户机程序,每一种MySQL客户机程序可以同时打开多个MySQL客户机。搜索常用的MySQL客户机工具有哪些?常用MySQL客户机工具包括:(1)MySQL自带CMD客户端:通过MySQL安装目录下的mysql.exe启动,无图形界面,依赖命令行操作;(2)Navicat:可视化图形界面工具,支持Windows、macOS等系统,功能强大,可便捷实现数据库管理、表设计、SQL编辑与执行等操作;(3)SQLyog:轻量级可视化工具,占用资源少,操作简单,适合中小型项目的数据库管理;(4)DataGrip:JetBrains旗下的专业数据库工具,支持多种数据库类型,具备智能代码提示、语法检查等功能,适合开发人员使用;(5)PhpMyAdmin:基于Web的MySQL管理工具,无需安装客户端,通过浏览器即可操作,适合远程管理数据库。4.MySQL服务、MySQL服务进程、MySQL服务器分别是什么?什么是端口号?端口号有什么作用?(1)MySQL服务:指MySQL数据库的后台服务程序,用于监听客户端连接、处理SQL请求、管理数据存储等核心功能,是MySQL运行的基础;(2)MySQL服务进程:MySQL服务启动后在操作系统中生成的进程(Windows下为mysqld.exe),包括主进程(管理整个数据库)和子进程(处理客户端请求),进程运行期间服务才能正常提供服务;(3)MySQL服务器:广义上指运行MySQL服务的物理主机或虚拟主机,狭义上指MySQL服务程序及其对应的进程、配置文件、数据文件等的集合;(4)端口号:是操作系统分配给不同服务的数字标识(范围0-65535),用于区分同一主机上的不同服务;(5)端口号的作用:MySQL服务默认使用3306端口号,客户端连接时需指定端口号(默认可省略),确保客户端请求能准确传递到MySQL服务进程,避免与主机上其他服务(如HTTP服务的80端口)混淆。5.请列举my.ini配置文件中常用的参数选项组以及参数信息。my.ini是Windows下MySQL的核心配置文件,常用参数选项组及参数如下:(1)[mysql]参数选项组(作用于MySQL客户机程序mysql.exe):①port:指定客户机默认连接的服务器端口号(默认3306);②no_beep:客户机中输入错误SQL命令时,不发出报警声;③default_character_set:配置客户机连接服务器的默认字符集(如utf8mb4),影响character_set_client、character_set_connection、character_set_results三个会话变量;(2)[mysqld]参数选项组(作用于MySQL服务器程序mysqld.exe):①basedir:指定MySQL的安装目录(如“D:/mysql-9.2.0-winx64”);②datadir:指定MySQL的数据目录(用于存储数据库文件、日志文件等,如“D:/mysql-9.2.0-winx64/data”);③port:指定服务器监听的端口号(默认3306);④character_set_server:指定服务器的默认字符集(如utf8mb4),影响全局字符集变量,进而影响新建数据库和表的默认字符集;⑤innodb_file_per_table:控制InnoDB表的表空间模式(ON为独享表空间,OFF为共享表空间,MySQL5.6.6后默认ON)。6.启动MySQL服务的方法有哪些?停止MySQL服务的方法有哪些?(一)启动MySQL服务的方法:(1)CMD命令行启动:进入MySQL安装目录的bin目录,在地址栏输入CMD,执行“mysqld”命令,光标闪烁即表示启动成功;(2)Windows系统服务启动:通过“Win+R”打开运行窗口,输入“control”打开控制面板,依次进入“管理工具→服务”,找到MySQL服务,点击“启动”;(3)CMD命令启动系统服务:以管理员身份打开CMD,执行“netstartmysql”命令。(二)停止MySQL服务的方法:(1)关闭启动服务的CMD窗口:直接关闭执行“mysqld”命令的CMD窗口;(2)CMD命令停止服务:在CMD中按“Ctrl+C”组合键,或执行“netstopmysql”命令;(3)Windows系统服务停止:进入“服务”窗口,找到MySQL服务,点击“停止”。7.MySQL客户机连接MySQL服务器时,需提供哪些信息?客户机连接服务器需提供5类核心“校验信息”(连接参数):(1)合法的登录主机:客户机所在IP需在服务器白名单中(远程连接时需配置),本地连接可忽略;(2)合法的账户名及密码:如root账户,是身份认证的核心,不可省略;(3)MySQL服务器主机名或IP地址:指定连接的目标服务器,本地连接可使用localhost(主机名)或(本机IP),默认可省略;(4)端口号:指定服务器的监听端口(默认3306),若服务器端口非默认则必须手动指定(注意区分“-p”(密码)和“-P”(端口));(5)连接字符集:若存在中文字符,需指定字符集(如utf8mb4),避免乱码,可通过“--default-character-set=utf8mb4”参数设置。8.字符、字符集、字符序分别是什么?字符序的命名规则是什么?(1)字符:人类语言最小的表义符号(如“A”“中”);(2)字符编码:为每个字符赋予的唯一数值(如“A”对应65);(3)字符集:“字符+字符编码”的集合(如{'A'<=>65,'中'<=>E4B8AD}),用于定义可存储的字符范围;(4)字符序:同一字符集内字符的比较规则,用于排序和等值判断,一个字符集可对应多个字符序,且唯一对应一种字符集;(5)字符序命名规则:①前缀:对应字符集名称(如utf8mb4、gbk);②中间部分:国家名、general或Unicode规范(如chinese、general、0900);③后缀:ci(大小写不敏感)、cs(大小写敏感)、bin(按二进制编码比较,大小写敏感)。示例:utf8mb4_0900_ai_ci(utf8mb4字符集、Unicode9.0规范、不区分音调、大小写不敏感)、gbk_bin(gbk字符集、二进制比较)。9.哪些字符集支持中文简体字符?哪些字符集支持中文繁体字符?哪些字符集支持多国文字?(1)支持中文简体字符的字符集:gb2312、gbk、utf8mb3、utf8mb4;(2)支持中文繁体字符的字符集:big5、utf8mb3、utf8mb4;(3)支持多国文字的字符集:utf8mb3、utf8mb4(万国码字符集,可存储中文、英文、阿拉伯文、俄罗斯文等,utf8mb4还支持emoji表情)。补充说明:gb2312是gbk的子集,仅支持常用中文简体;gbk支持中文简体、日文和韩文;big5仅支持中文繁体;latin1(西欧字符集)不支持中文。10.简述MySQL注释有几种,有什么区别和注意事项。MySQL支持3种注释,区别及注意事项如下:(1)单行注释(两种):①格式1:#注释内容(注释范围至行尾);②格式2:--注释内容(注意“--”后需加空格,注释范围至行尾);③区别:格式1简洁,格式2兼容标准SQL;(2)多行注释:①格式:/*注释内容*/(可跨多行,适用于长注释);②区别:可跨行吗,不影响单行代码的可读性;(3)内联注释:①格式:/*!注释内容*/(可跨多行,特殊之处是注释中的代码可能被执行);②区别:支持版本指定(如/*!90000+1*/表示仅MySQL9及以上版本执行“+1”),兼容其他数据库(其他数据库视为普通注释);(4)注意事项:①单行注释的“--”后必须加空格,否则语法错误;②内联注释属于命令,需以“;”结束;③注释不可嵌套(如多行注释内不能再包含/**/)。11.MySQL系统数据库有哪些?这些系统数据库有什么作用?MySQL自带4个核心系统数据库,作用如下:(1)mysql:存储MySQL账户信息(用户名、密码)、访问权限等,用于身份认证和权限验证,防止非法越权操作;(2)performance_schema:存储服务器性能相关数据(如进程状态、资源占用),帮助DBA定位性能瓶颈;(3)information_schema:存储数据库对象的元数据(如数据库名、表名、字段类型、索引信息等),相当于“数据字典”,用于查询数据库对象结构;(4)sys:以视图形式整合performance_schema和information_schema的数据,简化性能分析和元数据查询,面向开发人员和DBA。注意:系统数据库由MySQL自动维护,普通用户禁止手动修改,否则可能导致服务器异常。12.如果仅需要在数据库中存储中文简体字符,那么如何设置MySQL字符集?仅存储中文简体字符时,推荐使用gbk或utf8mb4字符集(gbk更节省空间,utf8mb4兼容更广),具体设置步骤如下:(1)修改my.ini配置文件(Windows):①[mysql]选项组添加:default_character_set="gbk"(或utf8mb4),确保客户机连接字符集适配;②[mysqld]选项组添加:character_set_server="gbk"(或utf8mb4),确保服务器默认字符集适配;③补充配置:basedir(安装目录)、datadir(数据目录)需正确配置;(2)重启MySQL服务:配置修改后需重启服务才能生效;(3)客户机连接设置:连接时指定字符集,如“mysql--default-character-set=gbk-uroot-p”;(4)新建数据库/表时设置:创建时显式指定字符集(可选,因配置已默认),示例:createdatabasetestcharset=gbk;createtablestudent(namechar(10))charset=gbk;注意:若后续可能存储多国文字或emoji,直接使用utf8mb4字符集,避免后续修改字符集的麻烦。13.编写一段SQL脚本文件,并运行该脚本文件中的代码。(1)SQL脚本文件内容(命名为init.sql,存储路径:D:/init.sql,无中文路径):sql
--初始化数据库(含姓名全拼标识,如zhangsan)
dropdatabaseifexiststest_zhangsan;--若数据库存在则删除
createdatabaseifnotexiststest_zhangsancharset=utf8mb4;--创建数据库,字符集utf8mb4
usetest_zhangsan;--打开数据库
--创建表(含姓名全拼标识)
createtablestudent_zhangsan(
idint,
namechar(20),
genderchar(2),
birthdaydate
)engine=InnoDBcharset=utf8mb4;--存储引擎InnoDB,字符集utf8mb4
--插入测试数据(含姓名最后一个字符“三”)
insertintostudent_zhangsanvalues(1,'张三','男','2000-01-01');
insertintostudent_zhangsanvalues(2,'李四','女','2000-02-02');
--查询表记录
select*fromstudent_zhangsan;
--修改表记录
updatestudent_zhangsansetgender='男'wherename='李四';
--再次查询验证修改结果
select*fromstudent_zhangsan;(2)运行脚本文件的步骤:①准备工作:确保MySQL服务已启动,脚本文件路径无中文;②打开客户机:以管理员身份进入MySQL的bin目录,打开CMD,执行“mysql--default-character-set=utf8mb4-uroot-p”,输入密码登录;③运行脚本:在客户机中执行命令“\.D:/init.sql”或“sourceD:/init.sql”(注意命令后不加“;”);(3)注意事项:若脚本含中文字符,需确保脚本文件编码(如UTF-8)与客户机连接字符集一致,避免乱码。14.您所熟知的存储引擎有哪些?MyISAM存储引擎与InnoDB存储引擎相比,您更喜欢哪一个?它们都有什么特点?(1)常见存储引擎:InnoDB、MyISAM、MEMORY、CSV、ARCHIVE等(MySQL支持多种,可通过“showengines;”查看);(2)偏好选择:更偏好InnoDB(适用于绝大多数业务场景,尤其是需要事务和并发控制的场景);(3)MyISAM与InnoDB的特点对比:①MyISAM特点:-不支持事务和外键约束,设计简单;-支持表级锁,并发性能较差(写操作会阻塞读操作);-存储文件分为MYD(数据文件)、MYI(索引文件)、SDI(元数据文件),易备份;-查询速度快,适合只读或读写频率低的场景(如静态网站数据);②InnoDB特点:-支持事务(ACID特性)、外键约束和行级锁,并发性能好;-支持共享表空间和独享表空间(默认独享,文件为.ibd);-具备崩溃恢复能力,数据安全性高;-支持MVCC(多版本并发控制),适合高并发读写场景(如电商、金融系统);-查询速度略低于MyISAM,但综合性能更优。15.创建student数据库,并在该数据库中创建student表,用于保存您的个人信息(如姓名、性别、身份证号、出生日期等),并完成下列操作或问题。(1)上述的student表有没有出现数据冗余现象?(提示:性别和出生日期可以由身份证号推算得出)存在数据冗余。原因:身份证号中已包含性别(第17位:奇数为男,偶数为女)和出生日期(第7-14位)信息,若表中同时存储“性别”“出生日期”和“身份证号”字段,当身份证号确定时,性别和出生日期无需重复存储,重复存储的字段会导致数据冗余,增加存储成本且可能出现数据不一致(如身份证号修改后,性别未同步修改)。(2)student数据库目录存放在数据目录中,什么是根目录,什么是数据目录?①根目录:指MySQL的安装根目录,即解压或安装时指定的核心目录(如“D:/mysql-9.2.0-winx64”),包含bin(执行文件)、share(字符集文件)等子目录及my.ini配置文件;②数据目录:用于存储MySQL的所有数据文件(含系统数据库、用户数据库、日志文件等),默认位于根目录下的data子目录(可通过my.ini的datadir参数自定义,如“D:/mysql-9.2.0-winx64/data”);用户创建的student数据库目录(student文件夹)会直接存放在数据目录中,用于存储该数据库的表文件等。(3)使用哪个命令可以查看student数据库的字符集?命令:showcreatedatabasestudent;(执行后会显示数据库的创建语句,包含字符集信息,如“DEFAULTCHARSET=utf8mb4”)。(4)使用哪个命令可以查看student表的结构(字符集、字符序、存储引擎等信息)?(1)查看表结构概括信息(字段、类型等):descstudent;或describestudent;或showcolumnsfromstudent;(2)查看详细信息(含字符集、字符序、存储引擎):showcreatetablestudent;(执行结果会显示表的创建语句,包含engine(存储引擎)、charset(字符集)、collate(字符序)等信息)。(5)student数据库目录中存放了哪些文件?根目录中存放了哪些文件?①student数据库目录(数据目录下的student文件夹)中的文件(以InnoDB存储引擎为例):-若为MySQL8+/9+:student.ibd(独享表空间文件,存储表记录和索引)、student_xxx.sdi(SDI文件,存储表元数据);-若为MySQL5.7及以下:student.frm(表结构文件)、student.ibd(数据和索引文件);②MySQL根目录中的核心文件/目录:-目录:bin(执行文件,如mysqld.exe、mysql.exe)、data(默认数据目录)、share(字符集、帮助文档等);-文件:my.ini(配置文件)、README(说明文档)等。(6)将个人信息添加到student表中,并查询student表的所有记录。(1)创建数据库和表的SQL语句(含个人信息字段):sql
--创建student数据库(字符集utf8mb4)
createdatabaseifnotexistsstudentcharset=utf8mb4;
usestudent;
--创建student表
createtablestudent(
idintprimarykeyauto_increment,--主键自增
namechar(20)notnull,--姓名
genderchar(2),--性别
id_cardchar(18)uniquenotnull,--身份证号(唯一约束)
birthdaydate--出生日期
)engine=InnoDBcharset=utf8mb4;
--插入个人信息(示例数据)
insertintostudent(name,gender,id_card,birthday)
values('张三','男',,'2000-01-01');
--查询所有记录
select*fromstudent;(2)查询结果(示例):+----+--------+--------+--------------------+------------+|id|name|gender|id_card|birthday|+----+--------+--------+--------------------+------------+|1|张三|男2000-01-01|+----+--------+--------+--------------------+------------+(7)在上一步骤的查询结果中是否出现了乱码?如果出现了乱码,如何避免乱码问题的发生?如果没有出现乱码,经过哪些设置可以产生乱码?(1)默认无乱码(前提:按步骤12设置了字符集);(2)产生乱码的设置(破坏字符集一致性):①修改my.ini配置:将[mysqld]的character_set_server改为latin1,[mysql]的default_character_set改为gbk,重启服务;②客户机连接时指定错误字符集:执行“mysql--default-character-set=latin1-uroot-p”登录,插入中文数据后查询;③会话变量修改:登录后执行“setcharacter_set_results=gbk;”(假设表字符集为utf8mb4),再查询中文数据;(3)避免乱码的核心步骤:①配置my.ini:[mysqld]和[mysql]的字符集统一为utf8mb4(或gbk);②客户机连接字符集与配置一致:使用“--default-character-set=utf8mb4”;③数据库/表创建时显式指定字符集:确保与配置一致;④若使用CMD客户机,执行“chcp65001”切换为UTF-8编码。(8)您的个人信息存放到了哪个表空间文件中?个人信息存储在InnoDB的独享表空间文件中,路径为“MySQL数据目录/student/student.ibd”。原因:MySQL5.6.6后默认开启独享表空间(innodb_file_per_table=ON),新建的InnoDB表会生成独立的.ibd文件,专门存储该表的数据和索引;若关闭独享表空间(设置为OFF),则存储在共享表空间文件ibdata1中(位于数据目录根目录)。(9)如何修改student表的存储引擎?修改student表的存储引擎后,您的个人信息存放到了哪个文件中?(1)修改存储引擎的SQL命令(以InnoDB改为MyISAM为例):usestudent;--打开数据库altertablestudentengine=MyISAM;--修改为MyISAM引擎(2)修改后的数据存储文件:-若改为MyISAM:个人信息存储在student.MYD(数据文件)和student.MYI(索引文件)中(位于student数据库目录);-若改为InnoDB(从MyISAM改回):存储在student.ibd(独享表空间文件)中;注意:修改存储引擎会重构表结构和数据,海量数据场景下耗时较长,且MyISAM不支持事务和外键,需谨慎操作。(10)删除student表。SQL命令:usestudent;--打开数据库droptableifexistsstudent;--安全删除表(若存在则删除)说明:删除表后,对应的表文件(如.ibd、.MYD、.MYI等)会被自动删除,表数据和结构全部丢失,不可恢复。(11)删除student数据库。SQL命令:dropdatabaseifexistsstudent;--安全删除数据库(若存在则删除)说明:删除数据库后,对应的数据库目录(student文件夹)及所有表文件会被自动删除,整个数据库的所有数据全部丢失,不可恢复。16.您所熟知的系统变量有哪些?如何查看系统变量的值?如何修改系统变量的值?修改系统变量的值时,有哪些注意事项?(1)常见系统变量(按类型分类):①全局系统变量(影响所有会话):basedir(安装目录)、datadir(数据目录)、port(端口号)、character_set_server(服务器字符集)、innodb_file_per_table(表空间模式);②会话系统变量(仅影响当前会话):character_set_client(客户机字符集)、character_set_connection(连接字符集)、character_set_results(结果字符集)、autocommit(自动提交)、last_insert_id(最后插入ID);(2)查看系统变量的值:①查看所有全局变量:showglobalvariables;(global不可省略);②查看所有会话变量:showsessionvariables;或showvariables;(session可省略);③模糊查询变量(如字符集相关):showglobalvariableslike'%character%';(%为通配符);(3)修改系统变量的值:①修改全局变量(需权限,影响新会话):setglobal变量名=值;(如setglobalinnodb_file_per_table=OFF;);②修改会话变量(仅当前会话有效):setsession变量名=值;或set变量名=值;(如setcharacter_set_results=utf8mb4;);③持久化修改全局变量(MySQL8.0+):setpersist变量名=值;(修改后重启服务仍生效,会生成f文件);(4)注意事项:①全局变量修改后,对已存在的会话无效,仅影响新会话;②部分变量为“静态变量”(如log_bin、datadir、error_count),不可在线修改,需修改my.ini后重启服务;③修改全局变量需具备super权限(如root账户);④建议修改前备份配置文件,避免配置错误导致服务启动失败;⑤变量名大小写不敏感,但推荐小写(符合MySQL命名规范)。17.阅读MySQL官方文档/doc/refman/9.2/en/charset-connection.html,将其翻译成中文。(注:以下为文档核心内容的翻译,完整翻译需覆盖全文细节,此处提炼关键章节)标题:字符集与连接###
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (新教材)2026年部编人教版三年级下册语文 第21课《我不能失信》教学课件
- 传统手工艺品开发承诺书4篇范文
- 市场进入行为准则承诺函(4篇)
- 2025 八年级地理下册南方地区低山丘陵生态茶园的有机认证课件
- 产品设计与规范设计的多功能模板
- 驾驶安全义务承诺书3篇范文
- 污染环境修复效果符合标准承诺函范文4篇
- 符合规范的投资业务管理承诺书3篇
- 石油钻采作业安全防护方案手册
- 农业智能化技术应用与实践指南
- 5S管理培训资料
- 2026年内蒙古呼和浩特市单招职业倾向性测试题库必考题
- 广东别墅外墙翻新施工方案
- (2025年)劳动人事争议仲裁员培训考试试题卷和答案解析以
- 压矿互不影响协议书
- 2026年湖南高速铁路职业技术学院单招职业技能测试必刷测试卷必考题
- 2026年单招往年考试真题及答案
- 2025年-《中华民族共同体概论》课程教学大纲-大连民族大学-新版
- 2025-2030中国大豆深加工行业市场运行分析及竞争格局与投资商机研究报告
- 质量管理产品检验报告模板
- 工厂保密培训课件
评论
0/150
提交评论