1. 程式人生 > 其它 >S2-001復現分析

S2-001復現分析

一、概念

對錶中的資料進行限定,保證資料的正確性、有效性和完整性

 

二、分類

  • 主鍵約束:primary key
  • 非空約束:not null,值不能為 null
  • 唯一約束:unique,值不能重複
  • 外來鍵約束:foreign key,讓表與表產生聯絡,從而保證資料正確性

 

三、主鍵約束

1、新增約束(建立表時)

create table stu(
        id int primary key,    -- 給id新增主鍵約束
        name varchar(20)
);

2、新增約束(建立完表後)

ALTER TABLE stu MODIFY id INT PRIMARY
KEY;

3、刪除約束

錯誤:
ALTER TABLE stu modify id int ;
正確:
ALTER TABLE stu DROP PRIMARY KEY;

4、自動增長

(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;
  • 刪除自動增長
ALTER TABLE stu MODIFY id INT;

5、注意

  • 主鍵約束非空且唯一
  • 一張表只能有一個欄位為主鍵
  • 主鍵就是表中記錄的唯一標識

 

四、非空約束

1、新增約束(建立表時)

CREATE TABLE stu(
    id INT,
    NAME VARCHAR(20) NOT NULL -- name為非空
);

2、新增約束(建立完表後)

ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;

3、刪除約束

ALTER TABLE stu MODIFY NAME VARCHAR
(20);

 

五、唯一約束

1、新增約束(建立表時)

CREATE TABLE stu(
    id INT,
    phone_number VARCHAR(20) UNIQUE -- 添加了唯一約束
);

2、新增約束(建立完表後)

ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;

3、刪除約束

ALTER TABLE stu DROP INDEX phone_number;

 

六、外來鍵約束

1、新增約束(建立表時)

create table 表名(
    ....
    外來鍵列
    constraint 外來鍵名稱 foreign key (外來鍵列名稱) references 主表名稱(主表列名稱)
);

2、新增約束(建立完表後)

ALTER TABLE 表名 ADD CONSTRAINT 外來鍵名稱 FOREIGN KEY (外來鍵欄位名稱) REFERENCES 主表名稱(主表列名稱);

3、刪除約束

ALTER TABLE 表名 DROP FOREIGN KEY 外來鍵名稱;

4、級聯操作

(1)新增級聯操作

ALTER TABLE 表名 ADD CONSTRAINT 外來鍵名稱 
    FOREIGN KEY (外來鍵欄位名稱) REFERENCES 主表名稱(主表列名稱) ON UPDATE CASCADE ON DELETE CASCADE  ;

(2)級聯更新

ON UPDATE CASCADE

(3)級聯刪除

ON DELETE CASCADE