首頁 > 軟體

MySQL資料庫的約束限制詳解

2022-08-03 14:08:39

一、介紹

資料庫的約束是對錶中資料進行的一種限制,為了保證資料的正確性、有效性、完整性。

無論是在新增資料還是在刪除資料的時候,都能提供幫助。所有的關係型資料庫都支援對資料表的約束。

  • 主鍵:唯一標識一條記錄,不能重複,不允許為空。主要用來保證資料的完整性。
  • 外來鍵: 表的外來鍵是另一表的主鍵,外來鍵可以有重複,可以為控制。主要用來和其他表建立聯絡。

二、操作

新增

新增主鍵:

// 一般設定id為主鍵
CREATE TABLE student(
	id INT PRIMARY KEY,
	NAME VARCHAR(30),
	age INT
);

新增自增主鍵:

CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(30),
	age INT
);

建立唯一約束:

// 這裡age為唯一約束
CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(30),
	age INT UNIQUE
);

建立非空約束:

// 這裡 NAME 屬性為非空約束
CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(30) NOT NULL,
	age INT UNIQUE
);

建表時新增外來鍵約束:

// 這裡是指orderlist這個表的uid是USER表id主鍵的外來鍵約束 
CREATE TABLE orderlist(
	id INT PRIMARY KEY AUTO_INCREMENT,    -- id
	number VARCHAR(20) NOT NULL,          -- 訂單編號
	uid INT,			      -- 外來鍵列
	CONSTRAINT ou_fk1 FOREIGN KEY (uid) REFERENCES USER(id)
);

建表後單獨新增主鍵約束:

ALTER TABLE student MODIFY id INT PRIMARY KEY;

建表後單獨新增非空約束:

ALTER TABLE student MODIFY NAME VARCHAR(30) NOT NULL;

建表後單獨新增唯一約束:

ALTER TABLE student MODIFY age INT UNIQUE;

建表後單獨新增外來鍵約束:

ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN KEY (uid) REFERENCES USER(id);

刪除

刪除主鍵:

LTER TABLE student DROP PRIMARY KEY;

刪除自增約束:

ALTER TABLE student MODIFY id INT;

刪除唯一約束:

ALTER TABLE student DROP INDEX age;

刪除非空約束:

ALTER TABLE student MODIFY NAME VARCHAR(30);

刪除外來鍵約束:

ALTER TABLE orderlist DROP FOREIGN KEY ou_fk1;

外來鍵聯級操作

	新增外來鍵約束,同時新增級聯更新  標準語法:
	ALTER TABLE 表名 ADD CONSTRAINT 外來鍵名 FOREIGN KEY (本表外來鍵列名) REFERENCES 主表名(主鍵列名) 
	ON UPDATE CASCADE;
	
	新增外來鍵約束,同時新增級聯刪除  標準語法:
	ALTER TABLE 表名 ADD CONSTRAINT 外來鍵名 FOREIGN KEY (本表外來鍵列名) REFERENCES 主表名(主鍵列名) 
	ON DELETE CASCADE;
	
	新增外來鍵約束,同時新增級聯更新和級聯刪除  標準語法:
	ALTER TABLE 表名 ADD CONSTRAINT 外來鍵名 FOREIGN KEY (本表外來鍵列名) REFERENCES 主表名(主鍵列名) 
	ON UPDATE CASCADE ON DELETE CASCADE;

到此這篇關於MySQL資料庫的約束限制詳解的文章就介紹到這了,更多相關MySQL 約束內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com