MySQL表的约束

表的约束

  • 约束是在表上强制执行的数据校验规则.
  • 约束主要用于保证数据库的完整性。
  • 当表中数据有相互依赖性时,可以保护相关的数据不被删除
  • 大部分数据库支持下面五类完整性约束:
    NOT NULL 非空
    UNIQUE Key 唯一键
    PRIMARY KEY 主键
    FOREIGN KEY 外键
    CHECK 检查

约束作为数据库对象,存放在系统表中,也有自己的名字 创建约束的时机 在建表的同时创建 建表后创建(修改表) 可定义列级或表级约束 有单列约束和多列约束

定义约束的语法
1、非空约束(NOT NULL) 列级约束
只能使用列级约束语法定义, 确保字段值不允许为空,只能在字段级【VARCHAR()】定义

create table tb_student( 
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(18) NOT NULL 
) ;

在这里插入图片描述
所有数据类型的值都可以是NULL。 空字符串不等于NULL。 0也不等于NULL。
2、唯一约束
唯一性约束条件确保所在的字段或者字段组合不出现重复值
唯一性约束条件的字段允许出现多个NULL 同一张表内可建多个唯一约束
唯一约束可由多列组合而成 建唯一约束时MySQL会为之建立对应的索引。
如果不给唯一约束起名,该唯一约束默认与列名相同

CREATE TABLE tb_student1( 
id INT PRIMARY KEY AUTO_INCREMENT, 
NAME VARCHAR(18) UNIQUE NOT NULL
 );

在这里插入图片描述
3、主键约束PRIMARY KEY
主键从功能上看相当于非空且唯一
一个表中只允许一个主键
主键是表中唯一确定一行数据的字段
主键字段可以是单字段或者是多字段的组合
当建立主键约束时,MySQL为主键创建对应的索引 主键约束名总为PRIMARY。

CREATE TABLE tb_student2( 
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(18) 
);

在这里插入图片描述

4、外键约束
外键是构建于一个表的两个字段或者两个表的两个字段之间的关系
外键确保了相关的两个字段的两个关系: 子(从)表外键列的值必须在主表参照列值的范围内,或者为空(也可以加非空约束,强制不允许为空)。
当主表的记录被子表参照时,主表记录不允许被删除。
外键参照的只能是主表主键或者唯一键,保证子表记录可以准确定位到被参照的记录。
格式
FOREIGN KEY (外键列名)REFERENCES 主表(参照列)

CREATE TABLE tb_dept( 
dept_id INT PRIMARY KEY, 
NAME VARCHAR(18), 
description VARCHAR(255)
 );
CREATE TABLE tb_employee(
  employee_id INT PRIMARY KEY, 
  NAME VARCHAR(18), 
  gender VARCHAR(10), 
  dept_id INT, 
  address VARCHAR(255),
  FOREIGN KEY(dept_id) REFEREnces tb_dept(dept_id)
    );

删除表的约束

  • 删除NOT NULL约束: alter table 表名 modify 列名 类型;
  • 删除UNIQUE约束 :alter table 表名 drop index 惟一约束名;
  • 删除PRIMARY KEY约束: alter table 表名 drop primary key;
  • 删除FOREIGN KEY约束: alter table 表名 drop foreign key 外键名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值