Oracle的常用修改表及字段的語句


單行注釋:--

多行注釋:/* */

 

Oracle中修改表結構

增加字段   
  ALTER TABLE table_name 

  ADD column_name data_type;

刪除字段   
  ALTET TABLE table_name

  DROP COLUMN column_name;
修改字段類型   
  ALTER TABLE table_name 

  ALTER COLUMN column_name new_data_type;

設置主鍵   
  ALTER TABLE table_name ADD CONSTRAINT PK_ID  PRIMARY KEY(ID) ;

重命名

  RENAME obj_name TO new_obj_name;

 

約束視圖
兩個數據字典視圖提供了約束的詳細信息:USER_CONSTRAINTS和USER_CONS_COLUMNS.
一張表可能有也可能沒有約束,對於一張表的每一個約束在USER_CONSTRAINTS中都有一條記錄描述這個約束。包括約束應用到的表名稱。如果你知道約束名想知道約束類型,查詢USER_CONSTRAINTS表。這個視圖描述了約束的定義。它不提供約束定義在哪些字段名稱上。
在USER_CONS_COLUMNS視圖中顯示約束的字段名稱。如果主鍵是個聯合主鍵,這個視圖中將有這個約束的兩條記錄。聯合主鍵的每一個字段對應一條記錄。每一條記錄通過POSITION(在聯合主鍵中的位置)來區別。 USER_CONSTRAINTS 和USER_CONS_COLUMNS都有字段CONSTRAINT_NAME 和TABLE_NAME.
---------------------------------------------------------------------

USER_CONSTRAINTS                    USER_CONS_COLUMNS
---------------------------------------------------------------------
 CONSTRAINT_NAME                     CONSTRAINT_NAME
 CONSTRAINT_TYPE                       TABLE_NAME
 TABLE_NAME                                COLUMN_NAME
                                                     POSITION

參考信息

http://blog.sina.com.cn/s/blog_4c22550c010007s3.html

 

VARRAY的應用

一個例子:

CREATE TYPE phone_type IS VARRAY(20) OF VARCHAR2(20);
/
CREATE TABLE employee(
    id NUMBER(4),
    name VARCHAR2(10),
    sal NUMBER(6,2),
    phone phone_type);
/

插入示例:

INSERT INTO employee values(1,'NewName',1000,phone_type('1','2'));

 

nestedTable的應用

一個例子:

CREATE OR REPLACE TYPE emp_type2 AS OBJECT
    (empno NUMBER(4),
     ename VARCHAR2(10),
     job VARCHAR2(9),
     mgr NUMBER(4),
     hiredate DATE,
     sal NUMBER(7,2),
         comm NUMBER(7,2)
        );
/

CREATE OR REPLACE TYPE emp_tab_type AS TABLE OF emp_type2;
/

--使用嵌套表

CREATE TABLE dept_and_emp2
    (deptno NUMBER(2) PRIMARY KEY,
     dname VARCHAR2(14),
     loc VARCHAR2(13),
     emps emp_tab_type
    )NESTED TABLE emps STORE AS emp_nest2;

插入示例:

insert into dept_and_emp2 values(1,'NewName','NewLoc',emp_tab_type(emp_type2(1,'newName','newJob',7788,sysdate,1000,100),emp_type2(......)));

 

這兩種集合的插入方式是一樣的。

 

IS EMPTY 操作符只適用於嵌套表,而不適用於VARRAY,用於判斷集合里的元素是否為空,如果判斷是否初始化(是否為null)應該用 IS NULL。

 

 

 

轉載來源:http://blog.csdn.net/aqszhuaihuai/article/details/4065482


免責聲明!

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



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