约束:
按功能划分:NOT NULL(非空约束),PRIMARY KEY(主键约束),UNIQUE KEY(唯一约束),DEFAULT(默认约束), FOREIGN KEY (外键约束)。
按数据列数目划为:表级约束和列级约束
列级约束:对于一个数据列建立的约束,称为列级约束;
表级约束:对于多个数据列建立的约束,称为表级约束;
列级约束既可以在列定义时声明,也可以在列定义之后声明,而表级约束只能在列定义之后声明。
修改数据表:
添加单列:
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name];FIRST表示将新添加的数据列放在最前面,AFTER表示将添加的数据列放在指定的列后面。如果省略了FIRST和AFTER,新添加的数据列将位于所有列的下面。
添加多列:
ALTER TABLE tbl_name ADD[COLUMN] (col_name1 col_definition,...);添加单列的时候,不需要加小括号,添加多列是必须添加小括号,且添加多列是不能指定位置。
删除列:
ALTER TABLE tbl_name DROP [COLUMN] col_name;删除多列:
ALTER TABLE tbl_name DROP [COLUMN] col_name1,DORP [COLUMN] col_name2...;可以同时删除和添加列,用逗号隔开。
添加主键约束:
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]]PRIMARY KEY [index_type](index_col_name,...);添加唯一约束:
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...);添加外键约束:
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference definition;添加/删除默认约束:
ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal|DROP DEFAULT};删除主键约束:(一张表只有一个主键约束,所以不需要加名字)
ALTER TABLE tb_name DROP PRIMARY KEY;删除唯一约束:(一张表可以有多个唯一约束,所以必须添加名字)
ALTER TABLE tbl_name DROP {INDEX|KEY} index_name;删除外键约束:
ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol;修改列定义:
ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST|AFTER col_name];修改列名称:
ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name];数据表更名:
方法1:
ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name;方法2:
RENAME TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_name2]...;