天天看点

MySQ建表中的字段约束

对表中的数据进行限定, 保证数据的正确性、有效性和完整性。

一. 非空约束

​NOT NULL​

​, 值不能为null(对于字符串类型要设置非空, 防止空指针异常)
  1. 添加非空约束的两种方式
  • 创建表时, 添加非空约束
CREATE TABLE stu(
  id INT,
  name VARCHAR(20) NOT NULL -- 添加了NOT NULL非空约束
);      
  • 创建完表后, 添加非空约束

    ​​

    ​ALTER TABLE stu MODIFY name VARCHAR(20) NOT NULL;​

  1. 删除name的非空约束

    ​ALTER TABLE stu MODIFY name VARCHAR(20);​

二. 唯一约束

unique, 某一列的值不能重复

Tips: 唯一约束可以有NULL值, 且NUlLL可以重复

  1. 添加唯一约束的两种方式
  • 创建表示, 给某字段添加唯一约束
CREATE TABLE stu(
  id INT,
  phone_number VARCHAR(11) UNIQUE -- 添加唯一约束
);      
  • 创建表之后, 添加唯一约束

    ​​

    ​ALTER TABLE stu MODIFY phone_number VARCHAR(11) UNIQUE;​

  1. 删除唯一约束

    ​ALTER TABLE stu DROP INDEX phone_number;​

唯一约束, 也叫唯一索引, 因此与删除非空约束的方式是不同的.

三. 主键约束

主键(primary key) : 非空且唯一.
  1. 一张表只能有一个字段为主键.
  2. 主键就是表中记录的唯一标识
  1. 添加主键约束的两种方式
  • 创建表时, 添加主键约束
CREATE TABLE stu(
id INT PRIMARY KEY, -- 添加主键约束
phone_number VARCHAR(11) 
);      
  • 创建完标后, 添加主键

    ​​

    ​ALTER TABLE stu MODIFY id INT PRIMARY KEY;​

  1. 删除主键约束

    ​ALTER TABLE stu DROP PRIMARY KEY;​

3.1 自动增长

在添加主键时, 通常会配合自动增长一起使用.
  1. 概念 : 如果某一列是数值类型, 使用 ​

    ​auto_increment​

    ​ 可以完成值的自动增长
  2. 在创建表时, 添加主键约束, 并完成主键自增长.
create table stu(
  id int primary key auto_increment, --给id添加主键约束,并自增长
  name varchar(20)
);      

添加自动增长的第二种方式

​​

​ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;​

  1. 删除自动增长

    ​​

    ​ALTER TABLE stu MODIFY id INT;​

四. 外键约束

foreign key, 让表与表产生关系, 从而保证数据的正确性.
  1. 添加外键的两种方式
  • 创建表示添加外键
create table 表名(
  ...
  外键列
  constraint 外键名称 foreign key (外键列名称) references 主键名称(主表列名称)
)      

Tips : constraint : 强制,限制, 约束

references 参考; 标记

  • 创建表之后, 添加外键

    ​​

    ​ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主键名称(主表列名称);​

  1. 删除外键

    ​​

    ​ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;​

4.1 级联操作

  1. 添加级联操作

    语法 : ​​

    ​ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATA CASCADE ON DELETE CASCADE;​

  2. 分类 :
  • 级联更新 : ​

    ​ON UPDATE CASCADE​

  • 级联删除 : ​

    ​ON DELETE CASCADE​

继续阅读