mysql数据库设计(1).pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
mysql数据库设计 数据库设计 约束 约束 * 概念: 对表中的数据进⾏限定,保证数据的正确性、有效性和完整性。 * 分类: 1. 主键约束:primary key 1. 注意: 1. 含义:⾮空且唯⼀ 2. ⼀张表只能有⼀个字段为主键 3. 主键就是表中记录的唯⼀标识 2. 在创建表时,添加主键约束 create table stu( id int primary key,-- 给id添加主键约束 name varchar(20) ); 3. 删除主键 ALTER TABLE stu DROP PRIMARY KEY; 4. 创建完表后,添加主键 ALTER TABLE stu MODIFY id INT PRIMARY KEY; 5. ⾃动增长: 1. 概念:如果某⼀列是数值类型的,使⽤ auto_increment 可以来完成值得⾃动增长 2. 在创建表时,添加主键约束,并且完成主键⾃增长 create table stu( id int primary key auto_increment,-- 给id添加主键约束 name varchar(20) ); 3. 删除⾃动增长 ALTER TABLE stu MODIFY id INT; 4. 添加⾃动增长 ALTER TABLE stu MODIFY id INT AUTO_INCREMENT; 2. ⾮空约束:not null 1. 创建表时添加约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL ); 2. 创建表完后,添加⾮空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL; 3. 删除name的⾮空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20); 3. 唯⼀约束:unique 1. 创建表时,添加唯⼀约束 CREATE TABLE stu( id INT, phone_number VARCHAR(20) UNIQUE -- 添加了唯⼀约束 ); * 注意mysql中,唯⼀约束限定的列的值可以有多个null 2. 删除唯⼀约束 ALTER TABLE stu DROP INDEX phone_number; 3. 在创建表后,添加唯⼀约束 ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE; 4. 外键约束:foreign key 1. 在创建表时,可以添加外键 * 语法: create table 表名( .... 外键列 constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称) ); 2. 删除外键 ALTER TABLE 表名 DROP FOREIGN KEY 外键名称; 3. 创建表之后,添加外键 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称); 4. 级联操作 1. 添加级联操作 语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE ; 2. 分类: 1. 级联更新:ON UPDATE CASCADE 2. 级联删除:ON DELETE CASCADE 数据库的设计 数据库的设计 1. 多表之间的关系 1. 分类: 1. ⼀对⼀(了解): 2. ⼀对多(多对⼀): 3. 多对多: 2. 实现关系: 1. ⼀对多(多对⼀): * 实现⽅式:在多的⼀⽅建⽴外键,指向⼀的⼀⽅的主键。 2. 多对多: * 实现⽅式:多对多关系实现需要借助第三张中间表。中间表⾄少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键 3. ⼀对⼀(了解): * 实现⽅式:⼀对⼀关系实现,可以在任意⼀⽅添加唯⼀外键指向另⼀⽅的主键。 2. 数据库设计的范式 * 概念:设计数据库时,需要遵循的⼀些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越⾼的范式数据库冗余越⼩。 ⽬前关系数据库有六种范式:第⼀范式(1NF)、第⼆范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,⼜称完美范式)。 * 分类: 1. 第⼀范式(1NF):每⼀列都是不可分割的 MySQL数据库设计是构建高效、稳定的数据存储系统的关键步骤。它涉及到对数据的组织、约束以及表间关系的定义。在数据库设计中,约束是确保数据质量和完整性的关键工具,包括主键约束、非空约束、唯一约束和外键约束。 主键约束是每个表的核心元素,它是一个非空且唯一的字段,用来唯一标识表中的每一行记录。在创建表时,可以通过`primary key`关键字来指定主键,一个表只能有一个主键。主键约束可以通过`ALTER TABLE`语句添加或删除。同时,主键还可以设置为自动增长,例如`auto_increment`,这样每次插入新记录时,该字段的值会自动递增,无需手动输入。 非空约束`not null`保证了字段的值不能为空,这是确保数据完整性的重要手段。在创建表或修改表结构时,可以使用`NOT NULL`来添加或删除非空约束。 唯一约束`unique`保证字段内的每个值都是唯一的,但允许出现多个NULL值。可以使用`UNIQUE`关键字在创建表时设定,也可以在表创建后通过`ALTER TABLE`修改。唯一约束的索引可以通过`DROP INDEX`语句删除。 外键约束`foreign key`用于建立表与表之间的关联,通常表示一对多或多对一的关系。外键引用了另一个表的主键,确保数据的一致性。外键可以添加到已存在的表中,通过`ADD CONSTRAINT`和`FOREIGN KEY`语句定义,并可设置级联操作,如`ON UPDATE CASCADE`和`ON DELETE CASCADE`,使得当主表中的记录发生变化时,从表中的相关记录也会相应更新或删除。 在数据库设计中,多表之间的关系分为一对一、一对多和多对多三种类型。一对一关系可以在任一方表中添加唯一外键指向另一方的主键;一对多关系通常在多方表中设立外键,指向一方表的主键;多对多关系需要通过第三个“中间表”来实现,中间表包含两个外键,分别关联两方表的主键。 数据库设计的范式是确保数据无冗余和提高数据独立性的规范。第一范式(1NF)要求每个字段不可再分;第二范式(2NF)要求表去除部分依赖;第三范式(3NF)要求表去除传递依赖;巴斯-科德范式(BCNF)进一步消除数据依赖;第四范式(4NF)处理多值依赖;而第五范式(5NF,又称完美范式)是最理想的范式状态。遵循这些范式,可以使数据库设计更优化,减少冗余,提高查询效率。在实际设计中,需要根据具体需求平衡范式级别和性能。
- 粉丝: 102
- 资源: 9353
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 9451GG-VB一款P-Channel沟道SOT89-3的MOSFET晶体管参数介绍与应用说明
- 交直流潮流计算程序matlab 通过统一迭代法实现,程序注释齐全,方便理解,通用性强,可根据需要改成相应的节点数量
- cordova-3.4.js
- 三菱FX3U与三菱变频器 modbus RTU通讯案例 器件:三菱FX3U PLC+FX3U 485BD,三菱E740变频器,昆
- 9435GG-VB一款P-Channel沟道SOT89-3的MOSFET晶体管参数介绍与应用说明
- 汇川PLC ModbusTCP API库
- 9431GH-VB一款N-Channel沟道TO252的MOSFET晶体管参数介绍与应用说明
- 数字电源PFC学习 参考源代码、学习文件、mathcad、仿真文件 学习资料没有关联都是独立的
- 明星周边商城系统+Java+Springboot+源码+毕业设计课程设计
- SQD23N06-31L-GE3-VB一款N-Channel沟道TO252的MOSFET晶体管参数介绍与应用说明