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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

oracle+事务开始+结束,Oracle事务和对象上集(视图、索引)

發(fā)布時(shí)間:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle+事务开始+结束,Oracle事务和对象上集(视图、索引) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Oracle事務(wù)

·事務(wù)的含義:事務(wù)是業(yè)務(wù)上的一個(gè)邏輯單元,為了保證數(shù)據(jù)的所有操作要么全部完成,要么全部失敗。

1、事務(wù)的開(kāi)始是從一條SQL語(yǔ)句開(kāi)始,結(jié)束于下面的幾種情況:

1)顯示提交:輸入commit指令,事務(wù)完成提交

2)顯示回滾:輸入rollback指令,未提交的事務(wù)丟掉,回滾到事務(wù)開(kāi)始時(shí)的狀態(tài)。

3)DDL語(yǔ)句:即create、drop等語(yǔ)句,這些語(yǔ)句會(huì)使事務(wù)自動(dòng)隱式提交

4)結(jié)束程序:輸入exit退出數(shù)據(jù)庫(kù),則自動(dòng)提交事務(wù);或者意外終止、出現(xiàn)程序崩潰,則事務(wù)自動(dòng)回滾。

2、事務(wù)的特點(diǎn)-ACID特性

1)原則性:要么同時(shí)成功,要么同時(shí)失敗的原則

2)一致性:如,a轉(zhuǎn)賬給b,最總結(jié)果a+b的金錢(qián)總數(shù)是不變的

3)隔離性:當(dāng)出現(xiàn)多個(gè)事務(wù)出現(xiàn),它們之間是互相隔離、互不影響的

4)持久性:事務(wù)一旦提交,則數(shù)據(jù)永久修改。

3、關(guān)于事務(wù)的三個(gè)命令

commit :立即提交事務(wù)

rollback :回滾事務(wù)

set autocommit on/off :設(shè)置/關(guān)閉自動(dòng)提交

二、索引

·索引是Oracle的一個(gè)對(duì)象,是與表關(guān)聯(lián)的可選結(jié)構(gòu),用于加快查詢(xún)速度,提高檢索性能。

1、特點(diǎn)

1)適當(dāng)使用索引可以提高查詢(xún)速度、建立索引的數(shù)量無(wú)限制

2)可以對(duì)表的一列或者多列建立索引

3)索引是需要磁盤(pán)空間,可以指定表空間存儲(chǔ)索引。

4)是否使用索引有Oracle決定

2、索引的分類(lèi)

B樹(shù)索引:從頂部為根,逐漸向下一級(jí)展開(kāi)

唯一索引:定義索引的列沒(méi)有任何重復(fù)

非唯一索引:與唯一索引相反

反向鍵索引:對(duì)與數(shù)字列作用較大,會(huì)將1234生成4321進(jìn)行查詢(xún)的索引

位圖索引:應(yīng)用于數(shù)據(jù)倉(cāng)庫(kù)和決策支持系統(tǒng)中。優(yōu)點(diǎn)是相對(duì)于b樹(shù)索引,可以減少響應(yīng)時(shí)間;相對(duì)于其他索引,其空間占用少。

函數(shù)索引:使用函數(shù)涉及正在創(chuàng)建索引的列的索引

3、創(chuàng)建索引

操作時(shí)我們可以使用Oracle的scott用戶(hù)進(jìn)行測(cè)試,首先解鎖,在改一個(gè)密碼,登陸進(jìn)去就可以操作了

create [unique] index i_name on t_name(c_list) [tablespace ts_name];

注釋: create ... index ... on 創(chuàng)建索引

unique 唯一索引

i_name 創(chuàng)建的索引名稱(chēng)

t_name 在哪個(gè)表創(chuàng)建

(c_list) 列名

ts_name 表空間名

舉例:

create index emp_ename_idx on emp(ename);

:b樹(shù)索引

create unique index emp_ename_unique_idx on emp(ename);

:唯一索引

create index emp_ename_reverse_idx on emp(ename) reverse;

:反向索引

create index emp_ename_upper_idx on emp(upper(ename));

:函數(shù)索引

4、創(chuàng)建索引的原則

1)頻繁檢索的列

2)經(jīng)常排序、分組的列

3)主鍵/外鍵

4)大型索引使用nologing子句創(chuàng)建

5)需定期進(jìn)行組織索引、碎片整理

5、維護(hù)索引的命令

1)重建索引

alter index i_table rebuild [tablespace ts_name];

2)合并索引碎片

alter index i_name coalesce;

3)刪除索引

