Oracle復習重點參考模板_第1頁
Oracle復習重點參考模板_第2頁
Oracle復習重點參考模板_第3頁
Oracle復習重點參考模板_第4頁
Oracle復習重點參考模板_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第三、四、六章1、四個服務:數據控制臺服務(OracleDBCconsoleorcl)管理服務(OracleoraDb10g_homeliSQL*Plus)網絡監聽服務(OracleoraDb10g_homelTNSListener)實例服務(OracleServiceORCL)2、全局數據庫命名方式:數據庫名.域名 3、編輯緩沖區 當緩沖區存有內容后,可以使用編輯命令對緩沖區進行修改。常用的編輯命令包括: A【PPEND】將指定的文本追加到緩沖區內當前行的末尾; C【HANGE】修改緩沖區當前行的文本; C/修改前/修改后 DEL刪除緩沖區中的當前行文本; N用數值定位緩沖區中的當前行; I

2、【NPUT】在緩沖區當前行的后面新增加一行文本; ED【IT】以文本編輯器方式打開緩沖區,進行編輯。第七章:物理存儲結構7.3數據文件及其管理1、數據庫與表空間的關系: (1)、一個表空間可以包含幾個數據文件,(2)、一個數據文件只能從屬于一個表空間2、創建數據文件: (永久性)向表空間添加數據文件:Alter tablespaceadd datafile (臨時性)向臨時表空間添加臨時數據文件:Alter tablespaceadd tempfile4、修改數據文件的大小手工改變數據文件的大小:alter database datafile設置數據文件為自動增長方式:alter databa

3、se 1 / 285、在下面幾種情況下需要改變數據文件的可用性:(1)、要進行數據文件的脫機備份時,需要先將數據文件脫機;(2)、需要重命名數據文件或改變數據文件的位置時,需要先將數據文件脫機;(3)、如果Oracle在寫入某個數據文件時發生錯誤,會自動將該數據文件設置為脫機狀態,并且記錄在警告文件中。排除故障后,需要以手動方式重新將該數據文件恢復為聯機狀態。(4)、數據文件丟失或損壞,需要在啟動數據庫之前將數據文件脫機。 6、刪除某個臨時表空間中的某個臨時數據文件: Alter tablespacedrop tempfile7、備份控制文件備份控制文件:alter database back

4、up controlfile (1)、將控制文件備份為二進制文件 Alter database backup controlfile to trace; (2)、將控制文件備份為文本文件 Alter database backup controlfile to trace;7.5、重做日志文件的管理每個數據庫至少需要兩個重做日志文件,采用循環寫的方式進行工作1、添加重做日志文件組成員注意事項: (1)、同一個重做日志文件組中的成員文件存儲位置應盡量分散(保證安全) (2)、不需要指定文件大小。新成員文件大小由組中已有成員大小決定。重做日志文件3重做日志文件2重做日志文件1重做日志文件的工作過程

5、:LGWR重做日志緩沖區日志切換日志切換 (自動運行的小文件) 日志切換2、添加重建日志文件組 例:alter database add logfile group 4Alter database add logfile member2、 添加重做日志文件成員例:select group#,member,status from V$log;Select group#,member,status from V$log4、刪除重建日志文件組:例:Select group#,status from v$log;Alter database drop logfile group 3;Alter dat

6、abase drop logfile group 4;5、刪除重做日志文件成員:例:select group#,member,status from v$logAlter database drop logfile member;Alter database drop logfile member c:21.log;6、刪除重做日志文件組成員語法n ALTER DATABASE DROP LOGFILE MEMBERp 刪除注意事項n 只能刪除狀態為INACTIVE或UNUSED的重做日志文件組中的成員;若要刪除狀態為CURRENT的重做日志文件組中的成員,則需執行一次手動日志切換。n 如果數

