MySQL:約束
阿新 • • 發佈:2022-03-07
- 概念: 對錶中的資料進行限定,保證資料的正確性、有效性和完整性。
- 分類:
- 主鍵約束:primary key
- 非空約束:not null
- 唯一約束:unique
- 外來鍵約束:foreign key
非空約束:not null,值不能為null
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);
唯一約束:unique,值不能重複
1. 建立表時,新增唯一約束
CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE -- 添加了唯一約束
);
* 注意mysql中,唯一約束限定的列的值可以有多個null
2. 刪除唯一約束
ALTER TABLE stu DROP INDEX phone_number;
3. 在建立表後,新增唯一約束
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
主鍵約束:primary key。
1. 注意: 1. 含義:非空且唯一 2. 一張表只能有一個欄位為主鍵 3. 主鍵就是表中記錄的唯一標識 2. 在建立表時,新增主鍵約束 create table stu( id int primary key,-- 給id新增主鍵約束 name varchar(20) ); 3. 刪除主鍵 -- 錯誤 alter table stu modify id int ; ALTER TABLE stu DROP PRIMARY KEY; 4. 建立完表後,新增主鍵 ALTER TABLE stu MODIFY id INT PRIMARY KEY; 5. 自動增長: 1. 概念:如果某一列是數值型別的,使用 auto_increment 可以來完成值得自動增長 2. 在建立表時,新增主鍵約束,並且完成主鍵自增長 create table stu( id int primary key auto_increment,-- 給id新增主鍵約束 name varchar(20) ); 3. 刪除自動增長 ALTER TABLE stu MODIFY id INT; 4. 新增自動增長 ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
外來鍵約束:foreign key,讓表於表產生關係,從而保證資料的正確性。
1. 在建立表時,可以新增外來鍵 * 語法: create table 表名( .... 外來鍵列 constraint 外來鍵名稱 foreign key (外來鍵列名稱) references 主表名稱(主表列名稱) ); 2. 刪除外來鍵 ALTER TABLE 表名 DROP FOREIGN KEY 外來鍵名稱; 3. 建立表之後,新增外來鍵 ALTER TABLE 表名 ADD CONSTRAINT 外來鍵名稱 FOREIGN KEY (外來鍵欄位名稱) REFERENCES 主表名稱(主表列名稱); 4. 級聯操作 1. 新增級聯操作 語法:ALTER TABLE 表名 ADD CONSTRAINT 外來鍵名稱 FOREIGN KEY (外來鍵欄位名稱) REFERENCES 主表名稱(主表列名稱) ON UPDATE CASCADE ON DELETE CASCADE ; 2. 分類: 1. 級聯更新:ON UPDATE CASCADE 2. 級聯刪除:ON DELETE CASCADE
資料庫的備份和還原
- 命令列:
- 語法:
- 備份: mysqldump -u使用者名稱 -p密碼 資料庫名稱 > 儲存的路徑
- 還原:
- 登入資料庫
- 建立資料庫
- 使用資料庫
- 執行檔案。source 檔案路徑
- 語法:
- 圖形化工具:
參考來自黑馬,侵刪