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