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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

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

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

3、se 1 / 285、在下面幾種情況下需要改變數(shù)據(jù)文件的可用性:(1)、要進行數(shù)據(jù)文件的脫機備份時,需要先將數(shù)據(jù)文件脫機;(2)、需要重命名數(shù)據(jù)文件或改變數(shù)據(jù)文件的位置時,需要先將數(shù)據(jù)文件脫機;(3)、如果Oracle在寫入某個數(shù)據(jù)文件時發(fā)生錯誤,會自動將該數(shù)據(jù)文件設(shè)置為脫機狀態(tài),并且記錄在警告文件中。排除故障后,需要以手動方式重新將該數(shù)據(jù)文件恢復(fù)為聯(lián)機狀態(tài)。(4)、數(shù)據(jù)文件丟失或損壞,需要在啟動數(shù)據(jù)庫之前將數(shù)據(jù)文件脫機。 6、刪除某個臨時表空間中的某個臨時數(shù)據(jù)文件: 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、重做日志文件的管理每個數(shù)據(jù)庫至少需要兩個重做日志文件,采用循環(huán)寫的方式進行工作1、添加重做日志文件組成員注意事項: (1)、同一個重做日志文件組中的成員文件存儲位置應(yīng)盡量分散(保證安全) (2)、不需要指定文件大小。新成員文件大小由組中已有成員大小決定。重做日志文件3重做日志文件2重做日志文件1重做日志文件的工作過程

5、:LGWR重做日志緩沖區(qū)日志切換日志切換 (自動運行的小文件) 日志切換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 只能刪除狀態(tài)為INACTIVE或UNUSED的重做日志文件組中的成員;若要刪除狀態(tài)為CURRENT的重做日志文件組中的成員,則需執(zhí)行一次手動日志切換。n 如果數(shù)

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

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

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

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

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

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

13、機狀態(tài):Alter tablespace sysaux onlineAlter tablespace sysaux offline表空間的讀寫性:1、表空間只有在滿足下列要求后才可以轉(zhuǎn)為只讀狀態(tài):(1)、表空間處于聯(lián)機狀態(tài);(2)、表空間中不能存在任何活動的回滾段;(3)、如果表空間正在進行聯(lián)機數(shù)據(jù)庫備份,則不能將它設(shè)置為只讀狀態(tài);查詢表空間名字和表空間數(shù)據(jù)文件名: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;刪除參照完整性約束,應(yīng)帶有子句Cascade constraints;例題:刪除orcl數(shù)據(jù)庫的ORCL TBS1表空間及其所有內(nèi)容 Drop tablespace orcltbs1 including contents; 數(shù)據(jù)塊數(shù)據(jù)塊包括:塊頭部、存儲區(qū)塊頭部分包括標(biāo)題、表目錄、行目錄三部分;存儲區(qū)包括:行數(shù)據(jù)區(qū)、空閑區(qū) 段段的類型:1、數(shù)據(jù)段;2、索引段;3、臨時段;4、回滾段;回滾信息包括:1、修改前;2、修改后;回滾段的作用: 1、事物回滾;2、數(shù)據(jù)庫恢

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

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

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

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

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

20、進程監(jiān)控進程)功能:1)、負(fù)責(zé)恢復(fù)失敗的用戶進程或服務(wù)器進程,并且釋放進程所占用的資源;2)、清除非正常中斷的用戶進程留下的孤兒會話,回退未提交的事務(wù),釋放會話所占用的鎖、SGA、PGA等資源;3)、監(jiān)控調(diào)度進程和服務(wù)器進程的狀態(tài),如果它們失敗,則嘗試重新啟動它們,并釋放它們所占用的各種資源。5、ARCH(歸檔進程)功能:歸檔進程負(fù)責(zé)在日志切換后將已經(jīng)寫滿的重做日志文件復(fù)制到歸檔目標(biāo)中,防止寫滿的重做日志文件被覆蓋p 注:最多可啟動10個歸檔進程( ARC0 ARC9) 第十章、模式對象例題1、在當(dāng)前模式下創(chuàng)建一個名為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、創(chuàng)建臨時表:1、臨時表中的數(shù)據(jù)在特定條件下自動釋放,但

