主键、自增、唯一键和三大范式

本文详细解析了数据库设计中的关键概念,包括主键、自增、唯一键的使用,以及第一、二、三范式的原则,帮助读者理解如何创建高效且规范化的数据库结构。

主键、自增、唯一键和三大范式

主键primary key, 加在建表语句中primary key(主键列表),主键对应的字段不允许重复

自增长,在建表语句字段后加auto_increment,这样当对应的字段设置值不给值或给null或直接给默认值时会从表中最大值+1,一个表中只能有一个自增长

唯一键unique key,解决多个字段需要保证唯一性的问题

范式

第一范式:字段中的数据具有原子性,表中数据取出就不用在处理

第二范式:如果有复合主键,某种数据只依赖主键中的某个字段而不是全部主键

(主键:班级和讲师,性别依赖讲师,教室依赖班级)

第三范式:一张表中所有主键都直接依赖主键,而不是通过某个非主键字段依赖,不允许传递依赖

逆规范化:数据都通过一张表查,除非查不到再去领一张表,这样效率会增加但数据会冗余

转载于:https://www.cnblogs.com/shizhuoping/p/11561563.html

### 主键 #### 实现 在 MySQL 中,实现主键可在创表时,为字段添加 `AUTO_INCREMENT` 属性,且该字段数据类型通常为整数类型,如 `bigint` 。示例如下: ```sql CREATE TABLE example_table ( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自id', -- 其他字段 PRIMARY KEY (id) ); ``` #### 作用 主键能为表中每条记录自动生成唯一的标识符,便于对记录进行管理、查询关联操作,避免手动输入主键值可能产生的重复或错误。 #### 使用方法 创表时,指定字段为 `NOT NULL` 并添加 `AUTO_INCREMENT` 属性,同时将该字段设为主键。插入记录时,无需为自字段提供值,数据库会自动生成下一个可用的整数作为该字段的值。 ### 唯一约束 #### 实现 唯一约束可在创表时定义,也可在创表后添加。创表时,可使用 `UNIQUE KEY` 关键字定义唯一约束。示例如下,为多个字段创唯一约束: ```sql CREATE TABLE example_table ( connector_name VARCHAR(255), database_name VARCHAR(255), table_name VARCHAR(255), day_time DATE, hour_time TIME, -- 其他字段 UNIQUE KEY(connector_name, database_name, table_name, day_time, hour_time) ); ``` 创表后添加唯一约束的 SQL 语句示例: ```sql ALTER TABLE example_table ADD UNIQUE KEY(connector_name, database_name, table_name, day_time, hour_time); ``` #### 作用 唯一约束用于确保表中指定字段或字段组合的值是唯一的,防止出现重复数据,保证数据的完整性准确性。 #### 使用方法 创表时,在字段定义后使用 `UNIQUE KEY` 关键字指定需要唯一约束的字段或字段组合;创表后,使用 `ALTER TABLE` 语句添加唯一约束。添加约束时,数据库会检查现有数据,若存在违背约束的数据,则不会施加该约束 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值