MySQL 約束的概念及使用方法

1. 約束的概念

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

2. 約束的分類

(1)主鍵約束:primary key
(2)非空約束:not null
(3)唯一約束:unique
(4)外鍵約束:foreign key

2.1 非空約束:值不能爲空

(1)創建表時添加約束
CREATE TABLE STU(
    id INT,
    name VARCHAR(20) NOT NULL;#name爲非空
);
(2)創建表後,添加非空約束
ALTER TABLE stu MODIFY name VARCHAR(20) NOT NULL;
(3)刪除name的非空約束
ALTER TABLE stu MODIFY name VARCHAR(20);

2.2 唯一約束:值不能重複

(1)創建表時添加約束
CREATE TABLE STU(
    id INT,
    tel VARCHAR(20) UNIQUE;#tel不能重複
);
(2)創建表後,添加唯一約束
ALTER TABLE stu MODIFY tel VARCHAR(20) UNIQUEL;
(3)刪除tel的唯一約束
ALTER TABLE stu DROP INDEX tel;

2.3 主鍵約束:非空且唯一,一個表中只能有一個主鍵,唯一標識

(1)創建表時添加主鍵約束
CREATE TABLE STU(
    id INT primary key,#添加主鍵
    name VARCHAR(20)
);
(2)創建表後,添加主鍵約束
ALTER TABLE stu MODIFY id int primary key;
(3)刪除主鍵約束
ALTER TABLE stu DROP PRIMARY KEY;

2.4.1 主鍵約束中的自動增長

(1)創建表時添加主鍵約束及自增長
CREATE TABLE STU(
    id INT primary key auto_increment,#添加主鍵及自增長
    name VARCHAR(20)
);
(2)創建表後,添加主鍵約束及自增長
ALTER TABLE stu MODIFY id INT primary key auto_increment;
(3)刪除自增長,無法刪除主鍵
ALTER TABLE stu MODIFY id INT;

2.5 外鍵約束

(1)創建表時添加外鍵約束
CREATE TABLE 表名(
    ......
    外鍵列
    constraint 外鍵名稱 foreign key (外鍵列名稱) references 主表名稱(主表列名稱)
);

(2)創建表後,添加主鍵約束及自增長
ALTER TABLE 表名 ADD constraint 外鍵名稱 foreign key (外鍵列名稱) references 主表名稱(主表列名稱);

(3)刪除外鍵約束
ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱;

2.5.1 外鍵約束設置級聯更新和級聯刪除

ALTER TABLE 表名 ADD constraint 外鍵名稱 foreign key (外鍵列名稱) references 主表名稱(主表列名稱) on update cascade on delete cascade;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章