7、據庫處于歸檔模式下,則在刪除重做日志文件之前要保證該文件所在的重做日志文件組已歸檔。n 每個重做日志文件組中至少要有一個可用的成員文件,即VALID狀態的成員文件。如果要刪除的重做日志文件是所在組中最后一個可用的成員文件,則無法刪除。 7、 設置歸檔/非歸檔模式(1、2、3只能選一個設置,一般設置歸檔)1、 關閉數據庫Shutdown immediate2、 啟動數據庫到MOUNT狀態Startup mount 3、 使用alter database archivelog語句將數據庫設置為歸檔模式。Alter database archivelog ;4、 或使用Alter database

8、noarchivelog語句將數據庫設置為非歸檔模式。Alter database archivelog5、 打開數據庫Alter database open;控制文件相關截圖一個數據庫至少有一個控制文件,但一般一個數據庫中都有2或3個控制文件;1、 將控制文件備份到跟蹤文件(文本文件):Alter database backup controlfile to trace2、 將控制文件備份為二進制文件:Alter database backup controlfile to c:1.bkp3、 查詢跟蹤文件的位置:Show parameter user_dump_dest4、 關閉數據庫,權

9、限不足時解決辦法:Shutdown immediate(會提示權限不足)Conn sys/zhuyuli as sysdbaShutdown immediate5、 數據庫分為三個狀態:Nomount:創建實例;Mount: 加載控制文件;Open: 打開數據文件和重做日志文件; 第八章:邏輯存儲結構數據庫邏輯存儲結構之間的關系如圖:數據庫段區表空間數據塊 Block extent segment tablespace邏輯結構單元類型:數據塊:block區:extent段:tegment表空間:tablespace(由小及大的順序)表空間概念一個表空間對應一個或多個數據庫文件,數據文件的大小決

10、定了表空間的大小,一個數據文件只能從屬于一個表空間。數據庫表空間分為:系統表空間、非系統表空間系統表空間分為:1、system表空間 2、sysaux表空間非系統表空間分為:1、撤銷表空間(當初始化參數undo_management=auto時,系統使用撤銷表空間自動進行回滾信息管理) 2、臨時表空間 3、用戶表空間 表空間的管理永久性表空間:表空間名稱不能超過30個字符,必須以字母開頭;表空間的類型包括普通表空間、臨時表空間、撤銷表空間;表空間中區的分配方式包括:自動擴展(autoallocate)和定制(uniform);段的管理包括:自動管理(auto)和手動管理(manual);1、創

11、建永久性表空間:臨時性表空間:1、使用creattemporary tablespace語句創建臨時表空間,用tempfile子句設置臨時數據文件;2、臨時表空間中區的分配方式只能是定制(Uniform),而不能是Autoallocate;例題:為Orcl數據庫創建一個臨時表空間orcltemp1 Create temporary tablespace orcltemp1 tempfileD:orcaleproduct10.2.0oradataorclorcltemp1_1.dbfsize 20M Extent management local uniform size 15M;修改表空間擴展

12、表空間的三種方式:1、為表空間添加數據文件;2、改變數據文件大小;3、允許數據文件自動擴展;例題:修改user01.dbf數據文件的自動增長方式,每次增長5m,最大50m.Alter database datafileC:user01.dbfextent on next 5mMaxsize 50m;一些表空間必須處于聯機狀態:1、System表空間;2、正在進行事物回滾的撤銷表空間;3、臨時表空間;2、查看數據庫是否處于存檔模式:Archive log list3、 查詢數據庫中有哪些表空間:Select name from V$tablespace4、 設置上面表空間(sysaux)為聯/脫

13、機狀態:Alter tablespace sysaux onlineAlter tablespace sysaux offline表空間的讀寫性:1、表空間只有在滿足下列要求后才可以轉為只讀狀態:(1)、表空間處于聯機狀態;(2)、表空間中不能存在任何活動的回滾段;(3)、如果表空間正在進行聯機數據庫備份,則不能將它設置為只讀狀態;查詢表空間名字和表空間數據文件名:Select file_name,tablespace_name from dba_data_files;備份表空間(tbs2):Alter tablespace tbs2 begin backup;停止表空間的備份:Alter t

