1Z0-051-DDL-1表和臨時表的創(chuàng)建和使用

一、創(chuàng)建簡單表

創(chuàng)新互聯專業(yè)為企業(yè)提供防城港網站建設、防城港做網站、防城港網站設計、防城港網站制作等企業(yè)網站建設、網頁設計與制作、防城港企業(yè)網站模板建站服務,十余年防城港做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

 

1.1 使用列規(guī)范創(chuàng)建表

 

語法:

CREATETABLE [schema.]tablename [ORGANIZATION HEAP]

(columndatatype [default expression]

[,columndatatype [default expression]]

);

 

注:DEFAULT字句可能很有用,但它功能很有限。

 

分析以下案例:

CREATETABLE SCOTT.EMP

(EMPNONUMBER(4),

ENAMEVARCHAR2(10),

HIREDATEDATE DEFAULT TRUNC(SYSDATE),

SAL NUMBER(7,2),

COMM NUMBER(7,2) DEFAULT 0.03

);

 

SET LONG9999

Select  dbms_metadata.get_ddl('TABLE','EMP','SCOTT')FROM DUAL;

 

 

1.2 使用子查詢創(chuàng)建表

語法:

CREATETABLE  [schema.]table  AS subquery;

 

SQL>create tabel emp_copy as select * from scott.emp;

 

SQL>createtable emp_dept as select

Last_nameename,department_name dname,round(sysdate -hiredate) service

From  employees nutural join departments orderby  dname,ename;

 

創(chuàng)建一個沒有數據行的表:

SQL>createtable no_emps as select * from scott.emp where 1=2;

 

 

 

1.3.在創(chuàng)建表之后更改表的定義

 

(1)添加列

SQL>altertable emp add (job_id number(8));

 

(2)修改列

SQL>alter table emp modify (commission_pct number(6,2) default 0.05;

 

(3)刪除列

SQL>altertable emp drop column job_id;

 

(4)標記未使用列

SQL>altertable  emp set unused column job_id;

 

(5)重命名列

SQL>altertable emp rename column hire_date to hiredate;

 

(6)將表標記為只讀

SQL>altertable emp read only;

 

(7)一次性刪除未使用的列

SQL>altertable emp drop unused columns;

 

 

1.4刪除表

 

語法:

Drop   table  [schema.]tablename;

 

SQL>droptable  emp;  

注:刪除表之前不會生成警告(任何DDL命令都一樣,他們包含了COMMIT),一般不可逆,在一定特定的情況下,可使用閃回技術和其他恢復技術。

 

1.5截斷表

 

語法:

Trancate  table  [schema.]tablename;

SQL>trancate table emp;

注:瞬間清空emp表,表中有一條記錄和一億條記錄的速度是一樣的。

 

1.6創(chuàng)建和使用臨時表

臨時表包含所有會話都可以訪問的定義,但其中的行是插入行的會話專用的。

語法:

Create  global temporary table temp_tab_name

(columndatatype [,column datatype])

On commit{delete |preserve} rows;

 

列的定義與普通表沒有區(qū)別,末尾的可選句子確定插入的任何行的生命周期。默認方式:在插入行的事務完成時,刪除相應的行,但也可以更改此行為,以便將他們保留到插入行的會話結束為止。臨時表的數據是臨時的,專用于相應的會話,針對其執(zhí)行的所有SQL命令速度遠比針對永久表的命令塊。

速度快的原因:

(1)臨時表不是永久表空間中的段。

(2)針對臨時表的DML不生成重做數據。

 

【創(chuàng)建和使用臨時表案例】

(1)使用peenboo身份登錄,創(chuàng)建臨時表tmp_emp:

SQL>createglobal temporary table tmp_emp on commit preserve rows  as select * from emp where 1=2;

 

(2)插入一些數據:

SQL>Insertinto tmp_emp select * from emp where department_id=50;

SQL>commit;

 

(3)使用peenboo身份,啟動第二個SQLPLUS

SQL>selectcount(*) from tmp_emp;

SQL>insertinto tmp_emp select * from emp where department_id =60;

SQL>commit;

 

(4)在第一個會話中截斷表:

SQL>truncate  table tmp_emp;

 

(5)在第二個會話中查詢,會話副本仍然包含行:

SQL>selectcount(*) from tmp_emp;

 

(6)在第二個會話中,演示會話終止并不會清除數據行。需要斷開連接再次連接。

SQL>disconnect;

SQL>connectpeenboo/dbbocom

SQL>selectcount(*) from tmp_emp;

當前名稱:1Z0-051-DDL-1表和臨時表的創(chuàng)建和使用
瀏覽路徑:http://muchs.cn/article34/jepepe.html

成都網站建設公司_創(chuàng)新互聯,為您提供微信小程序外貿網站建設、微信公眾號、虛擬主機做網站、Google

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都app開發(fā)公司