《项目三创建与管理数据库及数据表课件.pptx》由会员分享,可在线阅读,更多相关《项目三创建与管理数据库及数据表课件.pptx(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、项目三 创建与管理数据库及数据表目 录任务三 创建和管理数据库任务四 数据库设计任务五 创建与管理数据库表创建和管理数据库任务实施任务准备 创建并查看数据库 管理数据库0102 字符集以及字符序01 MySQL字符集的设置02 MySQL存储引擎03 MySQL的常用命令04 SQL的简单介绍05任务三任务实施更改文字内容更改文字内容任务准备一、字符集以及字符序1.字符集任务三(1)字符(Character) 是人类语言最小的表义符号(2)对每个字符赋予一个数值,用数值来代表对应 的字符,这个数值就是字符的编码(Character Encoding)。(3)给定一系列字符并赋予对应的编码后,所
2、有这些“字符和编码对”组成的集合就是字符集(Character Set)。每个国家的字符进行编码后就会形成相应的字符集,一般用字符集的名称代表字符集。任务实施更改文字内容更改文字内容任务准备一、字符集以及字符序2.字符序任务三(1)字符序(Collation) 是指在同一字符集内字符之间的比较规则。可用字符序的名称代表某字符序。(2)一个字符集包含多种字符序。任务实施更改文字内容更改文字内容任务准备一、字符集以及字符序3.MySQL的字符集与字符序任务三(1)MySQL由瑞典MySQL AB公司开发,默认情况下MySQL使用的是latin1字符集。(2)MySQL支持四十多种字符集。(3)使用
3、MySQL命令“SHOW CHARACTER SET;”即可查看当前MySQL服务实例支持的字符集、字符集默认的字符序以及字符集占用的最大字节长度等信息。MySQL字符序命名规则:以字符序对应的字符集名称开头,以国家名居中(或以general居中),以ci、cs或bin结尾。ci 表示大小写不敏感,cs表示大小写敏感,bin表示按二进制编码值比较。(4)当前MySQL服务实例使用的字符集主要是从七种场景对字符编码进行设定任务实施更改文字内容更改文字内容任务准备二、MySQL字符集的设置1.改变字符集的方式任务三(1)通过修改my. ini配置文件,可修改MySQL默认的字符集。(2)MySQL
4、提供一些MySQL命令可以临时修改MySQL当前会话的字符集以及字符序。(3)使用MySQL命令“SET NAMES GBK;”可以临时一次性地设置CHARACTER_SET_CLIENT、 CHARACTER_SET_CONNECTION以及CHARACTER_ SET _ RESULTS的字符集。任务实施更改文字内容更改文字内容任务准备三、MySQL存储引擎1.存储引擎的含义及作用任务三数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用存储引擎进行创建、查询、更新和删除数据的操作。2.不同存储引擎的差异不同的存储引擎通过选择合适的数据结构、提供不同的存储机制、索引技巧等,在
5、实际应用中表现出不同的数据处理效能。使用不同的存储引擎,除了可以获得常用数据操作功能外,还可以获得某些特定功能。任务实施更改文字内容更改文字内容任务准备三、MySQL存储引擎4.MySQL存储引擎的选择任务三InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(Commit) 和回滚( Rollback)。MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么
6、选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。注意:同一个数据库也可以使用多种存储引擎的表。如果-一个表要求比较高的事务处理,可以选择InnoDB。在这个数据库中可以将查询要求比较高的表选择MyISAM存储。任务实施更改文字内容更改文字内容任务准备三、MySQL存储引擎3.MySQL常用存储引擎任务三(1)InnoDB存储引擎InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎InnoDB是为处理巨大数据量的最大性能设计InnoDB存储引擎完全与MySQL服务器整合 InnoDB支持外键完整性约束(FOREIGN KE
7、Y)InnoDB被用在众多需要高性能的大型数据库站点上InnoDB是事务型数据库的首选引擎,既支持事务安全表是事务型数据库的首选引擎,既支持事务安全表(ACID), 也支持行锁定和外键。之后,也支持行锁定和外键。之后,InnoDB 作为默认存储作为默认存储引引擎擎。 InnoDB存储引擎有如下特点:存储引擎有如下特点:任务实施更改文字内容更改文字内容任务准备三、MySQL存储引擎3.MySQL常用存储引擎任务三(2)MyISAM存储引擎每个MylSAM表最大索引数是64,这可以通过重新编译来改变。最大的键长度是1000B, 这也可以通过编译来改变。BLOB和TEXT列可以被索引每表一个AUTO
8、JNCREMENT列的内部处理可以把数据文件和索引文件放在不同目录每个字符列可以有不同的字符集MyISAM基于基于ISAM的存储引擎,并对其进行扩展。它是在的存储引擎,并对其进行扩展。它是在Web、数据存储和其他应用环境下最常使用的存储引擎之一。数据存储和其他应用环境下最常使用的存储引擎之一。MyISAM 拥拥有较高的插入、查询速度,但不支持事务。在之前的版本中,有较高的插入、查询速度,但不支持事务。在之前的版本中,MyISAM是默认存储引擎。是默认存储引擎。MyISAM 主要特性有主要特性有:任务实施更改文字内容更改文字内容任务准备四、MySQL的常用命令任务三表3-1 MySQL常用命令命
9、令简写具体含义?显示帮助信息clearc清除当前输入语句connectr连接到服务器,有可选参数delimiterd设置语句分隔符exitq退出MySQLgog发送命令到MySQL服务器helph显示帮助信息promptR改变MySQL服务器quitq退出MySQLstatusa从服务器获取MySQL的状态信息useu切换当前数据库charsetC切换到另一个字符集任务实施更改文字内容更改文字内容任务准备五、SQL的简单介绍任务三SQL全称是结构化查询语言,即Structured Query Language,是一种特殊的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管
10、理关系数据库系统,同时也是数据库脚本文件的扩展名。(1)数据查询语言(DQL:Data Query Language)保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。(2)数据操作语言(DML:Data Manipulation Language)其语句包括动词INSERT,UPDATE和DELETE。也称为动作查询语言。(3)数据控制语言(DCL)包括GRANT或REVOKE语句,它们分别授予或收回单个用户和用户组对数据库对象的访问权限。(4)数据定义语言(DDL)其语句包括动词CREATE和D
11、ROP。在数据库中创建新表或删除表;为表加入索引等。任务实施更改文字内容任务准备子任务1 创建并查看数据库任务三1.前导知识(1)在命令行中使用命令语句创建MySQL数据库的命令的语法格式是:CREATE IF NOT EXISTS CREATE _ SPECIFICATION,. ;(2)修改数据库命令语句的语法格式是:ALTER CREATE _ SPECIFICATION,. ;(3)删除数据库命令语句的语法格式为:DROP IF NOT EXISTS ;任务实施更改文字内容任务准备子任务1 创建并查看数据库任务三2.任务内容(1)创建一个名称为”tsgl”的数据库,并指定它的默认字符集
12、为gbk,排序规则设为gbk_chinese_ci。(2)查看数据库创建是否成功。任务实施更改文字内容任务准备子任务1 创建并查看数据库任务三3.完成任务(1)启动MySQL服务器并登录;(2)在MySQL命令提示符后输入以下命令语句并按”Enter”键执行:create database if not exists tsgl default charset gbkcollate gbk_chinese_ci;(3)查看命令执行的结果。上述命令执行后,除了屏幕反馈的结果外,我们还可以通过输入命令“SHOW DATABASES;”查看执行结果。任务实施更改文字内容任务准备子任务2 管理数据库任务
13、三1.前导知识在命令行中使用命令语句选择当前数据库的语法格式是:USE 数据库数据库名称名称;USE命令语句在MySQL中用于指定某数据库为当前默认数据库,使后面的所有命令语句在选择另外数据库前都应用与当前默认数据库的操作,直到退出数据库操作,如果再次进入数据库则又要重新选择当前默认数据库。USE命令语句也可以用作从一个数据库切换到另一个数据库。为了方便对某数据库进行操作,最好使该数据库变为当前数据库,此时可以使用USE命令。(1)改变当前数据库任务实施更改文字内容任务准备子任务2 管理数据库任务三1.前导知识使用DOS命令在提示符状态下进行。其命令语句的语法格式如下所示:MYSQLDUMP
14、u username p password databases 备份文件名说明:-u username:用户名;-p password:密码;-databases :需备份的数据库名列表,数据库名之间用空格分隔;如果只备份一个数据库,可省略“-databases”,直接写数据库名即可,此时跟在数据库名后的其他信息一般为表名。备份文件名:此为管道输出,将数据转储到备份文件中,完成备份。备份文件的扩展名为sql。(2)备份数据库任务实施更改文字内容任务准备子任务2 管理数据库任务三2.任务内容(1)修改数据库tsgl的默认字符集为“utf8”,排序规则为“utf8_general_ci”;(2)创
15、建一个名为“xsgl”的数据库并删除;(3)备份数据库”tsgl”。任务实施更改文字内容任务准备子任务2 管理数据库任务三3.完成任务(1)启动MySQL服务器并登录;(2)在MySQL命令提示符后输入以下语句: USE TSGL; SHOW CREATE DATABASE TSGL;(3)在MySQL命令提示符后输入以下命令语句,修改当前数据库的默认字符集并再 次查看当前数据库的建库信息。ALTER DATABASE TSGL DEFAULT CHARSET UTF8 COLLATE UTF8_GENERAL_CI;SHOW CREATE DATABASE TSGL;任务实施更改文字内容任务
16、准备子任务2 管理数据库任务三3.完成任务(4)创建并删除数据库XSGL。在MySQL命令提示符后输入以下命令语句,即可删除数据库“xsgl”。DROP DATABASE XSGL;(5)备份数据库tsgl。备份数据库tsgl只需在DOS命令提示符后输入以下命令语句并按”Enter”执行即可:MYSQLDUMP u root p mydata tsgl tsgl20210815.sql说明:此命令语句是外部命令,如果当前路径不是此命令文件所在文件夹,则需要配置运行参数PATH;备份文件存放的位置默认为当前路径。更改文字内容小结任务三任务三 创建与管理数据库1、MySQL字符集2、MySQL存储
17、引擎3、MySQL常用命令4、SQL基础5、创建与管理数据库数据库设计任务实施任务准备 需求分析 绘制E-R图 确定数据模式010203 数据库设计的特点01 数据库设计方法简述02 数据库设计步骤03 实体-联系图04 规范化05任务四任务实施更改文字内容更改文字内容任务准备一、数据库设计的特点任务四数据库设计和用户的业务需求紧密相关,是一项综合性技术。“三分技术,七分管理,十二分基础数据”是数据库建设的基本理念。数据库设计有如下特点:(1)计算机的硬件、软件和管理界面的结合。(2)数据库设计和应用设计要相结合。任务实施更改文字内容更改文字内容任务准备二、数据库设计方法简述任务四数据库设计方
18、法中,比较著名的有新奥尔良方法,该方法将数据库设计分为4个阶段进行:需求分析(分析用户需求)、概念结构设计(信息分析和定义)、逻辑结构设计(数据模式确定)和物理结构设计(物理数据库设计,包括存储模式等)。任务实施更改文字内容更改文字内容任务准备三、数据库设计步骤任务四(1)需求分析阶段本阶段的主要工作是:通过需求收集和分析,得到数据字典描述的数据需求,即要实现系统功能所需的数据支撑。因为功能的实现都是以数据为基础的,没有数据作为支撑,就无法实现相应的功能。(2)概念结构设计阶段通过对用户需求进行综合、归纳与抽象,形成一个独立于DBMS的概念模型,一般用E-R图描述。(3)逻辑结构设计阶段将概念
19、结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。数据库设计的三个关键步骤任务实施更改文字内容更改文字内容任务准备四、实体-联系图任务四实体-联系图即E-R图。其中实体往往是对客观世界中静态事物的抽象,例如在图书管理系统中,图书、借阅者等可以抽象为实体。在计算机世界中,通过收集实体的属性对实体进行描述。属性是描述对象特征的数据项,如用于描述图书的图书编号、图书名称、封面图片等数据项就是用于描述图书的属性。1.实体2.联系联系则是在某些业务办理过程中,实体与实体之间产生的关联。在图书管理系统中,当借阅者到图书馆办理借书手续时,图书与借阅者之间便产生了关联。这种关联也可以通过
20、某些形式进行描述,如用关系模式描述借阅者与图书之间的关联。任务实施更改文字内容更改文字内容任务准备四、实体-联系图任务四3.实体-联系图在E-R图中一般用矩形框表示实体,椭圆框表示属性,菱形表示联系,线上书写的符号1、n、m表示联系类型。联系类型有三种:一对一(1:N)、一对多(1:N)、多对多(N:M)。Borrowers与books的联系任务实施更改文字内容更改文字内容任务准备五、规范化任务四规范化有许多层次,对关系最基本的要求是每个属性值必须是不可分割的数据单元,即表中不能再包含表。满足一定条件的关系模式,称为范式(Normal Form)。 范式就是某一种级别的关系模式的集合,称某一关
21、系模式R为第n范式,就表示该关系的级别。一个低级范式的关系模式,通过分解(投影)方法可转换成多个高一级范式的关系模式的集合,这种过程称为规范化。1.规范化的含义任务实施更改文字内容更改文字内容任务准备五、规范化任务四2.三种级别的范式(1)第一范式(1NF)定义如果一个关系R的每一个属性都是不可分的数据项,则称R是符合第一范式的,记做R1NF。(2)第二范式(2NF)定义设关系 R1NF,且它的每一非主属性完全依赖于主键,则称R是符合第二范式的,记作R2NF。(3)第三范式(3NF)定义设关系 R2NF,且它的每一非主属性不传递依赖于主键,则该关系是符合第三范式的,记作R3NF。任务实施更改文
22、字内容更改文字内容任务准备五、规范化任务四3.第一范式到第三范式任务实施更改文字内容任务准备子任务1 需求分析任务四1.前导知识需求分析的任务简单地说就是通过分析用户的业务流程,得到系统功能需求以及实现这些功能的数据要求。需求分析的任务是通过详细调查现实世界中要处理的对象(组织、部门或企业等),通过调查、分析用户活动,充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。任务实施更改文字内容任务准备子任务1 需求分析任务四2.任务内容对图书管理系统进行需求分析任务实施更改文字内容任务准备子任务1 需求分析任务四3.完成任务通过与图书管理人员进行沟通
23、,我们了解到图书管理系统至少应该实现图书的借阅和归还等基本功能,进一步进行分析并按照分类、聚集、概括等数据抽象过程,明确系统中应该收集的数据项、相关实体以实体联系等,为绘制E-R图做准备。任务实施更改文字内容任务准备子任务2 绘制E-R图任务四1.前导知识(1)数据抽象过程分类分类就是定义某一类概念模型为现实世界中一组对象的抽象,这些对象具有某些相同的特征和行为。在E-R图中,实体集就是通过这样的抽象得来的。如将学校中的“张三”、“李四”、“王五”等具有学生共同特征的人定义为一-类, 并将这些对象抽象为学生实体。聚集聚集就是定义某实体(也称对象)的组成部分,它抽象了对象内部结构和对象内部组成部
24、分等语义。若干属性组成了实体型。如把“学生实体集中的学号、姓名、年龄和系别等属性聚集为实体型学生。概括概括定义了实体之间的一种子集联系,它抽象了类型之间的所属的语义。任务实施更改文字内容任务准备子任务2 绘制E-R图任务四2.任务内容绘制部分E-R图3.完成任务任务实施更改文字内容任务准备子任务3 确定数据模式任务四1.前导知识确定数据模式是以E-R图为基础的,将E-R图转换为数据模型(一般为关系模型)就完成了数据库逻辑结构设计的任务,为创建数据表做好准备。关系模型的逻辑结构是一组关系模式的集合,而E-R图则是由实体、实体的属性和实体之间的联系3个要素组成的,所以将E-R图转换为关系模型实际上
25、就是要将实体、实体的属性和实体之间的联系转化为关系模式。这种转换一般遵循一些原则。(1)数据模式的基础任务实施更改文字内容任务准备子任务3 确定数据模式任务四1.前导知识一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的键就是关系的键。一个m:n联系转换为一个关系模式。与该联系相连的各实体的键以及联系本身的属性均转换为关系的属性,而关系的键为各实体键的组合。例如在例子中,“选修”联系是一个m: n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合键。选修(学号,课程号,成绩)(2)E-Rl图转换为数据模式任务实施更改文字内容任务准备子任务3 确定数据模式任务四1.前导知
26、识一个1 :n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的键以及联系本身的属性均转换为关系的属性,而关系的键为n端实体的键。另一种方法是将其关系模式合并,即将1端实体的键作为n端实体的一个属性(一般可作为外键)。这种方法可以减少系统中的关系个数,一般情况下更倾向于采用这种方法。(2)E-Rl图转换为数据模式任务实施更改文字内容任务准备子任务3 确定数据模式任务四2.任务内容确定图书管理系统的数据模式。任务实施更改文字内容任务准备子任务3 确定数据模式任务四3.完成任务字段名称数据类型是否为空完整性约束说明borr_id
27、charnot nullPK借阅证编号borr_namecharnot null 借阅者姓名borr_sexcharnot null 借阅者性别borr_ageintnot null 借阅者年龄borr_provarcharnot null 借阅者专业borr_predintnot null/default=1 借阅者诚信级表3-2 borrowers表:存储读者信息根据概念结构设计的结果,得到图书管理系统的数据模式(关系模式),下面列出两个关系模式,其结构如下所示:任务实施更改文字内容任务准备子任务3 确定数据模式任务四3.完成任务字段名称数据类型是否为空完整性约束说明book_idchar
28、not null PK书籍编号book_namevarcharnot null 书籍名称book_pricefloatnot null 书籍价格book_authorcharnot null 书籍作者book_pubvarcharnot null 书籍出版社book_numintnot null 书籍数量sort_idcharnot nullForeign Key书籍分类book_entrancedatatimenull 书籍登记日期表3-3 books表:存储书籍信息更改文字内容小结任务四任务四 数据库设计1、数据库设计方法2、数据库设计步骤3、实体-联系图4、规范化创建与管理数据库表任务实
29、施任务准备 创建数据表 管理数据表 修改数据表结构010203 关系模式01 约束类型02任务五任务实施更改文字内容更改文字内容任务准备一、关系模式任务五1.关系关系是一种规范化的二维表,二维表的每一列都有一个名字,也称列标签、字段名,所有列标签、字段名形成的结构也称为表结构;二维表的每一行数据用于描述一个对象,行也可称为记录、元组。同一属性(列)中的分量是相同类型的数据,即取自同一个域。属性(列)的顺序可以是任意的。元组(行)的顺序可以是任意的。任意两个元组( 即两行)不能完全相同。属性必须有不同的名称,但不同的属性可以取自相同的域。所有属性必须都是不可分解的,即表中不允许有子表。作为关系的
30、二维表需满足的条件任务实施更改文字内容更改文字内容任务准备一、关系模式任务五2.关系模式(1)关系模式是对关系的描述,是一个关系的具体结构。(2)在数据库系统中定义一个关系模式时,主要是给出关系名和所有属性名,其他都是辅助特性。(3)一个关系模式可以简化表示为 R(A1, A2, An.),其中R为关系名,A1,A2, . .,An为各属性名。任务实施更改文字内容更改文字内容任务准备二、约束类型任务五MySQL的约束是指对数据表中对数据的一种约束行为,约束主要完成对数据的合理性检验,保证数据的完整性、一致性等。约束类型与完整性有一定的对应关系。MySQL的约束主要包括主键约束、外键约束、唯一约
31、束、非空约束和默认值约束。任务实施更改文字内容更改文字内容任务准备二、约束类型任务五(1)主键约束主键约束(Primary Key)关系数据库有一个非常重要的运行机制:为关系设置主键,它是数据库物理模式的基石。主键是关系中每一行在其上的投影(也就是取值)均不同的某字段或某些字段的组合。主键在物理层面上只有两个用途:惟一地标识一行和作为一个可以被外键有效引用的对象。通过它可实现实体完整性,消除数据表的部分冗余数据。一个数据表只能有一个主键约束(可以是复合主键),并且主键约束中的字段不能接受空值。由于主键约束可保证数据的唯一性,因此经常对标识字段定义这种约束。可以在创建数据表时定义主键约束,也可以
32、修改现有数据表的主键约束。任务实施更改文字内容更改文字内容任务准备二、约束类型任务五(2)外键约束外键约束(Foreign Key)外键约束保证了数据库中各个数据表中数据的一致性和正确性。将一个数据表的一个字段或字段组合与其他数据表的主键字段建立链接并设置相应的操作规则,此时,我们称这个字段或字段组合为外键。在两表建立的这个链接基础上,我们称设置为主键的一方为主约束表,简称为主表,设置为外键的表称为外键约束表,简称为从表。可以在定义数据表时直接创建外键约束,也可以对现有数据表中的某-个字段或字段组合添加外键约束。任务实施更改文字内容更改文字内容任务准备二、约束类型任务五(3)唯一约束唯一约束(
33、Unique)一个数据表只能有一个主键,如果有多个字段或者多个字段组合需要实施数据唯一性,可以采用唯一约束。可以对一个数据表定义多个唯一约束,唯一约束允许为Null值,但每个唯一约束字段只允许存在一个Null值。(4)非空约束非空约束(Not Null)指定为Not Null的字段则不能输入Null值,数据表中出现Null值通常表示值未知或未定义,Null 值不同于零、空格或者长度为零的字符串。在创建数据表时,默认情况下,如果在数据表中不指定非空约束,那么数据表中所有字段都可以为空的。由于主键约束字段必须保证字段是不为空的。因此要设置主键约束的字段一定要设置非空约束。任务实施更改文字内容更改文
34、字内容任务准备二、约束类型任务五(5)默认值约束默认值约束(DEFAULT)默认值约束是用来约束当数据表中的某个字段不输入值时,自动为其添加一个已经设置好的值。可以创建数据表时为字段指定默认值,也可以在修改数据表时为字段指定默认值。Default 约束定义的默认值仅在执行Insert 操作插入数据时生效,一个字段至多有一个默认值,其中包括Null值。默认值约束通常用在已经设置了非空约束的字段,这样能够防止数据表在输人数据时出现遗漏错误。任务实施更改文字内容任务准备子任务1 创建数据表任务五1.前导知识创建数据表需要用到CREATE TABLE语句,其语法格式是:CREATE TABLE ( 字
35、段级约束 默认值, 字段级约束 默认值, 字段级约束 默认值,表级约束) ;要创建的表的名称,不区分大小写,不能使用SQL语言中的关键字,如DROP. ALTER、INSERT等。如果创建多个列,要用逗号隔开。创建表还可以通过复制其他表的结构完成.(1)创建数据表的命令语句任务实施更改文字内容任务准备子任务1 创建数据表任务五1.前导知识定义定义主键约束主键约束主键约束(PRIMARY KEY CONSTRAINT)要求主键列的数据(值)在此关系中是唯一的,并且不允许为空。主键分为两种类型:单字段主键和多字段联合主键。在定义字段的同时指定一个字段为主键的语法格式是: PRIMARY KEY 默
36、认值在定义完所有字段之后指定一个字段为主键的语法格式是:CONSTRAINT PRIMARY KEY 在定义完所有字段之后指定多个字段组合主键的语法是:CONSTRAINT PRIMARY KEY ( ,. )当主键为多字段联合主键时,不可以直接在相应字段名后面声明主键约束。(2)定义多种约束任务实施更改文字内容任务准备子任务1 创建数据表任务五1.前导知识定义唯一定义唯一约束约束唯一约束与主键约束的主要区别:一个数据表可以有多个唯一约束,可主键约束只能有一个;主键的字段不允许为空值 (NULL),唯一约束的字段允许空值(NULL),但只能有一个空值。唯一约束通常设置在主键以外的字段上,一但创
37、建后系统会默认保存其在索引中。在定义完字段后直接指定唯一约束的语法格式是: UNIQUE在定义完所有字段后再指定唯一约束的语法格式是:CONSTRAINT UNIQUE (,-)唯一约束可以在一个数据表中设置多个字段,也可以类似联合主键一样设置联合唯一约束。(2)定义多种约束任务实施更改文字内容任务准备子任务1 创建数据表任务五1.前导知识定义定义非空约束非空约束对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。定义非空约束的语法格式是: NOT NULL定义定义默认值默认值约约束束定义默认值约束的语法格式是: DEFAULT 在定义默认值约束时如果默认值为字符类型,
38、则要用半角引号将字符括起来。(2)定义多种约束任务实施更改文字内容任务准备子任务1 创建数据表任务五1.前导知识定义定义外键约束外键约束外键用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。表的外键与另外一张表的主键建立参照关系,所以外键对应的是参照完整性。一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。创建外键的要求:外键字段的数据类型、字符集等必须与父表中的主键一
39、致添加外键的数据表的存储引擎必须是INNODB,否则外键添加成功,也不具备外键约束作用一张表中不能出现同名外键当外键字段中有值后,再添加外键时,已有的值必须在父表主键中有,否则无法创建成功(2)定义多种约束任务实施更改文字内容任务准备子任务1 创建数据表任务五1.前导知识定义外键约束定义外键约束定义外键约束的语法格式是:CONSTRAINT FOREIGN KEY (字段名1,字段名2,. )REFERENCES (主键字段名1 ,主键字段名2, . )(2)定义多种约束任务实施更改文字内容任务准备子任务1 创建数据表任务五1.前导知识定义定义字段值字段值自增长自增长在数据库应用中,经常希望在
40、每次插入新记录时,系统自动生成字段的主键值。可以通过为表主键添加AUTO_INCREMENT关键字来实现。默认的,在MYSQL中AUTO_ INCREMENT 的初始值是1,每新增一条记录,字段值自动加1。一个表只能有一个字段使用AUTO _ INCREMENT,且该字段必须为主键的一部分。 AUTO_INCREMENT约束的字段可以是任何整数类型( TINYTNT、SMALLIN、 INT.BIGINT等)。定义字段值自增长的语法格式是: AUTO_ INCREMENT(2)定义多种约束任务实施更改文字内容任务准备子任务1 创建数据表任务五2.任务内容按照教材表3-2所列的结构,创建borr
41、owers表。注意同时定义各种约束。注意当前字符集和存储引擎对定义约束的影响。任务实施更改文字内容任务准备子任务1 创建数据表任务五3.完成任务(1)启动MySQL服务器并登录。(2)在MySQL命令提示符后输入以下命令语句并执行。创建borrowers表的命令CREATE TABLE BORROWERS(borr_id char(12) not null primary key,borr_name char(8) not null,borr_sex char(2) not null,borr_age int not null,borr_dept varchar(20 not null,bor
42、r_pred int not null default 1);任务实施更改文字内容任务准备子任务2 管理数据表任务五1.前导知识(1)使用语句删除使用语句删除数据表数据表删除数据表就是将数据库中已经存在的表从数据库中删除。注意,在删除表的同时,表的定义和表中所有的数据均会被删除。因此,在进行删除操作前,最好对表中的数据做个备份,以免造成无法挽回的后果。使用DROP TABLE可以一次删除一个或多个没有被其他表关联的数据表,其语法格式是:DROP TABLE IF EXISTS 表1,表2,.,表n;可选参数“IF EXISTS用于在删除前判断删除的表是否存在,加上该参数后,再删除表的时候,如果
43、表不存在,SQL语句可以顺利执行,但是会发出警告(WARNING)。任务实施更改文字内容任务准备子任务2 管理数据表任务五1.前导知识(2)数据插入)数据插入使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值。其基本语法格式是:INSERT INTO (字段1.字段2,字段N) VALUES (数据1.数据2,数据N);注意,使用该语句时字段列和数据值的数量必须相同。如果数据是字符型,必须使用单引号或者双引号将其引起来。INSERT语句还可以将SELECT语句查询的结果插入到表中,其基本语法格式是:INSERT INTO 目标数据表名(输入字段列表) SELECT (查询字段
44、列表) FROM查询数据表名WHERE (条件);任务实施更改文字内容任务准备子任务2 管理数据表任务五1.前导知识(3)数据删除)数据删除从数据表中删除数据使用DELETE语句,DELETE语句允许WHERE子句指定删除条件。DELETE语句基本语法格式如下:DELETE FROM 表名 WHERE 条件;如果没有指定WHERE子句,MYSQL表中的所有记录将被删除;可以在WHERE子句中指定任何条件;您可以在单个表中一次性删除记录。任务实施更改文字内容任务准备子任务2 管理数据表任务五1.前导知识(4)数据更新)数据更新表中有数据之后,接下来可以对数据进行更新操作,MYSQL中使用UPDA
45、TE语句更新表中的记录,可以更新特定的行或者同时更新所有的行。基本语法结构是:UPDATE 表名 SET 字段1=值1,字段2=值2, ,字段N=值N WHERE 条件可以同时更新一个或多个字段。可以在WHERE子句中指定任何条件。要保证UPDATE以WHERE子句结束,通过WHERE子句指定被更新的记录所需要满足的条件,如果忽略WHERE子句,MYSQL将更新表中所有的行。任务实施更改文字内容任务准备子任务2 管理数据表任务五2.任务内容(1)在数据库tsgl中创建数据表bookstmp。(2)删除数据表bookstmp。(3)向数据表borrows中插入数据。任务实施更改文字内容任务准备子
46、任务2 管理数据表任务五3.完成任务(1)在数据库tsgl中创建数据表bookstmp。启动MySQL服务器并登录,在MySQL命令提示符后依次输入以下命令语句并执行。执行结果如图3-16所示。create table bookstmp select * from books;show create table bookstmpG(2)删除数据表bookstmp。在MySQL命令提示符后输入以下命令语句并执行。drop table bookstmp;任务实施更改文字内容任务准备子任务2 管理数据表任务五3.完成任务(3)向数据表)向数据表borrows中插入中插入数据数据在MySQL命令提示符
47、后依次输入以下命令语句并执行。insert into borrows values (202093080023,9787300035949,20200306,20200506);insert into borrows values (202093080023,9787302429159,20200306,20200506);任务实施更改文字内容任务准备子任务3 修改数据表结构任务五1.前导知识(1)修改表名修改表名修改表名的具体的语法格式是:ALTER TABLE RENAME T0 ;其中TO为可选参数,使用与否均不影响结果。常用的修改表的操作有:修改表名、修改字段数据类型或字段名、增加和删
48、除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。任务实施更改文字内容任务准备子任务3 修改数据表结构任务五1.前导知识(2)修改字段的数据类型修改字段的数据类型修改字段的数据类型,就是把字段的数据类型转换成另一种数据类型,其具体的语法格式是:ALTER TABLE MODIFY 其中“表名”指要修改数据类型的字段所在表的名称,“字段名”指需要修改的字段,“数据类型”指修改后字段的新数据类型。任务实施更改文字内容任务准备子任务3 修改数据表结构任务五1.前导知识(3)修改字段名修改字段名修改字段名的具体的语法格式是:ALTER TABLE CHANGE ;其中,“旧字段名”指修
49、改前的字段名;“新字段名”指修改后的字段名;“新数据类型”指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样即可,但数据类型不能为空。CHANGE也可以只修改数据类型,实现和MODIFY同样的效果,方法是将SQL语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。由于不同类型的数据在机器中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据记录。因此,当数据库表中已经有数据时,不要轻易修改数据类型。任务实施更改文字内容任务准备子任务3 修改数据表结构任务五1.前导知识(4)添加字段添加字段添加字段的具体的语法格式是:ALTER
50、 TABLE ADD (新字段名)(数据类型) 约束条件FIRST | AFTER 已存在字段名;新字段名为需要添加的字段的名称;“FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段;“AFTER为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面。“FIRST | AFTER 已存在字段名”用于指定新增字段在表中的位置,如果语句中没有这两个参数,则默认将新添加的字段设置为数据表的最后列。任务实施更改文字内容任务准备子任务3 修改数据表结构任务五1.前导知识(5)删除字段删除字段删除字段是将数据表中的某个字段从表中移除,其语法格式是:ALTER TABLE DR