收藏 分销(赏)

MySQL数据库基础与实例教程.ppt

上传人:胜**** 文档编号:755151 上传时间:2024-03-05 格式:PPT 页数:716 大小:9.05MB
下载 相关 举报
MySQL数据库基础与实例教程.ppt_第1页
第1页 / 共716页
MySQL数据库基础与实例教程.ppt_第2页
第2页 / 共716页
MySQL数据库基础与实例教程.ppt_第3页
第3页 / 共716页
MySQL数据库基础与实例教程.ppt_第4页
第4页 / 共716页
MySQL数据库基础与实例教程.ppt_第5页
第5页 / 共716页
点击查看更多>>
资源描述

1、现代电子技术实验MySQL基础教程基础教程适合新手,适合老手!适合新手,适合老手!现代电子技术实验孔祥盛MySQL数据库基础与实例教程 之数据库设计概述现代电子技术实验123 本章抛开MySQL讲解关系数据库设计的相关知识,以“选课系统”为例,讲解“选课系统”数据库的设计流程。4内容一览 数据库设计的相关知识数据库概述 E-R图关系数据库设计现代电子技术实验123 简单地说:数据库(Database或DB)是存储、管理数据的容器;严格地说:数据库是“按照某种数据结构对数据进行组织、存储和管理的容器”。总结:数据永远是数据库的核心。关系数据库关系数据库管理系统结构化查询语言SQL1.1 数据库概

2、述 现代电子技术实验1.1.1 关系数据库管理系统 通过“数据库管理系统”,数据库用户可以轻松地实现数据库容器中各种数据库对象的访问(增、删、改、查等操作),并可以轻松地完成数据库的维护工作(备份、恢复、修复等操作)现代电子技术实验 数据库用户无法直接通过操作系统获取数据库文件中的具体内容;数据库管理系统通过调用操作系统的进程管理、内存管理、设备管理以及文件管理等服务,为数据库用户提供管理、控制数据库容器中各种数据库对象、数据库文件的接口。1.1.1 关系数据库管理系统现代电子技术实验添加标题添加标题现代电子技术实验层次模型面向对象模型网状模型关系模型数据库管理系统常用的数学模型 现代电子技术

3、实验添加标题 基于“关系模型”的数据库管理系统称为关系数据库管理系统(简称为RDBMS)。随着关系数据库管理系统的日臻完善,目前关系数据库管理系统已占据主导地位。1.1.1 关系数据库管理系统https:/ 关系数据库管理系统现代电子技术实验2014年3月数据库流行度排行榜1.1.1 关系数据库管理系统现代电子技术实验2014年4月数据库流行度排行榜1.1.1 关系数据库管理系统现代电子技术实验开源MySQL源代码免费下载简单MySQL体积小,便于安装MySQL性能足够与商业数据库媲美功能强大MySQL提供的功能足够与商业数据库媲美逆袭原因性能优越1.1.1 关系数据库管理系统现代电子技术实验

4、 关系数据库中所谓的“关系”,实质上是一张二维表。请看下面的课程表。字段名(列名)第1个字段(列)第1条记录第2条记录第3条记录第4条记录第5条记录第3个字段(列)第2个字段(列)第4个字段(列)1.1.2 关系数据库现代电子技术实验 作为数据库中最为重要的数据库对象,数据库表的设计过程并非一蹴而就,上述课程表根本无法满足“选课系统”的功能需求。事实上,数据库表的设计过程并非如此简单,本章的重点就是讨论如何设计结构良好的数据库表。1.1.2 关系数据库现代电子技术实验 结构化查询语言(Structured Query Language或简称为SQL)是一种应用最为广泛的关系数据库语言,该语言定

5、义了操作关系数据库的标准语法,几乎所有的关系数据库管理系统都支持SQL。1.1.3 结构化查询语言SQL 现代电子技术实验学习重点现代电子技术实验123 数据库设计是一个“系统工程”,要求数据库开发人员:熟悉“商业领域”的商业知识。利用“管理学”的知识与其他开发人员进行有效沟通。掌握一些数据库设计辅助工具。数据库设计辅助工具商业知识和沟通技能“选课系统”概述45定义问题域编码规范1.2 数据库设计的相关知识现代电子技术实验 数据库技术解决的是“商业领域”的“商业问题”。数据库开发人员有必要成为该“商业领域”的专家,与其他开发人员(包括最终用户)一起工作,继而使用数据库技术解决该“商业领域”的“

6、商业问题”。1.2.1 商业知识和沟通技能现代电子技术实验1.2.2 数据库设计辅助工具工具模型技术业务模型面向对象分析和设计技术结构化分析和设计技术软件测试技术关系数据库设计技术 ErwinPowerDesignerRational RoseVisio VC+6.0Visual studioEclipseNetBeans 单元测试工具功能测试工具性能测试 工具程序流程图 DFD 时序图 状态图CASE工具IDE工具测试工具数据模型类图E-R图现代电子技术实验 限于篇幅,在不影响“选课系统”核心功能的基础上,适当地对该系统进行“定制”、“扩展”以及“瘦身”。1.2.3“选课系统”概述现代电子技

7、术实验 定义问题域是数据库设计过程中重要的活动,它的目标是准确定义要解决的商业问题。“选课系统”亟需解决的“商业”问题有哪些?1.2.4 定义问题域现代电子技术实验 在编程的时候会考虑代码的可读性吗?你觉得代码可读性是需要考虑的问题吗?1.代码不仅要自己能读懂,还要别人也能看懂?2.尽量做到可读,但时间紧任务重的时候就顾不上了?3.代码只要自己能读懂就可以了?4.代码写完就完了,不用管以后是否能读懂?5.不知道,没有想过这个问题?1.2.5 编码规范现代电子技术实验 请记住:尽最大努力把方便留给别人和将来的自己。建议大家遵循本书罗列的常用编程规范!现代电子技术实验123关系实体和属性E-R图的

8、设计原则 E-R图设计的质量直接决定了关系数据库设计的质量。1.3 E-R图现代电子技术实验 实体不是某一个具体事物,而是某一种类别所有事物的统称。属性通常用于表示实体的某种特征,也可以使用属性表示实体间关系的特征实体属性属性1.3.1 实体和属性现代电子技术实验 E-R图中的关系用于表示实体间存在的联系,在E-R图中,实体间的关系通常使用一条线段表示。E-R图中实体间的关系是双向的。关系关系1.3.2 关系现代电子技术实验 基数表示一个实体到另一个实体之间关联的数目,基数是针对关系之间的某个方向提出的概念,基数可以是一个取值范围,也可以是某个具体数值基数可选基数强制1.3.2 关系现代电子技

9、术实验 元表示关系所关联的实体个数。二元关系二元关系一元关系1.3.2 关系现代电子技术实验 使用关联(Association)表示实体间关系的属性。关联关联1.3.2 关系现代电子技术实验123实体是一个单独的个体,不能存在于另一个实体中,成为另一个实体的属性。属性应该存在于、且只存在于某一个地方(实体或者关联)。同一个实体在同一个E-R图内,仅出现一次。数据库开发人员通常采用“一事一地”的原则从系统的功能描述中抽象出来E-R图。1.3.3 E-R图的设计原则现代电子技术实验1为E-R图中的每个实体建立一张表。2为每张表定义一个主键(如果需要,可以向表添加一个没有实际意义的字段作为该表的主键

10、)3增加外键表示一对多关系。4建立新表表示多对多关系。5为字段选择合适的数据类型。6定义约束条件(如果需要)。7评价关系的质量,并进行必要的改进。1.4 关系数据库设计现代电子技术实验student(student_no,student_name,student_contact)course(course_name,up_limit,description,status)teacher(teacher_no,teacher_name,teacher_contact)classes(class_name,department_name)1.4.1 为每个实体建立一张数据库表现代电子技术实验关键字