22、其結(jié)構(gòu)將一直存在。2、根據(jù)臨時表中數(shù)據(jù)被釋放的時間不同,臨時表分為事務(wù)級別的臨時表和會話級別的臨時表兩類。n ON COMMIT DELETE ROWS /事務(wù)級臨時表n ON COMMIT PRESERVE ROWS /會話級臨時表語法:n 使用CREATE GLOBAL TEMPORARY TABLE語句創(chuàng)建臨時表n 使用ON COMMIT子句說明臨時表的類型,默認(rèn)為事務(wù)級別的臨時表。2、利用子查詢創(chuàng)建表例題:創(chuàng)建一個會話級臨時表,保存部門號、部門人數(shù)和部門的平均工資。 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):特點: 建立主鍵約束的同時,在該列上建立一個唯一索引,可以為它指定存儲位置和存儲參數(shù); 3、唯一性約束(unique):特點: Oracle 自動在唯一性約束列上建立一個唯一性約束,可以為它指定存儲位置和存儲參數(shù);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默認(rèn)值 sysdate當(dāng)前系統(tǒng)時間)例題:創(chuàng)建一個Student23表,屬性為(Sno,Sage,Cno,score) 創(chuàng)建一個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);將列標(biāo)記為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) 對于取值范圍很大的列應(yīng)當(dāng)創(chuàng)建B樹索引; (2)對于取值范圍很小的列應(yīng)當(dāng)創(chuàng)建位圖索引;2、創(chuàng)建索引的語法: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用于指定索引的存放位置、存儲空間分配和數(shù)據(jù)塊參數(shù)設(shè)置。10.6.1 創(chuàng)建分區(qū)表例題1: 創(chuàng)建一個表Student,屬性分別為姓名、學(xué)號、年齡、性別,學(xué)號為主鍵,數(shù)據(jù)類型自定義,創(chuàng)建后在學(xué)號列上創(chuàng)建一個反

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、創(chuàng)建一個分區(qū)表,將學(xué)生信息根據(jù)其出生日期進行分區(qū),將1980年1月1日前出生的學(xué)生信息保存在orcltbs1表空間中,將1980年1月1日到1990年1月1日出生的學(xué)生信息保存在orcltbs2表空間中,將其他學(xué)生信息保存在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、創(chuàng)建一個分區(qū)表,將學(xué)生信息按照性別不同進行分區(qū),男生信息保存在表空間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、創(chuàng)建一個分區(qū)表,根據(jù)學(xué)號將學(xué)生信息均勻分布到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章、數(shù)據(jù)庫啟動與關(guān)閉1、 啟動數(shù)據(jù)庫Startup nomount讀取數(shù)據(jù)庫初始化參數(shù)文件,創(chuàng)建并啟動數(shù)據(jù)庫實例。 在NOMOUNT模式下可以執(zhí)行下列操作:n 創(chuàng)建一個新的數(shù)據(jù)庫;n 重建數(shù)據(jù)庫的控制文件; 第11章、SQL語言基礎(chǔ)事務(wù)里面的操作,要么全做要么全不做。Begin transaction 表示事務(wù)的開始;Commit 表示事務(wù)的結(jié)束;Distinct 消除重復(fù)列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 使用算術(shù)表達式SELECT employee_id,salary*0.8 FROM .employees;p 使用字符常量SELECT employee_id, 'salary is: ', salary FROM employees; p

34、使用函數(shù)SELECT employee_id,UPPER(first_name) FROM employees; p 改變列標(biāo)題SELECT employee_id empno,salary sal FROM employees;(在舊的列名后添加一個新列名)2、有條件查詢查詢滿足條件的元組可以通過WHERE 子句實現(xiàn)。WHERE條件中常用的運算符號p 字符匹配n %(百分號)代表任意長(或長度為0)的字符串。n _(下劃線)代表任意單個字符。n ESCAPE:轉(zhuǎn)義字符舉例: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來聯(lián)結(jié)多個查詢條件。n 優(yōu)先級:NOT、AND、OR(用戶可以用括號改變優(yōu)先級)。 n IN謂詞是集合,實際上是多個OR運算的縮寫。p 升序、降序排序n ASC: 升序 (默認(rèn)值); DESC: 降序3、查詢統(tǒng)計注意事項:如果對

36、查詢結(jié)果進行了分組,則聚集函數(shù)的作用范圍為各個組,否則聚集函數(shù)作用于整個查詢結(jié)果。3、 外連接( )左外連接、右外連接、全外連接左外連接:左外連接是指在內(nèi)連接的基礎(chǔ)上,將連接操作符左側(cè)表中不符合鏈接條件的記錄加入結(jié)果集中,與之對應(yīng)的操作鏈接符右側(cè)表列用Null填充。u 左外連接語法:標(biāo)準(zhǔn)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;右外連接:右外連接是指在內(nèi)連接的基礎(chǔ)上,將連接操作符右側(cè)表中不符合鏈接條件的記錄加入結(jié)果集中,與之對應(yīng)的操作鏈接符左側(cè)表列用Null填充。u 左外連接語法:標(biāo)準(zhǔn)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 全外連接是指在內(nèi)連接的基礎(chǔ)上,將連接操作符兩側(cè)表中不符合連接條

39、件的記錄加入結(jié)果集中。p 在Oracle數(shù)據(jù)庫中,全外連接的表示方式為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語句中使用子查詢,可以將子查詢的結(jié)果寫入到目標(biāo)表中;(2)、在UPDATE語句中使用子查詢可以修改一個或多個記錄的數(shù)據(jù);(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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論