《MySQL——约束》
生活随笔
收集整理的這篇文章主要介紹了
《MySQL——约束》
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 主鍵約束
- 唯一主鍵
- 非空約束
- 默認約束
- 外鍵約束
主鍵約束
-- 主鍵約束 -- 使某個字段不重復且不得為空,確保表內所有數據的唯一性。 CREATE TABLE user (id INT PRIMARY KEY,name VARCHAR(20) );-- 聯合主鍵 -- 聯合主鍵中的每個字段都不能為空,并且加起來不能和已設置的聯合主鍵重復。 CREATE TABLE user (id INT,name VARCHAR(20),password VARCHAR(20),PRIMARY KEY(id, name) );-- 自增約束 -- 自增約束的主鍵由系統自動遞增分配。 CREATE TABLE user (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20) );-- 添加主鍵約束 -- 如果忘記設置主鍵,還可以通過SQL語句設置(兩種方式): ALTER TABLE user ADD PRIMARY KEY(id); ALTER TABLE user MODIFY id INT PRIMARY KEY;-- 刪除主鍵 ALTER TABLE user drop PRIMARY KEY;唯一主鍵
-- 建表時創建唯一主鍵 CREATE TABLE user (id INT,name VARCHAR(20),UNIQUE(name) );-- 添加唯一主鍵 -- 如果建表時沒有設置唯一建,還可以通過SQL語句設置(兩種方式): ALTER TABLE user ADD UNIQUE(name); ALTER TABLE user MODIFY name VARCHAR(20) UNIQUE;-- 刪除唯一主鍵 ALTER TABLE user DROP INDEX name;非空約束
-- 建表時添加非空約束 -- 約束某個字段不能為空 CREATE TABLE user (id INT,name VARCHAR(20) NOT NULL );-- 移除非空約束 ALTER TABLE user MODIFY name VARCHAR(20);默認約束
-- 建表時添加默認約束 -- 約束某個字段的默認值 CREATE TABLE user2 (id INT,name VARCHAR(20),age INT DEFAULT 10 );-- 移除非空約束 ALTER TABLE user MODIFY age INT;外鍵約束
-- 班級 CREATE TABLE classes (id INT PRIMARY KEY,name VARCHAR(20) );-- 學生表 CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(20),-- 這里的 class_id 要和 classes 中的 id 字段相關聯class_id INT,-- 表示 class_id 的值必須來自于 classes 中的 id 字段值FOREIGN KEY(class_id) REFERENCES classes(id) );需要注意
1. 主表(父表)classes 中沒有的數據值,在副表(子表)students 中,是不可以使用的; 2. 主表中的記錄被副表引用時,主表不可以被刪除。總結
以上是生活随笔為你收集整理的《MySQL——约束》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杭州学车多少钱啊?
- 下一篇: 《MySQL——数据表设计三大范式》