日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle表

發布時間:2025/3/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
創建表的策略?

? ? ? ?Oracle表由堆表、外部表、索引組織表、臨時表、對象和對象表、分區表、簇表和散列表。?

堆表

? ? ? 堆表是最常使用的普通表,數據的存儲沒有順序,當增加數據時會使用Oracle找到的第一個合適空間。?

語句:

--創建堆表 create table 表名(字段名1 字段類型(長度) 是否為空,字段名1 字段類型(長度) 是否為空 ) tablespace TSDAT02 pctfree 10initrans 1maxtrans 255storage(initial 64Kminextents 1maxextents unlimited);--增加主鍵 alter table 表名 add constraint 主鍵名 primary key (字段名);--增加外鍵 alter table 表名 add constraint 外鍵名 foreign key (字段名) references 關聯表 (字段名);--增加列 alter table 表名 add 字段名 類型;--修改列 alter table 表名 modify 字段名 類型;--給列增加注釋 comment on column 表.字段名 IS '注釋';--修改列名 alter table 表名 rename cloumn 舊列名 to 新列名;--修改表名 rename 表名 to 新表名;--刪除列名 alter table 表名 drop column 字段名;--刪除表數據 truncate table 表名; delete from 表名;--刪除表 drop table 表名;復制代碼分區表

? ? ? 在大型數據庫應用程序中,用戶需要處理的數據量很大。為使用戶的讀、寫操作和查詢操作更快,Oracle提供了分區表。分區表是將一個非常大的表劃分成小塊(分區)。在實際應用中,對分區表的操作是在獨立的分區上,但是對用戶而言分區表就像一個表一樣工作。

? ? ? Oracle數據庫提供了5種對表或索引的分區方法:范圍分區、散列分區、列表分區、組合范圍分區和組合范圍列表分區。每種分區都有自己的特點。

范圍分區

? ? 范圍分區表中的數據是一個值的范圍,根據值的大小或序列,決定數據村塾的分區,例如,根據日期值的分區,即根據不同范圍的日期,將表中的數據存儲在不同的分區。create table t47_transaction(id varchar2(20) primary key,item varchar2(300),dt date not null,state varchar2(20))partition by range (id) (partition part_01 values less than (10000) tablespace users,partition part_02 values less than (30000) tablespace sysaux,partition part_03 values less than (maxvalue) tablespace system ); --使分區根據編號分為3個區,,第一個分區存儲10000條數據,第二個分區存儲20000條數據, --其余的數據將被存儲在第三個分區上 復制代碼

散列分區

? ? ? 散列分區是通過散列算法 均勻分布數據的一種分區類型。通過在I/O設備上進行散列分區可以使得這些分區大小一致。

--根據id散列地存放在指定的3個表空間中 create table t47_transaction(id varchar2(20) primary key,item varchar2(300),dt date not null,state varchar2(20))partition by hash (id) (partition part_01 tablespace users,partition part_02 tablespace sysaux,partition part_03 tablespace system ); 復制代碼

列表分區

? ? ? 如果分區的值使非數字或日期數據類型,并且分區列的取值范圍只是一個包含少數值的集合,則可以對表進行列表分區,需要為每個分區指定一個取值列表,分區列的取值處于同一個取值列表中的行被存儲在同一分區中

--根據交易地點將表進行分區 create table t47_transaction(id varchar2(20) primary key,item varchar2(300),dt date not null,state varchar2(20))partition by list (state) (partition part_01 values ('北京', '天津') tablespace users,partition part_02 values ('周口', '鄭州') tablespace sysaux ); 復制代碼

組合范圍散列分區

? ? ? 根據范圍分區后,有時也需要將每個分區的數據分布在散列的幾個表空間中,使范圍分區形成組合范圍散列分區。

--按時間分區,每個分區的數據可以3個子分區,以便數據散列地存儲在表空間的指定空間內 create table t47_transaction(id varchar2(20) primary key,item varchar2(300),dt date not null,state varchar2(20))partition by range (dt)subpartition by hash (id)subpartitions 3 store in (users, sysaux, system) (partition part_01 values less than (date'2017-06-22'),partition part_02 values less than (date'2018-06-22'),partition part_03 values less than (maxvalue) ); 復制代碼

組合范圍列表分區

? ? ? 組合范圍列表分區將范圍分區和列表分區技術組合,首先進行范圍分區,然后對每個單獨的范圍分區使用列表分區技術進一步細分。與組合范圍散列分區不同,組合范圍列表分區中每個子分區的內容表示數據的邏輯子集,由適當的范圍和列表分區設置來描述。

--將表分為兩個分區,然后再對每個分區以列表分區形式進行子分區 create table t47_transaction(id varchar2(20) primary key,item varchar2(300),dt date not null,state varchar2(20))partition by range (id)subpartition by list (state) (partition part_01 values less than (10000) (subpartition part_01_1 values ('北京', '天津') tablespace users,subpartition part_02_1 values ('周口', '鄭州') tablespace sysaux),partition part_02 values less than (maxvalue) (subpartition part_01_2 values ('北京', '天津') tablespace users,subpartition part_02_2 values ('周口', '鄭州') tablespace sysaux) ); 復制代碼

再補充兩個很好的分區博文:

blog.csdn.net/tanzuai/art…

blog.csdn.net/liang_henry…

轉載于:https://juejin.im/post/5b2d0f4a51882574ec30a373

總結

以上是生活随笔為你收集整理的Oracle表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。