Oracle關於表的操作 徐川江的部落格 新浪部落格

2021-10-10 12:29:33 字數 3387 閱讀 7535

3.1.1

、常用的資料字段

no資料型別

關鍵字 描述

1 整數

number(n)

表示最多為n位的整數,有時候也可以使用int代替 2

小數number(n,m)

其中m為小數字,n為整數字,有時候也可以使用float來代替 3

日期date

存放日期時間 4

大文字clob

可以儲存海量文字,例如儲存各種**等 5

大物件blob

存放二進位制資料,例如:電影、***、、文字 6

字串varchar2(n)

其中n表示的是字串所能儲存的最大長度,基本上儲存200個左右的內容

3.1.2

、表的複製

語法:create table

複製表名稱

as子查詢

範例:複製一張只包含

20部門雇員資訊的表

create table emp20 as select * from emp where deptno=20

範例:現在要求將

emp表的表結構複製出來,不要資料

---寫乙個永遠滿足不了的條件即可

create table emp20 as select * from emp where 1=2

但是以上的語法只是

oracle

資料庫所支援的操作,其他的資料庫語法上會有一些區別。

3.1.3

、為表重新命名

在oracle

資料庫之中,所有的資料實際上都是通過資料字典儲存的,例如,之前曾使用過的一種查詢:

select * from tab

以上就是乙個資料字典,而在

oracle

之中,提供了三種型別的資料字典,最常用的是:

dba,user_,

所以下面查詢乙個

user_tables

資料字典:

select * from user_tables;

也就是說

oracle

中所有資料都是按照檔案儲存的,那麼所有的內容都會在資料字典中註冊,既然這樣,所謂的修改表名稱實際上對於

oracle

而言就相當於修改一條資料而已,而修改表名稱的方法如下:

rename

舊的表名稱

to新的表名稱

範例:將

empnull

表更名為

person表

rename empnull to person;

這種操作由於是

oracle

資料庫獨有的一種特性。

3.1.5

、截斷表

在之前曾刪除資料表的操作,使用的是

delete

操作,但是這種刪除操作本身具有乙個特點,即:可以進行事務的回滾,也就是說刪除之後並不會立即釋放資料的資源,如果現在希望徹底釋放掉一張表所占用的全部資源

(表的空間,索引,內容等等

)就可以使用截斷表的語法

(oracle

獨有的)

,語法如下:

truncate table

表名稱

範例:截斷

emp20

表(rollback

後也沒有的了內容)

truncate table emp20;

3.1.6

、表的刪除

刪除表的的語法如下:

drop table

表名稱

範例:刪除

emp20表

drop table emp20;

3.1.7

、oracle

的閃回技術

在oracle

之中為了防止使用者的誤刪除表操作,專門提供了**站的功能,使用者刪除的表預設情況下會在乙個**站中儲存,而使用者也可以通過**站,進行表的恢復,所以此技術稱為閃回

(flasshback)

範例:檢視**站

show recyclebin

這個時候可以發現所有已經刪除的表都在**站之中儲存,那麼下面可以使用如下的語法恢復**站中表:

flashback table

表名稱to before drop

範例:恢復

emp20表

flashback table emp20 to before drop;

當然,現在也可以直接刪除掉**站中的一些資料表,語法如下:

purge table

表名稱;

範例:清空**站

purge recyclebin;

如果現在希望刪除一張表,而又不希望其進入到**站之中,則可以在刪除的時候增加

purge

drop table emp20 purge;

3.1.8

、修改表的結構

希望向表中可以增加字段,語法如下:

alter table

表名稱add(

曾的列名稱

資料型別

[default

預設值]);

範例:為

deptkk

表中增加

birthday欄位

alter table deptkk add(birthday varchar2(20) default sysdate);

如果增加的資料列沒有預設值,則所有已有的資料的列的內容都是

null

,而如果增加的列指定了

de****t

預設值的話,則所有已有的資料列都是設定的預設值

修改已有表的表結構語法如下:

alter table

表名稱modify (

列名稱資料型別

[default

預設值]);

範例:將

deptkk

表的birthday

欄位的預設值定義為』無名

』 alter table deptkk modify(name varchar2(20) default 『

無名』);

修改列的名稱語法如下:

alter table

表名稱rename column

舊列的名稱

to新列的名稱

範例:將

dept

表的loc

修改為locc

alter table dept rename column loc to locc;

刪除乙個列的語法如下:

alter table

表名稱drop column

刪除列的名稱;

範例:刪除

dept

表的loc

這一列

alter table dept drop column loc;

oracle中的儲存過程 徐川江的部落格 新浪部落格

範例 建立儲存過程 in create or replace procedure prc p id in number,p name in varchar2,p sal in number is begin insert into emp empno,ename,sal values p id,p ...

Oracle中的資料冷備份 徐川江的部落格 新浪部落格

在資料操作之中,有可能有些使用者不會進行事務的提交,那麼在這種情況下很可能無法進行完整的備份操作,而所謂的冷備份指的是就是關閉資料庫例項的情況下進行資料庫備份操作的實現 如果要進行冷備份,則需要備份出資料庫中的一些幾個核心內容 控制檔案,指的是控制整個 oracle 資料庫的例項服務的核心檔案,直接...

Oracle中的零散筆記 徐川江的部落格 新浪部落格

spool f xx.txt 開啟記錄 host cls 清屏 set timing on off on 開啟oracle 執行語句時的所需時間 select from v nls parameters 檢視系統引數 alter session set nul date format yyyy mm...