Oracle将表中的列禁用,oracle:表、列、約束等操作,table,constraint,column

創建表的語法

CREATE [GLOBAL TEMPORARY] TABLE table_name(

column_name type [CONSTRAINT constraint_def DEFAULT default_exp]

[,column_name type [CONSTRAINT constraint_def DEFAULT default_exp]…]

)

[ON COMMIT {DELETE| PRESERVE }ROWS]

TABLESPACE table_space;

GLOBAL TEMPORARY 說明該表為臨時表。行的有效期有 ON COMMIT 子句決定。臨時表對於說有會話都可見,但是這些行則是特定於某個會話的。

constraint_def 指定了對某個列的約束定義,可以用於刪除指定的約束或重復使用該約束。

ON COMMIT 控制臨時表中行的有效期。DELETE 說明這些行在事務的末尾要被刪除。PRESERVE說明這些行在會話的末尾要被刪除。如果沒有指定ON COMMIT ,默認為 DELETE

table_space為該表指定表空間,如果沒有指定,該表會被存儲在該用戶的默認表空間中。

獲得有關表的信息

可以直接DESCRIBE

DESC[RIBE] table_name;

可以通過數據字典

SELECT *

FROM user_tables

WHERE table_name =xxxx;

[or WHERE table_name IN ('xxxx','xxxx')]

重命名表

RENAME table_old_name TO table_new_name;

截斷表

刪除表中的所有行,並重置表的存儲空間,表的表名列屬性等會保留。

TRUNCATE table_name;

刪除表

DROP TABLE table_name;

向表、列添加注釋

COMMENT ON TABLE table_name IS 'xxxxx';

COMMENT ON COLUMN table_name.column_name IS 'xxxx';

獲得表、列的信息

SELECT *

FROM user_tab_comments

WHERE table_name='xxx';

SELECT *

FROM user_col_comments

WHERE table_name='xxx';

獲得表中的列的信息

SELECT *

FROM user_tab_columns

WHERE table_name='xxxx';

添加列

ALTER TABLE table_name

ADD column_name type;

重命名列

ALTER TABLE table_name

RENAME COLUMN column_old_name TO column_new_name;

修改列

ALTER TABLE table_name

MODIFY column_name type;

如果一個表中沒有任何行或列為空值,可以將表列修改為任意一種數據類型,tpye 為數據類型。

修改列的默認值

ALTER TABLE table_name

MODIFY column_name DEFAULT xxxx;

刪除列

ALTER TABLE table_name

DROP COLUMN column_name;

對列添加約束

添加CHECK 約束

ALTER TABLE table_name

ADD CONSTRAINT constraint_name

CHECK ( column_name IN ('xxx','xxxx'));

[or CHECK ( column_name >0)]

添加一個約束,表中現有的行一定要符合這個約束條件。

添加NOT NULL 約束

CREATE TABLE table_name

MODIFY column_name [CONSTRAINT constraint_name] NOT NULL;

NOT NULL 是用MODIFY 添加的, 上述[]是為這個約束添加一個名字。

添加FOREIGN KEY約束

ALTER TABLE table_name

DROP COLUMN column_name;

ALTER TABLE table_name

ADD [CONSTRAINT constraint_name]

column_name REFERENCES table_name1(column_name1) [ON DELETE {CASCADE | SET NULL} ];

通常需要先刪除該列然后通過添加列時吧FOREIGN KEY 一起添加。

ON DELETE CASCADE 為級聯刪除。

ON DELETE SET NULL 為外鍵被刪除時該位置設 NULL。

添加UNIQUE 約束

ALTER TABLE table_name

ADD CONSTRAINT constraint_name UNIQUE(column_name);

刪除約束

ALTER TABLE table_name

DROP CONSTRAINT constraint_name;

禁用約束

默認情況下,約束在創建是啟動,可以再創建時禁用約束。

ALTER TABLE table_name

ADD CONSTRAINT constraint_name UNIQUE(column_name) DISABLE;

啟動約束、禁用約束

ALTER TABLE table_name

{ENABLE|DISABLE } CONSTRAINT constraint_name;

啟動約束時表中數據必須滿足約束條件,通過制定 ENABLE NOVALIDATE 可以選擇只對新數據應用某個約束。

ALTER TABLE table_name

ENABLE NOVALIDATE CONSTRAINT constraint_name;

約束默認情況下是 ENABLE VALIADTE;

延時約束

在事務被提交是強制執行的約束。在添加約束是指定 DEFERRABLE ,約束添加后不能修改,只能通過刪除重新添加。有兩種標識,

INITIALLY INNEDIATE :每次向表中添加數據、修改表的數據或從表中刪除數據是都檢測則個約束。

INITALLY DEFERRED :只在有事務被提交是,才檢測這個約束。

ALTER TABLE table_name

ADD CONSTRAINT constraint_name UNIQUE(column_name) DEFERRABLE INITIALLY DEFERRED;

獲得有關約束的信息

SELECT *

FROM user_constraints

WHERE table_name = 'xxx';

可以通過表 all_constraints 獲得所有可以訪問的約束信息。

獲得有關列的約束的信息

SELECT *

FROM user_con_columns

WHERE table_name ='xxx';

轉載地址:http://www.cnblogs.com/Azhu/archive/2012/04/15/2450179.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值