Oracle表、列、約束的操作

來源:互聯網
上載者:User

標籤:

獲得有關表的資訊

可以直接DESCRIBE

DESC[RIBE] table_name;

可以通過資料字典

SELECT * FROM user_tablesWHERE 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_commentsWHERE table_name=‘xxx‘;SELECT *FROM user_col_commentsWHERE table_name=‘xxx‘; 

獲得表中的列的資訊

SELECT *FROM user_tab_columnsWHERE table_name=‘xxxx‘;

 添加列

ALTER TABLE table_nameADD column_name type;

重新命名列

ALTER TABLE table_nameRENAME COLUMN column_old_name TO column_new_name; 

修改列 

ALTER TABLE table_nameMODIFY column_name type;

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

修改列的預設值 

ALTER TABLE table_nameMODIFY column_name DEFAULT xxxx;

 刪除列

ALTER TABLE table_nameDROP COLUMN column_name;

對列添加約束 

 添加CHECK 條件約束

ALTER TABLE table_nameADD CONSTRAINT constraint_nameCHECK ( column_name IN (‘xxx‘,‘xxxx‘));[or CHECK ( column_name >0)]

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

添加NOT NULL 約束

CREATE TABLE table_nameMODIFY column_name [CONSTRAINT constraint_name] NOT NULL;

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

添加FOREIGN KEY約束

ALTER TABLE table_nameDROP COLUMN column_name;ALTER TABLE table_nameADD [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_nameADD CONSTRAINT constraint_name UNIQUE(column_name);

刪除約束

ALTER TABLE table_nameDROP CONSTRAINT constraint_name;

禁用約束

預設情況下,約束在建立是啟動,可以再建立時禁用約束。

ALTER TABLE table_nameADD CONSTRAINT constraint_name UNIQUE(column_name) DISABLE;

啟動約束、禁用約束

ALTER TABLE table_name{ENABLE|DISABLE } CONSTRAINT constraint_name;

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

ALTER TABLE table_nameENABLE NOVALIDATE CONSTRAINT  constraint_name;

約束預設情況下是 ENABLE VALIADTE;

延時約束

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

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

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

ALTER TABLE table_nameADD CONSTRAINT constraint_name UNIQUE(column_name) DEFERRABLE INITIALLY DEFERRED;

獲得有關約束的資訊

SELECT *FROM user_constraintsWHERE table_name = ‘xxx‘;

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

獲得有關列的約束的資訊

SELECT * FROM user_con_columnsWHERE table_name =‘xxx‘;

Oracle表、列、約束的操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.