MYSQL数据库与表的创建.ppt

上传人:wuy****n92 文档编号:70800360 上传时间:2023-01-28 格式:PPT 页数:62 大小:912.50KB
返回 下载 相关 举报
MYSQL数据库与表的创建.ppt_第1页
第1页 / 共62页
MYSQL数据库与表的创建.ppt_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《MYSQL数据库与表的创建.ppt》由会员分享,可在线阅读,更多相关《MYSQL数据库与表的创建.ppt(62页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、数据库技术与应用数据库技术与应用第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用本章主要内容本章主要内容v2.1 MYSQL2.1 MYSQL数据库数据库v2.2 MYSQL2.2 MYSQL数据类型数据类型v2.3 2.3 表的创建表的创建v2.4 2.4 表结构的修改表结构的修改v2.5 2.5 表的删除表的删除v2.6 2.6 向表中添加数据向表中添加数据v2.7 2.7 表的索引表的索引v2.8 2.8 简单数据库备份与数据导入导出简单

2、数据库备份与数据导入导出2第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.1 MYSQL数据库数据库 任何一个数据库,都是由各种数据库对象组织而成的,任何一个数据库,都是由各种数据库对象组织而成的,比如表、索引、视图等等。而操作的第一步,就是要创建数比如表、索引、视图等等。而操作的第一步,就是要创建数据库。本节将对下面两个问题进行讲解。据库。本节将对下面两个问题进行讲解。v2.1.1 MYSQL2.1.1 MYSQL模式简介模式简介v2.1.2 MYSQL2.1.2 MYSQL数据库的创建与删除数据库的创建

3、与删除3第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.1.1 MYSQLMYSQL模式简介模式简介 与其他数据库不同,与其他数据库不同,MYSQLMYSQL可以运行在不同的可以运行在不同的SQL MODESQL MODE模模式下。式下。SQL ModeSQL Mode定义了定义了MYSQLMYSQL应支持的应支持的SQLSQL语法、数据校验等,语法、数据校验等,便于在不同的环境中使用便于在不同的环境中使用MYSQLMYSQL。vSQL ModeSQL Mode解决以下问题解决以下问题完成不同严格程度的数据

4、校验,有效保障数据准确性。完成不同严格程度的数据校验,有效保障数据准确性。将将SQL ModeSQL Mode设置为设置为ANSIANSI模式,保证大多数模式,保证大多数SQLSQL符合标准的符合标准的SQLSQL语法,应语法,应用在不同的数据库之间迁移时,不需要对业务用在不同的数据库之间迁移时,不需要对业务SQLSQL进行较大的修改。进行较大的修改。设置设置SQL ModeSQL Mode可以使可以使MYSQLMYSQL上的数据更方便的迁移到目标数据库中。上的数据更方便的迁移到目标数据库中。4第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用

5、数据库技术与应用数据库技术与应用2.1.1 MYSQLMYSQL模式简介模式简介vMYSQLMYSQL中常用的中常用的SQL ModeSQL Mode实际上,第一列模式都是一些原子模式的组合,类似于角色和权限的关系。实际上,第一列模式都是一些原子模式的组合,类似于角色和权限的关系。5第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用MYSQLMYSQL模式操作实例模式操作实例6第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用MYS

6、QLMYSQLMYSQLMYSQL模式操作实例模式操作实例模式操作实例模式操作实例7第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.1.2 MYSQL2.1.2 MYSQL数据库的创建与删除数据库的创建与删除vMYSQLMYSQL系统数据库说明:系统数据库说明:Information_schemaInformation_schema:存储系统的数据库对象信息,如用户表信息、存储系统的数据库对象信息,如用户表信息、列信息、权限信息、字符集信息、分区信息等。列信息、权限信息、字符集信息、分区信息等。mysqlm

7、ysql:存储系统的用户权限信息存储系统的用户权限信息Test:Test:系统自动创建的测试数据库,任何用户都可以使用系统自动创建的测试数据库,任何用户都可以使用vMYSQLMYSQL数据库操作命令:数据库操作命令:创建数据库:创建数据库:create database dbnamecreate database dbname删除数据库:删除数据库:drop database dbnamedrop database dbname显示系统中所有数据库:显示系统中所有数据库:show databasesshow databases选择数据库:选择数据库:use dbnameuse dbname查看

8、数据库中所有数据表:查看数据库中所有数据表:show tablesshow tables8第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2 MYSQL数据类型数据类型 在开始创建表之前,必须了解表中字段可以选择的数据在开始创建表之前,必须了解表中字段可以选择的数据类型(即域定义),使得字段使用合理的数据类型,从而有类型(即域定义),使得字段使用合理的数据类型,从而有效提高数据库的性能:效提高数据库的性能:存储空间小、查询速度快存储空间小、查询速度快。v2.2.1 2.2.1 数值类型数值类型v2.2.2

9、2.2.2 日期时间类型日期时间类型v2.2.3 2.2.3 字符串类型字符串类型9第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2.1 MYSQLMYSQL中数值类型中数值类型10第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2.1 MYSQLMYSQL中数值类型中数值类型-说明说明v整数类型支持整数类型支持INT(n)INT(n)形式,用于指定整数值的显示宽度,如显示宽度小于形式,用于指定整数值的显示宽度,如显示

10、宽度小于n n时从左侧填满宽度。时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。当结合显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。当结合可选扩展属性可选扩展属性ZEROFILLZEROFILL使用时,使用时,默认补充的空格用零代替。默认补充的空格用零代替。例如,对于声明为例如,对于声明为INT(5)ZEROFILLINT(5)ZEROFILL的列,值的列,值4 4检索为检索为0000400004。v所有整数类型可以有一个可选所有整数类型可以有一个可选(非标准非标准)属性属性UNSIGNEDUNSIGNED。在列内

11、只允许非负数和该列需要较大的上在列内只允许非负数和该列需要较大的上限数值范围时可以使用无符号值。如果为一个数值列指定限数值范围时可以使用无符号值。如果为一个数值列指定ZEROFILLZEROFILL,MySQLMySQL自动为该列添加自动为该列添加UNSIGNEDUNSIGNED属性。属性。vMYSQLMYSQL小数有两种方式:浮点数和定点数。小数有两种方式:浮点数和定点数。浮点数包括浮点数包括floatfloat、doubledouble,为近似数据类型。定点数,为近似数据类型。定点数只有只有decimaldecimal,用于保存必须为确切精度的值,例如货币数据。,用于保存必须为确切精度的值

12、,例如货币数据。v浮点和定点类型也可以为浮点和定点类型也可以为UNSIGNEDUNSIGNED。同数类型,该属性防止负值保存到列中。然而,与整数类型同数类型,该属性防止负值保存到列中。然而,与整数类型不同的是,列值的上范围保持不变。不同的是,列值的上范围保持不变。v浮点数和定点数都可以使用数据名后加浮点数和定点数都可以使用数据名后加“(M,D)”“(M,D)”形式。形式。例如:例如:salary DECIMAL(5,2)salary DECIMAL(5,2)在该例子中,在该例子中,5 5是精度,是精度,2 2是标度。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数。是标度。精度表示保

13、存值的主要位数,标度表示小数点后面可以保存的位数。vBITBIT数据类型可用来保存位数据类型可用来保存位(二进制数二进制数)字段值。字段值。如果为如果为BIT(M)BIT(M)列分配的值的长度小于列分配的值的长度小于M M位,在值的位,在值的左边用左边用0 0填充。填充。例如,为例如,为BIT(6)BIT(6)列分配一个值列分配一个值b101b101,其效果与分配,其效果与分配b000101b000101相同。相同。v整数类型有一个属性:整数类型有一个属性:AUTO_INCREMENTAUTO_INCREMENT,用于定义自动增长字段。,用于定义自动增长字段。每增加一行增加每增加一行增加1 1

14、。一个表最。一个表最多只能定义一个多只能定义一个AUTO_INCREMENTAUTO_INCREMENT列,应定义为列,应定义为NOT NULLNOT NULL,并定义为,并定义为PRIMARY KEYPRIMARY KEY或或UNIQUEUNIQUE。11第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2.2 时间日期类型时间日期类型v每个时间类型有一个有效值范围和一个每个时间类型有一个有效值范围和一个“零零”值,值,当指定不合法的当指定不合法的MySQLMySQL不能表示的值时使不能表示的值时使用用“零

15、零”值。值。vDATEDATE用来表示用来表示“年月日年月日”、DATETIMEDATETIME用来表示用来表示“年月日时分秒年月日时分秒”、TIMETIME用来表示用来表示“时分秒时分秒”。vTIMESTAMPTIMESTAMP值显示格式为值显示格式为“YYYY-MM-DD HH:MM:SS”“YYYY-MM-DD HH:MM:SS”,用于需要经常插入或更新日期为当前,用于需要经常插入或更新日期为当前系统时间的列。系统时间的列。比如注册时间。比如注册时间。vYEARYEAR只表示年份。只表示年份。vDATETIMEDATETIME与与TIMESTAMPTIMESTAMP的区别的区别DATET

16、IMEDATETIME范围大、范围大、TIMESTAMPTIMESTAMP范围小范围小表中第一个表中第一个TIMESTAMPTIMESTAMP列自动设置为系统时间列自动设置为系统时间CURRENT_TIMESTAMPCURRENT_TIMESTAMP。其后则不管。其后则不管。TIMESTAMPTIMESTAMP插入和查询都受当地时区的影响;插入和查询都受当地时区的影响;DATETIMEDATETIME只反映当地时区,其他时区人只反映当地时区,其他时区人查询时数据会有误差。查询时数据会有误差。NOW()NOW()。12第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术

17、与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2.3 字符串类型字符串类型13第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2.3 字符串类型字符串类型vCHARCHAR和和VARCHARVARCHAR比较比较CHARCHAR为定长、为定长、VARCHARVARCHAR为变长。为变长。保存保存CHARCHAR值时,在右边填充空格以达到指定的长度。当检索到值时,在右边填充空格以达到指定的长度。当检索到CHARCHAR值值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。时,尾部的空格被

18、删除掉。在存储或检索过程中不进行大小写转换。VARCHARVARCHAR只保存需要的字符数,另加一个字节来记录长度。只保存需要的字符数,另加一个字节来记录长度。VARCHARVARCHAR不不进行填充。当值保存和检索时尾部的空格仍保留,符合标准进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQLSQL。上表中最后一行的值只适用上表中最后一行的值只适用非严格模式非严格模式时;如果时;如果MySQLMySQL运行在严格模式,超运行在严格模式,超过列长度不的值不保存,并且会出现错误。过列长度不的值不保存,并且会出现错误。14第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数

19、据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2.3 字符串类型字符串类型vBLOBBLOB和和TEXTTEXT比较比较BLOB BLOB 为二进制字符串为二进制字符串(字节字符串字节字符串),),用来保存二进制数据,如图片。用来保存二进制数据,如图片。TEXTTEXT字符字符串,保存较大文本,如文章。字符字符串,保存较大文本,如文章。BLOBBLOB列没有字符集列没有字符集,并且排序和比较基于列值字节的数值值。,并且排序和比较基于列值字节的数值值。TEXTTEXT列列有一个字符集有一个字符集,并且根据字符集的,并且根据字符集的 校对规则对值进行排序和比较。校对规则对值进行

20、排序和比较。在在TEXTTEXT或或BLOBBLOB列的存储或检索过程中,不存在大小写转换。列的存储或检索过程中,不存在大小写转换。当保存或检索当保存或检索BLOBBLOB和和TEXTTEXT列的值时列的值时不删除尾部空格不删除尾部空格。对于对于BLOBBLOB和和TEXTTEXT列的索引,必须指定索引前缀的长度。对于列的索引,必须指定索引前缀的长度。对于CHARCHAR和和VARCHARVARCHAR,前缀长度是可选的。,前缀长度是可选的。BLOBBLOB和和TEXTTEXT列不能有默认值。列不能有默认值。在执行大量的删除操作时,使用在执行大量的删除操作时,使用BLOBBLOB和和TEXTT

21、EXT会留下很大的会留下很大的“空洞空洞”,从而影响插入数据的性能。从而影响插入数据的性能。可使用可使用OPTIMIZE TABLEOPTIMIZE TABLE功能对表进行碎片功能对表进行碎片整理。整理。15第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2.3 字符串类型字符串类型vENUMENUM枚举类型说明枚举类型说明ENUMENUM是一个字符串对象,其值来自表创建时在列规定中显式枚举的一是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值。枚举最多可以有列值。枚举最多可以有65,53565,

