MySQL数据库基础与实例教程练习题参考答案.docx

上传人:b****0 文档编号:9615304 上传时间:2023-05-20 格式:DOCX 页数:32 大小:53.25KB
下载 相关 举报
MySQL数据库基础与实例教程练习题参考答案.docx_第1页
第1页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第2页
第2页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第3页
第3页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第4页
第4页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第5页
第5页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第6页
第6页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第7页
第7页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第8页
第8页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第9页
第9页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第10页
第10页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第11页
第11页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第12页
第12页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第13页
第13页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第14页
第14页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第15页
第15页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第16页
第16页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第17页
第17页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第18页
第18页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第19页
第19页 / 共32页
MySQL数据库基础与实例教程练习题参考答案.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MySQL数据库基础与实例教程练习题参考答案.docx

《MySQL数据库基础与实例教程练习题参考答案.docx》由会员分享,可在线阅读,更多相关《MySQL数据库基础与实例教程练习题参考答案.docx(32页珍藏版)》请在冰点文库上搜索。

MySQL数据库基础与实例教程练习题参考答案.docx

MySQL数据库基础与实例教程练习题参考答案

MySQL数据库基础与实例教程练习题参考答案

由于时间仓促,中难免存在错误,不妥之处恳请读者批评指正!

第一章答案

1.数据库管理系统中常用的数学模型有哪些

数据库管理系统通常会选择某种“数学模型”存储、组织、管理数据库中的数据,常用的数学模型包括“层次模型”、“网状模型”、“关系模型”以及“面向对象模型”等。

2.您听说过的关系数据库管理系统有哪些数据库容器中通常包含哪些数据库对象

目前成熟的关系数据库管理系统主要源自欧美数据库厂商,典型的有美国微软公司的SQLServer、美国IBM公司的DB2和Informix、德国SAP公司的Sybase、美国甲骨文公司的Oracle。

数据库容器中通常包含表、索引、视图、存储过程、触发器、函数等数据库对象。

3.通过本章知识的讲解,SQL与程序设计语言有什么关系

SQL并不是一种功能完善的程序设计语言,例如,不能使用SQL构建人性化的图形用户界面(GraphicalUserInterface,GUI),程序员需要借助Java、VC++等面向对象程序设计语言或者HTML的FORM表单构建图形用户界面(GUI)。

如果选用FORM表单构建GUI,程序员还需要使用JSP、PHP或者.NET编写Web应用程序,处理FORM表单中的数据以及数据库中的数据。

其他答案:

1、首先SQL语言是数据库结构化查询语言,是非过程化编程语言。

而程序设计语言则有更多的面向对象及逻辑程序设计。

比如用SQL语言编写图形用户界面(例如窗口、进度条),是无法实现的。

2、SQL语言可以说是,程序设计语言和数据库之间的一个翻译官。

程序设计语言需要操作数据库时,需要借助(或者说调用)SQL语言来翻译给数据库管理系统。

3、不同数据库管理系统会有一些特殊的SQL规范,比如limit关键词在SQLServer中无法使用。

而这些规范与程序设计语言无关。

 

4.通过本章的学习,您了解的MySQL有哪些特点

与题目2中列举的商业化数据库管理系统相比,MySQL具有开源、免费、体积小、便于安装,但功能强大等特点。

5.通过本章的学习,您觉得数据库表与电子表格(例如Excel)有哪些区别

限于本章的知识点:

外观上,关系数据库中的一个数据库表和一个不存在“合并单元格”的电子表格(例如Excel)相同。

与电子表格不同的是:

同一个数据库表的字段名不能重复。

为了优化存储空间以及便于数据排序,数据库表的每一列必须指定某种数据类型。

关系数据库中的表是由列和行构成的,和电子表格不同的是,数据库表要求表中的每一行记录都必须是唯一的,即在同一张数据库表中不允许出现完全相同的两条记录。

6.您所熟知的数据库设计辅助工具有哪些您所熟知的模型、工具、技术有哪些

数据库设计辅助工有数据模型、数据建模工具、关系数据库设计技术。

其中常用的数据模型有ER模型和类图;常用的数据建模工具如ERwin、PowerDesigner、Visio等;常用的关系数据库设计技术如数据库规范化技术。

1.模型

数据模型有E-R图或者类图等数据模型。

业务模型有程序流程图、数据流程图DFD、时序图、状态图等业务模型。

2.工具

软件项目管理工具如美国微软公司的Project,数据建模工具如ERwin、PowerDesigner、Visio,业务建模工具如PowerDesigner、RationalRose以及Visio等。

IDE工具有VC++、VisualStudio、Eclipse以及NetBeans等。

测试工具有Junit单元测试工具、QuickTestProfessional功能测试工具以及LoadRunner性能测试工具等。

3.技术

软件开发时常用的技术包括:

面向对象分析和设计技术、结构化分析和设计技术、软件测试技术和关系数据库设计技术等。

7.请您罗列出“选课系统”需要实现哪些功能,使用数据库技术能够解决“选课系统”中的哪些商业问题

“选课系统”中存在的商业问题(等于“选课系统”需要实现的功能):

如何存储以及维护课程、学生、教师以及班级的详细信息

不同教师申报的课程名能否相同如果允许课程名相同,如何区分课程

如何控制每位教师只能申报一门选修课程

如何控制每门课程的人数上限在(60、150、230)中取值

如何控制每一门课程的选课学生总人数不超过该课程的人数上限

如何实现学生选课功能、退选功能以及调课功能

如何控制每位学生最多可以选修两门课程,且两门课程不能相同

系统如何自动记录学生的选课时间

如何统计每一门课程还可以供多少学生选修

如何统计人数已经报满的课程

如何统计某一个教师已经申报了哪些课程

如何统计某一个学生已经选修了多少门课程,是哪些课程

如何统计选修人数少于30人的所有课程信息

如何统计选修每一门课程的所有学生信息

课程信息删除后,如何保证选择该课程的学生可以选修其他课程

如何通过搜索关键字检索自己感兴趣的课程信息

8.您所熟知的编码规范有哪些

1.命名规范

2.注释

3.书写规范(缩进规范)

9.您是如何理解“E-R图中实体间的关系是双向的”能不能举个例子

请参看章节的内容。

10.E-R图中,什么是基数什么是元什么是关联

请参看章节的内容。

11.E-R图的设计原则是什么您是怎么理解E-R图的设计原则的

请参看章节数据库开发人员通常采用“一事一地”的原则的内容。

12.关系数据库的设计步骤是什么为每张表定义一个主键有技巧可循吗主键与关键字有什么关系

关系数据库的设计步骤,请参看章节的内容。

为每张表定义一个主键技巧,请参看章节的内容。

主键与关键字有什么关系,请参看章节的内容。

 

12.在关系数据库设计过程中,如何表示E-R图中的1:

1、1:

m、m:

n关系

请参看以及章节的内容。

13.在数据库管理系统中,您所熟知的数据类型有哪些每一种数据类型能不能各列举一些例子

请参看章节的内容。

14.您所熟知的约束条件有哪些MySQL支持哪些约束条件

请参看章节的内容。

MySQL支持主键(primarykey)约束、外键(foreignkey)约束、唯一性()约束、默认值(default)约束、非空()约束。

15.数据库中数据冗余的“并发症”有哪些,能不能列举一些例子

数据冗余“并发症”插入有异常、删除异常、修改复杂。

例子参看章节的内容。

16.如何避免数据冗余什么是1NF、2NF、3NF

使用规范化减少数据冗余请参看章节的内容。

17.根据本章的场景描述——“很多团购网站在网上对房源进行出租”的E-R图,请设计该场景描述的数据库表。

团购网站(网站ID,网址)

房源(房间号,房型)

顾客(顾客号)

出租(出租ID,网站ID,房间号,顾客号)

19.如果将学生student表设计为如下表结构:

(student_no,student_no,student_name,student_contact,class_no,department_name)

请用数据库规范化的知识解释该表是否满足3NF范式的要求该表是否存在数据冗余是否会产生诸如插入异常、删除异常、修改复杂等数据冗余“并发症”

