新增/刪除約束(Oracle)
增加一列或者多列
alter table 表名 add(column_name datatype[,..]);
修改一列或者多列(修改列的型別或者是長度)
alter table 表名 modify(column_name datatype[,..]);
刪除一列
alter table 表名 drop column column_name;
刪除多列
alter table 表名 drop(column_name[,..])[@more@]建表階段新增約束(欄位級|表級)
非空約束(not null)
1)確保其所在欄位值不能為空
2)非空約束只能定義為欄位級別
基本語法:column_name datatype not null
唯一約束(unique)
1)確保其所在欄位值不能重複
2)允許空值
3)既可以定義為欄位級別也可以定義到表級別
4)可以在一個欄位上建立唯一約束
(此欄位值不能重複,既可以是表級別也可以是欄位級別),
也可以在幾個欄位上建立唯一約束(這幾個欄位的組合值不能重複,只能是表級別的)
5)Oracle會自動為建立唯一約束的欄位建立索引
欄位級別:column_name datatype unique
表級別:
constraint uni_name unique(column_name[,..])自定義約束名
或者
unique(column_name[,..]) 系統自動分配約束名
刪除約束:alter table 表名 drop constraint 約束名;
主鍵約束(primary key)
1)確保所在欄位值非空且唯一
2)一個表最多隻允許一個主鍵,當然這個主鍵可以基於一個欄位也可以基於多個欄位
3)非聯合主鍵既可以是欄位級別的也可以是表級別的,聯合主鍵只能是表級別的
4)oracle會自動為其建立索引
欄位級別:column_name datatype primary key
表級別:
constraint p_k primary key(column_name[,..])自定義約束名
或者
primary key(column_name[,..])系統自動分配約束名
一般情況下我們選擇透過序列讓系統去幫我們確保不違反主鍵約束
create table 表名(column_name datatype primary key,column_name2 datatype[,..]);
create sequence 序列名;
insert into 表名 values(序列名.nextval,值[,..])
刪除主鍵:
alter table 表名 drop constraint 約束名;
或者
alter table 表名 drop primary key;
外來鍵約束(foreign Key)
1)確保所在欄位的值與另一個表中的欄位值有一定的關聯關係
2)既可以定義為欄位級別也可以定義為表級別
3)被外來鍵關聯上的另一個表的欄位必須唯一(即此欄位必須是
unique或者primary key)
欄位級別:column_name datatype reference 父表名(欄位名)
表級別:
constraint f_k foreign key(column_name) references 父表名(欄位名) --自定義約束名
或者
foreign key(column_name) references 父表名(欄位名) --系統自動分配約束名
刪除父表(主表):
方式一:先刪除子表或者只刪除子表的外來鍵約束
然後使用drop table 表名刪父表
方式二:drop table 父表名 cascade constraints;
檢查約束(check)
1)確保所在欄位的值在check所給的範圍裡面
2)既可以定義為欄位級別也可以定義為表級別
欄位級別:column_name datatype check(值1,值2)
表級別:constraint c_k check(條件)--自定義約束名
或者check(條件)--系統自動分配約束名
建完表後新增約束
alter table 表名 add constraint 約束名 unique(column_name[,..])--自定義約束名
alter table 表名 add unique(column_name[,..]);--系統自動分配約束名
主鍵約束、外來鍵約束、檢查約束的新增形如唯一約束
非空約束的新增
alter table 表名 modify(column_name not null);
禁用約束:
alter table 表名 disable constraint 約束名;
啟用約束
alter table 表名 enable constraint 約束名;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7490392/viewspace-1052055/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql-基本練習(06-唯一約束、外來鍵約束、新增、刪除單列)MySql
- 批量刪除MSSQL 中主外來鍵約束SQL
- oracle11g_RAC新增刪除節點Oracle
- (10)邏輯綜合新增約束(環境約束)
- Sqlserver中所有約束的型別,建立、修改與刪除SQLServer型別
- 生成指令碼,得到所有表的外來鍵約束,然後刪除並重建這些約束指令碼
- Oracle 增加修改刪除欄位與新增註釋Oracle
- oracle 註釋和約束Oracle
- 10、Oracle中的約 束constraintOracleAI
- 新增、刪除PPA源
- mysql新增約束語句筆記MySql筆記
- 【SQL】15 SQL 約束(Constraints)、NOT NULL 約束、UNIQUE 約束、PRIMARY KEY 約束、FOREIGN KEY 約束、CHECK 約束、DEFAULT約束SQLAINull
- oracle刪除日誌Oracle
- Sql server 檢視錶引用、依賴項,刪除表及約束 指令碼SQLServer指令碼
- 如何解決邏輯刪除與資料庫唯一約束衝突資料庫
- Oracle叢集軟體管理-新增和刪除叢集節點Oracle
- 【RAC】Oracle10g rac新增刪除節點命令參考Oracle
- jQuery 新增和刪除classjQuery
- 紅黑樹新增刪除
- 請求結束後刪除檔案
- oracle外來鍵約束的總結Oracle
- 刪除oracle重複值Oracle
- Oracle 增加 修改 刪除 列Oracle
- 陣列的方法-新增刪除陣列
- class屬性的新增刪除
- 新增cookie、刪除cookie、清除cookieCookie
- oracle級聯刪除使用者,刪除表空間Oracle
- Oracle如何管理帶約束的B樹索引Oracle索引
- (9)邏輯綜合新增約束(時序、DRC)
- mysql不能新增外來鍵約束怎麼辦MySql
- oracle刪除重資料方法Oracle
- oracle大資料量分批刪除Oracle大資料
- mysql-刪除和新增主鍵MySql
- JavaScript 陣列新增或者刪除元素JavaScript陣列
- Linux基礎命令—新增/刪除組Linux
- Ubuntu新增刪除環境變數Ubuntu變數
- CentOS新增、刪除環境變數CentOS變數
- jQuery為元素新增和刪除classjQuery
- Cookie新增、獲取以及刪除操作Cookie