22、535个元素。个元素。创建表时,创建表时,ENUMENUM成员值的尾部空格将自动被删除。成员值的尾部空格将自动被删除。检索时,保存在检索时,保存在ENUMENUM列的值使用列定义中所使用的大小写来显示。列的值使用列定义中所使用的大小写来显示。确定一个确定一个ENUMENUM列的所有可能的值:列的所有可能的值:SHOW COLUMNS FROM tbl_nameSHOW COLUMNS FROM tbl_name定义了一组定义了一组ENUMENUM枚举类型值后,在枚举类型值后,在严格模式严格模式下,向该列中插入不在该下,向该列中插入不在该枚举中的值时,系统禁止插入。在枚举中的值时,系统禁止插入。

23、在ANSIANSI模式模式下,向该列插入空值。下,向该列插入空值。16第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3 字符串类型字符串类型vENUMENUM枚举类型说明枚举类型说明17第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2.3 字符串类型字符串类型vSETSET类型说明类型说明SETSET是一个字符串对象,可以有零或多个值,其值来自表创建时规定是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许

24、的一列值。的允许的一列值。SETSET可以向列中插入多个定义的值,而可以向列中插入多个定义的值,而ENUMENUM只能插入一个定义的值。只能插入一个定义的值。指定包括多个指定包括多个SETSET成员的成员的SETSET列值时各成员之间用逗号列值时各成员之间用逗号(,)(,)间隔开间隔开。这样这样SETSET成员值本身不能包含逗号。成员值本身不能包含逗号。创建表时,创建表时,SETSET成员值的尾部空格将自动被删除。成员值的尾部空格将自动被删除。对于包含多个对于包含多个SETSET元素的值,当插入值时元素所列的顺序并不重要。元素的值,当插入值时元素所列的顺序并不重要。在值中一个给定的元素列了多少