11、(key):用以唯一标识表中的每行记录。主键(Primary Key):在所有的关键字中选择一个关键字,作为该表的主关键字,简称主键。1.4.2 为每张表定义一个主键现代电子技术实验主键有以下两个特征:(1)表的主键可以是一个字段,也可以是多个字段的组合(这种情况称为复合主键)。(2)表中主键的值具有唯一性且不能取空值(NULL);当表中的主键由多个字段构成时,每个字段的值都不能取NULL。主键设计技巧,请参看本书内容。1.4.2 为每张表定义一个主键现代电子技术实验student(student_no,student_name,student_contact)course(course_no

12、,course_name,up_limit,description,status)teacher(teacher_no,teacher_name,teacher_contact)classes(class_no,class_name,department_name)1.4.2 为每张表定义一个主键现代电子技术实验 外键(Foreign Key):如果表A中的一个字段a对应于表B的主键b,则字段a称为表A的外键,此时存储在表A中字段a的值,要么是NULL,要么是来自于表B主键b的值。1.4.3 增加外键表示一对多关系现代电子技术实验 情形一:如果实体间的关系为一对多关系,则需要将“一”端实体的主

13、键放到“多”端实体中,然后作为“多”端实体的外键,通过该外键即可表示实体间的一对多关系。1.4.3 增加外键表示一对多关系现代电子技术实验 让学生记住所在班级,远比班级“记住”所有学生容易的多。1.4.3 增加外键表示一对多关系现代电子技术实验 情形二:实体间的一对一关系,可以看成一种特殊的一对多关系:将“一”端实体的主键放到另“一”端的实体中,并作为另“一”端的实体的外键,然后将外键定义为唯一性约束(Unique Constraint)。1.4.3 增加外键表示一对多关系现代电子技术实验PK1.4.3 增加外键表示一对多关系现代电子技术实验PK后的方案:student(student_no,

14、student_name,student_contact,class_no)course(course_no,course_name,up_limit,description,status,teacher_no)teacher(teacher_no,teacher_name,teacher_contact)classes(class_no,class_name,department_name)1.4.3 增加外键表示一对多关系现代电子技术实验 情形三:如果两个实体间的关系为多对多关系,则需要添加新表表示该多对多关系,然后将该关系涉及到的实体的“主键”分别放入到新表中(作为新表的外键),并将关系

15、自身的属性放入到新表中作为新表的字段。1.4.4 建立新表表示多对多关系现代电子技术实验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_no,course_no,s

16、core,choose_time)1.4.4 建立新表表示多对多关系现代电子技术实验1.4.4 建立新表表示多对多关系现代电子技术实验1.4.5 为字段选择合适的数据类型现代电子技术实验常用的约束条件有6种:主键(Primary Key)约束 外键(Foreign Key)约束 唯一性(Unique)约束 默认值(Default)约束 非空(Not NULL)约束 检查(Check)约束。1.4.6 定义约束(Constraint)条件现代电子技术实验设计数据库时,有两个不争的事实。数据库中冗余的数据需要额外的维护,因此质量好的一套表应该尽量“减少冗余数据”。数据库中经常发生变化的数据需要额外

17、的维护,因此质量好的一套表应该尽量“避免数据经常发生变化”。1.4.7 评价数据库表设计的质量现代电子技术实验 冗余的数据需要额外的维护,并且容易导致“数据不一致”、“插入异常”以及“删除异常”等问题的发生。1.4.8 使用规范化减少数据冗余现代电子技术实验场景一:插入异常。场景二:修改复杂。场景三:删除异常。1.4.8 使用规范化减少数据冗余现代电子技术实验 规范化是通过最小化数据冗余来提升数据库设计质量的过程,规范化是基于函数依赖以及一系列范式定义的,最为常用的是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。1.4.8 使用规范化减少数据冗余现代电子技术实验 函数依赖:一张表