drop index i_name;

4)查看索引(使用user_indexes、user_ind_columns字典)

select index_name,index_tyep,table_name,column_name from user_indexes;或者

select index_name,table_name,_column_name from user_ind_columns where

index_name like ‘emp%’;

三、視圖

·視圖是一個(gè)虛表,不占用物理空間,視圖本身的定義語(yǔ)句存放于字典里,可以由一個(gè)或者多個(gè)表中獲得數(shù)據(jù)。目的是為了方便查詢(xún),而不需要在敲繁瑣的查詢(xún)語(yǔ)句。

1、視圖的作用

1)通過(guò)限制對(duì)表中預(yù)定的一組行和列進(jìn)行查看,可以防止用戶(hù)看到無(wú)權(quán)限數(shù)據(jù),提供了安全性

2)簡(jiǎn)化了用戶(hù)的命令、隱藏了數(shù)據(jù)的復(fù)雜性,方便操作

3)視圖可以對(duì)列進(jìn)行重命名,提升了數(shù)據(jù)庫(kù)的靈活性和人性化

4)視圖將應(yīng)用程序與基表定義的修改進(jìn)行了隔離,表結(jié)構(gòu)的修改不會(huì)影響視圖結(jié)構(gòu)。

2、創(chuàng)建視圖

create [or replace] [force] view vname [(alias[,alias]...)] as SQL

[with check option] [with read only];

注釋: or replace :覆蓋

force :強(qiáng)制的;視圖中的基表是否存在,都會(huì)創(chuàng)建

vname :創(chuàng)建的視圖名稱(chēng)

[(alias[,alias]...)] :可選項(xiàng),視圖別名,可以由多個(gè)

SQL :SQL查詢(xún)語(yǔ)句

with check option :用于更改視圖時(shí)的約束

with read only :只讀

舉例:

create view vname as select from tname where ‘a(chǎn)=b’;

簡(jiǎn)單的視圖

create view vname as select from tname where ‘a(chǎn)=b’ with read only;

只讀視圖

create force view vname as select from tname where ‘a(chǎn)=b’;

強(qiáng)制創(chuàng)建視圖,假如‘tname’表不存在,也強(qiáng)制創(chuàng)建,也就是錯(cuò)誤視圖。

create table tname (a (char));

alter view vname compile;

查看錯(cuò)誤視圖(使用字典)

show errors view;

show

創(chuàng)建tname表;然后編譯錯(cuò)誤視圖,使其生效

3、在視圖中使用DML語(yǔ)句(insert、update、delete)的限制

1)DML語(yǔ)句只能修改視圖中的一個(gè)基表

2)如果修改違反了check option約束,則無(wú)法修改

3)如果視圖包括連接運(yùn)算符、DISTINCT運(yùn)算符、集合運(yùn)算符、聚合函數(shù)和group by子句,則無(wú)法更新視圖

4)如果包含偽列、表達(dá)式,也無(wú)法更新視圖

4、維護(hù)視圖

1)刪除視圖

drop view vname;

2)查詢(xún)已有視圖(user_views字典)

select viewname from user_views;

5、物化視圖

·顧名思義,物化視圖就是將視圖物理化存到磁盤(pán),它與基表實(shí)時(shí)同步。物化視圖可以避免order by子句或者多表連接查詢(xún)帶來(lái)的效率降低和時(shí)耗,但是會(huì)占用用磁盤(pán)空間。

1)物化視圖同步的刷新方式可分為:

on commit:即提交事務(wù)以后

on demand:簡(jiǎn)單講就是用戶(hù)手動(dòng)刷新

2)物化視圖同步的刷新類(lèi)型

complete:完全刷新

fast:追求速度,增量刷新

force:Oracle自動(dòng)判斷使用complete還是fast類(lèi)型刷新

never:從不刷新

·關(guān)于以上四個(gè)類(lèi)型,Oracle默認(rèn)選擇force刷新。工作中無(wú)特殊需求,無(wú)需更改

6、創(chuàng)建物化視圖

1)首先用sys登陸,為scott用戶(hù)授權(quán)

2)創(chuàng)建物化視圖日志

3)正式創(chuàng)建

注釋: build immediate :立即創(chuàng)建

refresh fast :刷新類(lèi)型為fast

enable query rewrite :啟用查詢(xún)重寫(xiě)

4)刪除物化視圖

**drop materialized view materview;***

總結(jié)

以上是生活随笔為你收集整理的oracle+事务开始+结束,Oracle事务和对象上集(视图、索引)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。