華為oracle培訓(xùn)教材_第1頁
華為oracle培訓(xùn)教材_第2頁
華為oracle培訓(xùn)教材_第3頁
華為oracle培訓(xùn)教材_第4頁
華為oracle培訓(xùn)教材_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 / 14 sql 語言簡介1、sql 概述sql 是一種面向數(shù)據(jù)庫的通用數(shù)據(jù)處理語言規(guī)x,能完成以下幾類功能:提取查詢數(shù)據(jù),插入修改刪除數(shù)據(jù),生成修改和刪除數(shù)據(jù)庫對象,數(shù)據(jù)庫安全控制,數(shù)據(jù)庫完整性與數(shù)據(jù)保護控制。數(shù)據(jù)庫對象包括表、視圖、索引、同義詞、簇、觸發(fā)器、函數(shù)、過程、包、數(shù)據(jù)庫鏈、快照等(表空間、回滾段、角色、用戶)。數(shù)據(jù)庫通過對表的操作來管理存儲在其中的數(shù)據(jù)。1) sql*plus界面:登錄:輸入 sqlplus 回車;輸入正確的 oracle 用戶名并回車; 輸入用戶口令并回車,顯示提示符:sql 退出:輸入 exit 即可。2)命令的編輯與運行:在命令提示符后輸入sql 命令并

2、運行,以分號結(jié)束輸入;以斜杠結(jié)束輸入;以空行結(jié)束輸入;利用 sql 緩沖區(qū)進行 pl/sql塊的編輯和運行;利用命令文件進行pl/sql塊的編輯和運行。2、數(shù)據(jù)庫查詢2 / 14 1)用 select 語句從表中提取查詢數(shù)據(jù)。語法為select distinct column1,column2, from tablename where conditions group by conditions order by expressions asc/desc; 說明:select 子句用于指定檢索數(shù)據(jù)庫的中哪些列,from 子句用于指定從哪一個表或視圖中檢索數(shù)據(jù)。2)select 中的操作符與多

3、表查詢where 子句。 (like,is,)where子句中的條件可以是一個包含等號或不等號的條件表達式,也可以是一個含有 in、not in、between 、like 、is not null 等比較運算符的條件式,還可以是由單一的條件表達通過邏輯運算符組合成復(fù)合條件。3)order by 子句order by 子句使得 sql 在顯示查詢結(jié)果時將各返回行按順序排列,返回行的排列順序由 order by 子句指定的表達式的值確定。4)連接查詢利用 select 語句進行數(shù)據(jù)庫查詢時,可以把多個表、視圖的數(shù)據(jù)結(jié)合起來,使得查詢結(jié)果的每一行中包含來自多個表達式或視圖的數(shù)據(jù),這種操作被稱為連接

4、查詢。連接查詢的方法是在select命令的 from 子句中指定兩個或多個將被連接查詢的表或視圖,并且在 where 子句告訴 oracle 如何把多個表的數(shù)據(jù)進行合并。根據(jù) where子句中的條件表達式是等還是不等式,可以把連接查詢分為等式連接和不等式連接。5)子查詢?nèi)绻骋粋€ select 命令(查詢 1)出現(xiàn)在另一個 sql 命令(查詢 2)的一個3 / 14 子句中,則稱查詢1 是查詢 2 的子查詢。3、基本數(shù)據(jù)類型( number,varchar2,date)o racel 支持下列內(nèi)部數(shù)據(jù)類型:varchar2 變長字符串,最長為2000 字符。number 數(shù)值型。long 變長

