NOT NULL:标识该字段不能为空
DEFAULT VALUE:标识该字段设置默认值,默认值为value
PRIMARY KEY:标识该字段为该表的主键,可以唯一的标识记录,插入重复的会报错
⽅式1:跟在列后
CREATE table lib(
a INT NOT NULL COMMENT '字段a' PRIMARY KEY
);
方式2:在所有列定义之后定义
CREATE TABLE lib(
a INT NOT NULL COMMENT '字段a',
b INT NOT NULL DEFAULT 0 COMMENT '字段b',
PRIMARY KEY(a)
);
此方式支持设置多个主键,中间用逗号隔开
FOREIGN KEY:为表中的字段设置外键
语法:
FOREIGN KEY(当前表的列名) REFERENCES 引⽤的外键表(外键表中字段名称)
注意:
• 两张表中需要建⽴外键关系的字段类型需要⼀致
• 要设置外键的字段不能为主键
• 被引⽤的字段需要为主键
• 被插⼊的值在外键表必须存在
UNIQUE KEY:唯一约束,表明此字段是唯一的
语法:
方式1:
写在字段定义后
CREATE TABLE lib(
a INT NOT NULL UNIQUE KEY
);
方式2:
写在所有列之后
CREATE TABLE lib(
a INT NOT NULL,
b INT NOT NULL,
UNIQUE KEY(a,b)
);
AUTO_INCREMENT:自增约束(整数数据类型,且为主键)
注意:
⾃增长列当前值存储在内存中,数据库每次重启之后,会查询当前表中⾃增列的最⼤值作
为当前值,如果表数据被清空之后,数据库重启了,⾃增列的值将从初始值开始
ALTER TABLE 表名 RENAME TO 新表名;
--修改表名
ALTER TABLE 旧表名 RENAME AS 新表名
--添加字段
ALTER TABLE 表名 ADD 字段名 列类型[属性]
--修改字段
ALTER TABLE 表名 MODIFY 字段名 列类型[属性]
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型[属性]
--删除字段
ALTER TABLE 表名 DROP 字段名
表设置备注
ALTER TABLE 表名 COMMENT ‘备注信息’;
复制表
只复制表结构
CREATE TABLE 表名 LIKE 被复制的表名;
复制表结构+数据
CREATE TABLE 表名 AS SELECT 字段,…… FROM 被复制的表 WHERE 条件;
表中列的管理
添加列
ALTER TABLE 表名 ADD COLUMN 列名 类型 列约束...;
修改列
ALTER TABLE 表名 MODIFY COLUMN 列名 新类型 约束;
ALTER TABLE 表名 CHANGE COLUMN 列名 新列明 新类型 约束;
2种⽅式区别:modify不能修改列名,change可以修改列名