25、次也不重要。在值中一个给定的元素列了多少次也不重要。当以后检索该值时,值当以后检索该值时,值中的每个元素出现一次,根据表创建时指定的顺序列出元素。中的每个元素出现一次,根据表创建时指定的顺序列出元素。在在严格模式严格模式下,向该列中插入不在该集合中的值时,系统禁止插入。下,向该列中插入不在该集合中的值时,系统禁止插入。在在ANSIANSI模式模式下,向该列采用截断方式插入。下,向该列采用截断方式插入。18第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.2.3 字符串类型字符串类型vSETSET类型说明类型说

26、明19第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3 表的创建表的创建v2.3.1 MYSQL2.3.1 MYSQL表的存储引擎表的存储引擎v2.3.2 2.3.2 创建表创建表2.3.2.1 SQL2.3.2.1 SQL基本语法基本语法2.3.2.2 2.3.2.2 主键设置主键设置2.3.2.3 2.3.2.3 空值约束设置空值约束设置2.3.2.4 2.3.2.4 唯一性约束设置唯一性约束设置2.3.2.5 2.3.2.5 自动增长字段设置自动增长字段设置2.3.2.6 2.3.2.6 默认值设置

27、默认值设置2.3.2.7 2.3.2.7 自定义约束设置自定义约束设置2.3.2.8 2.3.2.8 外键设置外键设置v2.3.3 2.3.3 查看表的结构查看表的结构20第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL表的存储引擎表的存储引擎表的存储引擎表的存储引擎 MySQLMySQL插件式存储引擎是插件式存储引擎是MySQLMySQL数据库服务器中的组件,数据库服务器中的组件,负责为数据库执行实际的数据负责为数据库执行