5、字符數(shù)據(jù),最長為2g 字節(jié)。date 日期型。raw 二進制數(shù)據(jù),最長為255 字節(jié)。long raw 變長二進制數(shù)據(jù),最長為2g 字節(jié)。rowid 二六進制串,表示表的行的唯一地址。char 定長字符數(shù)據(jù),最長為255 。4、常用函數(shù)用法:一個函數(shù)類似于一個算符, 它操作數(shù)據(jù)項, 返回一個結(jié)果。函數(shù)在格式上不同于算符,它個具有變元,可操作0 個、一個、二個或多個變元,形式為:函數(shù)名(變元,變元,)函數(shù)具有下列一般類形:單行函數(shù)分組函數(shù)1)單行函數(shù)對查詢的表或視圖的每一行返回一個結(jié)果行。它有數(shù)值函數(shù),字符函數(shù),日期函數(shù),轉(zhuǎn)換函數(shù)等。4 / 14 2)分組函數(shù)返回的結(jié)果是基于行組而不是單行,所以

6、分組函數(shù)不同于單行函數(shù)。在許多分組函數(shù)中可有下列選項:distrnct 該選項使分組函數(shù)只考慮變元表達式中的不同值。all 該選項使分組函數(shù)考慮全部值,包含全部重復(fù)。全部分組函數(shù)(除count (*)外)忽略空值。如果具有分組函數(shù)的查詢,沒有返回行或只有空值(分組函數(shù)的變元取值的行),則分組函數(shù)返回空值。5、數(shù)據(jù)操縱語言命令:數(shù)據(jù)庫操縱語言( dml )命令用于查詢和操縱模式對象中的數(shù)據(jù),它不隱式地提交當(dāng)前事務(wù)。它包含 update 、insert 、delete 、explain plan 、select 和lock table 等命令。下面簡單介紹一下:1) update tablenam

7、e set column1=expression1,column2=expression2, where conditions;例如: s qlupdate emp set job = manager where ename=maptin ; sql select * from emp; update 子句指明了要修改的數(shù)據(jù)庫是emp, 并用 where 子句限制了只對名字(ename) 為martin 的職工的數(shù)據(jù)進行修改,set 子句則說明修改的方式,即把martion 的工作名稱 (job) 改為 marager . 5 / 14 2) insert into tablename col

8、umn1,column2, values expression1,expression2, ;例如: sqlselect into dept(dname , deptno )values ( accounting ,10 )3) delete from tablename where conditions; 例如: sqldelete from emp where empno = 7654; delete 命令刪除一條記錄 ,而且 delete 命令只能刪除整行 ,而不能刪除某行中的部分數(shù)據(jù) . 4)事務(wù)控制命令提 交命 令 (mit): 可 以 使 數(shù) 據(jù) 庫的 修 改 永 久 化 . 設(shè)

9、置automit為 允 許 狀態(tài):sql set automit on; 回滾命令 (rollback): 消除上一個 mit 命令后的所做的全部修改 ,使得數(shù)據(jù)庫的內(nèi)容恢復(fù)到上一個mit 執(zhí)行后的狀態(tài) .使用方法是 : sqlrollback; 5、創(chuàng)建表、視圖、索引、同義詞、用戶。1)、表是存儲用戶數(shù)據(jù)的基本結(jié)構(gòu)。建立表主要指定義下列信息:6 / 14 列定義完整性約束表所在表空間存儲特性可選擇的聚集從一查詢獲得數(shù)據(jù)語法如下: create table tablename (column1 datatype default expression constraint, column1 da

10、tatype default expression constraint, )storage 子句 其他子句 ;例如:sqlcreate table new_dept (dptno number(2), dname char(6), loc char(13); 更改表作用:增加列增加完整性約束重新定義列(數(shù)據(jù)類型、長度、缺省值)修改存儲參數(shù)或其它參數(shù)7 / 14 使能、使不能或刪除一完整性約束或觸發(fā)器顯式地分配一個 x 圍2) 、視圖視圖是一個邏輯表, 它允許操作者從其它表或視圖存取數(shù)據(jù),視圖本身不包含數(shù)據(jù)。視圖所基于的表稱為基表。引入視圖有下列作用:提供附加的表安全級,限制存取基表的行或/