18、内两个字段值之间的一一对应关系称为函数依赖。第一范式:如果一张表内同类字段不重复出现,该表就满足第一范式的要求。1.4.8 使用规范化减少数据冗余现代电子技术实验第一范式1.4.8 使用规范化减少数据冗余现代电子技术实验 第二范式:一张表在满足第一范式的基础上,如果每个“非关键字”字段“仅仅”函数依赖于主键,那么该表满足第二范式的要求。1.4.8 使用规范化减少数据冗余现代电子技术实验第二范式1.4.8 使用规范化减少数据冗余现代电子技术实验 第三范式:如果一张表满足第二范式的要求,并且不存在“非关键字”字段函数依赖于任何其他“非关键字”字段,那么该表满足第三范式的要求。1.4.8 使用规范化

19、减少数据冗余现代电子技术实验第三范式1.4.8 使用规范化减少数据冗余现代电子技术实验 统计学生的个人资料时,如果读者是一名数据库开发人员,应该让学生上报年龄信息,还是让学生上报出生日期?如何确保每一门课程选报学生的人数,不超过人数上限?1.4.9 避免数据经常发生变化现代电子技术实验方案一:course(course_no,course_no,course_name,up_limit,description,status,teacher_no,available)方案二:数据库表无需进行任何更改。1.4.9 避免数据经常发生变化现代电子技术实验任务1:描述“选课系统”的问题域。任务2:将本书

20、图1-7中“团购网站、顾客以及房源之间的三元关系表示方法”E-R图转化为关系(模式)。任务3:使用笔纸或者word绘图工具,绘制“选课系统”的E-R图。任务4:将“选课系统”的E-R图转化为关系(模式)。任务布置现代电子技术实验Thanks现代电子技术实验现代电子技术实验孔祥盛MySQL数据库基础与实例教程 之MySQL基础知识现代电子技术实验123 通过本章的学习,读者可以掌握一些常用的MySQL命令,从而对MySQL数据库进行一些简单的管理。本章知识点较为繁杂,希望保持一份儿耐心。4字符集以及字符序设置MySQL概述MySQL数据库管理MySQL表管理5系统变量内容一览 现代电子技术实验1

21、23MySQL由瑞典MySQL AB公司开发。2008年1月MySQL被美国的SUN公司收购。2009年4月SUN公司又被美国的甲骨文(Oracle)公司收购。MySQL服务的安装MySQL的特点MySQL服务的配置45启动与停止MySQL服务MySQL配置文件2.1 MySQL概述 现代电子技术实验67MySQL由瑞典MySQL AB公司开发。2008年1月MySQL被美国的SUN公司收购。2009年4月SUN公司又被美国的甲骨文(Oracle)公司收购。连接MySQL服务器关系数据库MySQL客户机2.1 MySQL概述 现代电子技术实验 MySQL是一个单进程多线程、支持多用户、基于客户

22、机/服务器(Client/Server简称C/S)的关系数据库管理系统。性能高效 跨平台支持 简单易用 开源 支持多用户2.1.1 MySQL特点现代电子技术实验MySQL的使用流程2.1.1 MySQL特点现代电子技术实验MySQL其他概念(请参看本书内容):MySQL服务 MySQL服务实例 MySQL服务器 端口号2.1.1 MySQL特点现代电子技术实验MySQL服务的安装(请参看本书内容)。建议自学,并上机操作。注意:本书使用的MySQL为5.6版本。可以到本书指定的网址下载MySQL图形化安装包mysql-5.6.5-m8-win32.msi。2.1.2 MySQL服务的安装现代电

23、子技术实验MySQL服务的配置(请参看本书内容)。建议自学,并上机操作。配置过程中的其他知识点:OLAP与OLTP Enable Strict Mode选项 字符集/字符序 MySQL超级管理员root账户 my.ini配置文件中 2.1.3 MySQL服务的配置现代电子技术实验MySQL服务的启动与停止(请参看本书内容)。建议自学,并上机操作。2.1.4 启动与停止MySQL服务现代电子技术实验my.ini配置文件包含了多种参数选项组,每个参数选项组通过“”指定,每个参数选项组可以配置多个参数信息。通常情况下,每个参数遵循“参数名=参数值”这种配置格式,参数名一般是小写字母,参数名大小写敏感

