第5章MySQL表结构管理电子课件 MySQL数据库管理与应用.pptx
《第5章MySQL表结构管理电子课件 MySQL数据库管理与应用.pptx》由会员分享,可在线阅读,更多相关《第5章MySQL表结构管理电子课件 MySQL数据库管理与应用.pptx(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章MySQL表结构管理电子课件 MySQL数据库管理与应用第5章 MySQL表结构管理主要内容5.1 表的概念5.2 MySQL的数据类型5.3 创建表5.4 定义约束5.5 使用Workbench创建表5.6 查看表5.7 修改表5.8 删除表5.9 本章小结5.1 表的概念表(Table)是关系数据库中最重要的数据库对象,用来存储数据库中的数据。一个数据库包含一个或多个表,表由行(Row)和列(Column)组成。表中的一行称为一个记录(Record),每个表包含若干行数据。列又称为字段(Field),由数据类型、长度、是否允许空值、默认值等组成,每个列表示记录的一个属性。一个完整的表
2、包含表结构和表数据两部分内容,表的结构主要包括表的列名、数据类型、长度、是否允许空值、默认值以及约束等,表数据就是表中的记录。例如,“教务管理系统”数据库中的学生表的结构和部分数据如表5.1和表5.2所示。5.1 表的概念表5.1 学生(student)表结构列名数据类型长度允许空值默认值约束说明snochar11否主键学生编号snamevarchar10否学生姓名ssexchar1否男只能取男或女性别sbirthdaydate否出生日期snationvarchar10否民族mnochar4是外键,参照major表的mno列专业编号5.1 表的概念表5.2 学生(student)表数据snos
3、namessexsbirthdaysnationmno20190101001刘丽女2001-3-2汉族010120190101002张林男2000-9-12汉族010120190102001李宏男2001-8-29回族010220200102001孙明男2001-10-18汉族010220200102002赵均男2000-12-19汉族010220200101001张莉女2001-6-20汉族010120210201001牛伟男2003-9-18回族02015.2 MySQL的数据类型定义表时需要对表中的列进行属性设置,包括列的名称、数据类型、长度、默认值等,其中最重要的属性就是数据类型。数据
4、类型是指存储在数据库中的数据的类型,决定了数据的存储格式和取值范围。MySQL中的数据类型主要包括数值类型、字符串类型、日期和时间类型、空间类型和JSON类型。本书主要介绍数值类型、字符串类型、日期和时间类型。5.2 MySQL的数据类型5.2.1 数值类型1.整数类型l整数类型包括TINYINT、INTEGER(或INT)、SMALLINT、MEDIUMINT和BIGINT。数据类型存储字节数无符号数取值范围有符号数取值范围TINYINT10255-128127SMALLINT2065535-3276832767MEDIUMINT3016777215-83886088388607INTEGE
5、R(或INT)404294967295-21474836482147483647BIGINT80264-1-263263-15.2 MySQL的数据类型5.2.1 数值类型2.定点数类型l定点数类型包括DECIMAL和NUMERIC,用于存储精确的数值数据。在MySQL中,NUMERIC被实现为DECIMAL。l定点数类型的定义语法为DECIMAL(M,D)或NUMERIC(M,D),其中M是最大位数(精度),范围是1到65,D是小数点后的位数(小数位数),它的范围是0到30,并且不能大于M。如果D省略,则默认为0,如果M省略,则默认为10。l例如,定义salary列的数据类型为DECIMAL
6、(5,2),则该列能够存储具有五位数字和两位小数的任何值,因此salary列的取值范围从-999.99到999.99。5.2 MySQL的数据类型5.2.1 数值类型3.浮点数类型l浮点数类型包括单精度FLOAT类型和双精度DOUBLE类型,代表近似的数据值。MySQL对单精度值使用四个字节存储,对双精度值使用八个字节存储。l对于FLOAT,MySQL支持在关键字FLOAT之后指定可选的精度,但是FLOAT(p)中的精度值仅用于确定存储大小,0到23之间的精度将产生一个4字节的单精度浮点列。从24到53的精度将产生一个8字节的双精度浮点列。l由于浮点值是近似值,而不是存储为精确值,因此在比较中
7、尝试将其视为精确值可能会导致问题。5.2 MySQL的数据类型5.2.1 数值类型4.位值类型l位数据类型用于存储位值,BIT(M)允许存储一个长度为M的位值,M的范围从1到64。要指定位值,可以使用b值表示法。值是使用0和1组成的二进制值。例如,b111和b10000000分别表示7和128。l如果给一个BIT(M)列赋值一个长度小于M的位值,则该值在左侧用零填充。例如,将b101赋值给类型为BIT(6)的列实际上与b000101相同。5.2 MySQL的数据类型5.2.2 字符串类型字符串数据类型包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和
8、SET类型数据类型存储字节CHAR(M)Mw字节,0=M=255,其中w是字符集中最大长度字符所需的字节数。BINARY(M)M字节,0=M=255VARCHAR(M),VARBINARY(M)如果列值需要0255个字节,则L+1个字节,如果值可能需要超过255个字节,则L+2个字节TINYBLOB,TINYTEXTL+1个字节,其中L28BLOB,TEXTL+2个字节,其中L216MEDIUMBLOB,MEDIUMTEXTL+3个字节,其中L224LONGBLOB,LONGTEXTL+4个字节,其中L=1andcterm=8);5.4 定义约束5.4.5 外键约束外键约束在两个表的列之间建立
9、参照关系,用来实现参照完整性。一个表可以有一个或多个外键,外键可以是一列也可以是多列,外键的值可以为空值,如果不为空则必须是它所参照的另一个表的主键的一个值。外键约束通常涉及到两个表,根据表之间的参照关系分为:l主表(父表):被参照表,在两个表的参照关系中主键所在的表l从表(子表):参照表,在两个表的参照关系中外键所在的表5.4 定义约束5.4.5 外键约束1.创建表时定义外键约束在CREATETABLE语句中定义外键约束,其语法格式为:CONSTRAINTconstraint_nameFOREIGNKEY(col_name,.)REFERENCEStbl_name(col_name,.)ON
10、 DELETE RESTRICT|CASCADE|SET NULL|NOACTIONON UPDATE RESTRICT|CASCADE|SET NULL|NOACTION5.4 定义约束5.4.5 外键约束【例5.15】创建score表,将sno列设置为外键,参照student表的sno列。CREATETABLEscore(snochar(11)notnull,cnochar(3)notnull,gradetinyint,CONSTRAINTpk_sno_cnoPRIMARYKEY(sno,cno),CONSTRAINTfk_snoFOREIGNKEY(sno)REFERENCESstude
11、nt(sno);5.4 定义约束5.4.5 外键约束2.修改表时定义外键约束如果表已经存在并且需要创建外键约束,可以用ALTERTABLE语句对表结构进行修改增加外键约束,语法格式如下:ALTERTABLEtbl_nameADDCONSTRAINTconstraint_nameFOREIGNKEY(col_name,.)REFERENCEStbl_name(col_name,.)ONDELETERESTRICT|CASCADE|SETNULL|NOACTIONONUPDATERESTRICT|CASCADE|SETNULL|NOACTION5.4 定义约束5.4.5 外键约束【例5.16】修改
12、score表,将cno列设置为外键参照course表的cno列。在MySQL命令行客户端输入命令:ALTERTABLEscoreADDCONSTRAINTfk_cnoFOREIGNKEY(cno)REFERENCEScourse(cno);5.5 使用Workbench创建表列名数据类型长度允许空约束说明mnochar4否主键专业编号mnamevarchar20否唯一专业名称dnochar2是外键,参照dept表的dno列所属学院编号专业表major5.5 使用Workbench创建表打开WorkBench工具,连接到MySQL服务器。在左侧的“SCHEMAS”导航栏中找到jwgl数据库,单击
13、左边的箭头,在下面的“Tables”节点上单击鼠标右键,在出现的菜单中选择“Create Table”,右侧将打开“new_table-Table”对话框的“Columns”选项卡。5.5 使用Workbench创建表5.5 使用Workbench创建表在Table Name文本框中输入要创建的表名major,在Charset/Collation、Engine下拉列表中选择表的默认字符集、字符集的排序规则、存储引擎,这里采用默认值。依次输入每个列的名称、数据类型、长度;mno列为主键,不允许空值,勾选该列后的PK和NN复选框;mname列不允许空值,要求唯一,勾选该列后的NN和UQ复选框。5.
14、5 使用Workbench创建表5.5 使用Workbench创建表选择“Foreign Keys”选项卡,在左侧列表框的“Foreign Key Name”处输入外键约束的名称“fk_dno”,“Referenced Table”下拉列表中选择dept表。右侧列表框中的“Column”处出现major表中的列,勾选dno列,在对应的“Referenced Column”处选择dept表中的dno列。单击“Apply”按钮,完成表的创建。5.5 使用Workbench创建表5.6 查看表5.6.1查看当前数据库中的表可以使用SHOWTABLES命令查看当前数据库中已有的表。【例5.17】查看j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章MySQL表结构管理电子课件 MySQL数据库管理与应用 MySQL 结构 管理 电子 课件 数据库 应用
限制150内