1、学以致用学以致用第一章第一章 数数 据据 库库 基基 础础 知知 识识学习目标掌握E-R图设计过程;关系数据库的规范化;数据设计步骤。1 13 3了解数据库的相关概念;数据库管理技术的发展。2 2熟悉数据模型的概念和常见的数据模型。掌握了解熟悉数据库基本概念1.11.1常见的数据库1.21.21.31.3数据库管理技术的发展目录数据模型1.41.4常见的数据模型1.51.51.61.6关系数据库的规范化1.71.7数据库设计目录信息是现实世界事物的存在方式或运动状态的反映,它通过符号、信号等具体形式表现出来。1.1数据库基本概念数据(Data)狭义:数值数据描述事物的符号记录广义:数字、文字、
2、声音、图形等大量、海量数据库(DataBase)数据集合针对明确的应用目标而设计共享性和易扩充性保证了整个系统数据的一致性特性数据库管理系统(DBMS)一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库集中了各种应用的数据与客观事物的状态保持一致(张三丰,男,1990.9,河南,信息工程系,2017)1.1数据库基本概念数据库系统DataBaseSystem(DBS)引入了数据库后的计算机系统硬件软件数据库人员1.1数据库基本概念1.2常见的数据库-数据不能长期保存,用完就删除。-数据的管理由应用程序完成。-数据面向应用不能共享。-数据不独立。数据集1数据集2数据集n应用程序1应用程序
3、2应用程序n1.3.1人工管理阶段1.3数据管理技术的发展-数据实现了长期保存。-由文件系统管理数据。-数据共享率低,冗余程度高。-数据独立性差。文件1文件2文件n应用程序1应用程序2应用程序n文件管理系统1.3.2文件系统阶段1.3数据管理技术的发展-数据结构化。-数据共享性高、冗余少且易扩充。-数据独立性高。-数据由DBMS统一管理和控制。应用程序1应用程序2应用程序n数据库管理系统数据库1.3.3数据库系统阶段1.3数据管理技术的发展模型(Model)1.4.1数据模型的概念1.4数据模型数据模型(DataModel)它是数据特征的抽象。数据模型是数据库系统的核心与基础,它从抽象层次上描
4、述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供了一个抽象的框架。1.4.1数据模型的概念1.4数据模型数据结构1 1数据操作2 2数据的约束条件3 31.4.1数据模型的概念1.4数据模型数据结构:主要描述数据的类型、内容、性质以及数据间的联系等,是对系统静态特征的描述。1.4.1数据模型的概念1.4数据模型数据操作:主要描述在相应的数据结构上的操作类型和操作方式,是对系统动态特征的描述。1.4.1数据模型的概念1.4数据模型数据的约束条件:主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。1.4
5、.1数据模型的概念1.4数据模型(1)概念模型:也称为信息模型,是一种面向用户、面向客观世界的模型,主要用来描述世界的概念化结构。概念模型是现实世界到信息世界的第一次抽象,用于信息世界的建模,是数据库设计人员的有利工具,也是数据库设计人员与用户之间交流的语言。(2)数据模型:它直接面向数据库的逻辑结构,是现实世界的第二次抽象。它是按计算机系统的观点对数据建模,主要用于DBMS的实现。目前最常用的数据模型主要包括层次模型、网状模型和关系模型。1.4.2数据模型分类1.4数据模型课程部门老师学生选课部门与职工的关系河南省郑州市1.4.3概念模型的表示方法(1)实体(Entity):是指客观世界中存
6、在并且可以相互区分的事物。实体1.4数据模型(2)属性(Attribute):是指实体的所具有的某一特性职工号姓名 性别年龄学历部门1.4数据模型1.4.3概念模型的表示方法(3)码(Key):是指唯一标识实体的属性集。例如,职工号是职工实体的码。(4)域(Domain):是指属性的取值范围。例如,职工号的域为4位整数。(5)实体型(EntityType):具有相同属性的实体必然具有共同的特征和性质,用实体名及其属性名集合来抽象和刻画这些实体,称为实体型。例如,职工(职工号,姓名,性别,年龄,学历,部门)就是一个实体型。1.4数据模型1.4.3概念模型的表示方法(6)实体集(EntitySet
7、):同型实体的集合称为实体集。例如,全体职工就是一个实体集。(7)联系(Relationship):在客观世界中,事物内部及事物之间是普遍存在联的,这些联系在信息世界中表现为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体型之间的联系。1.4数据模型 概念模型的表示方法有很多,但最常用的方法为实体-联系方法(Entity-RelationshipApproach),简称E-R方法,该方法用E-R图(Entity-RelationshipDiagram,实体-联系图)来描述现实世界的概念模型,E-R方法也称为E-R模型(
8、Entity-RelationshipModel)。实体名属性名实体:属性:实体名属性名联系名联系类型1.4数据模型1.4.3概念模型的表示方法两个实体型之间的联系通常有3种:1.4数据模型1.4.3概念模型的表示方法两个以上的实体集之间也存在着一对一、一对多、多对多联系。1.4数据模型1.4.3概念模型的表示方法同一个实体集内的各实体之间也存在一对一、一对多、多对多的联系。1.4数据模型1.4.3概念模型的表示方法注意:注意:如果联系也具有属性,则这些属性也要用无向边与该联系连接起来。例如学生与课程之间存在学习的联系,学习就有“成绩”这一属性。1.4.3概念模型的表示方法1.4数据模型用树形
9、结构表示各类实体及实体间联系。它是数据库系统中最早出现的数据模型。层次模型的特点是:有且仅有一个结点无双亲节点,称为根结点。除根结点之外的其他节点有且仅有一个双亲结点。1.5常见的数据模型1.5.1层次模型(HierarchicalModel)用网络结构表示各类实体及实体间联系。网状模型的特点是:允许一个以上的结点无双亲结点。一个结点可以有多于一个的双亲结点。1.5.2网状模型(NetworkModel)1.5常见的数据模型网状模型有很多种,以下为几种典型的图例:1.5常见的数据模型1.5.2网状模型(NetworkModel)用二维(2-Dimension)表的形式表示各类实体及实体间联系。
10、1、关系模型的数据结构关系模式的数据结构就是一种二维表结构,它由行列组成,如表1-1学生信息表所示:1.5常见的数据模型1.5.3关系模型(RelationalModel)表中常见术语:(1)关系(Relation):一个关系对应着一张二维表,二维表就是关系名。(2)元组(Tuple):表中的一行就是一个元组。(3)属性(Attribute):表中的一列称为一个属性。列的值就是属性值;属性值的取值范围为(值)域(Domain):(4)分量:每一行对应的列的属性值,即元组中的一个属性值。(5)关系模式:对关系的描述称为关系模式。一般表示为关系名(属性1,属性2,.,属性n)。1.5.2关系模型(
11、RelationalModel)1.5常见的数据模型表中常见术语:(6)候选键或候选码:关系中存在多个属性或属性集都能用来唯一标识该关系的元组,则这些属性或属性集称为该关系的候选键或候选码。(7)主键或主码:在一个关系的若干候选键中指定一个用来唯一标识该关系的元组,则称这个被指定的候选键称为主关键字,或简称为主键、关键字、主码。每一个关系都有并且只有一主键,通常用较小的属性集作为主键。1.5.2关系模型(RelationalModel)1.5常见的数据模型(8)主属性和非主属性:包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性称为非主属性。(9)外键或外码:关系中的某个属
12、性或属性集虽然不是该关系的主键,或者只是主键的一部分,但它却是别的关系的主键时,则称其为外键或者外码。1.5常见的数据模型2、关系模型的数据操作与完整性约束。(1)实体完整性规则(EntityIntegrityRule):该规则要求关系中的元组在组成主键的属性上不能有空值,且不能出现重复值。(2)参照完整性规则(ReferenceIntegrityRule):该规则用于约束相关联的数据表间的数据要保持一致,建立外键的目的就是为了实现参照完整性。(3)用户定义的完整性规则:这是针对某一具体数据库的约束条件并由相关的应用环境而定。1.5常见的数据模型1.5.3关系模型(RelationalMode
13、l)3、关系模型的优缺点。关系模型的优点主要有:(1)数据结构单一。在该模型中,不管是实体还是实体之间的联系,都用关系来表示,而关系都对应一张二维表,数据结构简单、清晰。(2)关系规范化,并建立在严格的数学理论基础上。(3)概念简单,用户容易理解和掌握,操作方便。关系模型的缺点主要有:存储路径透明,查询效率不如非关系型数据模型。1.5常见的数据模型1.5.3关系模型(RelationalModel)面向对象模型采用面向对象的方法来设计数据库,其数据库存储的对象是以对象为单位,每个对象由属性和方法组成,具有类和继承等特点。1.5常见的数据模型1.5.4面向对象模型(ObjectOrientedM
14、odel)1、常见概念类(Class):类是对客观世界中一类具有共同特征的事物的抽象。如学生是一个类、汽车也是一个类。对象(Object):对象是客观世界中概念化的实体,是类的具体实现。如一个学生、一辆汽车。1.5.4面向对象模型(ObjectOrientedModel)1.5常见的数据模型1.5常见的数据模型封装(Encapsulation):利用抽象数据类型将数据和数据的操作结合在一起,使其构成一个不可分割的独立实体,尽可能隐藏内部的细节,只保留一些对外接口,使之与外部发生联系。继承(Inheritance):在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类或派生类,现有类被
15、称作父类或基类,子类会自动拥有父类所有可继承的属性和方法。1.5.4面向对象模型(ObjectOrientedModel)2、面向对象数据模型的优点:(1)适合处理的数据类型丰富,如图片、声音、视频、文本、数字等。(2)开发效率高。面向对象模型提供强大的特性,如封装、继承、多态等,这样允许开发者不编写特定对象的代码就可以构成对象并提供解决方案,有效地提高了开发效率。(3)提高了数据访问的性能。1.5常见的数据模型1.5.4面向对象模型(ObjectOrientedModel)2、面向对象数据模型的缺点:(1)没有准确的定义。该模型很难提供一个准确的定义来说明面向对象DBMS应建成什么样。(2)
16、维护起来比较麻烦。当对象的定义被改变和移植数据库时,操作起来比较困难。(3)不适合所有应用。该模型更适合于需要管理数据对象之间存在复杂关系的应用,并不是适合所有应用。1.5常见的数据模型1.5.4面向对象模型(ObjectOrientedModel)范式(NormalForm)是符合某一种级别的关系模式的集合,是衡量关系模式规范化程度的标准,符合标准的关系才是规范化的。范式可以分为多个等级:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式(BCNF)等,一般规范到3NF就可以满足大部分的数据库设计要求。1.6关系数据库的规范化1.6关系数据库的规范化如果关系模式R中所有的属
17、性都是不可分解的,则称该关系模式R满足第一范式(FirstNormalForm),简称1NF,记作R1NF。1.6.1第一范式(1NF)1.6关系数据库的规范化表1-2中联系方式属性可以再分成系别和班级两个属性,不符合1NF的要求,如何将该表规范成1NF呢?实例1.6关系数据库的规范化1.5常见的数据模型1.6关系数据库的规范化如果一个关系模式R1NF,且R中的每一个非主属性都完全函数依赖于码,则称该关系模式R满足第二范式(Second Normal Form),简称2NF,记作R2NF。1.6关系数据库的规范化1.6.2第二范式(2NF)实例实例表1-3符合2NF的要求。1.6关系数据库的规
18、范化实例实例例如,学生成绩表(学号,课程号,姓名,课程名,成绩)中,“学号”和“课程号”字段组成主键,“成绩”完全依赖于该主键,但是“姓名”和“课程名”都只是部分依赖于主键,“姓名”可以由“学号”确定,并不需要“课程号”,而“课程名”是由“课程号”决定并不依赖于“学号”。所以该关系表就不符合2NF。对于上面的这种关系,可以将其分解为三张表:(1)学生信息表(学号,姓名)(2)课程信息表(课程号,课程名)(3)成绩表(学号,课程号,成绩)1.6关系数据库的规范化1.6关系数据库的规范化如果一个关系模式R2NF,且R中的每个非主属性都不传递函数依赖于码,则称该关系模式R满足第三范式(ThirdNo
19、rmalForm),简称3NF,记作R3NF。1.6关系数据库的规范化1.6.3第三范式(3NF)例如,学生信息(学号,姓名,年龄,班级号,班主任),“班主任”依赖于“学号”是由于“班级号”依赖于“学号”,“班主任”依赖于“班级号”而形成的,“班主任”依赖于“学号”就构成了传递函数依赖,因此不符合3NF。要想让这个数据表符合3NF,可以将此表分解为两张表:(1)学生信息表(学号,姓名,年龄,班级号)(2)班级信息表(班级号,班主任)实例实例1.6关系数据库的规范化1.7 数据库设计数据库设计是建立数据库及其应用系统的技术,是信息系统开发过程中的关键技术。设计的主要任务是对于一个给定的应用环境,
20、根据用户的各种需求,构造出最优的数据库模式,建立数据库及其应用系统,使之能够有效地对数据进行管理。1.7数据库设计1.7.1数据库设计概述1.7 数据库设计数据库设计的内容主要有两个方面,分别是结构特性设计和行为特性设计。结构特性设计1 1行为特性设计2 21.7数据库设计1.7.1数据库设计概述结构特性设计是指确定数据库的数据模型,在满足要求的前提下应该尽可能地减少冗余,实现数据共享。1.7数据库设计1.7.1数据库设计概述行为特性设计是指确定数据库应用的行为和动作,应用的行为由应用程序体现,所以行为特性的设计主要是应用程序的设计。1.7数据库设计1.7.1数据库设计概述1.7 数据库设计1
21、.7数据库设计需求分析就是分析用户的各种需求。调查用户实际需求通常按以下步骤进行:(1)调查现实世界的组织机构情况。(2)调查相关部门的业务活动情况。(3)在熟悉了业务活动的基础上,协助用户明确对新系统的各种实际需求。(4)确定新系统的边界。1.7数据库设计1.7.2需求分析调查方法:(1)开调查会。(2)设计调查表请用户填写。(3)查阅记录。(4)询问。(5)请专人介绍。(6)跟班作业。1.7数据库设计1.7.2需求分析调查过程中的重点在于“数据”与“处理”。通过调查、收集与分析,获得用户对数据库的如下要求:(1)信息需求。(2)处理要求。(3)安全性和完整性要求。调查了解了用户的实际需求以
22、后,还需要进一步分析和表达用户的需求。经过需求分析阶段最后会形成系统需求说明书。1.7.2需求分析1.7数据库设计概念结构设计是将需求分析阶段得到的用户需求进行综合、归纳与抽象成信息结构即概念模型的过程。(1)自顶向下。(2)自底向上。(3)逐步扩张。(4)混合策略。在设计过程中通常是先自顶向下进行需求分析,然后再自底向上地设计概念结构。1.7数据库设计1.7.3概念结构设计1.7数据库设计概念结构设计主要应用E-R图(EntityRelationshipDiagram,实体-联系图)来完成。步骤如下:1、对数据进行抽象并设计局部E-R图概念结构设计首先就是要抽象机制对需求分析阶段收集到的数据
23、分类、组织(聚集),形成实体型、属性和码,确定实体型之间的联系类型(一对一、一对多或多对多),进而设计分E-R图。1.7数据库设计1.7.3概念结构设计2、将各局部E-R图进行合并,形成初步E-R图各局部E-R图设计完成后,还需要对它们进行合并,集成为系统整体的E-R图,当然,形成的这个E-R图只是一个初步的E-R图。局部E-R图的集成有两种方法:(1)一次集成法,就是一次性地将所有局部E-R图合并为全局E-R图。(2)逐步集成法,先集成两个局部E-R图,然后用累加的方式逐渐合并进去一个新的E-R图,这样一直继续下去,直到得到全局的E-R图。1.7.3概念结构设计1.7数据库设计合并局部E-R
24、图时要注意消除各局部E-R图中的不一致,以形成一个能为全系统中所有用户共同理解和接受的统一概念模型。各局部E-R图之间的冲突主要有三类:(1)属性冲突。(2)命名冲突。(3)结构冲突。1.7数据库设计1.7.3概念结构设计3、消除不必要的冗余,形成基本E-R图在合并后的初步E-R图中,可能存在冗余的数据和冗余的联系。所谓冗余的数据是指可由基本数据导出数据,冗余的联系是指可由其他联系导出的联系。概念结构设计阶段,哪些冗余信息要消除哪些可以保留需要根据用户的整体需求来确定。消除了冗余的初步的E-R图称为基本E-R图,它代表了用户的数据要求,决定了下一步的逻辑结构设计。1.7数据库设计1.7.3概念
25、结构设计逻辑结构设计阶段的任务就是将上一阶段所设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。1.7数据库设计1.7.4逻辑结构设计E-R图向关系模型的转换在转换过程中要遵循的的原则有:(1)一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。1.7数据库设计1.7.4逻辑结构设计1.7数据库设计(2)可以将1:1联系转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。(3)可以将1:n联系转换为一个独立的关系模式,也可以与n端对应的关系模式合并。1.7数据库设计(4)可以将m:n联系转换为一个关系模式。(5)三个或三个以上实体
26、间的一个多元联系,可以转换为一个关系模式。(6)具有相同码的关系模式可以合并。实例实例将下图所示的含有1:1联系的E-R图按上述规则转换为关系模式。方案1:联系转换为一个独立的关系模式:职工(职工号,姓名,年龄);产品(产品号,产品名,价格);负责(职工号,产品号)。方案2:“负责”与“职工”两关系模式合并:职工(职工号,姓名,年龄,产品号);产品(产品号,产品名,价格)。方案3:“负责”与“产品”两关系合并:职工(职工号,姓名,年龄);产品(产品号,产品名,价格,职工号)。实例实例将下图所示的含有1:n联系的E-R图转换为关系模式。方案1:联系转换为一个独立的关系模式:仓库(仓库号,地点,面
27、积);产品(产品号,产品名,价格);仓储(仓库号,产品号,数量)。.方案2:与n端对应的关系模式合并:仓库(仓库号,地点,面积);产品(产品号,产品名,价格,仓库号,数量)。实例实例将下图所示的含有m:n联系的E-R图转换为关系模式。学生(学号,姓名,年龄,性别);课程(课程号,课程名,学时数);选修(学号,课程号,成绩)。实例实例将下图所示的含有m:n联系的E-R图转换为关系模式。供应商(供应商号,供应商名,地址);零件(零件号,零件名,单价);产品(产品号,产品名,型号);供应(供应商号,零件号,产品号,数量)。数据库的物理设计,就是为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构
28、的过程。该阶段分两步来进行:(1)首先确定数据库的物理结构,在关系数据库中主要指的是存储结构与存取方法。(2)从时间和空间效率两个方面来对数据库的物理结构进行评价。1.7数据库设计1.7.5数据库物理设计在数据库实施阶段,设计人员运用RDBMS提供的数据语言及其宿主语言,根据逻辑结构设计和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库,并进行试运行。1.7数据库设计1.7.6数据库实施数据库应用系统经过试运行后,即可投入正式运行,在数据库系统运行过程中必须不断地对其进行评价、调整和修改。在该阶段,对数据库经常性的维护工作主要是由DBA完成的,主要包括:(1)数据库的转储和和恢复,它
29、是系统正式运行后最重要的维护工作之一。(2)数据库的安全性、完整性控制。(3)数据库性能的监督、分析和改造。(4)数据库的重组织和重构造。1.7数据库设计1.7.7数据库运行和维护以学生选课管理系统的数据库设计为例。1.基本需求分析该系统学生可以查看所有选修课程的相关信息,包括课程名、学时、学分,然后选择选修的课程(一个学生可以选修多门课程,一门课程可以由多个学生选修);也可以查看相关授课老师的信息,包括教师姓名、性别、学历、职称;老师可以通过系统查看选修自己课程的学生的信息,包括学号、姓名、性别、出生日期、班级(假定本校一个教师可以教授多门课程,一门课程只能由一个教师任教)。在考试结束后,可
30、以通过系统录入学生的考试成绩,学生可以通过系统查看自己的考试成绩。1.7数据库设计1.7.8数据库设计案例2概念结构设计(1)该系统中各实体的属性组成如图所示。1.7数据库设计1.7.8数据库设计案例(2)根据实体类型和联系画出局部E-R图如图所示。1.7数据库设计1.7.8数据库设计案例(3)将各局部E-R图进行合并消除冗余后,形成基本E-R图1.7数据库设计1.7.8数据库设计案例3逻辑结构设计由基本E-R图按规则转换、进行规范化处理并优化后的关系模式是:学生(学号,姓名,性别,出生日期,班级)教师(工号,姓名,性别,学历,职称)课程(课程号,课程名,学时,学分,授课教师工号)选课(学号,
31、课程号,成绩)1.7数据库设计1.7.8数据库设计案例4数据库物理设计基于MySQL的数据库结构设计如下。表包括:学生、教师、课程、选课。对应表结构如表1-6至表1-9所示。1.7数据库设计1.7.8数据库设计案例1.7数据库设计1.7.8数据库设计案例1.7.8数据库设计案例1.7数据库设计数据库基本概念:信息、数据、数据库、数据库管理系统、数据库系统常见的数据库:Oracle数据库、SQLServer数据库、MySQL数据库、DB2数据库、Access数据库、SQLite数据库数据库管理技术的发展:人工管理阶段、文件系统阶段和数据库系统阶段本章小结 概念模型及E-R图表示法 常见的数据模型
32、:层次模型、网状模型、关系模型和面向对象模型 关系数据库的规范化:1NF、2NF、3NF 数据库设计步骤:需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护 本章小结第二章第二章 MySQLMySQL基础、安装和配置、创建数据库基础、安装和配置、创建数据库学习目标掌握MySQL的启动、登录和配置、创建数据库1 13 3熟悉MySQL的安装与配置2 2熟悉MySQL的安装与配置掌握了解熟悉MySQL概述2.12.1目录MySQL安装与配置2.22.2MySQL的使用2.32.3创建数据库2.42.4MySQL是一种开放源代码的关系型数据库管理系统(RDBMS:Re
33、lationshipDataBaseManagementSystem),MySQL数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL:StructureQueryLanguage)进行数据库管理。2.1MySQL概述2.1MySQL概述MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。My前缀据说来自他女儿的名字。2.1MySQL概述特点:多平台版本支持(Windows、Linux、MacOS等)支持多线程,充分利用CPU资
34、源多开发语言接口API支持(C、Java、PHP、Python、Pascal、VB等)丰富的内置函数符合GPL的开源特性(社区版为免费版本)具有特色的数据类型(如GEO,JSON等)提供安装版和免安装版两个版本使用缺点:自身不支持Windows的图形界面(使用第三方管理工具)2.2MySQL安装与配置2.2.1MySQL的安装安装版:从官网https:/ Command Line Client登录在开始菜单中依次选择【程序】【MySQL】【MySQLServer5.x】【MySQL5.xCommandLineClient】打开MySQL命令行客户端窗口,此时就会提示输入密码,密码输入正确便可以
35、登录到MySQL数据库。2.3MySQL的使用2.3.2登陆MySQL数据库 要想查看MySQL的帮助信息,首先登录到MySQL数据库,然后在命令行窗口中输入“help;”或者“h”命令,此时就会显示MySQL的帮助信息。2.3.3MySQL的相关命令2.3MySQL的使用2.3MySQL的使用命令命令简写写具体含具体含义?(?)显示帮助信息clear(c)明确当前输入语句connect(r)连接到服务器,可选参数数据库和主机。delimiter(d)设置语句分隔符。ego(G)发送命令到mysql服务器,并显示结果。exit(q)退出MySQLgo(g)发送命令到mysql服务器。help(
36、h)显示帮助信息notee(t)不写输出文件。print(p)打印当前命令prompt(R)改变mysql提示信息。quit(q)退出MySQLrehash(#)重建完成散列。source(.)执行一个SQL脚本文件,以一个文件名作为参数。status(s)从服务器获取MySQL的状态信息。tee(T)设置输出文件(输出文件),并将信息添加所有给定的输出文件。use(u)用另一个数据库,数据库名称作为参数。charset(C)切换到另一个字符集warnings(W)每一个语句之后显示警告。nowarning(w)每一个语句之后不显示警告。2.3.3MySQL的相关命令为了让初学者更好的使用My
37、SQL命令,接下来以“s”、“u”命令为例进行演示,具体如下:(1)使用“s”命令查看数据库信息。(2)使用“u”命令切换数据库。2.3.3MySQL的相关命令2.3MySQL的使用【例2-1】使用“u”命令切换数据库,如下所示:MySQL5.x自带了四个数据库,如果要操作其中某一个数据库test,首先需要使用“u”命令切换到当前数据库,执行结果如下所示:2.3.4MySQL的相关命令2.3MySQL的使用从上述命令的执行结果“Databasechanged”可以看出,当前操作的数据库被切换为test2.3MySQL的使用【例2-2】使用“s”命令查看数据库信息,结果如下:2.3.3MySQL
38、的相关命令2.3MySQL的使用1、通过DOS命令重新配置MySQL在命令行窗口中配置MySQL是很简单的,接下来就演示如何修改MySQL客户端的字符集编码,首先登录到MySQL数据库,在该窗口中使用如下命令:执行完上述命令后,以使用“s”命令进行查看,发现MySQL客户端的编码已经修改为gbk。注意:这种方式的修改只针对当前窗口有效,如果新开启一个命令行窗口就会重新读取my.ini配置文件。setcharacter_set_client=gbk2.3.4重新配置MySQL2.3MySQL的使用2、通过my.ini文件重新配置MySQL 如果想让修改的编码长期有效,就需要在my.ini配置文件
39、中进行配置。配置完成后需要重新启动MySQL服务。2.3.4重新配置MySQL2.3MySQL的使用1、Windows系统服务中启动打开Windows系统服务,找到MySQL服务项,点击启动。2、Windows命令行方式启动打开Windows命令行(CMD命令),输入:netstartmysql2.4.1启动MySQL服务2.4创建数据库1、打开Navicat Premium,新建MySQL连接,并完成连接,连接参数:ConnectionName(连接名称):自定义输入Host(主机名):localhostPort(端口号):3306UserName(登录用户名):rootPassword(登
40、录密码):密码勾选:savepassword(保存登录密码,方便下次自动登录)最后,点击“OK”按钮完成连接。2.4.2创建数据库2.4创建数据库2、在Navicat Premium中打开MySQL连接,创建数据库:MySQL连接名称-鼠标右键-NewDatabase2.4.2创建数据库2.4创建数据库3、设置新数据库参数:DatabaseName(数据库名称):自定义输入Characterset(字符集):utf8Collation(排序规则):utf8-general-ci点击“OK”按钮完成创建;点击“SQLPreview”标签可以查看创建当前数据库的SQL语句。2.4.2创建数据库2.
41、4创建数据库4、查看创建后的数据库信息:2.4.3查看创建后的数据库2.4创建数据库5、查看创建后的数据库对象信息:2.4.3查看创建后的数据库2.4创建数据库本章主要讲解了MySQL数据库的基础知识、MySQL的安装与配置、MySQL的使用和创建数据库。通过本章的学习,希望初学者真正掌握MySQL数据库的基础知识,并且学会在Windows平台安装与配置MySQL、创建数据库,为后面章节的学习奠定扎实的基础。本章小结第三章第三章数据库和数据表的基本操作数据库和数据表的基本操作学习目标掌握数据库的基本操作、数据表的基本操作、表的约束1 13 3了解数据类型2 2熟悉数据库的类型掌握了解熟悉数据库
42、的基础操作3.13.1数据类型3.23.23.33.3数据表的基本操作目录表的约束3.43.4设置表的字段值自动增加3.53.53.63.6综合案例目录3.1数据库的基本操作创建数据库就是在数据库系统中划分一块存储数据的空间,MySQL中,创建数据库的基本语法格式如下所示:【例3-1】创建一个名称为jwxt的数据库,SQL语句如下所示:CREATEDATABASE数据库名称;CREATEDATABASEjwxt;3.1.1人工管理阶段执行结果如下所示:3.1数据库的基本操作mysqlCREATEDATABASEjwxt;QueryOK,1rowaffected(0.01sec)3.1数据库的基
43、本操作为了验证数据库系统中是否创建了名称为xxgc的数据库,需要查看数据库,在MySQL中,查看数据库的SQL语句如下所示:【例3-2】使用SHOW语句查看已经存在的数据库,执行结果如下所示:SHOWDATABASES;3.1.2查看数据库3.1数据库的基本操作【例3-2】使用SHOW语句查看已经存在的数据库,执行结果如下所示:mysql show databases;+-+|Database|+-+|information_schema|jwxt|mysql|mysqlexam|performance_schema|sys|+-+6 rows in set(0.00 sec)3.1数据库的基
44、本操作创建好数据库之后,要想查看某个已经创建的数据库信息,可以通过SHOWCREATEDATABASE语句查看,具体语法格式如下所示:SHOWCREATEDATABASE数据库名称;3.1.2查看数据库3.1数据库的基本操作【例3-3】查看创建好的数据库jwxt的信息,SQL语句如下所示:执行结果如下所示:SHOWCREATEDATABASEjwxt;mysql SHOW CREATE DATABASE jwxt;+-+-+|Database|Create Database|+-+-+|jwxt|CREATE DATABASE jwxt/*!40100 DEFAULT CHARACTER SE
45、T utf8*/|+-+-+1 row in set(0.02 sec)3.1.2查看数据库3.1数据库的基本操作MySQL数据库一旦安装成功,创建的数据库编码也就确定了。但如果想修改数据库的编码,可以使用ALTERDATABASE语句实现。修改数据库编码的基本语法格式如下所示:在上述格式中,“数据库名称”指的是要修改的数据库,“编码方式”指的是修改后的数据库编码。ALTERDATABASE数据库名称DEFAULTCHARACTERSET编码方式COLLATE编码方式_bin3.1.2查看数据库3.1数据库的基本操作【例3-4】将数据库jwxt的编码修改为utf8,SQL语句如下所示:为了验证
46、数据库的编码是否修改成功,接下来,使用SHOWCREATEDATABASE语句查看修改后的数据库,执行结果如下:ALTERDATABASEjwxtDEFAULTCHARACTERSETutf8COLLATEutf8_general_ci;mysql show create database jwxt;+-+-+|Database|Create Database|+-+-+|jwxt|CREATE DATABASE jwxt/*!40100 DEFAULT CHARACTER SET utf8*/|+-+-+1 row in set(0.00 sec)3.1.3修改数据库删除数据库是将数据库系统
47、中已经存在的数据库删除。成功删除数据库后,数据库中的所有数据都将被清除,原来分配的空间也将被回收。在MySQL中,删除数据库的基本语法格式如下所示:需要注意的是,如果要删除的数据库不存在,则系统会报错。如果不想系统报错是,可以使用如下删除数据库的基本语法:3.1数据库的基本操作DROPDATABASE数据库名称;DROPDATABASEIFEXISTS数据库名称;3.1.4删除数据库3.1数据库的基本操作【例3-5】删除名称为jwxt的数据库,SQL语句如下所示:为了验证删除数据库的操作是否成功,接下来,使用SHOWDATABASES语句查看已经存在的数据库。DROPDATABASEjwxt;
48、3.1.4删除数据库一.整数类型3.2数据类型根据数值取值范围的不同,MySQL中的整数类型可分为5种,分别是TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,表2-1列举了MySQL不同整数类型所对应的字节大小和取值范围(1byte=8bit,11111111b=255d)。从表3-1中可以看出,不同整数类型所占用的字节数和取值范围都是不同的。数据类型数据类型字节字节数数无符号数的取值范围无符号数的取值范围有符号数的取值范围有符号数的取值范围TINYINT10255-128127SMALLINT2065535-3276832768MEDIUMINT301677721
49、5-83886088388608INT404294967295-21474836482147483648BIGINT8018446744073709551615-92233720368547758089223372036854775807二.浮点数类型和定点数类型3.2数据类型在MySQL数据库中,存储的小数都是使用浮点数和定点数来表示的。浮点数的类型有两种,分别是单精度浮点数类型(FLOAT)和双精度浮点类型(DOUBLE)。而定点数类型只有DECIMAL类型。表3-2列举了MySQL中浮点数和定点数类型所对应的字节大小及其取值范围。表3-2 MySQL浮点数和定点数类型三.日期与时间类型3
50、.2数据类型为了方便在数据库中存储日期和时间,MySQL提供了表示日期和时间的数据类型,分别是YEAR、DATE、TIME、ATETIMDE和TIMESTAMP,表3-3列举了这些MySQL中日期和时间数据类型所对应的字节数、取值范围、日期格式以及零值。表3-3 MySQL日期和时间类型三.日期与时间类型3.2数据类型如果插入的数值不合法,系统会自动将对应的零值插入数据库中。为了大家更好地学习日期和时间类型,接下来,将表2-3中的类型进行详细讲解,具体如下:1、YEAR类型YEAR类型用于表示年份,在MySQL中,可以使用以下三种格式指定YEAR类型的值:(1)使用4位字符串或数字表示,范围为