




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄課程概要3第一部分 基礎(chǔ)操作6第一章Oracle9i/10g 數(shù)據(jù)庫基本設(shè)置6一、基本操作6二、關(guān)于sys用戶口令字認(rèn)證方式設(shè)置6三、Oracle網(wǎng)絡(luò)連接配置7四、數(shù)據(jù)庫字符集設(shè)置8第二章 數(shù)據(jù)庫鏈路與遠(yuǎn)程數(shù)據(jù)傳輸9一、數(shù)據(jù)庫鏈路9二、使用數(shù)據(jù)庫鏈路實現(xiàn)數(shù)據(jù)實時自動傳輸10三、使用數(shù)據(jù)庫鏈路實現(xiàn)數(shù)據(jù)定時自動傳出12第三章 Oracle10g數(shù)據(jù)庫閃回操作13一、查詢閃回(flashback query)13二、基表閃回(Flashback Table)13三、刪除閃回14四、關(guān)于數(shù)據(jù)閃回的幾點說明:14第四章 數(shù)據(jù)分區(qū)存儲(Partiton)15一、什么是數(shù)據(jù)分區(qū)15二、創(chuàng)建分區(qū)表15三、
2、修改分區(qū)表結(jié)構(gòu)15四、創(chuàng)建List分區(qū)表(支持版本:Oracle9i以上)16第五章 存儲過程(函數(shù))17一、存儲過程17二、函數(shù)19三、包(package)20第二部分 DBA序言:21第一章 Oracle10g數(shù)據(jù)庫物理結(jié)構(gòu)管理22一、數(shù)據(jù)文件(Data Files)22二、日志文件(Redo Log Files)23三、數(shù)據(jù)庫的參數(shù)文件設(shè)置24四、數(shù)據(jù)庫控制文件(Control Files)25第二章 Oracle10g數(shù)據(jù)庫邏輯結(jié)構(gòu)27一、表空間27二、段(Segments)27三、區(qū)(Extents)28四、數(shù)據(jù)塊(Blocks)29第三章 Oracle10g數(shù)據(jù)庫內(nèi)存結(jié)構(gòu)30一、S
3、GA系統(tǒng)全局區(qū)(System Global Area)30二、PGA(Program Global Area)32三、排序區(qū)(Sort Area)32四、大區(qū)(Large Pool)32五、Java語言區(qū)(Java Pool)32六、Oracle10g自動內(nèi)存管理設(shè)置32第四章 Oracle10g表空間管理34一、表空間(Tablespace)34二、表空間類型34三、創(chuàng)建表空間34四、修改表空間35五、刪除表空間36第五章 Oracle10g數(shù)據(jù)庫備份與恢復(fù)37一、數(shù)據(jù)庫歸檔模式37二、數(shù)據(jù)庫歸檔模式配置37三、物理備份38四、數(shù)據(jù)庫故障恢復(fù)實例總結(jié)38五、RMAN(Recovery Man
4、ager)恢復(fù)管理器39課程概要Oracle9i/10個數(shù)據(jù)庫課程體系結(jié)構(gòu)一、 數(shù)據(jù)庫語言部分1、數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)與產(chǎn)品 Oracle 7.3.4 Oracle 8.0.6 Oracle 8i 8.1.7 iInternet Oracle 9i 9.2.0 Oracle 10g 10.2.0 Oracle 11g 11.2.0 ggrid每一個數(shù)據(jù)庫軟件都需要有5年以上的成熟期,不應(yīng)一味追求高版本2、SQL語言:操作數(shù)據(jù)庫,關(guān)系型數(shù)據(jù)庫通用語言3、SQL*PLUS:簡單報表功能、提供與操作系統(tǒng)接口4、PL/SQL程序設(shè)計:過程化語言(Procedural Language)5、數(shù)據(jù)存取控制6
5、、數(shù)據(jù)分區(qū)存儲技術(shù):兩種分區(qū)方式Range List當(dāng)一個表數(shù)據(jù)量過大時,可以進(jìn)行數(shù)據(jù)分區(qū),平衡I/O訪問7、Oracle Database 10 g Flashback功能1)將刪除的表找回來,前提是有備份點2)倒回到物理備份點(或Rman備份),再進(jìn)行基于時間的數(shù)據(jù)庫回復(fù)3)兩種恢復(fù):不完全恢復(fù):基于時間、基于事物、基于中止會丟失數(shù)據(jù),解決辦法:先做全備份,導(dǎo)出不想刪除的數(shù)據(jù),恢復(fù)后,遷入導(dǎo)出數(shù)據(jù)。 完全恢復(fù):二、 程序設(shè)計部分1、 PL/SQL程序設(shè)計2、 存儲過程(Procedure)、函數(shù)(Functiong)、包(Package)、數(shù)據(jù)庫觸發(fā)器(Database Triggers)
6、3、 事件觸發(fā)器(Events Triggers)4、 NDS動態(tài)SQL三、 DBA數(shù)據(jù)庫系統(tǒng)管理(Database Administrator)1、 Oracle核心軟件安裝與產(chǎn)品升級,Sun SolarisHP-UXUnix: AIX Tru64-Unix SCO Unix Linux1)部分系統(tǒng),命令相同2)Order by 在臨時表空間,臨時表空間沒有空間時,查詢都不能使用9之前從啟前不釋放,10以后會立即釋放臨時表空間需要有多個3)硬件要求(會占用內(nèi)存5557%)Oracle10g 512M/2.0G Oracle11g 1G/5.0bG2、 創(chuàng)建主要的數(shù)據(jù)庫存儲結(jié)構(gòu)3、 數(shù)據(jù)庫權(quán)限
7、與角色管理(權(quán)限的組合為角色)4、 監(jiān)控用戶對數(shù)據(jù)庫的存取5、 數(shù)據(jù)庫啟動與關(guān)閉6、 完成數(shù)據(jù)庫備份與恢復(fù)7、 數(shù)據(jù)庫性能優(yōu)化與調(diào)整四、 Oracle應(yīng)用服務(wù)器Oracle Application ServerOracle Developer SuitesForm builderForm應(yīng)用-*.Frmx在windows下清除Oracle運行環(huán)境1、 刪除注冊表RegeditLocal MachineSoftwareORACLE2、 刪除Oracle服務(wù)RegeditLocal MachineSystemCurrentControlSetServicesORA*3、 刪除Oracle事件日志R
8、egeditLocalMachineSystemCurrentControlSetServicesEventlogApplicationORA*4、 刪除windows安裝磁盤Program FilesOracle目錄5、 刪除菜單6、 刪除Oracle環(huán)境變量控制面板系統(tǒng)高級環(huán)境變量7、 重啟操作系統(tǒng)8、 刪除Oracle磁盤文件企業(yè)版:有用戶數(shù)限制(但不限制)、支持分區(qū)管理標(biāo)準(zhǔn)版:不支持分區(qū)個人版:不支持網(wǎng)絡(luò)進(jìn)程數(shù)會話數(shù)進(jìn)程數(shù)OLTP(On Line Transaction Processing)在線事務(wù)處理1、交互性高的系統(tǒng)采用T存儲2、回退段(Rollback Segments)設(shè)置比
9、較大3、petfree 空閑率一般為10%,Null值update時,值將寫在petfree中,設(shè)置過低,會引起“遷移”和“鏈接”。4、不保留update前的數(shù)據(jù)數(shù)據(jù)倉庫1、 保留update前的數(shù)據(jù)2、 目的:決策支持?jǐn)?shù)據(jù)庫字符集:nls(National Language Support)zhs16cgb231280(支持版本:oracle7.3以上)不支持繁體zhs16gbk(支持:Oracle8.0以上)支持繁體、韓文、日文zhs32gb18030(支持:Oracle9i以上)支持很多語種40第一部分 基礎(chǔ)操作第一章Oracle9i/10g 數(shù)據(jù)庫基本設(shè)置一、 基本操作1、數(shù)據(jù)庫管理員
10、用戶:1)sys:dba、sysdba2)system:dba2、sys用戶連接數(shù)據(jù)庫方法:1)$sqlplus “/as sysdba” -sys用戶無口令字要求2)$sqlplus”sys/xxx as sysdba” -sys用戶有口令字要求3、為用戶解鎖Sqlalter user scott account unlock;修改密碼:sqlpassword scott;顯示權(quán)限:sqlshow user;4、為用戶設(shè)置口令Sqlgrant connect to scott identified by tiger;5、查詢當(dāng)前用戶所擁有的尸體Sqlselect * from tab;二、
11、關(guān)于sys用戶口令字認(rèn)證方式設(shè)置1、 sys用戶口令認(rèn)證方式 操作系統(tǒng)認(rèn)證方式(默認(rèn),不需要口令字) Oracle認(rèn)證方式2、 操作系統(tǒng)認(rèn)證用戶組Windows:ora_dbaUnix:oinstall、dba3、 修改認(rèn)證方式D:Oracleproduct10.2.0db_1networksqlnet.oraSQLNET.AUTHENTICATION_SERVICES=(NTS)改為D:Oracleproduct10.2.0db_1networksqlnet.oraSQLNET.AUTHENTICATION_SERVICES=(NONE)修改后所有用戶必須輸入口令,去掉系統(tǒng)默認(rèn)登錄,增加安全
12、性。修改后:sqlplus “sys/shiying as sysdba4、 修改sys用戶口令字方法”(當(dāng)忘記sys用戶口令時,可做如下操作進(jìn)行修改)DocOrapwd file=d:Oracleproduct10.2.0db_1databasePWDOrclIIRS.orapassword=shiying entries=30三、 Oracle網(wǎng)絡(luò)連接配置1、 主機字符串1) 網(wǎng)絡(luò)協(xié)議:TCPIP2) 主機名或IP3) 數(shù)據(jù)庫服務(wù)名 oracle8i以后才有或數(shù)據(jù)庫實例名2、 數(shù)據(jù)庫標(biāo)識參數(shù)說明:1) 數(shù)據(jù)庫名稱(db_name)2) 數(shù)據(jù)庫實例名稱(instance_name) 一個數(shù)據(jù)
13、庫多個實例名; 先啟實例再啟數(shù)據(jù)庫,先關(guān)數(shù)據(jù)庫再管實例 RAC同時運行和OPS一個壞了另一個才運行 不建議使用實例名連接,穩(wěn)定性不好,最好采用服務(wù)名連接。3) 數(shù)據(jù)庫域名(db_domain) 同名數(shù)據(jù)庫不能復(fù)制; 在相同數(shù)據(jù)庫名時加上不同的域名后,可以進(jìn)行復(fù)制。4) 數(shù)據(jù)庫服務(wù)名(service_names) =數(shù)據(jù)庫名+域名; 在安裝時沒有輸入域名時,此時數(shù)據(jù)庫服務(wù)名和數(shù)據(jù)庫名相同。 連接數(shù)據(jù)用5) 全局?jǐn)?shù)據(jù)庫名(global_db_name) 默認(rèn)全局名:數(shù)據(jù)庫名(oracle10g) 遠(yuǎn)程連接用到3、 數(shù)據(jù)字典1) 查詢數(shù)據(jù)庫名稱SQLselect name from v$databa
14、se;2) 查詢數(shù)據(jù)庫實例名稱:SQLselect instance_name from v$instance;3) 查詢數(shù)據(jù)域名:SQLselect value from v$parameter where name = db_domain;或SQLshow parameter db_domain;4) 查詢數(shù)據(jù)庫服務(wù)名SQLselect value from v$parameter where name = service_names;或SQLshow parameter service_names5) 查詢?nèi)謹(jǐn)?shù)據(jù)庫名:SQLselect * from global_name;或SQLs
15、how parameter global_name4、 圖形界面網(wǎng)絡(luò)配置工具:DOSNetca注:SID操作系統(tǒng)里定義(windows里為注冊表),當(dāng)sid誤操作會報適配器錯誤。SQLselect * from saleshr.sdata.dq;(數(shù)據(jù)庫鏈路)5、 手工進(jìn)行網(wǎng)絡(luò)配置:$lsnrctl start -啟動監(jiān)聽進(jìn)程$lsnrctl status 顯示監(jiān)聽進(jìn)程狀態(tài)$lsnrctl stop -停止監(jiān)聽進(jìn)程1) 網(wǎng)絡(luò)連接解析文件:tnsnames.orad:Oracleproduct10.2.0db_1networkadmin tnsnames.ora2) 監(jiān)聽進(jìn)程配置文件:liste
16、ner.ora 修改主機名,需要修改監(jiān)聽文件四、 數(shù)據(jù)庫字符集設(shè)置1、 數(shù)據(jù)庫核心字符集設(shè)置參數(shù):nls_characterset查詢數(shù)據(jù)庫核心字符集:SQLselect * from nls_database_parameters;2、 客戶端字符集設(shè)置參數(shù):nls_langnls_lang:simplified Chinese_china.zhs16gbk3、 修改核心字符集參數(shù)Sqlupdate props$Set value$=ZHS16GBKWhere name=NLS_CHARACTERSET;SQLcommit;修改后,重新啟動數(shù)據(jù)庫即可。 expimp 兩個數(shù)據(jù)庫做遷移時,字符
17、集需要一致。 多語種字符集:utf8第二章 數(shù)據(jù)庫鏈路與遠(yuǎn)程數(shù)據(jù)傳輸一、 數(shù)據(jù)庫鏈路創(chuàng)建數(shù)據(jù)庫鏈路:1、 授予用戶創(chuàng)建鏈路權(quán)限:sys/system:SQLgrant create database link to stud90,stud91(public 授權(quán)給所有人stud90 with admin option 當(dāng)前用戶可以授權(quán)他人);2、 創(chuàng)建私有鏈路的方法:在普通用戶下創(chuàng)建查詢用戶權(quán)限:SQLselect * from user_sys_privs;SQLselect * from user_role_privs;SQLselect * from role_sys_privs;語法:
18、SQLcreate database link 鏈路名Connect to 用戶名 identified by 口令字Using 主機字符串;語法說明:1) 數(shù)據(jù)庫鏈路名取對方全局?jǐn)?shù)據(jù)庫名稱SQLselect * from flobal_name;SQLshow parameter global names;SQLater system set global_names=true;修改true后名稱可以隨意取2) 用戶名及口令字是對方數(shù)據(jù)庫中的用戶名及口令字3) 主機字符串為連接對方數(shù)據(jù)庫的網(wǎng)絡(luò)連接配置文件中字符串名SQL create database link ORA10G.REGRESS
19、.RDBMS.DEV.US.ORACLE.COMconnect to stud52 identified by shiyingusing ora10g;數(shù)據(jù)庫鏈路的使用:SQLselect * from tab鏈路名;SQLinsert into dept鏈路名Values(70,xx,xx);SQLcreate table y_deptAs select * from dept ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COM;查詢數(shù)據(jù)庫鏈路信息:SQLselect * from user_db_links;刪除鏈路:SQLdrop database link 數(shù)
20、據(jù)庫鏈路名;注:同名數(shù)據(jù)庫不允許鏈路3、 創(chuàng)建公共數(shù)據(jù)庫鏈路,由sys/system用戶創(chuàng)建SQLcreate public database link ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COMConnect to user09 identified by user09Using unix01;查詢公共鏈路信息:System:SQLselect * from dba_db_links;SQLselect * from user_db_links;(只能查看管理員創(chuàng)建的私有鏈接)刪除公共鏈路:SQLdrop public database link 公共鏈路名;注
21、:公共用戶和私有用戶同時存在時,優(yōu)先使用私有。二、 使用數(shù)據(jù)庫鏈路實現(xiàn)數(shù)據(jù)實時自動傳輸1、 創(chuàng)建數(shù)據(jù)插入觸發(fā)器,在本地創(chuàng)建,使遠(yuǎn)端服務(wù)器與本地同步SQLcreate or replace trigger InserDeptAfter insert on deptFor each row -行級(執(zhí)行一次)、語句級(執(zhí)行多次)BeginInsert into dept ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COMValues(:new.deptno,:new.dname,:new.loc); -new插入新行End inserDept;顯示錯誤信息:SQLshow
22、 errors查詢觸發(fā)器名稱:SQLselect trigger_name from user_triggers查詢觸發(fā)器代碼:SQLselect trigger_body from user_triggers where trigger_name=INSERDEPTSQLset long 10002、創(chuàng)建數(shù)據(jù)更新觸發(fā)器SQLcreate or replace trigger UpdDept after update on dept for each row Begin update dept ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COM set deptno=
23、:new.deptno,dname=:new.dname,loc=:new.loc where deptno=:old.deptno and dname=:old.dname and loc=:old.loc; end UpdDept;刪除觸發(fā)器:SQLdrop trigger 名稱注:表被刪除時,表上所有觸發(fā)器全部被刪除。3、數(shù)據(jù)刪除觸發(fā)器SQLcreate or replace trigger DelDept after delete on dept for each row begin delete from dept ORA10G.REGRESS.RDBMS.DEV.US.ORACLE
24、.COM where deptno=:old.deptno; end DelDept;4、同時執(zhí)行增刪改的觸發(fā)器SQLcreate or replace trigger ChangDept after insert or update or delete on dept for each row Begin if inserting then insert into dept ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COM values(:new.deptno,:new.dname,:new.loc);elseif updating then update dep
25、t ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COM set deptno=:new.deptno,dname=:new.dname,loc=:new.loc where deptno=:old.deptno and dname=:old.dname and loc=:old.loc;elseif deleting then delete from dept ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COM where deptno=:old.deptno;end if; end ChangDept;查詢觸發(fā)器是否失效:SQLselect
26、 trigger_name,table_name,status from user_triggers;對于失效的觸發(fā)器需從新編譯:SQLalter trigger 觸發(fā)器名稱 compile;編譯存儲過程、函數(shù):SQLalter procedure 過程或函數(shù)名 compile;編譯索引:SQLalter index 索引 rebuild;5、用戶審計SQLcreate table audit_info( name varchar2(30), op varchar2(30), ttime date,s1 int,s2 int,a3 varchar2(30),a4 varchar2(30);在本
27、機創(chuàng)建觸發(fā)器:1、系統(tǒng)觸發(fā)器SQLcreate or replace trigger sys_a1 after logon on hr01 begin insert into audit_info(name,op,ttime) ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COMvalues(user,進(jìn)入系統(tǒng),sysdate);SQLcreate or replace trigger sys_a2 Before logoff on databaseBeginInsert into audit_info ORA10G.REGRESS.RDBMS.DEV.US.ORACL
28、E.COMValues(user,離開系統(tǒng),sysdate); End;SQLcreate or replace trigger Audit_OpAfter insert or update or delete on deptFor each rowBeginIf inserting thenInsert into audit_info ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COMValues(user,插入數(shù)據(jù),sysdate,null,:new,deptno,:new.dname,:new.loc);Elsif deleting thenInsert int
29、o audit_info ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COMValues(user,刪除數(shù)據(jù),sysdate,null,:old.deptno,:old.dname,:old.loc);End if;End;三、 使用數(shù)據(jù)庫鏈路實現(xiàn)數(shù)據(jù)定時自動傳出輔節(jié)點表名和主節(jié)點表名相同時,刪除輔節(jié)點表,創(chuàng)建快照后,輔節(jié)點表不允許增刪改,可以刪除快照功能,再做修改。1、 快照(snapshots)(實體化視圖)優(yōu)勢:受網(wǎng)絡(luò)影響小,什么時候連接上,什么時候執(zhí)行;非??煽?。4) 授予用戶創(chuàng)建快照權(quán)限(在輔節(jié)點)Sys/system:SQLgrant create sna
30、pshot to 用戶名;5) 創(chuàng)建快照的語法(在輔節(jié)點)SQLcreate snapshot 快照名Refresh 刷新方式 -complete,fast(只刷新增量值),force(fast+complete)Next 時間間隔 sysdate+1/24(間隔1小時)-固定時間刷新:next_day(trunk(sysdate),星期天)+22/24With primary keyAs select 字句;6) 創(chuàng)建快照日志(在主節(jié)點)SQLcreate snapshot log on 表名;SQLdrop table dept cascade constraints;5)實例SQLcre
31、ate snapshot deptRefresh forceNext sysdate +1/1440With primary keyAs select * from deptORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COM;創(chuàng)建快照日志(先建立日志,才能用fast):SQLcreate snapshot log on dept;6) 查詢快照信息:SQLselect name,master_owner,master,type,next,Master_link from user_snapshots;Name:快照名Master_owner:主節(jié)點表名Type:刷新方
32、式Next:時間間隔Master_link:鏈路名7) 刪除快照:SQLdrop snapshot 快照名;第三章 Oracle10g數(shù)據(jù)庫閃回操作什么是數(shù)據(jù)閃回使用數(shù)據(jù)閃回(Flashback)可以實現(xiàn)對于過去某指定時間點數(shù)據(jù)庫中數(shù)據(jù)的瀏覽、可以使基表返回到過去某指定時間點,實現(xiàn)邏輯操作錯誤后,數(shù)據(jù)庫的自我恢復(fù)。會丟失閃回時間點到目前時間點的數(shù)據(jù)。針對于回收站的操作,回收站存在undo表空間一、 查詢閃回(flashback query)適用大批量修改查詢過去某指定時間點的基表中的數(shù)據(jù),恢復(fù)錯誤的刪除、更新等。SQLselect * from emp as of timestamp to_t
33、imestamp(2011.09.22 09:40:00,yyyy.mm.dd hh24:mi:ss);數(shù)據(jù)插入:SQLinsert into empselect * from emp as of timestamp to_timestamp(2011.09.22 09:40:00,yyyy.mm.dd hh24:mi:ss);二、 基表閃回(Flashback Table)適用基表數(shù)據(jù)量很大,只有少量行修改時使基表返回到過去某指定時間點。1、設(shè)置基表允許進(jìn)行行移動SQLalter table emp enable row movement;2、實施基表返回SQLflashback table
34、 emp to timestampTo_timestamp(2011.09.22 10:36:00,yyyy.mm.dd hh24:mi:ss);三、 刪除閃回閃回表dropped的基表1、顯示回收站信息SQlshow recyclebin2、 閃回基表SQLflashback table emp to before drop;SQLflashback table “回收站實體名” to before drop;SQLflashback table dept to before drop rename to depart; -重名時可以改名SQLdelete from emp where co
35、mm. Is null;-刪除部分?jǐn)?shù)據(jù)、不回收自由空間、可以回退SQLtruncate table emp;-刪除全部數(shù)據(jù)、回收自由空間、不可回退、不可閃回SQLdrop table emp;-刪除數(shù)據(jù)及表結(jié)構(gòu)、回收全部空間、不可回退、可以閃回SQLdrop table emp1 purge;-刪除后不保留在回收站,不可閃回SQLpurge recyclebin;-清除回收站,不可閃回四、 關(guān)于數(shù)據(jù)閃回的幾點說明:1、系統(tǒng)表空間的數(shù)據(jù)不得閃回2、實體在回收站保留時間不可保證,保留時間取決于系統(tǒng)運行狀態(tài),可能保留幾秒,也可能保留幾個月。閃回針對于回收站的操作,回收站存在undo表空間。3、 閃回
36、時建立在表上的約束不可保證。主鍵等如果丟失,需要重建。第四章 數(shù)據(jù)分區(qū)存儲(Partiton)一、 什么是數(shù)據(jù)分區(qū)數(shù)據(jù)分區(qū)是把一個表劃分為多個存儲區(qū)域。在建立表結(jié)構(gòu)時考慮分區(qū)存儲方案,在基表中選取一個或多個列作為分區(qū)關(guān)鍵字,該關(guān)鍵字決定哪些數(shù)據(jù)存儲在哪個分區(qū)。數(shù)據(jù)插入時間,所插入數(shù)據(jù)自動存儲到相應(yīng)分區(qū)。當(dāng)表的內(nèi)容非常大的時候,可以進(jìn)行分區(qū)存儲。二、 創(chuàng)建分區(qū)表SQLcreate table employee(Name varchar2(20),Sal number(7,2),Hdate date) partition by range(sal)(partition p1 values less
37、 than(1000) tablespace users,Partition p2 values less than(3000) tablespace sysaux,Partition p3 values less than(8000) tablespace users,Partition p4 values less than(maxvalue) tablespace sysaux);-一般不采用maxvalue,因為之后就不能在分區(qū)了。使用sys/system查詢表空間SQLselect tablespace_name from dba_tablespaces;分區(qū)表的查詢:SQLsele
38、ct * form employee;SQLselect * from employee partition(p1);查詢是否創(chuàng)建了分區(qū)表:SQLselect table_name,partitioned from user_tables;查詢分區(qū)表結(jié)構(gòu):SQLselect partition_name,high_value,Tablespace_nameFrom user_tab_partitionsWhere table_name=EMPLOYEE; -注意要大寫三、 修改分區(qū)表結(jié)構(gòu)1、增加分區(qū)SQLalter table employee add partition p5Values l
39、ess than(30000) tablespace users;2、刪除分區(qū)SQLalter table employee drop partition p3;3、分區(qū)拆分(Split)SQLalter table employee split partition p5At (10000) into (partition p34,partition p5);4、修改分區(qū)名稱SQLalter table employee rename partitionp5 to p4;5、分區(qū)合并(Merge)SQLalter table employee mergePartitions p3,p4 int
40、o partition p4;查詢用戶默認(rèn)表空間:SQLselect username,default_tablespaceFrom dba_users;6、分區(qū)移動:將分區(qū)數(shù)據(jù)從一個表空間移動到另一個表空間SQLalter table employee move partition p4 tablespace users;四、 創(chuàng)建List分區(qū)表(支持版本:Oracle9i以上)SQLcreate table product(P_name varchar2(20),P_id number(5),P_date date,P_loc varchar2(50) partition by list(
41、p_loc)(partition p1 values(北京) tablespace users,partition p2 values(上海) tablespace sysaux,partition p3 values(河南,陜西) tablespace sysaux,partition p4 values(null) tablespace users, -無產(chǎn)地partition p5 values(default) tablespace users); -有產(chǎn)地,不是上述四個1、分區(qū)拆分SQLalter table product split partition p3 values(陜西)
42、 into (partition p3,partition p32);2、分區(qū)合并:SQLalter table product merge partitions p1,p2 into partition p1;第五章 存儲過程(函數(shù))一、 存儲過程存儲過程是把一個PL/SQL塊存儲到數(shù)據(jù)庫中,作為一個數(shù)據(jù)庫實體,可以在其他過程、函數(shù)及程序中調(diào)用。創(chuàng)建存儲過程的語法:SQLcreate or replace procedure 過程名(變量 in|out|in out 數(shù)據(jù)類型) is|as 變量定義;Begin;End 過程名;1、in:調(diào)用者向過程傳遞參數(shù)Create or replace
43、 procedure DelEmp(v1 in number)AsBeginDelete from emp where empno=v1;If SQL%NOTFOUND then dbms_output.put_line(刪除失??!系統(tǒng)中無編碼為|v1|的員工);else dbms_output.put_line(編碼為|v1|的員工已經(jīng)被除名!);end if;end DelEmp;2、在sqlplus中打開打印服務(wù)SQLset serveroutput on 存儲過程應(yīng)用方法SQLexec EelEmp(xxxx);3、在pl/sql中調(diào)用方法BeginDelEmp(XXXX);DelEm
44、p(XXXX);End;4、查詢已創(chuàng)建的存儲過程SQLselect distinct name from user_source;5、查詢存儲過程源代碼SQLselect text from user_sourceWhere name=DELEMP;6、存儲過程加密DOC:wrap iname=*.sql 將sql文件轉(zhuǎn)換成plb格式的文件。SQL*.plb7、查詢基表源代碼(支持:Oracle9i以上)SQLselect dbms_metadata.get_ddl(TABLE,EMP)From dual; -輸出SQL格式SQLselect dbms_metadata.get_xml(TAB
45、LE,EMP)From dual; -輸出XML格式SQLset long 10008、out:由過程向調(diào)用者返回結(jié)果SQLcreate or replace procedure QueryEmp(V1 in emp.empno%type,V2 out emp.ename%type,V3 out emp.sal%type)IsBeginSelect ename,sql into v2,v3 from empWhere empno=v1;ExceptionWhen NO_DATA_FOUND thenDbms_output.put(系統(tǒng)無編碼為|v1|的人員!);End QueryEmp;調(diào)用方
46、法:SQLdeclare V1 varchar2(20);V2 number(7,0);BeginQueryEmp(XXX,v1,v2);Dbms_output.put_line(v1|*|v2);End;9、in out:雙向參數(shù)傳遞SQLcreate or replace procedure ChangeName(V in out varchar2)IsBeginV:=Substr(v,1,3);End ChangeName;調(diào)用方法:SQLdeclareV varchar2(20) :=SMITH;BeginChangeName(v);Dbms_output.put_line(v);En
47、d;二、 函數(shù)創(chuàng)建函數(shù)的語法:SQLcreate or replace function 函數(shù)名(變量 in|out|in out 數(shù)據(jù)類型) return 數(shù)據(jù)類型Is|as變量定義:Begin;Return 值;End 函數(shù)名;SQLcreate or replace function GetSal(v1 in number) return numberIsV_sal emp.sal%type;BeginSelect sal into v_sal from emp where empno=v1;Return v_sal;End GetSal;函數(shù)調(diào)用:SQLselect GetSal(73
48、69) from dual;SQLexec dbms_output.put_line(GetSal(7782);練習(xí):編寫一個計算n!的函數(shù)。(n=1)create or replace function GetValue(v1 in int) return intIsV2 int:=1;Value int:=1;BeginWhile v2create or replace package j包名 【is/as】Procedure 過程名();Function 函數(shù)名() return 數(shù)據(jù)類型;變量定義;列外定義;光標(biāo)定義;End 包名;4、創(chuàng)建包體(create package body)
49、SQLcreate or replace packate body 包名【is/as】Procedure 過程名()end 過程名; -整個過程體都要寫,唯獨不用寫create or replaceFuctiong 函數(shù)名()return 數(shù)據(jù)類型end 函數(shù)名;End 報名;注:定義包后,可以刪掉包外的過程和函數(shù)等;包也可以加密。5、調(diào)用包包名.過程名包名.函數(shù)名第二部分 DBA序言:DBA(Database Administrator)數(shù)據(jù)庫系統(tǒng)管理數(shù)據(jù)庫體系結(jié)構(gòu):1、物理結(jié)構(gòu)Data File -DBWR有1-20個進(jìn)程,多Cpu時要進(jìn)行設(shè)置,默認(rèn)是1個SpfileControl Fil
50、esRedio Log Files -(記錄對數(shù)據(jù)庫的修改)LGWR日志寫入進(jìn)程只有一個,ARCH歸檔日志進(jìn)程,默認(rèn)禁用。2、邏輯結(jié)構(gòu)3、內(nèi)存結(jié)構(gòu)4、進(jìn)程結(jié)構(gòu)第一章 Oracle10g數(shù)據(jù)庫物理結(jié)構(gòu)管理物理結(jié)構(gòu):數(shù)據(jù)庫是由構(gòu)成數(shù)據(jù)庫的操作系統(tǒng)文件所組成。數(shù)據(jù)庫物理結(jié)構(gòu)文件存儲目錄:C:oracleproduct10.2.0oradatadb_name*.* -Windows/u01/app/oracle/product/10.2.0/oradata/db_name/*.* -Unix應(yīng)用:1、當(dāng)操作系統(tǒng)打不開時,可以將*.*拷到一個新安裝的Oracle中,確保安裝路徑和數(shù)據(jù)庫名相同即可。整個過程相當(dāng)于數(shù)據(jù)庫全備
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腔鏡技術(shù)在胸腔手術(shù)中的應(yīng)用
- 服裝行業(yè)總結(jié)
- 航運市場競爭策略分析
- 大學(xué)男生軍事訓(xùn)練故事解讀
- 成語的語義和用法辨析:大四語文成語學(xué)習(xí)教案
- 大數(shù)據(jù)應(yīng)用項目合作協(xié)議
- 公司年會慶典演講文稿
- 點火線圈相關(guān)行業(yè)投資規(guī)劃報告范本
- 付定金房屋買賣合同
- 高中生國際競賽獲獎故事觀后感
- 枯死松樹清理服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 第4課 中古時期的亞洲(教學(xué)課件)-【中職專用】《世界歷史》同步課堂(同課異構(gòu))(高教版2023?基礎(chǔ)模塊)
- 《監(jiān)理企業(yè)安全責(zé)任清單(2.0版)參考模板》
- 團(tuán)隊統(tǒng)一思想培訓(xùn)
- 小區(qū)停車收費方案
- 《讓我們的家更美好》教學(xué)設(shè)計
- 提升漁業(yè)與水產(chǎn)養(yǎng)殖技術(shù)的高效養(yǎng)殖模式
- 曲率系數(shù)不均勻系數(shù)自動計算
- 垃圾分揀項目可行性報告
- 陜09J08 樓梯 欄桿 欄板圖集
- 老年功能狀態(tài)評估
評論
0/150
提交評論