14、ablespace tbs2 end backup;刪除表空間:語法:Drop tablespace tablespace_name;刪除參照完整性約束,應帶有子句Cascade constraints;例題:刪除orcl數據庫的ORCL TBS1表空間及其所有內容 Drop tablespace orcltbs1 including contents; 數據塊數據塊包括:塊頭部、存儲區塊頭部分包括標題、表目錄、行目錄三部分;存儲區包括:行數據區、空閑區 段段的類型:1、數據段;2、索引段;3、臨時段;4、回滾段;回滾信息包括:1、修改前;2、修改后;回滾段的作用: 1、事物回滾;2、數據庫恢

15、復3、數據的讀一致性;4、閃回查詢; (見書P144)回滾段存儲的是:1、事物修改的數據原值;2、新值;例題1、創建一個回滾表空間UNDOTBS,并作為數據庫的撤銷表空間 Create undo tablespace undotbs datafileC:undo.dbfsize 5m;Alter system set UNDO_DATASPACE=undotbs;例題2、創建一個本地管理方式下的臨時表空間TEMPTBS,并將該表空間作為數據庫實例默認臨時表空間 Create temparory tablespace temptbs tempfile C:temptbs.dbfsize 5m E

16、xtent management local uniform size 5m; Alter database default emporary tablespace temptbs;例題3、創建一個本地管理方式下的表空間USERTBS2,要求每個區分大小為20m Create tablespace userstbs1 datafile C:userstbs.dbfsize 20m Extent management local autoallocate;例題4、創建一個本地管理方式下的表空間USERTBS2,要求每個區分大小為512KB Create tablespace usertbs2 d

17、atafile C:usertbs2.dbfsize 10m Extent management local uniform size 512KB例題5、刪除表空間usertbs2,同時刪除該表空間的內容以及對應的操作系統文件 Drop tablespace usertbs2 including contents; 第九章、數據庫實例1、SGA數據高速緩存區作用: 1、存儲從數據文件中檢索出來的數據拷貝。應用程序要訪問的數據必須從磁盤的數據文件讀到數據緩沖區中處理。2、在數據緩沖區中被修改后的數據由數據寫入進程寫到硬盤的數據文件中永久保存。3、提高獲取和更新數據的性能。重做日志緩沖區作用:1、

18、 重做日志緩沖區用于緩存用戶對數據庫進行修改操作時生成的重做記錄。 2、 為了提高工作效率,重做記錄并不是直接寫入重做日志文件中,而是首先被服務器進程寫入重做日志緩沖區中,在一定條件下,再由日志寫入進程(LGWR)把重做日志緩沖區的內容寫入重做日志文件中做永久性保存。在歸檔模式下,當重做日志切換時,由歸檔進程(ARCH)將重做日志文件的內容寫入歸檔文件中 共享池功能:1、共享池用于緩存最近執行過的SQL語句、PL/SQL程序和數據字典信息,是對SQL語句、PL/SQL程序進行語法分析、編譯、執行的區域。 2、 PGAPGA功能:PGA 是為每一個與Oracle數據庫連接的用戶保留的內存區,主要

