博文結構
事務的使用
索引的使用
視圖的作用
序列、同義詞的使用
分區(qū)表的概念我們提供的服務有:成都網站制作、網站建設、微信公眾號開發(fā)、網站優(yōu)化、網站認證、路南ssl等。為上千家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的路南網站制作公司
Oracle通過事務來保證數(shù)據(jù)庫中數(shù)據(jù)的一致性。
事務就是業(yè)務上的一個邏輯單元,它能夠保證其中對數(shù)據(jù)所有的操作要么全部成功,要么全部失敗
事務開始于一條可執(zhí)行的SQL語句,繼續(xù)執(zhí)行事務主體,然后結束于以下的任意一種情況。
顯式提交(commit): 當事務遇到cormmit指令時,將結束事務并永久保存所有更改的數(shù)據(jù)。
顯式回滾(ollback); 當事務遇到rollback指令時,也將結束事務的執(zhí)行,但是此時它回滾
所有更改的數(shù)據(jù)到事務開始時的原始值,即取消更改。
DDL語句:一旦用戶執(zhí)行了DDL (Data DefinitionLanguage,數(shù)據(jù)定義語言,如 CREATE. DROP
等)語句,則之前所有的DML (Data Manipulation Language,數(shù)據(jù)操作語言)操作將作為一
個事務提交.這種提交稱為隱式提交。
正常結束程序:如果Oracle數(shù)據(jù)庫應用程序正常結束,如使用SQL Plus工具更改了數(shù)據(jù),
而正常退出該程序(輸入"exit"), 則Oracle 自動提交事務。
非正常地結束程序:當程序崩潰或意外中止時,所有數(shù)據(jù)更改都被回滾,這種回滾稱為隱
式回滾。.
事務的四個特性,即原子性(Atomicity). - 致性(Consistency)、隔離性. (Isolation)和持久性(Durability). 簡寫為ACID特性。
(1)原子性:要么同時成功,要么同時失敗,
(2) 一致性:無論是在事務前、事務中,還是在事務后,數(shù)據(jù)庫始終處于一致的狀態(tài)。
事務控制
SQL> create tablespace sales
2 datafile '/space/sales.dbf' size 100M;
表空間已創(chuàng)建。
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
--------------------------------------------------------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
SALES
已選擇 6 行。
SQL> create table sales
2 (name varchar(50),
3 sex varchar(10),
4 address varchar(100),
5 results float(10))
6 tablespace sales;
表已創(chuàng)建。
SQL> insert into sales values('zhangsan','nan','haidian',90);
已創(chuàng)建 1 行。
SQL> commit;
提交完成。
SQL> rollback;
回退已完成。
索引是Oracle的一個對象,是與表關聯(lián)的可選結構,提供了-種快速訪問數(shù)據(jù)的途徑,提高了數(shù)據(jù)庫的檢索性能。索引使數(shù)據(jù)庫程序無須對整個表進行掃描,就可以在其中找到所需要的數(shù)據(jù)。
索引的特點如下:
適當?shù)厥褂盟饕梢蕴岣卟樵兯俣取?br/>可以對表的一-列或多列建立索引。
建立索引的數(shù)量沒有限制
索引需要磁盤存儲,可以指定表空間,由Oracle自動維護。
索引對用戶透明,檢索時是否使用索引是由Oracle決定的。
全表掃描。
使用索引。
案例:
SQL> create index sales_name_index
2 on sales(address);
索引已創(chuàng)建。
SQL> create unique index sales_name_unique_index on sales(name);
索引已創(chuàng)建。
SQL> create index sales_reverse_index on sales(results) reverse;
索引已創(chuàng)建。
SQL> create bitmap index sales_bit_index on sales(sex);
索引已創(chuàng)建。
頻繁搜索的列可以作為索引。
經常排序、分組的列可以作為索引。
經常用作連接的列(主鍵/外鍵)可以作為索引。
將索引放在一 個單獨的表空間中,不要放在有回退段、 臨時段和表的表空間中。
對大型索引而言,考慮使用NOLOGGING子句創(chuàng)建。
根據(jù)業(yè)務數(shù)據(jù)發(fā)生的頻率定期重新生成或重新組織索引,以進行碎片整理。
根據(jù)業(yè)務數(shù)據(jù)發(fā)生的頻率定期 重新生成或重新組織索引,以進行碎片整理。
不要在下面情況創(chuàng)建索引:
僅包含幾個不同值的列。
表中僅包含幾行。
視圖(View) 是- -個虛表,不占用物理空間,因為視圖本身的定義語句存儲在數(shù)據(jù)字典中。視圖中的數(shù)據(jù)是從一個或多個實際表中獲得的。那些用于產生視圖的表叫作視圖的基表。一個視圖也可以在另一個視圖中產生,。
物化視圖(Materialized View) 也稱實體化視圖、快照(Oracle 8i以前的說法),含有數(shù)據(jù),占用存儲空間,在數(shù)據(jù)倉庫中很有實用價值。
視圖隱藏了數(shù)據(jù)的復雜性,
視圖簡化了用戶的命令,
視圖將應用程序與基表定義的修改隔離開來,
視圖通過重命名列.
序列是用來生成唯一的、 連續(xù)的整數(shù)類型的數(shù)據(jù)庫對象。序列通常用來自動生成主鍵或唯一鍵的值。序列可以按升序排列,也可以按降序排列。例如,銷售流水表中的流水號可以使用序列自動
生成。
SQL> create sequence sale_seq
2 start with 1
3 increment by 1
4 nomaxvalue
5 nocycle;
序列已創(chuàng)建。
SQL> create table project(id int,name varchar2(10));
表已創(chuàng)建。
SQL> create table project(id int,name varchar2(10));
表已創(chuàng)建。
SQL> insert into project values(sale_seq.nextval,'zhangsan');
已創(chuàng)建 1 行。
提交完成。
SQL> insert into project values(sale_seq.nextval,'lisi');
已創(chuàng)建 1 行。
提交完成。
SQL> select * from project;
ID NAME
---------- ------------------------------
1 zhangsan
2 lisi
SQL> select sale_seq.currval from dual;
CURRVAL
----------
2
SQL> alter sequence sale_seq
2 maxvalue 5000
3 cycle;
序列已更改。
SQL> select sequence_name,increment_by,cache_size from user_sequences where
2 sequence_name='SALE_SEQ';
SEQUENCE_NAME
--------------------------------------------------------------------------------
INCREMENT_BY CACHE_SIZE
------------ ----------
SALE_SEQ
1 20
同義詞是對象的一個別名,不占用任何實際的存儲空間,只在Oracle 的數(shù)據(jù)字典中保存其定義描述。在使用同義詞時,Oracle 會將其翻譯為對應對象的名稱。
1)簡化SQL語句
2)隱藏對象的名稱和所有者
3)為分布式數(shù)據(jù)庫的遠程對象提供位置透明性
4)提供對數(shù)據(jù)庫對象的公共訪問
同義詞可分為以下兩類
1)私有同義詞
2)公有同義詞
分區(qū)表的含義
Oracle允許用戶把-個表中的所有行分成幾部分,并將他們存儲在不同的表空間。分成的每部分稱為一個分區(qū),被分區(qū)的表稱為分區(qū)表(Partition).
改善表的查詢性能。在對表進行分區(qū)后,用戶執(zhí)行SaL查詢時可以只訪問表中的特定分區(qū)
而非整個表.表更容易管理。因為分區(qū)表的數(shù)據(jù)存儲在多個部分中,按分區(qū)加載和刪除數(shù)據(jù)比在表中加
載和刪除更容易。
便于備份和恢復??梢元毩⒌貍浞莺突謴兔總€分區(qū)。提高數(shù)據(jù)安全性。將不同的分區(qū)分布在不同的磁盤,可以減小所有分區(qū)的數(shù)據(jù)同時損壞的可能性。
案例:
創(chuàng)建表并且分區(qū),以age分區(qū)。
create table student
(
id number,
name varchar2(10),
age number)
partition by range (age)
(
partition p1 values less than (10),
partition p2 values less than (20),
partition p3 values less than (maxvalue)
);
2、向表中插入數(shù)據(jù)
insert into student values(1,'t1',8);
insert into student values(2,'t2',9);
insert into student values(3,'t3',15);
insert into student values(4,'t4',18);
insert into student values(5,'t5',50);
3、分別查詢p1,p2,p3的數(shù)據(jù)
select * from student partition(p1);
select * from student partition(p2);
select * from student partition(p3);
4、要刪除小于10歲的數(shù)據(jù)。
delete from student partition(p1);
名稱欄目:Oracle事務和常用數(shù)據(jù)庫對象
URL鏈接:http://muchs.cn/article48/igspep.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、網站制作、域名注冊、全網營銷推廣、定制開發(fā)、用戶體驗
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)