此题题目中的学生student表存在问题。

建议将学生student表修改为如下结构。

学号

姓名

性别

课程号

课程名

成绩

课程号

课程名

成绩

居住地

邮编

请参看章节的内容。

20.在“选课系统”中,学生选课时,由于每一门课程受到教室座位数的限制,每一门课程设置了人数上限,如何确保每一门课程选报学生的人数不超过人数上限有几种设计方案这些设计方案的区别在哪里

请参看章节的内容。

21.“选课系统”有几张表,每个表有哪些字段

teacher(teacher_no,teacher_name,teacher_contact)

classes(class_no,class_name,department_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_nochar(11),course_no,score,choose_time)

22.依据自己所掌握的知识,描述如何使用数据库技术解决“选课系统”问题域中的问题。

如何存储以及维护课程、学生、教师以及班级的详细信息

答:

course、student、teacher、classes表可以用于存储以及维护课程、学生、教师以及班级的详细信息。

不同教师申报的课程名能否相同如果允许课程名相同,如何区分课程

答:

如果需求要求:

不同教师申报的课程名不能相同,则可以通过将course表的course_name字段设置为unique约束即可。

如果需求要求:

不同教师申报的课程名可以相同,此时可以通过给course表添加course_id(无任何逻辑意义)主键字段,标记不同教师申报的课程。

如何控制每位教师只能申报一门选修课程

请参看章节的“情形二”内容。

如何控制每门课程的人数上限在(60、150、230)中取值

答:

MySQL目前不正常check约束。

但该问题可以借助MySQL触发器解决,该题超出本章知识点内容,请参看触发器章节内容。

如何控制每一门课程的选课学生总人数不超过该课程的人数上限

请参看章节的内容。

如何实现学生选课功能、退选功能以及调课功能

答:

该问题可以借助MySQL存储过程、事务解决,该题超出本章知识点内容,请参看存储过程章节以及事务章节的内容。

如何控制每位学生最多可以选修两门课程,且两门课程不能相同

答:

该问题可以借助MySQL存储过程解决,该题超出本章知识点内容,请参看存储过程章节内容。

系统如何自动记录学生的选课时间

答:

借助MySQL的now()函数。

如何统计每一门课程还可以供多少学生选修

如何统计人数已经报满的课程

如何统计某一个教师已经申报了哪些课程

如何统计某一个学生已经选修了多少门课程,是哪些课程

如何统计选修人数少于30人的所有课程信息

如何统计选修每一门课程的所有学生信息

答:

上述统计信息超出本章知识点内容,请参看表记录的检索章节内容。

课程信息删除后,如何保证选择该课程的学生可以选修其他课程

答:

可以通过外键约束级联删除实现,也可以通过触发器实现。

如何通过搜索关键字检索自己感兴趣的课程信息

答:

通过全文检索或者模糊查询like关键字实现。

第二章答案

1.通过本章的学习,您了解的MySQL有哪些特点

答:

请参看章节内容。

2.请您简单描述MySQL的使用流程。

什么是MySQL客户机登录主机与MySQL客户机有什么关系什么是MySQL会话

答:

请参看章节内容。

MySQL客户机:

与MySQL服务器通话的客户端不止一种,比如Windows操作系统下的命令行,可以直接通过命令建立与mysql数据库的通话,另外还有phpmyadmin、MySQL等图形化界面连接方式等。

本书经常使用的MySQL客户机程序存放在C:

\ProgramFiles\MySQL\MySQLServer\bin目录。

在一台登录主机上可以开启多个MySQL客户机。

数据库用户访问MySQL服务器的数据时,首先需要选择一台登录主机,然后在该登录主机上开启MySQL客户机,输入正确的账户名、密码,建立一条MySQL客户机与MySQL服务器之间的“通信链路”。

通信链路断开之前,MySQL客户机可以向MySQL服务器发送多次“请求”,MySQL服务器会对每一次请求做出“响应”,请求/响应期间称为MySQL会话。

3.通过Google或者Baidu搜索引擎,搜索常用的MySQL客户端工具(或者客户机程序)有哪些。