19、存儲該連接使用的變量信息和與用戶進程交換的信息。是非共享的,只有服務進程本身才能訪問它自己的PGA區PGA是由排序區、會話區、游標區、堆棧區組成 9.4、Oracle后臺進程1、DBWR(數據庫寫入進程)功能:數據庫寫入進程負責把數據高速緩沖區中已經被修改過的數據成批寫入數據文件中永久保存,同時使數據高速緩沖區有更多的空閑緩存塊。 2、LGWR(日志寫入進程)功能: 日志寫入進程負責把重做日志緩沖區的重做記錄寫入重做日志文件中永久保存。3、SMON(系統監控進程)功能:(選擇題)1)、在實例啟動時負責對數據庫進行恢復;2)、回收不再使用的臨時空間。3)、將各個表空間的空閑碎片合并4、PMON(

20、進程監控進程)功能:1)、負責恢復失敗的用戶進程或服務器進程,并且釋放進程所占用的資源;2)、清除非正常中斷的用戶進程留下的孤兒會話,回退未提交的事務,釋放會話所占用的鎖、SGA、PGA等資源;3)、監控調度進程和服務器進程的狀態,如果它們失敗,則嘗試重新啟動它們,并釋放它們所占用的各種資源。5、ARCH(歸檔進程)功能:歸檔進程負責在日志切換后將已經寫滿的重做日志文件復制到歸檔目標中,防止寫滿的重做日志文件被覆蓋p 注:最多可啟動10個歸檔進程( ARC0 ARC9) 第十章、模式對象例題1、在當前模式下創建一個名為emp的表 Create table emp( Emp_id number(

21、6,0) primary key, Frist_name varchar2(20), Last_name varchar2(25) not null, email varchar2(25) not null, job_id varchar2(25) not null, salary number(8,2) check(salary>0), commission_pct number(2,2), manager_id number(6,0), department_id number(4,0) ) tablespace users;1、創建臨時表:1、臨時表中的數據在特定條件下自動釋放,但

22、其結構將一直存在。2、根據臨時表中數據被釋放的時間不同,臨時表分為事務級別的臨時表和會話級別的臨時表兩類。n ON COMMIT DELETE ROWS /事務級臨時表n ON COMMIT PRESERVE ROWS /會話級臨時表語法:n 使用CREATE GLOBAL TEMPORARY TABLE語句創建臨時表n 使用ON COMMIT子句說明臨時表的類型,默認為事務級別的臨時表。2、利用子查詢創建表例題:創建一個會話級臨時表,保存部門號、部門人數和部門的平均工資。 Create global temporary table dept_temp On commit preserve r

23、ows As Select department_id,count(*)num,avg(salary) avgsal From emp Group by department_id;10.3.2 表約束2、主鍵約束(primary key):特點: 建立主鍵約束的同時,在該列上建立一個唯一索引,可以為它指定存儲位置和存儲參數; 3、唯一性約束(unique):特點: Oracle 自動在唯一性約束列上建立一個唯一性約束,可以為它指定存儲位置和存儲參數;4、Null和not null 的特點:n 在同一個表中可以定義多個NOT NULL約束;n 只能是列級約束。列的添加、刪除、修改5、添加列:n

24、 語法ALTER TABLE table_name ADD(new_column_name datatypeNOT NULLDEFAULT value); n 示例ALTER TABLE emp ADD(phone_number VARCHAR2(20),hiredate DATE DEFAULT SYSDATE NOT NULL); (Default默認值 sysdate當前系統時間)例題:創建一個Student23表,屬性為(Sno,Sage,Cno,score) 創建一個Student23表,屬性為(Cno,Cname)1、 為Student23表添加一個列,列名為cno,同時為該列添加

25、外鍵約束,參照course23表中的cno。create table student23(sno number primary key,sage number,score number)create table course23(cno varchar(20) ,cname number)alter table student23add constraint S_FK2 foregin key(cno) references course23(cno);將列標記為UNUSED,然后進行刪除:ALTER TABLE table_name SET UNUSED COLUMN column_name

26、|(column1_name,column2_name,)CASCADE CONSTRAINTS; 示例:ALTER TABLE player SET UNUSED COLUMN sage;ALTER TABLE player SET UNUSED (sname,resume);ALTER TABLE player DROP UNUSED COLUMNS;10.4、索引1、索引使用的原則: (1) 對于取值范圍很大的列應當創建B樹索引; (2)對于取值范圍很小的列應當創建位圖索引;2、創建索引的語法:n create unique|bitmap index index_namen ON tab

