MySql數據庫約束,主鍵和外鍵約束的添加刪除,代碼實現,sql語句實現


--概述 

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

1. primary key:主鍵約束  要求表中有一個列 唯一 且 非空,通常我們使用id作為主鍵

2. unique:唯一約束

3. not null:非空約束

4. default:默認值

5. foreign key:外鍵約束

1.主鍵約束

-- 給student表添加主鍵約束
ALTER TABLE student ADD PRIMARY KEY(id);

-- 創建表,指定主鍵約束
CREATE TABLE stu1(
 id INT PRIMARY KEY AUTO_INCREMENT,
 `name` VARCHAR(32)
);

-- 創建表時,可以指定主鍵約束(多個字段) 聯合主鍵
CREATE TABLE stu2(
 id INT,
 `name` VARCHAR(32),
 PRIMARY KEY(id,`name`)
);

-- 修改自增器起始值...
ALTER TABLE stu3 AUTO_INCREMENT=10000;

-- 先移除自增器
ALTER TABLE stu3 MODIFY id INT;

-- 再移除主鍵約束
ALTER TABLE stu3 DROP PRIMARY KEY;

2.唯一約束

限定某一列的值不能重復,不能限定NULL

-- 創建表時指定字段為唯一約束
create table 表名(
  列名 數據類型 unique
);

3.非空約束

create table 表名(
  列名 數據類型 not null, -- 非空約束
  列名 數據類型 unique not null -- (唯一+非空) 約束
);
-- 唯一 + 非空 
CREATE TABLE stu5(
    id INT PRIMARY KEY AUTO_INCREMENT,
   `name` VARCHAR(32) UNIQUE NOT NULL
);

4.默認值

限定某一列的默認值,再沒有指定的情況下所有列的默認值為null

--創建表時指定字段默認值
create table 表名(
   列名 數據類型 default 默認值,
   ...
   ...
);
-- 默認值
CREATE TABLE stu6(
   id INT PRIMARY KEY AUTO_INCREMENT,
   `name` VARCHAR(32) DEFAULT NULL,
   sex VARCHAR(5) DEFAULT ''
);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM