create table [if not exists] 表名(
列名1,
列名2,
...,
)if not exists可写可不写。用于检查数据库里是否存在相同名字的表,如果有会自动忽略这一次建表。
列名与列名之间用逗号隔开。
列名 data_type(length) [Not NUll] [DEFAULT value] [AUTO_INCREMENT] column_constraint;data_type( length )
note: char与varchar的区别是前者是固定长度的,后者是可以变化长度的。
2. Not Null:保证字段不能是空的
3. DEFAULT value:默认值
4. AUTO_INCREMENT:自动增长编号
5. column_constraint:
PRIMARY KEY:可以写在单个列名后面,也可以写在最后primary key(col1, col2,...)
Foreign Key: FOREIGN KEY (子表列名)
REFERENCES 父名(父表列名)
ON DELETE(见note3)
ON UPDATE()
check::保证字段满足一定的条件
Unique:保证字段不重复
note:1. 这些选项之间用空隔隔开即可
2. 可以用describe 表名 看看表结构
3. CASCADE: 对父表进行增删操作,自动影响子表的增删
SET NULL: 对父表进行增删操作,子表中的外键将失去意义
RESTRICT: 不允许对父表进行增删操作
NO ACTION: 不允许对父表进行增删操作