天天看點

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​

繼續閱讀