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];


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM