Mysql之数据完整性约束与表维护语句

一、约束

分类一:

约束主要是针对字段,即列或者叫columns进行,主要有以下几种类型
1.非空约束NOT NULL ,限制该列内容不能为空值,必须输入
2.主键约束PRIMARY KEY,一个TABLE中只能存在一个主键约束,保证记录的唯一性,可以配合AUTO_INCREMENT使用,自动增1
3.唯一约束UNIQUE KEY,一个TABLE中可以针对列设置多个唯一约束,目的是使得该列的内容不重复,该列值可以为NULL
4.默认约束 DEFAULT,对一列(字段)设置默认值,如果不给其设置自定义值,则其显示默认值
5.外键约束FOREIGN KEy
对一个字段进行约束成为列级约束,对两个及以上字段进行约束称为表级约束

外键约束的要求:
1.父表和子表必须使用相同的存储引擎,不能使用临时表
2.数据存储引擎必须为INNODB类型
3.外键列和参照列必须具有相似的数据类型。其中数字的长度或者是否有符号位必须相同,字符的长度则可以不同。
4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL则自动创建索引
外键列创建在子表中,参照列创建在父表中
示例:
CREATE TABLE table_name1(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL
)
CREATE TABLE table_name2(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL,
sex ENUM(‘1’,’2’,’3’) DEFAULT ‘3’,)//表示当sex没有赋值时,默认值为3
pid SMALLINT UNSIGNED,
FOREIGN KEY (pid) REFERENCES table_name1(id) /* 外键 pid 参照 table_name1中的 id 字段 */

分类二:

表级约束和列级约束
对于一个列所创建的约束,称之为列级约束,而对于两个或两个以上的列所创建的约束,我们称之为表级约束。

列级约束在使用的时候,既可以在列定义的时候声明,也可以在列定义以后声明
表级的约束只能在列定义以后来声明

二、数据完整性约束

1.定义完整性约束

关系模型中有三类完整性约束:
(1)实体完整性
在关系数据库系统中,一个关系通常对应一个表,实体完整性是指在实际存储数据库的表中,主键不能取空值null。在mysql中,实体完整性是通过主键约束和候选键约束来实现的。
(2)参照完整性
定义外键和主键之间的引用规则 ,它是对关系间引用数据的一种限制。
(3)用户定义的完整性
mysql支持几种用户自定义的完整性约束,分别是非空约束、check约束和触发器。

2.命名完整性约束

在各种完整性约束的定义说明之前加上关键字constraint([kənˈstrent]约束的意思)和该约束的名字。如:

constraint primary_key_id primary key(id),

3.更新完整性约束

三、表维护语句

1.analyze table语句

2.check table语句

3.chechsum table语句

4.optimize table语句

5.repair table语句

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值