前言
創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號開發(fā),軟件開發(fā),微信小程序,10多年建站對成都玻璃鋼坐凳等多個(gè)行業(yè),擁有豐富建站經(jīng)驗(yàn)。
目前所有使用Oracle作為數(shù)據(jù)庫支撐平臺(tái)的應(yīng)用 大部分?jǐn)?shù)據(jù)量比較龐大的系統(tǒng) 即表的數(shù)據(jù)量一般情況下都是在百萬級以上的數(shù)據(jù)量 當(dāng)然在Oracle 中創(chuàng)建分區(qū)是一種不錯(cuò)的選擇 但是當(dāng)你發(fā)現(xiàn)你的應(yīng)用有多張表關(guān)聯(lián)的時(shí)候 并且這些表大部分都是比較龐大 而你關(guān)聯(lián)的時(shí)候發(fā)現(xiàn)其中的某一張或者某幾張表關(guān)聯(lián)之后得到的結(jié)果集非常小并且查詢得到這個(gè)結(jié)果集的速度非常快 那么這個(gè)時(shí)候我考慮在Oracle中創(chuàng)建 臨時(shí)表
我對臨時(shí)表的理解 在Oracle中創(chuàng)建一張表 這個(gè)表不用于其他的什么功能 主要用于自己的軟件系統(tǒng)一些特有功能才用的 而當(dāng)你用完之后表中的數(shù)據(jù)就沒用了 Oracle的臨時(shí)表創(chuàng)建之后基本不占用表空間 如果你沒有指定臨時(shí)表(包括臨時(shí)表的索引)存放的表空的時(shí)候 你插入到臨時(shí)表的數(shù)據(jù)是存放在 ORACLE系統(tǒng)的臨時(shí)表空間中(TEMP)
臨時(shí)表的創(chuàng)建
創(chuàng)建Oracle臨時(shí)表 可以有兩種類型的臨時(shí)表 會(huì)話級的臨時(shí)表和事務(wù)級的臨時(shí)表
)會(huì)話級的臨時(shí)表因?yàn)檫@這個(gè)臨時(shí)表中的數(shù)據(jù)和你的當(dāng)前會(huì)話有關(guān)系 當(dāng)你當(dāng)前SESSION不退出的情況下 臨時(shí)表中的數(shù)據(jù)就還存在 而當(dāng)你退出當(dāng)前 SESSION的時(shí)候 臨時(shí)表中的數(shù)據(jù)就全部沒有了 當(dāng)然這個(gè)時(shí)候你如果以另外一個(gè)SESSION登陸的時(shí)候是看不到另外一個(gè)SESSION中插入到臨時(shí)表中的數(shù)據(jù)的 即兩個(gè)不同的SESSION所插入的數(shù)據(jù)是互不相干的 當(dāng)某一個(gè)SESSION退出之后臨時(shí)表中的數(shù)據(jù)就被截?cái)啵╰runcate table 即數(shù)據(jù)清空)了 會(huì)話級的臨時(shí)表創(chuàng)建方法 Create Global Temporary Table Table_Name(Col Type Col Type ……) On Commit Preserve Rows 舉例create global temporary table Student(Stu_id Number( ) Class_id Number( ) Stu_Name Varchar ( ) Stu_Memo varchar ( )) on Commit Preserve Rows
)事務(wù)級臨時(shí)表是指該臨時(shí)表與事務(wù)相關(guān) 當(dāng)進(jìn)行事務(wù)提交或者事務(wù)回滾的時(shí)候 臨時(shí)表中的數(shù)據(jù)將自行被截?cái)?其他的內(nèi)容和會(huì)話級的臨時(shí)表的一致(包括退出 SESSION的時(shí)候 事務(wù)級的臨時(shí)表也會(huì)被自動(dòng)截?cái)啵?事務(wù)級臨時(shí)表的創(chuàng)建方法 Create Global Temporary Table Table_Name(Col Type Col Type ……) On Commit Delete Rows 舉例 create global temporary table Classes(Class_id Number( ) Class_Name Varchar ( ) Class_Memo varchar ( )) on Commit delete Rows
) 兩種不通類型的臨時(shí)表的區(qū)別 語法上 會(huì)話級臨時(shí)表采用on mit preserve rows而事務(wù)級則采用on mit delete rows 用法上 會(huì)話級別只有當(dāng)會(huì)話結(jié)束臨時(shí)表中的數(shù)據(jù)才會(huì)被截?cái)?而且事務(wù)級臨時(shí)表則不管是mit rollback或者是會(huì)話結(jié)束 臨時(shí)表中的數(shù)據(jù)都將被截?cái)?/p>
例子
) 會(huì)話級(Session關(guān)閉掉之后數(shù)據(jù)就沒有了 當(dāng)Commit的時(shí)候則數(shù)據(jù)還在 當(dāng)Rollback的時(shí)候則數(shù)據(jù)也是一樣被回滾)
insert into student(stu_idfp class='fp-tqsh0'/fpclass_idfp class='fp-tqsh0'/fpstu_namefp class='fp-sqkcc'/fpstu_memo) values(fp class='fp-34cnd'/fpfp class='fp-tqsh0'/fpfp class='fp-x9mhj'/fpfp class='fp-sqkcc'/fpfp class='fp-r74kb'/fpfp class='fp-r74kb'/fp張三fp class='fp-4stpj'/fpfp class='fp-wl5fd'/fpfp class='fp-7aprw'/fpfp class='fp-4stpj'/fpfp class='fp-4stpj'/fp福建fp class='fp-r74kb'/fpfp class='fp-wl5fd'/fp);insert into student(stu_idfp class='fp-sesat'/fpclass_idfp class='fp-sesat'/fpstu_namefp class='fp-7aprw'/fpstu_memo) values(fp class='fp-l0mcy'/fpfp class='fp-sqkcc'/fpfp class='fp-x9mhj'/fpfp class='fp-sqkcc'/fpfp class='fp-wl5fd'/fpfp class='fp-4stpj'/fp劉德華fp class='fp-r74kb'/fpfp class='fp-ctqx3'/fpfp class='fp-sqkcc'/fpfp class='fp-wl5fd'/fpfp class='fp-ctqx3'/fp福州fp class='fp-ctqx3'/fpfp class='fp-ctqx3'/fp);insert into student(stu_idfp class='fp-tqsh0'/fpclass_idfp class='fp-tqsh0'/fpstu_namefp class='fp-7aprw'/fpstu_memo) values(fp class='fp-kc69s'/fpfp class='fp-sesat'/fpfp class='fp-3f4pw'/fpfp class='fp-sqkcc'/fpfp class='fp-wl5fd'/fpfp class='fp-wl5fd'/fpSfp class='fp-gocz4'/fpHfp class='fp-rqc8n'/fpEfp class='fp-4stpj'/fpfp class='fp-wl5fd'/fpfp class='fp-7aprw'/fpfp class='fp-wl5fd'/fpfp class='fp-4stpj'/fp廈門fp class='fp-r74kb'/fpfp class='fp-4stpj'/fp);SQL select *from student ;
STU_ID CLASS_ID STU_NAME STU_MEMO 張三 福建 劉德華 福州 S H E 廈門 張惠妹 廈門
SQL mit;Commit pleteSQL select * from student ;
STU_ID CLASS_ID STU_NAME STU_MEMO 張三 福建 劉德華 福州 S H E 廈門 張惠妹 廈門
SQLinsert into student(stu_idfp class='fp-sqkcc'/fpclass_idfp class='fp-tqsh0'/fpstu_namefp class='fp-tqsh0'/fpstu_memo) values(fp class='fp-t29dz'/fpfp class='fp-7aprw'/fpfp class='fp-3f4pw'/fpfp class='fp-tqsh0'/fpfp class='fp-4stpj'/fpfp class='fp-r74kb'/fp張惠妹fp class='fp-r74kb'/fpfp class='fp-wl5fd'/fpfp class='fp-sesat'/fpfp class='fp-ctqx3'/fpfp class='fp-wl5fd'/fp廈門fp class='fp-wl5fd'/fpfp class='fp-wl5fd'/fp);fp class='fp-34cnd'/fp row insertedSQL select * from student ;
STU_ID CLASS_ID STU_NAME STU_MEMO 張三 福建 劉德華 福州 S H E 廈門 張惠妹 廈門 張惠妹 廈門
SQL rollback ;Rollback pleteSQL select * from student ;
STU_ID CLASS_ID STU_NAME STU_MEMO 張三 福建 劉德華 福州 S H E 廈門 張惠妹 廈門 SQL
) 事務(wù)級(Commit之后就刪除數(shù)據(jù)) 本例子將采用以下的數(shù)據(jù)
insert into classes(Class_id Class_Name Class_Memo) values( 計(jì)算機(jī) ); insert into classes(Class_id Class_Name Class_Memo) values( 經(jīng)濟(jì)信息 ); insert into classes(Class_id Class_Name Class_Memo) values( 經(jīng)濟(jì)信息 );
在一個(gè)SESSION中(比如SQLPLUS登陸)插入上面 條記錄 然后再以另外一個(gè)SESSION(用SQLPLUS再登陸一次)登陸 當(dāng)你 select * from classes 的時(shí)候 classes表是空的 而你再第一次登陸的SQLPLUS中select的時(shí)候可以查詢到 這個(gè)時(shí)候你沒有進(jìn)行mit或者rollback之前你可以對剛才插入的 條記錄進(jìn)行update delete等操作 當(dāng)你進(jìn)行mit或者rollback的時(shí)候 這個(gè)時(shí)候由于你的表是事務(wù)級的臨時(shí)表 那么在插入數(shù)據(jù)的session也看不到數(shù)據(jù)了 這個(gè)時(shí)候數(shù)據(jù)就已經(jīng)被截?cái)嗔?/p>
運(yùn)行結(jié)果如下
SQL insert into classes(Class_idfp class='fp-sqkcc'/fpClass_Namefp class='fp-tqsh0'/fpClass_Memo) values(fp class='fp-x9mhj'/fpfp class='fp-sqkcc'/fpfp class='fp-wl5fd'/fpfp class='fp-r74kb'/fp計(jì)算機(jī)fp class='fp-4stpj'/fpfp class='fp-4stpj'/fpfp class='fp-7aprw'/fpfp class='fp-wl5fd'/fpfp class='fp-ctqx3'/fpfp class='fp-bmr02'/fpfp class='fp-te1fi'/fpfp class='fp-v1pmc'/fpfp class='fp-g5t59'/fpfp class='fp-4stpj'/fpfp class='fp-ctqx3'/fp);fp class='fp-zljnv'/fp row insertedSQL insert into classes(Class_idfp class='fp-sesat'/fpClass_Namefp class='fp-7aprw'/fpClass_Memo) values(fp class='fp-3f4pw'/fpfp class='fp-sqkcc'/fpfp class='fp-ctqx3'/fpfp class='fp-wl5fd'/fp經(jīng)濟(jì)信息fp class='fp-r74kb'/fpfp class='fp-ctqx3'/fpfp class='fp-sqkcc'/fpfp class='fp-4stpj'/fpfp class='fp-wl5fd'/fpfp class='fp-jcx54'/fpfp class='fp-9mmx8'/fpfp class='fp-o7rct'/fpfp class='fp-8y5u2'/fpfp class='fp-4stpj'/fpfp class='fp-4stpj'/fp);fp class='fp-k7d4b'/fp row insertedSQL insert into classes(Class_idfp class='fp-tqsh0'/fpClass_Namefp class='fp-sesat'/fpClass_Memo) values(fp class='fp-0x7ni'/fpfp class='fp-tqsh0'/fpfp class='fp-wl5fd'/fpfp class='fp-r74kb'/fp經(jīng)濟(jì)信息fp class='fp-wl5fd'/fpfp class='fp-ctqx3'/fpfp class='fp-sqkcc'/fpfp class='fp-r74kb'/fpfp class='fp-wl5fd'/fpfp class='fp-mo3f4'/fpfp class='fp-te1fi'/fpfp class='fp-aa2ze'/fpfp class='fp-h51ax'/fpfp class='fp-4stpj'/fpfp class='fp-r74kb'/fp);fp class='fp-x9mhj'/fp row insertedSQL update classes set class_memo =fp class='fp-4stpj'/fpfp class='fp-r74kb'/fpfp class='fp-4stpj'/fpfp class='fp-wl5fd'/fp where class_id=fp class='fp-h51ax'/fp ;fp class='fp-x9mhj'/fp row updatedSQL select * from classes ;
CLASS_ID CLASS_NAME CLASS_MEMO 計(jì)算機(jī) 經(jīng)濟(jì)信息 經(jīng)濟(jì)信息 SQL delete from classes where class_id= ; row deleted SQL select * from classes ; CLASS_ID CLASS_NAME CLASS_MEMO 計(jì)算機(jī) 經(jīng)濟(jì)信息 SQL mit; Commit plete SQL select *from classes ; CLASS_ID CLASS_NAME CLASS_MEMO SQL 再重復(fù)插入一次 然后rollback SQL Rollback ; Rollback plete SQL select * from classes ; CLASS_ID CLASS_NAME CLASS_MEMO SQL
臨時(shí)表的應(yīng)用
) 當(dāng)某一個(gè)SQL語句關(guān)聯(lián)的表在 張及以上 并且和一些小表關(guān)聯(lián) 可以采用將大表進(jìn)行分拆并且得到比較小的結(jié)果集合存放在臨時(shí)表中
) 程序執(zhí)行過程中可能需要存放一些臨時(shí)的數(shù)據(jù) 這些數(shù)據(jù)在整個(gè)程序的會(huì)話過程中都需要用的等等
注意事項(xiàng)
) 臨時(shí)表的索引以及對表的修改 刪除等和正常的表是一致的
) Oracle的臨時(shí)表是Oracle i才支持的功能特性 如果你的Oracle版本比較低的話 那么就可能沒有辦法用到了 如果你的Oracle 版本是 i的話 你還需要把$ORACLE_HOME/admin/${ORACLE_SID}/pfile目錄下的init ORACLE_SID ora初始參數(shù)配置文件的patible修改為patible = 我的服務(wù)器上就是這樣子配置的 當(dāng)然也可以修改為patible =
lishixinzhi/Article/program/Oracle/201311/16578
數(shù)據(jù)字典是Oracle存放有關(guān)數(shù)據(jù)庫信息的地方,其用途是用來描述數(shù)據(jù)的。
比如一個(gè)表的創(chuàng)建者信息,創(chuàng)建時(shí)間信息,所屬表空間信息,用戶訪問權(quán)限信息等。
數(shù)據(jù)庫數(shù)據(jù)字典是一組表和視圖結(jié)構(gòu)。它們存放在SYSTEM表空間中
當(dāng)用戶在對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作時(shí)遇到困難就可以訪問數(shù)據(jù)字典來查看詳細(xì)的信息。
用戶可以用SQL語句訪問數(shù)據(jù)庫數(shù)據(jù)字典。
用system用戶登陸
1.創(chuàng)建表空間
create tablespace sciarr DATAFILE '/opt/oracle/sciarr.dbf' SIZE 5000M AUTOEXTEND ON NEXT 200M
2.創(chuàng)建用戶
create user sciarry identified by sciarry default tablespace sciarr
3. 授權(quán)
grant connect to 用戶 grant resource to 用戶 grant create sequence to 用戶 grant create view to 用戶
4.建表
create table table1 (idno number(10),idname varchar2(10));
網(wǎng)頁名稱:oracle表怎么用 oracle 用戶下的表
文章地址:http://vcdvsql.cn/article20/hpgijo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、建站公司、微信小程序、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容