11、和列集合。隱藏數(shù)據(jù)復(fù)雜性。為數(shù)據(jù)提供另一種觀點。促使 oracle 的某些操作在包含視圖的數(shù)據(jù)庫上執(zhí)行,而不在另一個數(shù)據(jù)庫上執(zhí)行。3) 、索引索引是種數(shù)據(jù)庫對象。對于在表或聚集的索引列上的每一值將包含一項,為行提供直接的快速存取。在下列情況oracle 可利用索引改進性能:按指定的索引列的值查找行。按索引列的順序存取表。建立索引:create unique index indexname on tablename(column ,。 。 。);例如: sqlcreat index ic_emp on cluster employee 8 / 14 4) 、同義詞同義詞:為表、視圖、序列、存儲函

12、數(shù)、包、快照或其它同義詞的另一個名字。使用同義詞為了安全和方便。對一對象建立同義詞可有下列好處:引用對象不需指出對象的持有者。引用對象不需指出它所位于的數(shù)據(jù)庫。為對象提供另一個名字。建立同義詞:create synonym symnon_name for username.tablename; 例如: creat public synonym emp for scott.emp sales 5) 、用戶create user username identified by password; 例如: sqlcreate user sidney identified by carton ; ora

13、cle 擴展 pl/sql簡介1、pl/sql概述。pl/sql是 oracle 對 sql 規(guī) x 的擴展,是一種塊結(jié)構(gòu)語言,即構(gòu)成一個pl/sql程序的基本單位(過程、函數(shù)和無名塊)是邏輯塊,可包含任何數(shù)目的嵌套了快。這種程序結(jié)構(gòu)支持逐步求精方法解決問題。一個塊(或子塊)將邏輯上相關(guān)的說明和語句組合在一起,其形式為:9 / 14 declare - 說明begin - 語句序列exception - 例外處理程序end ;它有以下優(yōu)點 : 支持 sql; 生產(chǎn)率高 ; 性能好 ; 可稱植性 ; 與 oracle 集成. 2、pl/sql體系結(jié)構(gòu)pl/sql運行系統(tǒng)是種技術(shù),不是一種獨立產(chǎn)品

14、,可認為這種技術(shù)是pl/sql塊和子程序的一種機,它可接收任何有效的pl/sql塊或子程序。如圖所示:pl/sql 塊pl/sql 機pl/sql塊過程性語句執(zhí)行器10 / 14 pl/sql機可執(zhí)行過程性語句,而將sql 語句發(fā)送到 oracle服務(wù)器上的 sql語句執(zhí)行器。在 oracle 預(yù)編譯程序或 oci 程序中可嵌入無名的pl/sql塊。如果 oracle 具有 procedural選件,有名的 pl/sql塊 (子程序)可單獨編譯,永久地存儲在數(shù)據(jù)庫中,準備執(zhí)行。3、pl/sql基礎(chǔ):pl/sql有一字符集、保留字、標(biāo)點、數(shù)據(jù)類型、嚴密語法等,它與sql 有一樣表示,現(xiàn)重點介紹。

15、1) 、數(shù)據(jù)類型:如下表所示數(shù)據(jù)類型子類型純 量類型數(shù)值binary_integer natural,positive number dec,decimal,double precision,ploat,integer,int,numeric,real,smallint 字符char character,string sql 語句11 / 14 varchar2 varchar long long raw raw rawid 邏輯boolean 日期date 組合類型記錄record 表table 2) 、變量和常量在 pl/sql程序中可將值存儲在變量和常量中,當(dāng)程序執(zhí)行時, 變量的值可以改

16、變,而常量的值不能改變。3) 、程序塊式結(jié)構(gòu):declare 變量說明部分;begin 執(zhí)行語句部分;exception 例外處理部分; end; 4、控制語句:分支語句:if condition then 12 / 14 sequence_of_statements; end if; if condition then sequence_of_statement1; else sequence_of_statement2; end if; if condition1 then sequence_of_statement1; elsif condition2 then sequence_of_statement2; elsif condition3 then sequence_of_statement3; end if; 5、循環(huán)語句:loop sequence_of_statements; if condition then 13 / 14 exit; end if; end loop; while condition loop sequence_of_statements;

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論