《MySQL练习题及参考答案.pdf》由会员分享,可在线阅读,更多相关《MySQL练习题及参考答案.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MySQL基础练习题参考答案第一章答案1.数据库管理系统中常用地数学模型有哪些?数据库管理系统通常会选择某种“数学模型”存储,组织,管理数据库中地数据,常用地数学模型包括“层次模型”,“网状模型”,“关系模型”以 及“面向对象模型”等。2.您听说过地关系数据库管理系统有哪些?数据库容器中通常包含哪些数据库对象?目前成熟地关系数据库管理系统主要源自欧美数据库厂商,典型地有美国微软公司地SQL Server,美 国IBM公 司 地DB2与Informix,德 国SAP公司 地Sybase,美国甲骨文公司地Oracle o数据库容器中通常包含表,索引,视图,存储过程,触发器,函数等数据库对象。3.通
2、过本章知识地讲解,SQL与程序设计语言有什么关系?SQL并不是一种功能完善地程序设计语言,例如,不能使用SQL构建人性化地图形用户界 面(Graphical User Interface,GUI),程序员需要借助Java,VC+等面向对象程序设计语言或者HTML地FORM表单构建图形用户界面(GUI)。如果选用FORM表单构建GUI,程序员还需要使用JSP,PHP或者.编写Web应用程序,处 理FORM表单中地数据以及数据库中地数据。其它答案:1,首 先SQL语言是数据库结构化查询语言,是非过程化编程语言。而程序设计语言则有更多地面向对象及逻辑程序设计。比 如 用SQL语 言 编 写 图 形
3、用 户 界 面(例如窗口,进度条),是无法实现地。2,SQL语言可以说是,程序设计语言与数据库之间地一个翻译官。程序设计语言需要操作数据库时,需 要 借 助(或者说调用)SQL语言来翻译给数据库管理系统。3,不同数据库管理系统会有一些特殊地SQL规范,比 如limit关键词在SQL Server中无法使用。而这些规范与程序设计语言无关。4.通过本章地学习,您了解地MySQL有哪些特点?与题目2中列举地商业化数据库管理系统相比,MySQL具有开源,免费,体积小,便于安装,但功能强大等特点。5.通过本章地学习,您觉得数据库表与电子表格(例 如Excel)有哪些区别?限于本章地知识点:外观上,关系数
4、据库中地一个数据库表与一个不存在“合并单元格”地 电 子 表 格(例 如Excel)相同。与电子表格不同地是:同一个数据库表地字段名不能重复。为了优化存储空间以及便于数据排序,数据库表地每一列需要指定某种数据类型。关系数据库中地表是由列与行构成地,与电子表格不同地是,数据库表要求表中地每一行记录都需要是唯一地,即在同一张数据库表中不允许出现完全相同地两条记录。6.您所熟知地数据库设计辅助工具有哪些?您所熟知地模型,工具,技术有哪些?数据库设计辅助工有数据模型,数据建模工具,关系数据库设计技术。其中常用地数据模型 有ER模型与类图;常用地数据建模工具如ERwin,PowerDesigner,Vi
5、Sio等;常用地关系数据库设计技术如数据库规范化技术。1.模型数据模型有E-R图或者类图等数据模型。业务模型有程序流程图,数据流程图DFD,时序图,状态图等业务模型。2.工具软 件 项 目 管 理 工 具 如 美 国 微 软 公 司 地 Project,数 据 建 模 工 具 如ERwin,PowerDesigner,Visio,业务建模工具如 PowerDesigner,Rational Rose 以及 Visio 等。IDE工 具 有 VC+6.0,Visual Studio,Eclipse以及 Beans等。测 试 工 具 有 Junit单元测试工具,QuickTest Professi
6、onal功能测试工具以及LoadRunner性能测试工具等。3.技术软件开发时常用地技术包括:面向对象分析与设计技术,结构化分析与设计技术,软件测试技术与关系数据库设计技术等。7.请您罗列出“选课系统”需要实现哪些功能,使用数据库技术能够解决“选课系统”中地哪些商业问题?“选课系统”中存在地商业问题(等 于“选课系统”需要实现地功能):如何存储以及维护课程,学生,教师以及班级地详细信息?不同教师申报地课程名能否相同?如果允许课程名相同,如何区分课程?如何控制每位教师只能申报一门选修课程?如何控制每门课程地人数上限在(60,150,230)中取值?如何控制每一门课程地选课学生总人数不超过该课程地
7、人数上限?如何实现学生选课功能,退选功能以及调课功能?如何控制每位学生最多可以选修两门课程,且两门课程不能相同?系统如何自动记录学生地选课时间?如何统计每一门课程还可以供多少学生选修?如何统计人数已经报满地课程?如何统计某一个教师已经申报了哪些课程?如何统计某一个学生已经选修了多少门课程,是哪些课程?如何统计选修人数少于30人地所有课程信息?如何统计选修每一门课程地所有学生信息?课程信息删除后,如何保证选择该课程地学生可以选修其它课程?如何通过搜索关键字检索自己感兴趣地课程信息?8.您所熟知地编码规范有哪些?1.命名规范2.注释3.书写规范(缩进规范)9.您是如何理解“E-R图中实体间地关系是
8、双向地”?能不能举个例子?请参看1.3.1章节地内容。10.E-R图中,什么是基数?什么是元?什么是关联?请参看1.3.2章节地内容。11.E-R图地设计原则是什么?您是怎么理解E-R图地设计原则地?请参看1.3.3章节数据库开发人员通常采用“一事一地”地原则地内容。12.关系数据库地设计步骤是什么?为每张表定义一个主键有技巧可循吗?主键与关键字有什么关系?关系数据库地设计步骤,请参看1.4章节地内容。为每张表定义一个主键技巧,请参看1 4 2 章节地内容。主键与关键字有什么关系,请参看1 4 2 章节地内容。12.在关系数据库设计过程中,如何表示E-R图中地关系?请参看1.4.3以及1.4.
9、4章节地内容。13.在数据库管理系统中,您所熟知地数据类型有哪些?每一种数据类型能不能各列举一些例子?请参看1.4.5章节地内容。14.您所熟知地约束条件有哪些?MySQL支持哪些约束条件?请参看1.4.6章节地内容。MySQL支持主键(primary k ey)约束,外 键(fbreignkey)约束,唯一性()约束,默认值(default)约束,非 空()约束。15.数据库中数据冗余地“并发症”有哪些,能不能列举一些例子?数据冗余“并发症”插入有异常,删除异常,修改复杂。例子参看1 4 8 章节地内容。16.如何避免数据冗余?什么是1NF,2NF,3NF?使用规范化减少数据冗余请参看1 4
10、 8 章节地内容。17.根据本章地场景描述一 一“很多团购网站在网上对房源进行出租 地E-R图,请设计该场景描述地数据库表。团购网站(网站ID,网址)房源(房间号,房型)顾客(顾客号)出 租(出 租 ID,网站ID,房间号,顾客号)19.如果将学生student表设计为如下表结构:(student_no,student_no,student_name,student_contact,class_no,department_name)请用数据库规范化地知识解释该表是否满足3NF范式地要求?该表是否存在数据冗余?是否会产生诸如插入异常,删除异常,修改复杂等数据冗余“并发症”?此题题目中地学生stu
11、dent表存在问题。建议将学生student表修改为如下结构。学 号|姓 名|性 别|课程号|课程名|成 绩|课程号|课程名|成 绩|居住地|邮 编请参看1.4.8章节地内容。20.在“选课系统”中,学生选课时,由于每一门课程受到教室座位数地限制,每一门课程设置了人数上限,如何确保每一门课程选报学生地人数不超过人数上限?有几种设计方案?这些设计方案地区别在哪里?请参看1.4.9章节地内容。21.“选课系统”有几张表,每个表有哪些字段?teacher(teacher_no,teacher_name,teacher_contact)classes(class_no,class_name,depar
12、tment_name)course(course_no,course_name,up_limit,description,status,teacher_no)student(student_no,student_name,student_contact,class_no)choose(choose_no,student_no char(11),course_no,score,choose_time)22.依据自己所掌握地知识,描述如何使用数据库技术解决“选课系统”问题域中地问题。如何存储以及维护课程,学生,教师以及班级地详细信息?答:course,student,teacher,classes
13、表可以用于存储以及维护课程,学生,教师以及班级地详细信息。不同教师申报地课程名能否相同?如果允许课程名相同,如何区分课程?答:如果需求要求:不同教师申报地课程名不能相同,则可以通过将course表地course_name字段设置为unique约束即可。如果需求要求:不同教师申报地课程名可以相同,此时可以通过给course表添加course_id(无任何逻辑意义)主键字段,标记不同教师申报地课程。如何控制每位教师只能申报一门选修课程?请参看1 4 3 章节地“情形二”内容。如何控制每门课程地人数上限在(60,150,230)中取值?答:MySQL目前不正常check约束。但该问题可以借助MySQ
14、L触发器解决,该题超出本章知识点内容,请参看触发器章节内容。如何控制每一门课程地选课学生总人数不超过该课程地人数上限?请参看1.4.9章节地内容。如何实现学生选课功能,退选功能以及调课功能?答:该问题可以借助MySQL存储过程,事务解决,该题超出本章知识点内容,请参看存储过程章节以及事务章节地内容。如何控制每位学生最多可以选修两门课程,且两门课程不能相同?答:该问题可以借助MySQL存储过程解决,该题超出本章知识点内容,请参看存储过程章节内容。系统如何自动记录学生地选课时间?答:借助MySQL地 now()函数。如何统计每一门课程还可以供多少学生选修?如何统计人数已经报满地课程?如何统计某一个
15、教师已经申报了哪些课程?如何统计某一个学生已经选修了多少门课程,是哪些课程?如何统计选修人数少于30人地所有课程信息?如何统计选修每一门课程地所有学生信息?答:上述统计信息超出本章知识点内容,请参看表记录地检索章节内容。课程信息删除后,如何保证选择该课程地学生可以选修其它课程?答:可以通过外键约束级联删除实现,也可以通过触发器实现。如何通过搜索关键字检索自己感兴趣地课程信息?答:通过全文检索或者模糊查询like关键字实现。第二章答案1.通过本章地学习,您了解地MySQL有哪些特点?答:请参看2.1.1章节内容。2.请您简单描述MySQL地使用流程。什么是MySQL客户机?登录主机与MySQL客
16、户机有什么关系?什么是MySQL会话?答:请参看2.1.1章节内容。MySQL客户机:与MySQL服务器通话地客户端不止一种,比如Windows操作系统下地命令行,可以直接通过命令建立与mysql数据库地通话,另外还有phpmyadmin,MySQL等图形化界面连接方式等。本书经常使用地MySQL客户机程序mysql.exe存放在C:ProgramFilesMySQLMySQL Server 5.6bin 目录。在一台登录主机上可以开启多个MySQL客户机。数据库用户访问MySQL服务器地数据时,首先需要选择一台登录主机,然后在该登录主机上开启MySQL客户机,输入正确地账户名,密码,建立一条
17、MySQL客户机与MySQL服务器之间地“通信链路”。通信链路断开之前,MySQL客户机可以向MySQL服务器发送多次“请求”,MySQL服务器会对每一次请求做出“响应”,请求/响应期间称为MySQL会话。3.通过Google或者Baidu搜索引擎,搜索常用地MySQL客户端工具(或者客户机程序)有哪些。答案参见知乎,网址:https:/.zhihu./question/204234484.MySQL服务,MySQL服务实例,MySQL服务器分别是什么?什么是端口号?端口号有什么作用?答:请参看2.1.1章节内容。5.请 列 举 my.ini配置文件中常用地参数选项组以及参数信息。答:请参看2
18、.1.5章节内容。6.启 动 MySQL服务地方法有哪些?停止MySQL服务地方法有哪些?答:请参看2.1.4章节内容。7.MySQL客户机连接MySQL服务器地方法有哪些?连接MySQL服务器时,需提供哪些信息?答:请参看2.1.7章节内容。8.字符,字符集,字符序分别是什么?字符序地命名规则是什么?答:请参看2 2 1 章节内容。9.您所熟知地字符集,字符序有哪些?它们之间有什么区别?答:请参看2.2.2章节内容。10.请简述MySQL字符集地转换过程。答:请参看2.2.3章节内容。11.MySQL系统数据库有哪些?这些系统数据库有什么作用?答:请参看2.2.1章节内容。12.如果仅仅需要
19、在数据库中存储中文简体字符,那么如何设置MySQL字符集?答:请参看2 2 4 章节内容。13.请自己编写一段SQL脚本文件,并运行该脚本文件中地代码。答:请参看2.2.5章节内容。14.您所熟知地存储引擎有哪些?MylSAM存储引擎与InnoDB存储引擎相比,您更喜欢哪一个?它们都有什么特点?答:请参看2 4 1 章节内容。1 5.创建student数据库,并在该数据库中创建student表,用于保存您地个人信息(如姓名,性别,身份证号,出生日期等),并完成下列操作或问题。1)上述地student表有没有出现数据冗余现象?(提示:出生日期可以由身份证号推算得出)答:出生日期可由身份证号计算得
20、出,所以上述地student表存在数据冗余现象。2)student数据库目录存放在数据库根目录中,默认情况下,根目录是什么?答:使用命令show variables like datadir;可以查看参数datadir地值。默认安装MySQL后,数 据 库 根 目 录 datadir 地 值 为 C:/Documents and Settings/All Users/ApplicationData/MySQL/MySQL Server 5.6/Data/”。3)如何查看student数据库地结构。答:请参看2 3 3 章节内容。4)如何查看student表地结构,并查看该表地默认字符集,字符序
21、,存储引擎等信息。答:请参看2 4 4 章节内容。5)student数据库目录中存放了哪些文件?数据库根目录中存放了哪些文件?答:请参看2 4 1 章节内容。student数据库目录中存放了如下文件:(1)数据库文件(如 db.opt)(2)表名,后缀名为frm地表结构定义文件(3)如果student数据库中存在InnoDB存储引擎地独享表空间地表,则 student数据库目录中还会存放一个名为“表名.ibd”地数据文件。(4)如果student数据库中存在MylSAM存储引擎地表,则 student数据库目录中会存在一个文件名为表名,后缀名为MYD(即MYData地简写)地数据文件以及文件名
22、为表名,后缀名为MYI(即 MYIndex地简写)地索引文件。数据库根目录中存放如下文件以及目录(如下图所示):数据库目录(例如test数据库目录,student数据库目录)ib_logfileO及 ibjogfilel是重做日志文件InnoDB共享表空间文件ibdatal文件mysql-bin.000001等一系列二进制日志文件(该知识点超出本章范围)mysql-bin.index二进制日志索引文件(该知识点超出本章范围)mysqld.exe进程ID 号 PID文件auto.f文件:servejuuid:服务器身份ID。在第一次启动MySQL时,会自动生成一个server_uuid并写入到数
23、据库根目录下auto.f文件里,官方不建议修改。人dfyx ia n/2 t JOMkik myiol 2O18/V171M1办 央3018/V17 1&51快jiu r f w t aww312aHM sa mao iia/p j w f-2*wtO.cnf.ib.logfiW)ib.logfilelibdaudmytql-bm.000001_ mytql-bin.000002mytql-bm.000001myiql-bin.0000(M_ mytql-bin.000005mysql-bin.000006.myiql-bin.000007mysql-bm.000008mpql-bw.0000
24、09mytql-binJMOOlOmytql-binJndexYR141013-XOON.p皿山皿刈心山皿3OI2EO如MMWX器I=!IIIIIX 06)将个人信息插入到student表中,并查询student表地所有记录。create database student;use student;create table student(name char(10)not null,sex char(3)not null,ID char(18)primary key);insert into student values。张三?男?410*001);select*from student;7)在
25、上一步骤地查询结果中是否出现了乱码?如果出现了乱码,如何避免乱码问题地发生?如果没有出现乱码,经过哪些设置可以产生乱码?如果出现了乱码,重新删除数据库,重新设置字符集,再创建数据库与数据库表(要求在同一 个MySQL会话中依次执行下列代码):drop database if exists student;set character set client=gbk;set character_set_connection=gbk;set character_set_database=gbk;set character_set_results=gbk;set character set server
26、=gbk;create database student;use student;create table student(name char(10)not null,sex char(3)not null,ID char(18)primary key);insert into student values。张三?男?410*001);select*from student;如果没有出现乱码,经过哪些设置可以产生乱码:set names latinl;select*from student;8)您地个人信息存放到了哪个文件中?情形一:如果student表 是MylSAM存储引擎地表,则则张三地
27、数据存放在一个文件名为stu4后缀名为MYD(即MYData地简写)地数据文件。情形二:如果student表 是InnoDB存储引擎地共享表空间地表,则张三地数据存放在InnoDB共享表空间文件ibdatal数据文件。情形三:如果student表 是InnoDB存储引擎地独享表空间地表,则张三地数据存放在student.ibd”地数据文件。9)如何修改student表地存储引擎?修 改student表地存储引擎后,您地个人信息存放到了哪个文件中?答案:参考上一题。10)删除student表以及student数据库。use student;drop table student;drop data
28、base student;16.您所熟知地系统变量有哪些?如何设置系统变量地值?答:请参看2.5.2章节内容。请参看2.5.3章节内容。17.如何进行数据库备份与恢复?备份期间,有哪些注意事项?答:请参看2.6章节内容。第三章答案1.MySQL数据库类型有哪些?如何选择合适地数据类型?答:请参看3.1章节内容。请参看3.1.7章节内容。2.简单总结char(n)数据类型与varchar(n)数据类型有哪些区别。答:请参看3.1.3章节内容。3.datetime与 timestamp数据类型有什么区别?答:请参看3.1.4章节内容。4.MySQL模式与MySQL复合数据类型有什么关系?答:请参看
29、3.1.5章节内容。5.创建SQL脚本文件choose.sql,书 写 SQL代码,运 行 choose.sql,创 建 choose数据库地 5 张表。set character_set_client=gbk;set character_set_connection=gbk;set character_set_database=gbk;set character_set_results=gbk;set character_set_server=gbk;create database choose;use choose;create table teacher(teacher no char(
30、10)primary key,teacher_name char(10)not null,teacher contact char(20)not null)engine=InnoDB default charset=gbk;create table classes(class_no int auto_increment primary key,class name char(20)not null unique,department_name char(20)not null)engine=InnoDB default charset=gbk;create table course(cours
31、e_no int auto increment primary key,course_name char(10)not null,up limit int default 60,description text not null,status char(6)default 味 审核;teacher_no char(10)not null unique,#教师姓名不允许为空#教师联系方式名不允许为空#班级名不允许为空,且不允许重复#院系名不允许为空#课程名允许重复#课程上限设置默认值为60#课程地描述信息为文本字符串text,且不能为空#课程状态地默认值为“未审核”#唯一性约束实现教师与课程之间
32、1:1关系constraint course_teacher fk foreign key(teacher_no)references teacher(teacher_no)engine=InnoDB default charset=gbk;create table student(student_no char(11)primary key,student name char(10)not null,student_contact char(20)not null,class no int,#学号不允许重复#学生姓名不允许为空#学生联系方式不允许为空#学生地班级允许为空constraint
33、student class fk foreign key(class no)references classes(class no)engine=InnoDB default charset=gbk;create table choose(choose_no int auto_increment primary key,student_no char(l 1)not null,#学生学号不允许为空course_no int not null,#课程号不允许为空score tinyint unsigned,choose_time datetime not null,#选课时间可由now()函数自
34、动生成constraint choose_student_fk foreign key(student_no)references student(student_no),constraint choose_course_fk foreign key(course_no)references course(course_no)engine=InnoDB default charset=gbk;6.分 析choose数据库地5张表地表结构,通 过 这5张表,可 以 解 决“选课系统”问题域中地哪些问题?答:请参看第一章课后习题地答案。7.您是如何理解索引地?索引越多越好吗?答:请参看3.5章节内
35、容。请参看3 5 1章节内容。8.索引关键字地选取原则有哪些?答:请参看3 5 2章节内容。9.您所熟知地索引种类有哪些?什么是全文索引?答:请参看3 5 4章节内容。全文索引与全文检索全文索引:当查询数据量大地字符串信息时,使用全文索引可以大幅提升字符串地检索效率。需要注意地是,全文索引只能创建在char,varchar或 者text字符串类型地字段上,且全文索引不支持前缀索引。全文检索是指以全部文本信息作为检索对象地一种信息检索技术。摘自 http:/w iki,mbalib./w iki/全文检索本 书5.10章节中,也给出了全文检索地定义:简单地说,MySQL中地全文检索使用特定地分词
36、技术,利用查询关键字与查询字段内容之间地有关度进行检索。通过全文索引可以提高文本匹配地速度。10.索引与约束有什么关系?答:请参看3 5 3章节内容。第四章答案1.NUL与 NULL有什么区别?答:请参看4.4章节内容。2.truncate与 delete有什么区别?答:请参看4.3.2章节内容。3-更新操作与字符集有什么关系?答:如果更新语句中包含中文简体字符,应该合理地设置字符集,否则,将把乱码数据更新到数据库表中。详细请参看4.1.2章节内容。4.数据库表中自增型字段地值一定连续吗?答:请参看4.1.3章节内容。5.replace语句与insert语句有什么区别?答:请参看4.1.6章节
37、内容。6.执行了 delete语句后,表结构被删除了吗?使用什么命令可以删除表结构?答:delete语句删除地是表中地记录,无法删除表结构;删除表结构可以使用drop table命令。7.请读者向“选课系统 choose数据库中地选课choose表插入表4-8所示地信息,并完成其它操作。表4-8 向choose表添加地测试数据choose _ n。student nocourse noscorechoose time12012001240服务器当前时间22012001150服务器当前时间32012002360服务器当前时间42012002270服务器当前时间52012003180服务器当前时间
38、62012004290服务器当前时间720120053NULL服务器当前时间820120051NULL服务器当前时间(1)学生张三(student no=2012001)已经选修了课程java程序设计(course_no=l),在选修时间截止前,它想把该课程调换成MySQL数 据 库(course_no=2),试用SQL语句实现该功能。说明:题目中地张三(student_no=2012005)应该修改为张三(student_no=2012001)第一种方法:use choose;update choose set course no=2 where course no=1 and studen
39、t no=2012001;第二种方法:use choose;delete from choose where course_no=l and student_no=2012001,;insert into choose values(null,2012005,2,null,now();(2)学生田七(student n o=5)已经选修了课程c 语言程序设计(course no=3),由于某种原因,在选修时间截止前,它不想选修该课程了,试用SQL语句实现该功能。说明:题目中地田七(student_no=5)应该修改为田七(student_no=2012005)use choose;delete
40、 from choose where course no=3 and student no=2012005,;(3)课程结束后,请录入某个学生地最终成绩,最终成绩=(原成绩*70%)+30。说明:题目修改为:课程结束后,请修改所有学生地最终成绩,最终成绩=(原成绩*70%)+30use choose;update choose set score=score*0.7+30;(4)请解释学生地成绩为NULL值地意义,NULL值等于零吗?答:成绩为NULL值,表示学生还没有考试该课程,成绩未知。成绩为零,表示学生已经考试了该课程,成绩已知。第五章答案1.简述limit以及distinct地用法。答
41、:请参看5.1.2章节内容。2.什 么是内连接,外连接?MySQL支持哪些外连接?答:请参看5.1.3章节内容。3.NULL参与算术运算,比较运算以及逻辑运算时,结果是什么?答:请参看5 2 2 章节内容。4.NULL参与排序时,MySQL对 NULL如何处理?答:请参看5.3章节内容。5.您怎样理解select语句与字符集之间地关系?答:请参看5 2 3 章节内容。6.MySQL常用地聚合函数有哪些?这些聚合函数对NULL值操作地结果是什么?答:请参看5.4章节内容。7.您怎样理解having子句与where子句之间地区别?答:请参看5.5.2章节内容。8.您怎样理解concat()与 gr
42、oup_concat()函数之间地区别?答:请参看5 5 3 章节内容。9.什 么是有关子查询与非有关子查询?答:如果子查询中仅仅使用了自己定义地数据源,不依靠主查询,能够独立运行地子查询,这种查询是非有关子查询。非有关子查询是独立于外部查询地子查询,子查询总共执行一次,执行完毕后将值传递给主查询。如果子查询中使用了主查询地数据源,这种查询是有关子查询,此时主查询地执行与有关子查询地执行相互依赖。10.请编写SQL脚本,输入选课系统综合查询章节内地select语句。答:请参看5.8章节内容。11.MySQL如何使用like关键字实现模糊查询?有什么注意事项?答:请参看5.2.5章节内容。12.
43、MySQL如何使用正则表达式实现模糊查询?答:请参看5.9章节内容。13.MySQL如何进行全文检索?全文检索有什么注意事项?答:请参看5.10章节内容。14.您觉得全文检索与like模糊查询,正则表达式模糊查询最大地区别是什么?答:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _全文检索:是指全文检索解析器(分词技术)通过扫描文章中地每一个词
44、,对每一个词建立一个索引,指明该词在文章中出现地次数与位置,当用户进行against查询时,根据事先建立地全文索引进行查找,并将查找地结果反馈给用户。以全文检索“我们is 中国人而自豪”为例。全文检索解析器可将该中文信息切分成:我们,is,中国,国人,人而,而自,自 豪(这里以两个字为单位进行分割为例,实际情况更为复杂),并建立全文索引。当用户使用contains语句查询“自豪”(为了区分,搜索关键词是蓝色字)关键词时,此时“自豪”(蓝色字)去匹配全文索引中地“自豪”(为了区分,索引关键词是红色字),并将匹配到地结果“我们is中国人而自豪”返回!而使用like或者正则表达式查询“自豪”关键词时
45、,并没有将“我们is 中国人而自豪”这句话分割,还是将整句话当作整体来看,然后通过字符串比较地方式,判 断“自豪”字符串是不 是“我们is 中国人而自豪”字符串地子字符串。如果是,说明成功匹配,然后将匹配到地结果“我们is 中国人而自豪”返回!因此:全文检索地核心是利用分词技术建立索引,继而利用索引加快字符串地匹配速度。like或者正则表达式地核心是搜索关键词“自豪”字符串是不是“我们is 中国人而自豪”字符串地子字符串。15.最新版本地MySQL中,InnoDB存储引擎地表支持全文检索吗?答:支持16.MySQL不支持完全连接,您能不能通过其它技术手段实现完全连接地功能?答:将左连接与右连接
46、通过union模拟实现完全连接。17.合并结果集时,union与 union all有什么区别?答:请参看5.6章节内容。18.给定一个教师地工号(例如POP),统计该教师已经申报了哪些课程。答:selectcourse_no,course_name,up_limit,description,teacher.teacher_no,teacher_name,teacher_contact,available,statusfrom course join teacher on course.teacher_no=teacher.teacher_nowhere teacher.teacher no=
47、001;第六章答案1 .使 用 select语句输出各种数据类型地常量时,数据类型都是如何转换地?答:各种数据类型地常量会被自动转换为“字符串”再进行显示。2.系统会话变量与用户会话变量有什么区别与联系?答:请参看6.1.2章节内容。3.用户会话变量与局部变量有什么区别与联系?答:请参看6.1.2章节内容。4.为用户会话变量或者局部变量赋值时,有哪些注意事项?答:请参看6.1.2章节内容。5.编 写 MySQL存储程序时,为什么需要重置命令结束标记?答:请参看6.1.5章节内容。6.创建本书涉及到地所有自定义函数,并进行调用。答:请参看本章内容。7.总结哪些日期,时间函数地执行结果与时区地设置
48、无关。答:请参看6.3.6章节内容。8.创建自定义函数有哪些注意事项?(1)自定义函数地函数体使用select语句时,该 select语句不能产生结果集,否则将产生编译错误。(2)自定义函数是数据库地对象,因此,创建自定义函数时,需要指定该自定义函数隶属于哪个数据库。(3)同一个数据库内,自定义函数名不能与已有地函数名(包括系统函数名)重名。建议在自定义函数名中统一添加前缀“仇_”或者后缀“_fh”。(4)函数地参数无需使用declare命令定义,但它仍然是局部变量,且需要提供参数地数据类型。自定义函数如果没有参数,则使用空参数“()”即可。(5)函数创建成功后,记得将命令结束标记恢复“原状”
49、。(6)函数需要指定返回值数据类型,且须与return语句中地返回值地数据类型相近(长度可以不同)。9.请分析下面地getdate。函数完成地功能,创建该函数,并调用该函数。nysql use choose;Database changednysql d elim iter$nysql create function getdategdate datetim ereturns uarchar-no sq l-begin-declare x uarchar default 9 9;-set x=date,oi matgdate,zY年zm月zd 日 zh时z i分Ns秒);-return x;-
50、end$Query OK,0 rows affected nysql d elim iter;nysql se le c t getdatenow;+-+i getd atenow!+-+!2018年02月0 2日11.时45分34秒:+-+1 roti in set 函数地功能:对日期时间进行格式化。1 0.通过本章知识地讲解,您是如何理解中文全文检索地?您觉得实现中文全文检索地核心技术是什么?答:请参考第五章课后习题答案。第七章答案1.视图与基表有什么区别与联系?视图与select语句有什么关系?答:视图与基表有什么区别与联系:数据库表称为基本表或者基表,视图称为虚表。基表地数据发生变化时