MYSQL数据库与表的创建.ppt
《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类型说明类型说
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MYSQL 数据库 创建
限制150内