约束
外键约束
- 查看建表语句
- SHOW CREATE TABLE tb_name
*** 参照列创建主键时自动创建了索引,而外键列创建自动创建了索引 ***
外键约束的参照操作
*** 物理的外键约束很少使用,而是使用逻辑的外键约束,只有innodb引擎支持
修改数据表
添加单列
- ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST |AFTER col _name]
添加多列
*** 不能指定列的位置 ***
- ALTER TABLE tbl_name ADD [COLUMN]
- (col_name column_definition,
- …)
删除列
- ALTER TABLE tbl_name DROP [COLUMN] col_name
*** 也可以进行复合操作,如同时删除两列,或者删除一列的同时添加一列,中间用逗号隔开即可
添加主键约束
- ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,
- …)
- *** symbol 别名,索引类型分为B tree和哈希 ***
添加唯一约束
- 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 tbl_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]