28、实际的数据I/OI/O操作,并能允许和强制执行操作,并能允许和强制执行面向特殊应用需求的特定特性面向特殊应用需求的特定特性集合。集合。使用特殊存储引擎的主使用特殊存储引擎的主要优点在于,仅需提供特殊应要优点在于,仅需提供特殊应用所需的特性,数据库中的系用所需的特性,数据库中的系统开销较小,最终结果具有更统开销较小,最终结果具有更有效和更高的数据库性能。有效和更高的数据库性能。这这也是也是MySQLMySQL被始终视为具有高性被始终视为具有高性能的原因之一,在行业标准基能的原因之一,在行业标准基准方面,它能匹敌或击败专有准方面,它能匹敌或击败专有的整体式数据库。的整体式数据库。21第二章第二章

29、MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL表的存储引擎表的存储引擎表的存储引擎表的存储引擎v各种存储引擎的特性各种存储引擎的特性下面重点介绍最常用的下面重点介绍最常用的4种存储引擎:种存储引擎:MyISAM、InnoDB、Memory、Merge。22第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3.1 MYSQL2.3.1 MYSQL2.3.

30、1 MYSQL2.3.1 MYSQL表的存储引擎表的存储引擎表的存储引擎表的存储引擎 MyISAM MyISAM:MySQLMySQL默认存储引擎。默认存储引擎。MyISAMMyISAM不支持事务、不支持不支持事务、不支持外键,特点是访问速度快。外键,特点是访问速度快。MyISAM MyISAM是在是在WebWeb、数据仓储和其他、数据仓储和其他应用环境下最常使用的存储引擎之一。应用环境下最常使用的存储引擎之一。v每个每个MyISAMMyISAM表在磁盘上存储为表在磁盘上存储为3 3个文件,文件名与表名相同,个文件,文件名与表名相同,扩展名分别是:扩展名分别是:.frm.frm(存储表定义)(

31、存储表定义)MYDMYD(MYData,MYData,存储数据)存储数据)MYI(MYIndexMYI(MYIndex,存储索引,存储索引)。数据文件和索引文件可以房子不同路径,平衡数据文件和索引文件可以房子不同路径,平衡IOIO,获得更快访问速度。,获得更快访问速度。vMyISAMMyISAM类型表可能会损坏。应注意检查:类型表可能会损坏。应注意检查:CHECK TABLECHECK TABLE语句检查健康语句检查健康REPAIR TABLEREPAIR TABLE语句修复损坏语句修复损坏23第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用

32、数据库技术与应用数据库技术与应用2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL表的存储引擎表的存储引擎表的存储引擎表的存储引擎 InnoDB InnoDB:用于事务处理应用程序,具有众多特性,包括用于事务处理应用程序,具有众多特性,包括ACID(AtomicityACID(Atomicity原子性、原子性、ConsistencyConsistency一致性、一致性、IsolationIsolation隔离隔离性、性、DurabilityDurability持续性持续性)事务支持。事务支持。相对相对MyISAMMyISAM引擎,写处理效引擎,写处理效率低

33、一些,且占用较多磁盘空间用于存储数据和索引率低一些,且占用较多磁盘空间用于存储数据和索引。vInnoDBInnoDB是是MYSQLMYSQL中唯一支持外键的引擎。中唯一支持外键的引擎。vInnoDBInnoDB存储表和索引有两种方式:存储表和索引有两种方式:共享表存储:共享表存储:表的结构存放在表的结构存放在.frm.frm文件中,数据和索引保存在文件中,数据和索引保存在innodb_data_home_dirinnodb_data_home_dir和和innodb_data_file_pathinnodb_data_file_path定义的表空间中。定义的表空间中。多表空间存储:多表空间存储

34、:表的结构存放在表的结构存放在.frm.frm文件中,数据和索引单独保存在文件中,数据和索引单独保存在.idb.idb中。如果是分区表,则每个分区对应单独的中。如果是分区表,则每个分区对应单独的.ibd.ibd,文件名是,文件名是“表表名名+分区名分区名”。24第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL表的存储引擎表的存储引擎表的存储引擎表的存储引擎vMemoryMemory:所有数据保存在所有数据保存在RAMRAM(

35、内存)中,一旦服务器关闭,(内存)中,一旦服务器关闭,表中的数据就会丢失。表中的数据就会丢失。在需要快速查找引用和其他类似数据在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。的环境下,可提供极快的访问。vMergeMerge:允许允许MySQL DBAMySQL DBA或开发人员将一系列等同的或开发人员将一系列等同的MyISAMMyISAM表表以逻辑方式组合在一起,并作为一个对象引用它们。以逻辑方式组合在一起,并作为一个对象引用它们。优点是优点是可以突破单个可以突破单个MyISAMMyISAM表大小的限制,并将不同的表分布在多表大小的限制,并将不同的表分布在多个磁盘上,从而有效改善

36、访问效率。对于诸如数据仓储等个磁盘上,从而有效改善访问效率。对于诸如数据仓储等VLDBVLDB环境十分适合。环境十分适合。25第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL2.3.1 MYSQL表的存储引擎表的存储引擎表的存储引擎表的存储引擎v查看当前默认存储引擎查看当前默认存储引擎Show variables like table_type;Show variables like table_type;v查看当前数据库支持的存储引擎查看当前数

37、据库支持的存储引擎Show engines;Show engines;Show variables like have%;Show variables like have%;v查看指定表的存储引擎查看指定表的存储引擎Show create table Show create table 表名表名;26第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3 2.3 2.3 2.3 创建表创建表创建表创建表v2.3.2.1 SQL2.3.2.1 SQL基本语法基本语法v2.3.2.2 2.3.2.2 主键设置主键设

38、置v2.3.2.3 2.3.2.3 空值约束设置空值约束设置v2.3.2.4 2.3.2.4 唯一性约束设置唯一性约束设置v2.3.2.5 2.3.2.5 自动增长字段设置自动增长字段设置v2.3.2.6 2.3.2.6 默认值设置默认值设置v2.3.2.7 2.3.2.7 自定义约束设置自定义约束设置v2.3.2.8 2.3.2.8 外键设置外键设置v2.3.2.9 2.3.2.9 查看表的结构查看表的结构27第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3.2.1 SQL2.3.2.1 SQL2.3.

39、2.1 SQL2.3.2.1 SQL基本语法基本语法基本语法基本语法CREATE TABLE (,)ENGINE=存储类型存储类型 DEFAULT CHARSET=字符集;字符集;v完整性约束说明:完整性约束说明:表级完整性约束:表级完整性约束:完整性约束条件涉及到该表的多个属性列完整性约束条件涉及到该表的多个属性列列级完整性约束:列级完整性约束:仅对定义的列进行约束仅对定义的列进行约束28第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用 教学管理实体关系图教学管理实体关系图教学管理实体关系图教学管理实体关系图

40、教师教师学生学生选课成绩选课成绩课程课程选课选课考试成绩考试成绩任课任课教师任课教师任课任课教师任课教师n11nn11n学生学生-课程模式课程模式 S-T:学生表:学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:学生选课表:SC(Sno,Cno,Grade)29第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用学生表学生表学生表学生表StudentStudentStudentStudent CREA

41、TE TABLE Student (Sno CHAR(10)PRIMARY KEY,Sname VARCHAR(10)UNIQUE,Ssex CHAR(2)NOT NULL check(Ssex IN(男男,女女),Sage SMALLINT default 20,Sdept CHAR(20)CONSTRAINT Sage limit check(Sage between 16 and 40)ENGINE=MyISAM DEFAULT CHARSET=utf-8;注意,虽然上面注意,虽然上面SQL语句定义了语句定义了CHECK子句,并且通过子句,并且通过MYSQL正确执正确执行了,但时间上行了

42、,但时间上CHECK子句在子句在MYSQL中是不支持的。思考,如何实现用户自中是不支持的。思考,如何实现用户自定义约束?定义约束?30第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用课程表课程表课程表课程表CourseCourseCourseCourse CREATE TABLE Course (Cno CHAR(4),Cname VARCHAR(40),Ccredit SMALLINT,PRIMARY KEY(Cno)ENGINE=MyISAM DEFAULT CHARSET=utf-8;CREATE TAB

43、LE Course (Cid INTEGER UNSIGNED NOT NULL INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,AUTO_INCREMENT,Cno CHAR(4),Cname VARCHAR(40),Ccredit SMALLINT,PRIMARY KEY(Cid)PRIMARY KEY(Cid)ENGINE=MyISAM DEFAULT CHARSET=utf-8;MYSQL中一个表只能定义个自动增长字段,并且必须是主键。中一个表只能定义个自动增长字段,并且必须是主键。31第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创

44、建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用选课成绩表选课成绩表选课成绩表选课成绩表SCSCSCSCCREATE TABLE SC (Sno CHAR(10),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno)ON Delete Cascade On Update Cascade,FOREIGN KEY(Cno)REFERENCES Course(Cno)ON Delete Cascade On Update Cascade)ENGINE=InnoD

45、B DEFAULT CHARSET=utf-8;1、创建参照完整性要求、创建参照完整性要求主、外键的字段数据类型、字符集必须一致主、外键的字段数据类型、字符集必须一致。2、创建主、外键的数据表,都要将其、创建主、外键的数据表,都要将其存储引擎设置为存储引擎设置为 InnoDB。注意注意32第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用外键约束说明外键约束说明外键约束说明外键约束说明v外键约束有四种形式:外键约束有四种形式:RESTRICT:RESTRICT:在子表有相关记录时,父表不允许更新或删除。在子表有相

46、关记录时,父表不允许更新或删除。CASCADE:CASCADE:父表在更新或删除时,同时更新或删除子表中父表在更新或删除时,同时更新或删除子表中对应的记录对应的记录SET NULL:SET NULL:父表在更新或删除时,子表中对应记录的对应父表在更新或删除时,子表中对应记录的对应字段设置为字段设置为NULLNULLNOT ACTION:NOT ACTION:与与RESTRICTRESTRICT相同相同33第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.3.2.9 2.3.2.9 查看表的结构查看表的结构查看

47、表的结构查看表的结构v查看表的结构有三种查看表的结构有三种MYSQLMYSQL指令指令Desc tablename;Describe tablename;Show create table tablename;34第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.4 表结构的修改表结构的修改v2.4.1 2.4.1 修改表名、字段名修改表名、字段名v2.4.2 2.4.2 修改字段数据类型修改字段数据类型v2.4.3 2.4.3 修改字段排列位置修改字段排列位置v2.4.4 2.4.4 增加字段、删除字段增加

48、字段、删除字段v2.4.5 2.4.5 更改表的存储引擎更改表的存储引擎v2.4.6 2.4.6 删除表的外键约束删除表的外键约束35第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用修改表名、字段名修改表名、字段名修改表名、字段名修改表名、字段名v修改表名修改表名 ALTER TABLE qq RENAME qq_t;v修改字段名修改字段名 ALTER TABLE qq_t CHANGE qq qqno varchar(15);36第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与

49、应用数据库技术与应用数据库技术与应用数据库技术与应用2.4.2 2.4.2 2.4.2 2.4.2 修改字段数据类型修改字段数据类型修改字段数据类型修改字段数据类型ALTER TABLE qq_t MODIFY qqno varchar(20);37第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.4.3 2.4.3 2.4.3 2.4.3 修改字段排列位置修改字段排列位置修改字段排列位置修改字段排列位置ALTER TABLE qq_t MODIFY qqno varchar(15)first;注意:根据关系

50、数据库的规范化理论:字段的位置无关紧要,实际上调整字段注意:根据关系数据库的规范化理论:字段的位置无关紧要,实际上调整字段位置是没必要的。位置是没必要的。38第二章第二章 MYSQL MYSQL数据库与表的创建数据库与表的创建数据库技术与应用数据库技术与应用数据库技术与应用数据库技术与应用2.4.4 2.4.4 2.4.4 2.4.4 增加字段、删除字段增加字段、删除字段增加字段、删除字段增加字段、删除字段v增加字段增加字段 ALTER TABLE qq_t ADD email varchar(20);v删除字段删除字段 ALTER TABLE qq_t DROP email;39第二章第二章

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com