24、。常用的参数选项组有“client”、“mysql”以及“mysqld”参数选项组。2.1.5 MySQL配置文件现代电子技术实验client参数选项组:配置了MySQL自带的MySQL5.6 命令行窗口可以读取的参数信息。常用的参数是port(默认值是3306)。修改该port值会导致新打开的MySQL5.6 命令行窗口无法连接MySQL服务器。2.1.5 MySQL配置文件现代电子技术实验mysql参数选项组:配置了MySQL客户机程序mysql.exe可以读取的参数信息。常用的参数有“prompt”、“default-character-set=gbk”。修改“mysql”参数选项组中的

25、参数值,将直接影响新打开的MySQL客户机。2.1.5 MySQL配置文件现代电子技术实验mysqld参数选项组:配置了MySQL服务程序mysqld.exe可以读取的参数信息,mysqld.exe启动时,将mysqld参数选项组的参数信息加载到服务器内存,继而生成MySQL服务实例。2.1.5 MySQL配置文件现代电子技术实验mysqld参数选项组:常用的参数有“port”、“basedir”、“datadir”、“character-set-server”、“sql_mode”、“max_connections”以及“default_storage_engine”等。2.1.5 MySQ

26、L配置文件现代电子技术实验mysqld参数选项组:修改“mysqld”参数选项组的参数值,只有重新启动MySQL服务,将修改后的配置文件参数信息加载到服务器内存后,新配置文件才会在新的MySQL服务实例中生效。如果“mysqld”参数选项组的参数信息出现错误,将会导致MySQL服务无法启动。2.1.5 MySQL配置文件现代电子技术实验MySQL客户机(本书使用前两个):MySQL5.6命令行窗口CMD命令提示符窗口WEB浏览器(例如phpMyAdmin)第三方客户机程序(例如MySQL-Front、MySQLManagerforMySQL等)2.1.6 MySQL客户机现代电子技术实验php

27、MyAdmin2.1.6 MySQL客户机现代电子技术实验MySQL-Front2.1.6 MySQL客户机现代电子技术实验MySQLManager for MySQL2.1.6 MySQL客户机现代电子技术实验2.1.6 MySQL客户机HeidiSQL现代电子技术实验MySQL客户机连接MySQL服务器须提供:合法的登录主机:解决“from”的问题。合法的账户名以及密码:解决“who”的问题。MySQL服务器主机名(或IP地址):解决“to”的问题。端口号:解决“多卡多待”的问题。MySQL客户机与MySQL服务器是同一台主机时,主机名可以使用localhost(或者127.0.0.1)。

28、2.1.7 连接MySQL服务器现代电子技术实验当MySQL客户机与MySQL服务器是同一台主机时,打开命令提示符窗口,输入mysql-h 127.0.0.1-P 3306-u root proot或者mysql-h localhost-P 3306-u root proot然后回车(注意-p后面紧跟密码root),即可实现本地MySQL客户机与本地MySQL服务器之间的成功连接。2.1.7 连接MySQL服务器现代电子技术实验2.1.7 连接MySQL服务器现代电子技术实验123 MySQL由瑞典MySQL AB公司开发,默认情况下MySQL使用的是latin1字符集。由此可能导致MySQL

29、数据库不够支持中文字符串查询或者发生中文字符串乱码等问题。MySQL字符集与字符序字符集及字符序概念MySQL的字符集转换过程45MySQL字符集的设置SQL脚本文件2.2 字符集以及字符序设置现代电子技术实验字符(Character)是人类语言最小的表义符号,例如A、B等。给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这个数值就是字符的编码(CharacterEncoding)。给定一系列字符并赋予对应的编码后,所有这些“字符和编码对”组成的集合就是字符集(Character Set)。2.2.1 字符集及字符序概念现代电子技术实验2.2.1 字符集及字符序概念现代电子技术

30、实验字符序(Collation)是指在同一字符集内字符之间的比较规则。一个字符集包含多种字符序,每个字符序唯一对应一种字符集。MySQL字符序命名规则是:以字符序对应的字符集名称开头,以国家名居中(或以general居中),以ci、cs或bin结尾。ci表示大小写不敏感,cs表示大小写敏感,bin表示按二进制编码值比较。2.2.1 字符集及字符序概念现代电子技术实验 使用MySQL命令show character set;即可查看当前MySQL服务实例支持的字符集、字符集默认的字符序以及字符集占用的最大字节长度等信息 latin1支持西欧字符、希腊字符等 gbk支持中文简体字符 big5支持中

31、文繁体字符 utf8几乎支持世界所有国家的字符。2.2.2 MySQL字符集及字符序现代电子技术实验使用MySQL命令showvariableslikecharacter%;即可查看当前MySQL服务实例使用的字符集。2.2.2 MySQL字符集及字符序现代电子技术实验character_set_client:MySQL客户机字符集。character_set_connection:数据通信链路字符集,当MySQL客户机向服务器发送请求时,请求数据以该字符集进行编码。character_set_database:数据库字符集。character_set_filesystem:MySQL服务器文

32、件系统字符集,该值是固定的binary。2.2.2 MySQL字符集及字符序现代电子技术实验character_set_results:结果集的字符集,MySQL服务器向MySQL客户机返回执行结果时,执行结果以该字符集进行编码。character_set_server:MySQL服务实例字符集。character_set_system:元数据(字段名、表名、数据库名等)的字符集,默认值为utf8。2.2.2 MySQL字符集及字符序现代电子技术实验使用MySQL命令“showcollation;”即可查看当前MySQL服务实例支持的字符序。2.2.2 MySQL字符集及字符序现代电子技术实验

33、2.2.3 MySQL字符集的转换过程现代电子技术实验方法1:修改my.ini配置文件,可修改MySQL默认的字符集。方法2:MySQL提供下列MySQL命令可以“临时地”修改MySQL“当前会话的”字符集以及字符序。2.2.4 MySQL字符集的设置现代电子技术实验setcharacter_set_client=gbk;setcharacter_set_connection=gbk;setcharacter_set_database=gbk;setcharacter_set_results=gbk;setcharacter_set_server=gbk;setcollation_connec

34、tion=gbk_chinese_ci;setcollation_database=gbk_chinese_ci;setcollation_server=gbk_chinese_ci;2.2.4 MySQL字符集的设置现代电子技术实验方法3:使用MySQL命令“setnamesgbk;”可以“临时一次性地”设置character_set_client、character_set_connection以及character_set_results的字符集为gbk方法4:连接MySQL服务器时指定字符集mysql-default-character-set=字符集-h服务器IP地址-u账户名p密码

35、2.2.4 MySQL字符集的设置现代电子技术实验SQL基本的执行方法(两种):.C:mysqlinit.sqlsourceC:mysqlinit.sql2.2.5 SQL脚本文件现代电子技术实验123数据库是存储数据库对象的容器。MySQL数据库的管理主要包括数据库的创建、选择当前操作的数据库、显示数据库结构以及删除数据库等操作。查看数据库创建数据库显示数据库结构45选择当前操作的数据库删除数据库2.3 MySQL数据库管理现代电子技术实验 create database choose;成功创建choose数据库后,数据库根目录下会自动创建数据库目录。2.3.1 创建数据库现代电子技术实验使

36、用MySQL命令show databases;即可查看MySQL服务实例上所有的数据库 2.3.2 查看数据库现代电子技术实验 使用MySQL命令show create database choose;可以查看choose数据库的相关信息(例如MySQL版本ID号、默认字符集等信息)。2.3.3 显示数据库结构现代电子技术实验执行“use choose;”命令后,后续的MySQL命令以及SQL语句将自动操作choose数据库中所有数据库对象。2.3.4 选择当前操作的数据库现代电子技术实验删除student数据库,使用SQL语句drop database student;2.3.5 删除数据库