27、le_name(column_nameASC|DESC,|n expression) n REVERSEn parameter_list;n 具體說明:n UNIQUE表示建立惟一性索引;n BITMAP表示建立位圖索引;n ASC/DESC用于指定索引值的排列順序,ASC表示按升序排序,DESC表示按降序排序,缺省值為ASC;n REVERSE表示建立反鍵索引;n parameter_list用于指定索引的存放位置、存儲空間分配和數據塊參數設置。10.6.1 創建分區表例題1: 創建一個表Student,屬性分別為姓名、學號、年齡、性別,學號為主鍵,數據類型自定義,創建后在學號列上創建一個反

28、鍵索引。 Create table Student(sname varchar(10),Sno varchar(10) primary key,Sage varchar(10),Sex varchar(10) create Index student_sno_index on student(sno) reverse tablespace users;例題2、創建一個分區表,將學生信息根據其出生日期進行分區,將1980年1月1日前出生的學生信息保存在orcltbs1表空間中,將1980年1月1日到1990年1月1日出生的學生信息保存在orcltbs2表空間中,將其他學生信息保存在orcltbs

29、3表空間中。 Create table student_range( Sno number(6) primary key, Sname varchar2(10), Sage int, Birthday date) Partition by range(birthday) ( partition p1 values less than (to_date(1980-1-1,YYYY-MM-DD)tablespace orcltbs1, Partition p2 values less than (to_date(1990-1-1,YYYY-MM-DD)tablespace orcltbs2, Pa

30、rtition p3 values less than(maxvalue) Tablespace orcltbs3 storage(initial 10M next 20M) Storage(initial20m next 10m maxextents 10);例題3、創建一個分區表,將學生信息按照性別不同進行分區,男生信息保存在表空間ORCLTBS1中,而女生信息保存在ORCLTBS2中。 Create table student_list( Sno number(6) primary key, Sname varchar2(10), Sex char(2) check(sex in (M,

31、F) ) Partition by list(sex) ( partition student_male values(M)tablespace orcltbs1, Partition student_female values(F)tablespace orcltbs2);例題4、創建一個分區表,根據學號將學生信息均勻分布到ORCLTBS1和ORCLTBS2兩個表空間中。 Create table student_hash( Sno number(6) primary key, Sname varchar2(10), ) Partition by hash(sno) ( partition

32、p1 tablespace orcltbs1, Partition p2 tablespace orcltbs2); 第14章、數據庫啟動與關閉1、 啟動數據庫Startup nomount讀取數據庫初始化參數文件,創建并啟動數據庫實例。 在NOMOUNT模式下可以執行下列操作:n 創建一個新的數據庫;n 重建數據庫的控制文件; 第11章、SQL語言基礎事務里面的操作,要么全做要么全不做。Begin transaction 表示事務的開始;Commit 表示事務的結束;Distinct 消除重復列WHERE condition中的where是對表中所有記錄進行篩選;HAVING group_c

33、ondition中的having是對分組后的記錄進行篩選;GROUP BY column_name1,column_name2,分組查詢1、無條件查詢p 查詢所有列SELECT * FROM employees; p 查詢指定列SELECT department_id,department_name FROM departments; p 使用算術表達式SELECT employee_id,salary*0.8 FROM .employees;p 使用字符常量SELECT employee_id, 'salary is: ', salary FROM employees; p

34、使用函數SELECT employee_id,UPPER(first_name) FROM employees; p 改變列標題SELECT employee_id empno,salary sal FROM employees;(在舊的列名后添加一個新列名)2、有條件查詢查詢滿足條件的元組可以通過WHERE 子句實現。WHERE條件中常用的運算符號p 字符匹配n %(百分號)代表任意長(或長度為0)的字符串。n _(下劃線)代表任意單個字符。n ESCAPE:轉義字符舉例:1、SELECT * FROM employees WHERE last_name LIKE '%S%'

35、 翻譯:從員工表中查詢名字中含有S的員工名2、SELECT * FROM employees WHERE first_name LIKE '_a%'3、SELECT * FROM employees WHERE first_name LIKE '%x_%'ESCAPE 'x'p 邏輯操作n 用邏輯運算符NOT、AND和OR來聯結多個查詢條件。n 優先級:NOT、AND、OR(用戶可以用括號改變優先級)。 n IN謂詞是集合,實際上是多個OR運算的縮寫。p 升序、降序排序n ASC: 升序 (默認值); DESC: 降序3、查詢統計注意事項:如果對

36、查詢結果進行了分組,則聚集函數的作用范圍為各個組,否則聚集函數作用于整個查詢結果。3、 外連接( )左外連接、右外連接、全外連接左外連接:左外連接是指在內連接的基礎上,將連接操作符左側表中不符合鏈接條件的記錄加入結果集中,與之對應的操作鏈接符右側表列用Null填充。u 左外連接語法:標準SQL語句的連接方式n SELECT table1.column, table2.column, n FROM table1 LEFT JOIN table2, n ON table1.column <operator> table2.column,;例題:查詢10號部門的部門名、員工號、員工名和所

37、有其他部門的名稱,語句為SELECT department_name,employee_id,first_name,last_name FROM departments d LEFT JOIN employees eON d.department_id=e.department_id AND d.department_id=10;右外連接:右外連接是指在內連接的基礎上,將連接操作符右側表中不符合鏈接條件的記錄加入結果集中,與之對應的操作鏈接符左側表列用Null填充。u 左外連接語法:標準SQL語句的連接方式n SELECT table1.column, table2.column, n FRO

38、M table1 LEFT JOIN table2, n ON table1.column <operator> table2.column,;例題:查詢20號部門的部門名稱及其員工號、員工名,和所有其他部門的員工名、員工號,語句為SELECT employee_id,first_name,department_name FROM departments d RIGHT JOIN employees eON d.department_id=e.department_id AND d.department_id=20;p 全外連接是指在內連接的基礎上,將連接操作符兩側表中不符合連接條

39、件的記錄加入結果集中。p 在Oracle數據庫中,全外連接的表示方式為n SELECT table1.column, table2.column, n FROM table1 FULL JOIN table2, n ON table1.column1 = table2.column2;p 查詢所有的部門名和員工名,語句為n SELECT department_name,first_name,n last_namen FROM employees e FULL JOIN n departments d ON n e.department_id=d.department_id; 11.3.5、子查

40、詢1、子查詢作用(1)、在INSERT或CREATE TABLE語句中使用子查詢,可以將子查詢的結果寫入到目標表中;(2)、在UPDATE語句中使用子查詢可以修改一個或多個記錄的數據;(3)、在DELETE語句中使用子查詢可以刪除一個或多個記錄在WHERE和HAVING子句中使用子查詢可以返回的一個或多個值。(2)、單行單列子查詢例題:查詢比105號員工工資高的員工的員工號、員工名、員工工資信息。n SELECT employee_id,first_name,last_name,salary n FROM employeesn WHERE salary>(SELECT salary FR

41、OM n employees WHERE employee_id=105); (3)、多行單列子查詢例題1、查詢與50號部門某個員工工資相等的員工信息。SELECT employee_id,first_name,last_name,salary FROM employees WHERE salary IN (SELECT salary FROM employees WHERE department_id=50); 例題2、查詢比50號部門某個員工工資高的員工信息。SELECT employee_id,first_name,last_name,salary FROM employees WHER

42、E salary>ANY(SELECT salary FROM employeesWHERE department_id=50);例題3、查詢比50號部門所有員工工資高的員工信息。SELECT employee_id,first_name,last_name,salary FROM employees WHERE salary>ALL(SELECT salary FROM employees WHERE department_id=50);(4)、單行多列子查詢例題1、查詢與169號員工的工資、工種都相同的員工的信息。SELECT employee_id,first_name,last_name,salary,job_idFROM employees WHERE (salary,job_id)=(SELECT salary,job_id FROMemployees WHERE employee_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論