答案参见知乎,网址:

服务、MySQL服务实例、MySQL服务器分别是什么什么是端口号端口号有什么作用

答:

请参看章节内容。

5.请列举配置文件中常用的参数选项组以及参数信息。

答:

请参看章节内容。

6.启动MySQL服务的方法有哪些停止MySQL服务的方法有哪些

答:

请参看章节内容。

7.MySQL客户机连接MySQL服务器的方法有哪些连接MySQL服务器时,需提供哪些信息

答:

请参看章节内容。

8.字符、字符集、字符序分别是什么字符序的命名规则是什么

答:

请参看章节内容。

9.您所熟知的字符集、字符序有哪些它们之间有什么区别

答:

请参看章节内容。

10.请简述MySQL字符集的转换过程。

答:

请参看章节内容。

11.MySQL系统数据库有哪些这些系统数据库有什么作用

答:

请参看章节内容。

12.如果仅仅需要在数据库中存储中文简体字符,那么如何设置MySQL字符集

答:

请参看章节内容。

13.请自己编写一段SQL脚本文件,并运行该脚本文件中的代码。

答:

请参看章节内容。

14.您所熟知的存储引擎有哪些MyISAM存储引擎与InnoDB存储引擎相比,您更喜欢哪一个它们都有什么特点

答:

请参看章节内容。

15.创建student数据库,并在该数据库中创建student表,用于保存您的个人信息(如姓名、性别、身份证号、出生日期等),并完成下列操作或问题。

1)上述的student表有没有出现数据冗余现象(提示:

出生日期可以由身份证号推算得出)

答:

出生日期可由身份证号计算得出,所以上述的student表存在数据冗余现象。

2)student数据库目录存放在数据库根目录中,默认情况下,根目录是什么

答:

使用命令“showvariableslike'datadir';”可以查看参数datadir的值。

默认安装MySQL后,数据库根目录datadir的值为“C:

/DocumentsandSettings/AllUsers/ApplicationData/MySQL/MySQLServerData/”。

3)如何查看student数据库的结构。

答:

请参看章节内容。

4)如何查看student表的结构,并查看该表的默认字符集、字符序、存储引擎等信息。

答:

请参看章节内容。

5)student数据库目录中存放了哪些文件数据库根目录中存放了哪些文件

答:

请参看章节内容。

student数据库目录中存放了如下文件:

(1)数据库文件(如)

(2)表名、后缀名为frm的表结构定义文件

(3)如果student数据库中存在InnoDB存储引擎的独享表空间的表,则student数据库目录中还会存放一个名为“表名.ibd”的数据文件。

(4)如果student数据库中存在MyISAM存储引擎的表,则student数据库目录中会存在一个文件名为表名、后缀名为MYD(即MYData的简写)的数据文件以及文件名为表名、后缀名为MYI(即MYIndex的简写)的索引文件。

数据库根目录中存放如下文件以及目录(如下图所示):

数据库目录(例如test数据库目录、student数据库目录)

ib_logfile0及ib_logfile1是重做日志文件

InnoDB共享表空间文件ibdata1文件

等一系列二进制日志文件(该知识点超出本章范围)

二进制日志索引文件(该知识点超出本章范围)

进程ID号PID文件

文件:

server_uuid:

服务器身份ID。

在第一次启动MySQL时,会自动生成一个server_uuid并写入到数据库根目录下文件里,官方不建议修改。

6)将个人信息插入到student表中,并查询student表的所有记录。

createdatabasestudent;

usestudent;

createtablestudent(

namechar(10)notnull,

sexchar(3)notnull,

IDchar(18)primarykey

);

insertintostudentvalues('张三','男','410******001');

select*fromstudent;

7)在上一步骤的查询结果中是否出现了乱码如果出现了乱码,如何避免乱码问题的发生如果没有出现乱码,经过哪些设置可以产生乱码

如果出现了乱码,重新删除数据库,重新设置字符集,再创建数据库和数据库表(要求在同一个MySQL会话中依次执行下列代码):

dropdatabaseifexistsstudent;

setcharacter_set_client=gbk;

