项目三
数据表管理
98
目录
99
任务 1 设计并创建数据表
任务 2 修改数据表
任务 3 删除数据表
设计并创建数据表
任务 1
100
项目三 数据表管理
1. 了解常见的 MySQL 数据类型。
2. 了解约束的概念。
3. 掌握常见的约束。
4. 掌握创建数据表的语句。
5. 能为字段选择合适的约束和数据类型。
101
项目三 数据表管理
数据表的合理性与系统架构的严谨性紧密关联。通过合理设计和创建字
段、设置数据类型等,实现密码安全、用户管理、访问控制、审计和性能优
化,以满足数据安全和应用需求。
本任务要求设计合适的用户登录表“tb_account”,并使用 Navicat 创建
用户登录表,如图所示。
102成功创建用户登录表
项目三 数据表管理
103
一、MySQL 中的数据类型
1. 整数类型
整数类型(如 INT、BIGINT、SMALLINT、TINYINT 等)用于存储整数
值,可以指定有无符号和不同的取值范围,其详细信息可见下表。
项目三 数据表管理
104
整数类型
项目三 数据表管理
105
整数类型
项目三 数据表管理
2. 浮点类型和定点类型
(1)浮点类型(FLOAT、DOUBLE)
浮点类型用于存储浮点数值,可分为单精度浮点型和双精度浮点型。
1)单精度浮点型(FLOAT)。单精度浮点型数据使用 32 位二进制数(4
字节)来存储,分为符号位、指数位和尾数位,能表示 6 ~ 9 位有效数字,
范围和精度相对较低,适用于对精度要求不是特别高的计算场景,如一般科
学计算、图形渲染等。
106
项目三 数据表管理
2)双精度浮点型(DOUBLE)。双精度浮点型数据使用 64 位二进制数
(8 字节)来存储,同样分为符号位、指数位和尾数位,能表示 15 ~ 17 位有
效数字,提供更高的精度和更大的数值范围,适用于对精度要求较高的计算
场景,如金融计算、科学计算和工程领域等。
107
项目三 数据表管理
(2)定点类型(DECIMAL)
定点类型主要用于存储精确的小数数据,其以字符串形式保存数值,从
而避免了浮点计算可能引入的误差。定点类型的数值精度由用户定义,支持
的范围和精度更适合金融计算和其他需要精确计算的场景。在对精度要求极
高的应用中,如货币处理、财务报表计算等,应优先选择定点类型,而非浮
点类型。
108
项目三 数据表管理
3. 字符串类型
字符串类型用于存储文本数据,其中 CHAR 为定长字符串,VARCHAR
为变长字符串,而 TEXT 用于存储大文本数据,详细信息可见下表。
109
字符串类型
项目三 数据表管理
4. 日期与时间类型
日期与时间类型(如 DATE、TIME、DATETIME、TIMESTAMP)用于
存储日期与时间数据,其中 DATE 表示日期,TIME 表示时间,DATETIME
表示日期时间,TIMESTAMP 表示时间戳,详细信息可见下表。
110
日期与时间类型
项目三 数据表管理
111
日期与时间类型
项目三 数据表管理
5. 二进制类型
二进制类型用于存储二进制数据,如图像、音频等,详细信息可见下表。
112
二进制类型
项目三 数据表管理
113
二进制类型
项目三 数据表管理
二、约束
1. 约束的概念
约束用于规定数据表中数据的一些限制和规则。它们定义了对表中数据
的有效性和完整性要求,确保数据的一致性和正确性。当试图插入、更新或
删除数据时,数据库管理系统会自动检查这些约束,并确保数据操作符合这
些约束定义的规则。
114
项目三 数据表管理
2. 常见的约束
(1)主键约束
主键约束用于唯一标识表中的每一行数据,要求主键列的值不重复且不
能为空。一个数据表只能有一个主键,且主键列的值在表中必须唯一,以方
便快速地检索数据。
(2)唯一约束
唯一约束要求某列的值在整个数据表中保持唯一,但允许为空值。一个
数据表可以有多个唯一约束,每个唯一约束字段可以有多个 NULL 值。
(3)非空约束
非空约束规定某列的值不能为 NULL,即该列必须始终包含有效的数据。
115
项目三 数据表管理
(4)默认值约束
默认值约束用于规定没有给某列赋值时的默认值。通过默认值约束,可
提高数据管理的效率。
(5)检查约束
检查约束用于规定某列的值必须满足特定的条件或范围。通过检查约束,
可以限制某列的取值范围。
(6)外键约束
外键约束用于关联两个数据表,确保在一个表中的列值必须存在于另一
个表的主键列中。外键约束实现了表与表之间的数据一致性。
116
项目三 数据表管理
三、创建数据表
1. 使用 SQL 语句创建数据表
使用如下 CREATE 语句创建数据表。
117
项目三 数据表管理
2. 使用 Navicat 创建数据表
打开 Navicat,连接数据库,在数据库“schoolsys”的“表”上单击鼠
标右键,在弹出的快捷菜单中选择“新建表”选项,在弹出的页面中可进行
创建数据表的操作,设置数据表字段如图所示。
118
设置数据表字段
项目三 数据表管理
在该页面中,每一行表示一个字段,其中,在“名”列中可输入字段名
称,在“类型”列中可选择或输入字段的数据类型,在“长度”列可选择字
段的长度,在“小数点”列可输入精度,在“不是 NULL”列可设置是否允许
为空(即非空约束),“虚拟”列表示是否为该字段创建虚拟列以提高索引
效率,“键”列可选择该字段的主键或外键约束,“注释”列可为该字段增
加注释。
119
项目三 数据表管理
设置完字段后,单击对象列表工具栏中的“保存”按钮,弹出如图所示
的“表名”对话框,输入数据表的名称后单击“确定”按钮即可完成数据表
的创建。
120
“表名”对话框
修改数据表
任务 2
121
项目三 数据表管理
1. 了解查看、修改数据表的 SQL 语句。
2. 能查看、修改数据表。
122
项目三 数据表管理
123
修改数据表是指对已存在的数据表进行结构上的更改,以适应不同的需
求或变化。修改用户登录表是在已存在的用户身份验证系统中更改或增加功
能时的常见任务。
本任务要求使用 Navicat,在已成功创建的用户登录表“tb_account”中
添加一个用户电话号码字段“phone_number”,如图所示。
成功添加字段
项目三 数据表管理
124
一、查看数据表结构
创建完数据表后,可以查看创建的数据表的结构。查看数据表的结构的
SQL 语法格式如下。
项目三 数据表管理
二、修改数据表
1. 添加字段
使用 ALTER 语句可以在数据表中添加新的字段。添加字段的 SQL 语法
格式如下。
125
项目三 数据表管理
2. 修改字段
使用 ALTER 语句还可以修改数据表中的字段,其 SQL 语法格式如下。
3. 删除字段
使用 ALTER 语句还可以在数据表中删除字段,其 SQL 语法格式如下。
126
项目三 数据表管理
4. 使用 Navicat 可视化修改数据表
在数据库“schoolsys”中单击“表”,在其下拉列表中的数据表
“staff”上单击鼠标右键,在弹出的快捷菜单中选择“设计表”选项,执行
效果如图所示。
127
选择“设计表”选项
项目三 数据表管理
在弹出的页面中进行修改数据表操作,如图所示。在对象列表工具栏中
单击“添加字段”按钮可为该数据表增加新字段,单击“插入字段”按钮可
在选中字段上方新增一个字段,单击“删除字段”按钮将删除选中的字段,
单击“主键”按钮可为选中的字段添加主键,单击“上移”和“下移”按钮
能改变字段排序,完成设置后使用“保存”按钮可对修改操作进行保存。
128
修改数据表
删除数据表
任务 3
129
项目三 数据表管理
1. 了解数据表之间的关系。
2. 掌握删除数据表的 SQL 语句。
3. 能删除数据表。
130
项目三 数据表管理
当某个表不再需要且其中的数据也不再使用时,可以删除该表,以清理
数据库中多余的数据表。删除用户登录表是将已存在的用户身份验证系统移
除。删除用户登录表通常需要进行合规性审查,并确保遵守数据保护法规,
以保护用户隐私和数据安全。
131
项目三 数据表管理
本任务要求使用 Navicat,删除用户登录表“tb_account”,结果如图所
示。
132
删除用户登录表
项目三 数据表管理
一、数据表间的关系
1. 主键 - 外键关系
(1)主键
主键是表中唯一标识每条记录的字段或字段组合,保证了表中每条记录的
唯一性和不可重复性。
(2)外键
外键是与其他表中主键相关联的字段,用于建立表与表之间的关联关系。
外键字段的取值必须存在于关联表的主键取值范围内,从而形成表与表之间的
数据关联。 133
项目三 数据表管理
2. 一对一关系
一对一关系是指两张表之间的记录存在一一对应的关系,即在 A 表中的
一个记录仅对应B 表中的一个记录,反之亦然。
3. 一对多关系
一对多关系是指 A 表中的一个记录可以对应 B 表中的多个记录,但 B 表
中的一个记录只能对应 A 表中的一个记录。
4. 多对多关系
多对多关系是指两张表中的记录可以相互对应多个,即 A 表中的一个记
录在 B 表中可以对应多个记录,同时 B 表中的一个记录也可以对应 A 表中的
多个记录。
134
项目三 数据表管理
二、删除没有被关联的表
可使用 DROP 语句删除没有被关联的表。具体的 SQL 语法格式如下。
135
项目三 数据表管理
三、删除被其他数据表关联的主表
在删除一个作为其他表外键引用的主表之前,必须先解除其外键关联关
系。使用如下SQL 语句查询外键名称。
136
项目三 数据表管理
查询得出外键名称后,使用 ALTER TABLE 语句,并在 DROP FOREIGN
KEY 子句中指定要删除的外键约束的名称。删除表的外键约束的 SQL 语法格
式如下。
137