MySQL学习笔记之约束条件

时间:2022-09-21 12:10:57

约束条件:

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;