MySQL完整性约束条件

作用:限制如何给字段赋值

约束条件:

Null 允许为空,默认设置,not null不允许为空;注:" ""null"不为空

key 索引类型

Default 设置默认值,缺省为null

Extra 额外设置

索引:

索引优缺点:

优点:通过创建唯一索引,保证数据唯一性;加快数据的检索速度

缺点:当对数据进行增,删,改,索引要动态维护,减慢写的速度;索引要占用物理空间

查看是否有索引字段:DESC 表名; #查看"key"

查看索引详细:SHOW INDEX FROM 表名; #column_name:字段 key_name:索引名,索引名默认和字段同名

索引的类型:

INDEX:普通索引

建表时设置:

CREATE TABLE 表名(

……

INDEX(字段名1),INDEX(字段名2),INDEX(字段名n) #设置完字段后设置

);

已有表设置:CREATE INDEX 索引名 on 表名(字段名);

删除索引:DROP INDEX 索引名 on 表名;

   

UNIQUE:唯一索引

建表时设置:

CREATE TABLE 表名(

……

UNIQUE(字段名1)UNIQUE(字段名2),UNIQUE(字段名n)

;

已有表设置: CREATE UNIQUE INDEX 索引名 ON 表名

删除索引:DROP INDEX 索引名 ON 表名;

注:若字段为not null并且是unique标志会变为PRI

   

FULLTEXT

PRIMARY KEY:主键

建表时设置:

CREATE TAVLE 表名(

……

PRIMARY KEY(字段名) #也可以直接写在字段后,多个字段表示复合主键

);

已有表设置:

ALTER TABLE 表名

ADD

PRIMARY KEY(字段名) #受数据影响,多个字段名表示复合主键

删除主键:

ALTER TABLE 表名

DROP

PRIMARY KEY; #复合主键必须同时删除

注:复合主键的多个数据不能完全一样;主键常和AUTO_INCREMENT连用,实现自增,从最大值开始加1

   

FOREIGN KEY:外键

使用外键的条件

  1. 表的存储引擎必须是innodb
  2. 字段类型要一致
  3. 被参照字段必须要是索引类型的一种(primarykey)

外键的作用:给表中字段赋值时,字段的值只能在另外一张表的字段值里选择

注:用desc查看时显示MUI标志,要用"show create table 表名;"查看建表过程

建表时设置

无符号: UNSIGNED

转载于:https://www.cnblogs.com/NINOMIYA1360/p/9943125.html

### MySQL 完整性约束的定义与类型 完整性约束是数据库管理系统中用于确保数据完整性和一致性的机制。在 MySQL 中,完整性约束可以通过表创建时的定义或后续的修改操作来实现。这些约束可以分为三类:实体完整性约束、域完整性约束和参照完整性约束。 #### 实体完整性约束 实体完整性约束主要用于确保表中每一行记录的唯一性。它通过主键约束(`PRIMARY KEY`)和唯一约束(`UNIQUE`)实现。主键约束要求指定的列不能包含重复值或空值[^1]。唯一约束则允许列中的值重复一次,但不允许多次重复[^2]。 示例代码如下: ```sql CREATE TABLE tb_class ( id INT PRIMARY KEY, cname VARCHAR(100) NOT NULL, loc VARCHAR(100), UNIQUE (loc) ); ``` #### 域完整性约束 域完整性约束用于限制列中可接受的数据类型、格式或范围。常见的域完整性约束包括非空约束(`NOT NULL`)和默认值约束(`DEFAULT`)。非空约束确保列中的值不能为空[^1],而默认值约束则为未提供值的列设置默认值。 示例代码如下: ```sql CREATE TABLE tb_employee ( emp_id INT NOT NULL, emp_name VARCHAR(50) DEFAULT 'Unknown' ); ``` #### 参照完整性约束 参照完整性约束通过外键(`FOREIGN KEY`)实现,用于维护表之间的关系。外键约束确保一个表中的某些值必须出现在另一个表中对应的列中。例如,当删除或更新父表中的记录时,子表中的相关记录也会受到影响。 示例代码如下: ```sql CREATE TABLE tb_student ( student_id INT PRIMARY KEY, class_id INT, FOREIGN KEY (class_id) REFERENCES tb_class(id) ); ``` ### 实现方法 在 MySQL 中,完整性约束可以通过以下方式实现: 1. **表创建时定义**:在 `CREATE TABLE` 语句中直接定义约束条件。 2. **表修改时添加**:使用 `ALTER TABLE` 语句向现有表中添加或修改约束条件。 #### 示例:添加外键约束 ```sql ALTER TABLE tb_student ADD CONSTRAINT fk_class FOREIGN KEY (class_id) REFERENCES tb_class(id); ``` #### 示例:删除约束 ```sql ALTER TABLE tb_student DROP FOREIGN KEY fk_class; ``` 以上内容涵盖了 MySQL完整性约束的主要类型及其实现方法。通过合理使用这些约束,可以有效保证数据库中的数据质量和一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值