37、现代电子技术实验123表是数据库中最为重要的数据库对象设置默认的存储引擎MyISAM和InnoDB存储引擎创建数据库表45显示表结构表记录的管理2.4 MySQL表管理 现代电子技术实验67表是数据库中最为重要的数据库对象删除表InnoDB表空间2.4 MySQL表管理 现代电子技术实验 MySQL提供了插件式(Pluggable)的存储引擎,存储引擎是基于表的,同一个数据库,不同的表,存储引擎可以不同。甚至同一个数据库表,在不同的场合可以应用不同的存储引擎。2.4.1 MyISAM和InnoDB存储引擎现代电子技术实验使用MySQL命令“showengines;”,即可查看MySQL服务实例

38、支持的存储引擎。2.4.1 MyISAM和InnoDB存储引擎现代电子技术实验1InnoDB存储引擎的特点支持外键(ForeignKey)支持事务(Transaction):如果某张表主要提供OLTP支持,需要执行大量的增、删、改操作(insert、delete、update语句),出于事务安全方面的考虑,InnoDB存储引擎是更好的选择。最新版本的MySQL已经开始支持全文检索。2.4.1 MyISAM和InnoDB存储引擎现代电子技术实验2MyISAM存储引擎的特点MyISAM具有检查和修复表的大多数工具。MyISAM表可以被压缩MyISAM表最早支持全文索引但MyISAM表不支持事务但M

39、yISAM表不支持外键(ForeignKey)。如果需要执行大量的select语句,出于性能方面的考虑,MyISAM存储引擎是更好的选择。2.4.1 MyISAM和InnoDB存储引擎现代电子技术实验MySQL5.6默认的默认的存储引擎是InnoDB。使用MySQL命令setdefault_storage_engine=MyISAM;可以“临时地”将MySQL“当前会话的”存储引擎设置为MyISAM,使用MySQL命令“showengines;”可以查看当前MySQL服务实例默认的存储引擎。2.4.2 设置默认的存储引擎现代电子技术实验使用SQL语句“createtable表名”即可创建一个数

