MySQL學習筆記之約束條件

Thinkgamer_gyt發表於2015-09-09

約束條件:

PRIMARY KEY(主鍵)         NOT NULL(非空)              AUTO_INCREMENT(自增長)

UNIQUE(值唯一)                FOREING KEY(外來鍵)       DEFAULT(預設值)

 1、主鍵(一個表中主鍵只能有一個 ,但是可以組合使用,PRIMARY可以省略)

CREATE TABLE thinkgamer(

id INT PRIMARY KEY

);

符合主鍵使用例子

CREATE TABLE thinkgamer(

id INT,

number INT,

PRIMARY KEY(id,number)

);

2、非空

CREATE TABLE thinkgamer(

id INT PRIMARY KEY,

sex ENUM('男','女','保密') NOT NULL

)CHARSET=UTF8;

這裡必須指定字符集為utf8,否則會報錯: Column 'sex' has duplicated value '?' in ENUM

3、自增長

CREATE TABLE thinkgamer(

id INT PRIMARY KEY AUTO_INCREMENT,

sex ENUM('男','女','保密') NOT NULL

)CHARSET=UTF8;

在車入資料時自增長欄位可以這樣寫:

INSERT thinkgamer VALUES(1,'男');               #註釋:插入的第一條資料必須指定id

之後可以這樣寫INSERT thinkgamer VALUES(null,'男');或者INSERT thinkgamer(sex) VALUES('男');

4、唯一(指定的欄位不允許重複,一旦插入name重複就會報錯)

CREATE TABLE thinkgamer(

id INT PRIMARY KEY AUTO_INCREMENT,

sex ENUM('男','女','保密') NOT NULL,

name VARCHAR(20) UNIQUE

)CHARSET=UTF8;

5、外來鍵()

主要用於多表,具體請參考:http://www.cnblogs.com/babycool/archive/2012/05/06/2485809.html

6、預設值

CREATE TABLE thinkgamer(

id INT PRIMARY KEY AUTO_INCREMENT,

sex ENUM('男','女','保密') NOT NULL,

name VARCHAR(20) UNIQUE,

age INT DEFAULT 20

)CHARSET=UTF8;

相關文章