Oracle数据表和Constraint管理
生活随笔
收集整理的這篇文章主要介紹了
Oracle数据表和Constraint管理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二、數據表管理:
1.ALTER?TABLE?Table_Name?ADD?Column_Name?TYPE[(SIZE)]?[NOT?NULL]?[DEFAULT?n]; SQL>?alter?table?SYS.USER_TAB?add?sex_info?char(10)?not?null; 2.ALTER?TABLE?Table_Name?DROP?COLUMN?Column_Name; SQL>?alter?table?SYS.USER_TAB?drop?column?sex_info; 3.ALTER?TABLE?Table_Name?MODIFY?Column_Name?TYPE[(SIZE)]; SQL>?alter?table?SYS.USER_TAB?modify?sex_info?varchar2(10); 4.ALTER?TABLE?Table_Name?RENAME?COLUMN?Column_Name_old?TO?Column_Name_New; SQL>?alter?table?SYS.USER_TAB?rename?column?sex_info?to?address; 5.ALTER?TABLE?Table_Name?RENAME?TO?Table_Name_New;?→?RENAME?Table_Name?TO?Table_Name_New; SQL>?alter?table?SYS.USER_TAB?rename?to?SYS.USER_INFO; ERROR?at?line?1: ORA-14047:?ALTER?TABLE|INDEX?RENAME?may?not?be?combined?with?other?operations -->?SQL>?alter?table?SYS.USER_TAB?rename?to?USER_INFO; 6.ALTER?TABLE?Table_Name?MOVE?[TABLESPACE?Tablespace_Name]; ROWID(Change) -->?USER_INDEXES.STATUS?→?UNUSABLE: SQL>?ALTER?INDEX?Index_Name?REBUILD?[ONLINE]?[TABLESPACE?Tablespace_Name]; 7.ALTER?TABLE?Table_Name?ENABLE/DISABLE?ROW?MOVEMENT; # ASSM(AUTO SEGMENT SPACE MANAGEMENT). 8.COMMENT?ON?TABLE/COLUMN?...?IS?... SQL>?COMMENT?ON?TABLE?user_info?IS?'USERINFO';? SQL>?COMMENT?ON?COLUMN?user_info.deptid?IS?'DEPARTMENT_ID';? SQL>?select?*?from?USER_TAB_COMMENTS where?table_name='USER_INFO'; SQL>?select?*?from?USER_COL_COMMENTS?where?table_name='USER_INFO';三、Constraint_Management: 1.PRIMARY?KEY: SQL>?ALTER?TABLE?user_info?ADD?[CONSTRAINT?Constraint_Name]?PRIMARY?KEY(userid); SQL>?select?constraint_name,column_name?from?USER_CONS_COLUMNS where?table_name='USER_INFO'; SQL>?ALTER?TABLE?user_info?DROP?CONSTRAINT?SYS_C005900; SQL>?ALTER?TABLE?user_info?DROP?PRIMARY?KEY?KEEP?INDEX;?[CASCADE] 2.FOREIGN?KEY: SQL>?ALTER?TABLE?user_info?ADD?[CONSTRAINT?Constraint_Name]? FOREIGN?KEY(deptid)?REFERENCES?dept_info(deptid)?[ON?DELETE?CASCADE]; #?ON?DELETE?[Cascade?|?Set?Null?|?No?Action(default)]; SQL>?ALTER?TABLE?user_info?DROP?CONSTRAINT?...? ==>?SQL>?ALTER?TABLE?dept_info?DROP?PRIMARY?KEY?CASCADE;? 3.CHECK?CONSTRAINT: SQL>?ALTER?TABLE?user_info?ADD?[CONSTRAINT?Constraint_Name]?CHECK(sex?in?('Woman','Man')); 4.UNIQUE?CONSTRAINT: SQL>?ALTER?TABLE?dept_info?ADD?CONSTRAINT?uq_deptinfo_name?UNIQUE(deptname); 5.CONSTRAINT?STATUS: #?ENABLE/DISABLE?and?VALIDATE/NOVALIDATE: SQL>?ALTER?TABLE?dept_info?RENAME?CONSTRAINT?uq_dept_info?TO?uq_deptinfo_name;? SQL>?ALTER?TABLE?user_info?ENABLE/DISABLE?CONSTRAINT?SYS_C005908; SQL>?ALTER?TABLE?dept_info?DISABLE?PRIMARY?KEY?CASCADE; → FOREIGN_KEY. SQL>?ALTER?TABLE?dept_info?ADD/MODIFY?[CONSTRAINT?Constraint_Name]?PRIMARY?KEY ? ? ?ENABLE/DISABLE?VALIDATE/NOVALIDATE; #?[NOT]?DEFERRABLE?INITIALLY?[DEFERRED|IMMEDIATE]: SQL>?ALTER?TABLE user_info?ADD/MODIFY?CONSTRAINT?fk_emp_info FOREIGN?KEY(deptno)?REFERENCES?dept(deptno) DEFERRABLE?INITIALLY?DEFERRED; --DEFERRED(COMMIT,CHECK)/IMMEDIATE. --DEFERRABLE?→?SET?CONSTRAINTS?... SQL>?ALTER?TABLE user_info?ADD?CONSTRAINT?pk_user_id?PRIMARY KEY(userid)?DEFERRABLE;? SQL>?SET?CONSTRAINTS?Constraint_Name/All?IMMEDIATE/DEFERRED; 6.EXCEPTIONS?INTO?EXCEPTIONS: SQL>?@??/rdbms/admin/utlexcpt.sql?/*??/rdbms/admin/utlexcpt1.sql?*/. SQL>?ALTER?TABLE?user_info?ENABLE?PRIMARY?KEY?EXCEPTIONS?INTO?EXCEPTIONS;? SQL>?SELECT?*?FROM?EXCEPTIONS; DISABLE?CONSTRAINT?→?(2)INSERT/UPDATE?INTO... ENABLE...EXCEPTIONS?INTO?EXCEPTIONS?→?(4)SELECT?*?FROM?EXCEPTIONS; DELETE?FROM?...WHERE?ROWID...; 7.DBA_/ALL_/USER_CONSTRAINTS|DBA_/ALL_/USER_CONS_COLUMNS: SQL>?SELECT?constraint_name,constraint_type,status,deferrable,deferred? FROM?USER_CONSTRAINTS?WHERE?table_name='USER_INFO'; CONSTRAINT_NAME?CONSTRAINT_TYPE?STATUS??????????DEFERRABLE??????DEFERRED ---------------?---------------?---------------?---------------?---------- SYS_C005905?????C???????????????ENABLED?????????NOT?DEFERRABLE??IMMEDIATE SYS_C005908?????R???????????????ENABLED?????????NOT?DEFERRABLE??IMMEDIATE Type?of?Constraint?Definition: C:(check?constraint?on?a?table)?|?P:(primary?key)?|?U:(unique?key)?|?R:(referential?integrity)? V:(with?check?option,?on?a?view)?|?O:(with?read?only,?on?a?view). SQL>?SELECT?ucc.column_name,ucc.constraint_name,uc.constraint_type,uc.status? FROM?USER_CONSTRAINTS?uc,USER_CONS_COLUMNS?ucc? WHERE?uc.TABLE_NAME?=?ucc.table_name?AND?uc.CONSTRAINT_NAME?=?ucc.constraint_name? AND?ucc.table_name?=?'USER_INFO';
轉載于:https://blog.51cto.com/07610119/1169063
總結
以上是生活随笔為你收集整理的Oracle数据表和Constraint管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: main_loop()函数解析(1)
- 下一篇: .Net开源 Shuttle(飞梭)服务