setcharacter_set_connection=gbk;

setcharacter_set_database=gbk;

setcharacter_set_results=gbk;

setcharacter_set_server=gbk;

createdatabasestudent;

usestudent;

createtablestudent(

namechar(10)notnull,

sexchar(3)notnull,

IDchar(18)primarykey

);

insertintostudentvalues('张三','男','410******001');

select*fromstudent;

如果没有出现乱码,经过哪些设置可以产生乱码:

setnameslatin1;

select*fromstudent;

8)您的个人信息存放到了哪个文件中

情形一:

如果student表是MyISAM存储引擎的表,则则张三的数据存放在一个文件名为studnet、后缀名为MYD(即MYData的简写)的数据文件。

情形二:

如果student表是InnoDB存储引擎的共享表空间的表,则张三的数据存放在InnoDB共享表空间文件ibdata1数据文件。

情形三:

如果student表是InnoDB存储引擎的独享表空间的表,则张三的数据存放在“”的数据文件。

9)如何修改student表的存储引擎修改student表的存储引擎后,您的个人信息存放到了哪个文件中

答案:

参考上一题。

10)删除student表以及student数据库。

usestudent;

droptablestudent;

dropdatabasestudent;

16.您所熟知的系统变量有哪些如何设置系统变量的值

答:

请参看章节内容。

请参看章节内容。

17.如何进行数据库备份和恢复备份期间,有哪些注意事项

答:

请参看章节内容。

第三章答案

1.MySQL数据库类型有哪些如何选择合适的数据类型

答:

请参看章节内容。

请参看章节内容。

2.简单总结char(n)数据类型与varchar(n)数据类型有哪些区别。

答:

请参看章节内容。

3.datetime与timestamp数据类型有什么区别

答:

请参看章节内容。

4.MySQL模式与MySQL复合数据类型有什么关系

答:

请参看章节内容。

5.创建SQL脚本文件,书写SQL代码,运行,创建choose数据库的5张表。

setcharacter_set_client=gbk;

setcharacter_set_connection=gbk;

setcharacter_set_database=gbk;

setcharacter_set_results=gbk;

setcharacter_set_server=gbk;

createdatabasechoose;

usechoose;

createtableteacher(

teacher_nochar(10)primarykey,

teacher_namechar(10)notnull,#教师姓名不允许为空

teacher_contactchar(20)notnull#教师联系方式名不允许为空

)engine=InnoDBdefaultcharset=gbk;

createtableclasses(

class_nointauto_incrementprimarykey,

class_namechar(20)notnullunique,#班级名不允许为空、且不允许重复

department_namechar(20)notnull#院系名不允许为空

)engine=InnoDBdefaultcharset=gbk;

createtablecourse(

course_nointauto_incrementprimarykey,

course_namechar(10)notnull,#课程名允许重复

up_limitintdefault60,#课程上限设置默认值为60

descriptiontextnotnull,#课程的描述信息为文本字符串text,且不能为空

statuschar(6)default'未审核',#课程状态的默认值为“未审核”

teacher_nochar(10)notnullunique,#唯一性约束实现教师与课程之间1:

1关系

constraintcourse_teacher_fkforeignkey(teacher_no)referencesteacher(teacher_no)

)engine=InnoDBdefaultcharset=gbk;

createtablestudent(

student_nochar(11)primarykey,#学号不允许重复

student_namechar(10)notnull,#学生姓名不允许为空

student_contactchar(20)notnull,#学生联系方式不允许为空

class_noint,#学生的班级允许为空

constraintstudent_class_fkforeignkey(class_no)referencesclasses(class_no)

)engine=InnoDBdefaultcharset=gbk;

createtablechoose(

choose_nointauto_incrementprimarykey,

student_nochar(11)notnull,#学生学号不允许为空

course_nointnotnull,#课程号不允许为空

scoretinyintunsigned,

choose_timedatetimenotnull,#选课时间可由now()函数自动生成

constraintchoose_student_fkforeignkey(student_no)referencesstudent(student_no),

constraintchoose_course_fkforeignkey(course_no)referencescourse(course_

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2