40、据库表。例如:usechoose;setdefault_storage_engine=InnoDB;createtablemy_table(todaydatetime,namechar(20);2.4.3 创建数据库表现代电子技术实验成功创建InnoDB存储引擎的my_table表后,MySQL服务实例会在数据库目录choose中自动创建一个名字为表名、后缀名为frm的文件。my_table.frm。2.4.3 创建数据库表现代电子技术实验将my_table表的存储引擎修改为MyISAM。usechoose;altertablemy_tableengine=MyISAM;2.4.3 创建数据库

41、表现代电子技术实验使用MySQL命令“destable_name;”即可查看表名为table_name的表结构。2.4.4 显示表结构现代电子技术实验使用MySQL命令“showcreatetabletable_name;”,查看名为table_name表的详细信息。2.4.4 显示表结构现代电子技术实验usechoose;insertintomy_tablevalues(now(),a);insertintomy_tablevalues(now(),a);insertintomy_tablevalues(now(),NULL);insertintomy_tablevalues(now(),)

42、;select*frommy_table;2.4.5 表记录的管理现代电子技术实验任务布置1:完成本书场景描述1:MyISAM表记录的管理的任务要求。任务布置2:完成本书场景描述2:InnoDB表记录的管理的任务要求。2.4.5 表记录的管理现代电子技术实验1.共享表空间:MySQL服务实例承载的所有数据库的所有InnoDB表的数据信息、索引信息、各种元数据信息以及事务的回滚(UNDO)信息,全部存放在共享表空间文件中。默认情况下该文件位于数据库根目录下,文件名是ibdata1,且文件的初始大小为10M。可以使用MySQL命令“showvariableslikeinnodb_data_file

43、_path;”查看该文件的的属性。2.4.6 InnoDB表空间现代电子技术实验2.4.6 InnoDB表空间现代电子技术实验2.独享表空间:如果将全局系统变量innodb_file_per_table的值设置为ON(innodb_file_per_table的默认值为OFF),那么之后再创建InnoDB存储引擎的新表,这些表的数据信息、索引信息都将保存到独享表空间文件。2.4.6 InnoDB表空间现代电子技术实验独享表空间的设置2.4.6 InnoDB表空间现代电子技术实验usechoose;altertablemy_tableengine=InnoDB;createtablesecond

44、_table(todaydatetime,namechar(20);2.4.6 InnoDB表空间现代电子技术实验2.4.6 InnoDB表空间现代电子技术实验任务布置3:完成本书场景描述3的任务要求。2.4.6 InnoDB表空间现代电子技术实验使用SQL语句droptabletable_name;即可删除名为table_name的表。删除表后,MySQL服务实例会自动删除该表结构定义文件(例如second_table.frm文件),以及数据、索引信息。该命令慎用!2.4.7 删除表现代电子技术实验123MySQL数据库中,变量分为系统变量(以开头)以及用户自定义变量(以开头)。查看系统变量

45、的值全局系统变量与会话系统变量设置系统变量的值2.5 系统变量现代电子技术实验每一个MySQL客户机成功连接MySQL服务器后,都会产生与之对应的会话。会话期间,MySQL服务实例会在MySQL服务器内存中生成与该会话对应的会话系统变量,这些会话系统变量的初始值是全局系统变量值的拷贝。2.5.1 全局系统变量与会话系统变量现代电子技术实验由于各会话在会话期间所做的操作不尽相同,为了标记各个会话,会话系统变量又新增了12个变量。2.5.1 全局系统变量与会话系统变量现代电子技术实验2.5.1 全局系统变量与会话系统变量现代电子技术实验使用“show global variables;”命令即可查

46、看MySQL服务器内存中所有的全局系统变量信息(有393项之多)。使用“show session variables;”命令即可查看与当前会话相关的所有会话系统变量以及所有的全局系统变量(有405项之多),此处session关键字可以省略。2.5.2 查看系统变量的值现代电子技术实验MySQL中有一些系统变量仅仅是全局系统变量,例如 innodb_data_file_path。show global variables like innodb_data_file_path;show session variables like innodb_data_file_path;show variab

47、les like innodb_data_file_path;2.5.2 查看系统变量的值现代电子技术实验MySQL中有一些系统变量仅仅是会话系统变量,例如MySQL连接ID会话系统变量pseudo_thread_id。show session variables like pseudo_thread_id;show variables like pseudo_thread_id;2.5.2 查看系统变量的值现代电子技术实验 MySQL中有一些系统变量既是全局系统变量,又是会话系统变量,例如系统变量character_set_client 既是全局系统变量,又是会话系统变量。2.5.2 查看系

48、统变量的值现代电子技术实验此时查看会话系统变量的方法:show session variables like character_set_client;show variables like character_set_client;此时查看全局系统变量的方法:show global variables like character_set_client;2.5.2 查看系统变量的值现代电子技术实验作为MySQL编码规范,MySQL中的系统变量以两个“”开头。global仅仅用于标记全局系统变量;session仅仅用于标记会话系统变量;首先标记会话系统变量,如果会话系统变量不存在,则标记全局系

49、统变量。2.5.2 查看系统变量的值现代电子技术实验任务布置4:完成本书场景描述4的任务要求。2.5.2 查看系统变量的值现代电子技术实验方法一:修改MySQL源代码,然后对MySQL源代码重新编译(该方法适用于MySQL高级用户,这里不作阐述)。方法二:最为简单的方法是通过修改MySQL配置文件,继而修改MySQL系统变量的值(fai方法需要重启MySQL服务)。方法三:在MySQL服务运行期间,使用“set”命令重新设置系统变量的值。2.5.2 查看系统变量的值现代电子技术实验 设置全局系统变量的值的方法:set global.innodb_file_per_table=default;s

50、et global.innodb_file_per_table=ON;set global innodb_file_per_table=ON;2.5.2 查看系统变量的值现代电子技术实验设置会话系统变量的值的方法:set session.pseudo_thread_id=5;set session pseudo_thread_id=5;set pseudo_thread_id=5;set pseudo_thread_id=5;2.5.2 查看系统变量的值现代电子技术实验MySQL中还有一些特殊的全局系统变量(例如log_bin、tmpdir、version、datadir),在MySQL服务实

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 计算机应用

移动网页_全站_页脚广告1

关于我们      联系我们       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号  |  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服