Sql增加,删除,修改列及修改约束
1. 查看约束条件
- MySQL: SELECT * FROM information_schema.`TABLE_CONSTRAINTS` where table_name = 'book';
- Oracle: SELECT * where table_name = '表名';
2. 使约束生效和失效
- Oracle
使约束条件失效:
ALTER TABLE 表名 DISABLE CONSTRANT 约束名;
使约束条件生效:
ALTER TABLE 表名 ENABLE CONSTRANT 约束名;
- MySQL
3. 修改列的约束条件
- 删除主键:alter table 表名 drop primary key;
- 删除非空约束:alter table 表名 modify 字段名 null;
- 删除外键:alter table 表名 drop foreign key fk_name;
- 删除唯一键:alter table 表名 drop index index_name;
- 添加表、列级约束:alter table 表名 modify (column) 字段名 字段类型 新约束
- 添加表级约束: alter table 表名 add [constraint 约束名] 约束类型(字段名) [外键的引用]
3. 修改表结构
- 增加新列
- Oracle:
ALTER TABLE 表名 ADD 列名 数据类型[DEFAULT 表达式][COLUMN CONSTRAINT];
如果要为表同时增加多列,可以按以下格式进行:
ALTER TABLE 表名 ADD (列名 数据类型[DEFAULT 表达式][COLUMN CONSTRAINT]...);
- MySQL:
ALTER TABLE 表名 add 字段名称 类型(int,char,VARCHAR...) (约束)
- 修改列
修改列的属性
- ALTER TABLE table_name MODIFY 字段名称 类型定义 (约束) ;
修改列(可以修改列的名称)
- ALTER TABLE users2 CAHNGE 列名 新列名 类型定义 约束;
- 删除列
- Mysql: ALTER TABLE table_name DROP column_name;
- Oracle: ALTER TABLE 表名 DROP COLUMN 列名[CASCADE CONSTRAINTS];