13 Oracle数据库开发与设计入门篇
Oracle數(shù)據(jù)庫SQL語言基礎(chǔ)
SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)語言是一種在關(guān)系數(shù)據(jù)庫中定義和操縱數(shù)據(jù)的標(biāo)準(zhǔn)語言,是用戶與數(shù)據(jù)庫之間進(jìn)行交流的接口。SQL語言已經(jīng)被大多數(shù)關(guān)系數(shù)據(jù)庫管理系統(tǒng)采用。
Oracle采用ANSI的SQL標(biāo)準(zhǔn),并且對它進(jìn)行了擴(kuò)充,以便包含更多的附加功能。
Oracle數(shù)據(jù)庫提供的許多有用而強(qiáng)大的功能都需要通過SQL語言來體現(xiàn)。因此要使用Oracle數(shù)據(jù)庫,一定要掌握SQL語言
SQL是1974年由Boyee和Chamberlin提出,并在IBM公司研制的關(guān)系數(shù)據(jù)庫原型系統(tǒng)System R上實現(xiàn)的。
1986年10月,美國國家標(biāo)準(zhǔn)局(ANSI)的數(shù)據(jù)庫委員會批準(zhǔn)了SQL作為關(guān)系數(shù)據(jù)庫語言的美國標(biāo)準(zhǔn),同年,公布了標(biāo)準(zhǔn)SQL文本。
現(xiàn)在,SQL已成為關(guān)系數(shù)據(jù)庫領(lǐng)域中的一種主流語言
SQL語言集多種功能于一體,是一個綜合的、通用的、功能極強(qiáng)的,同時又簡潔易學(xué)的語言。其主要特點如下:
⑴SQL是一種一體化的語言。
⑵SQL語言是一種高度非過程化的語言。
⑶SQL語言非常簡潔。雖然SQL語言功能很強(qiáng),但它只有為數(shù)不多的9條命令。
⑷SQL語言可以直接以命令方式交互使用,也可以嵌入到程序設(shè)計語言中以程序方式使用
SQL語言分類
數(shù)據(jù)操縱語言(DML)
查詢數(shù)據(jù)(SELECT)也可以分細(xì)分到DQL數(shù)據(jù)查詢語言
數(shù)據(jù)操縱語言(DML):用于查詢、生成、修改、刪除數(shù)據(jù)庫中的數(shù)據(jù)。
l DML語言包含用于查詢數(shù)據(jù)(SELECT)
l 添加新行數(shù)據(jù)(INSERT)
l 修改現(xiàn)有行數(shù)據(jù)(UPDATE)
l 刪除現(xiàn)在行數(shù)據(jù)(DELETE)
數(shù)據(jù)定義語言(DDL)
數(shù)據(jù)定義語言(DDL):用于定義、修改、刪除數(shù)據(jù)庫模式對象,進(jìn)行權(quán)限管理等。
l DDL語言包括創(chuàng)建、修改、刪除或者重命名模式對象(CREATE、ALTER、
DROP、RENAME)的語句
l 刪除表中所有行但不刪除表(TRUNCATE)
l 使用DDL,定義保存在數(shù)據(jù)字典。
l DDL語言是自動提交的
數(shù)據(jù)庫控制語言(DCL)
oracle 特有的
數(shù)據(jù)庫控制語言(DCL):是用來設(shè)置或更改數(shù)據(jù)庫用戶或角色權(quán)限的語句。
l GRANT 授權(quán)
l REVOKE 取消授權(quán)
事務(wù)控制語言(TCL):用于數(shù)據(jù)庫的事務(wù)管理。
l COMMIT 提交
l SAVEPOINT 設(shè)置保存點
l ROLLBACK 回滾
l SET TRANSACTION 設(shè)置事務(wù)屬性
l 會話控制(Session Control)
用于控制一個會話(SESSION,指從與數(shù)據(jù)庫連接開始到斷開之間的時間過程)的屬
性。包括用于控制會話屬性(ALTER SESSION)的語句,還包括切換角色(SET ROLE)的語句。
l 系統(tǒng)控制(System Control)
用于管理數(shù)據(jù)庫的屬性。只有一條語句,即ALTER SYSTEM
l SQL語句的編寫規(guī)則
SQL關(guān)鍵字不區(qū)分大小寫,也就是大小寫不敏感
對象名和列名不區(qū)分大小寫
字符值和日期值區(qū)分大小寫
Oracle數(shù)據(jù)庫對象
對象與模式
? 模式是一種命名的對象集合
? 一個用戶被創(chuàng)建,對應(yīng)的模式(schema)就被創(chuàng)建
? 一個用戶僅僅對應(yīng)一個模式
? 用戶名其實就等同于模式名
模式包涵一下內(nèi)容:
創(chuàng)建了一個用戶,就創(chuàng)建了一個表空間或者模式
SQL> create user fadewalk identified by fadewalk; User created.創(chuàng)建一個用戶,可以看到隨即創(chuàng)建了一個表空間[類似MySQL的數(shù)據(jù)庫]
Oracle數(shù)據(jù)類型
查看數(shù)據(jù)庫視圖所包含的數(shù)據(jù)類型:
SELECT * FROM DBA_TYPES WHERE OWNER IS NULL
重要:ORACLE數(shù)據(jù)庫漢字占用幾個字節(jié),要根據(jù)ORACLE中字符集編碼決定,一般情況,數(shù)據(jù)庫的NLS_CHARACTERSET 為AL32UTF8或UTF8,即一個漢字占三到四個字節(jié)。如果NLS_CHARACTERSET為ZHS16GBK,則一個字符占兩個字節(jié).
Oracle PL/SQL語言介紹
l PL/SQL是ORACLE對標(biāo)準(zhǔn)數(shù)據(jù)庫語言的擴(kuò)展,擴(kuò)展部分:包、數(shù)據(jù)類型、異常處理等,近幾年中更多的開發(fā)人員和DBA開始使用PL/SQL。
l PL/SQL用途:該語言專門用于在各種環(huán)境下對Oracle數(shù)據(jù)庫進(jìn)行訪問
PL/SQL的優(yōu)點如下:
1、PL/SQL是一種高性能的基于事務(wù)處理的語言,能運(yùn)行在任何ORACLE環(huán)境中,支持所有數(shù)據(jù)處理命令。通過使用PL/SQL程序單元處理SQL的數(shù)據(jù)定義和數(shù)據(jù)控制元素。
2、PL/SQL支持所有SQL數(shù)據(jù)類型和所有SQL函數(shù),同時支持所有ORACLE對象類型。
3、PL/SQL塊可以被命名和存儲在ORACLE服務(wù)器中,同時也能被其他的PL/SQL程序或SQL命令調(diào)用,任何客戶/服務(wù)器工具都能訪問PL/SQL程序,具有很好的可重用性
4、可以使用ORACLE數(shù)據(jù)工具管理存儲在服務(wù)器中的PL/SQL程序的安全性。可以授權(quán)或撤銷數(shù)據(jù)庫其他用戶訪問PL/SQL程序的能力。
5、PL/SQL代碼可以使用任何ASCII文本編輯器編寫,所以對任何ORACLE能夠運(yùn)行的操作系統(tǒng)都是非常便利的
6、對于SQL,ORACLE必須在同一時間處理每一條SQL語句,在網(wǎng)絡(luò)環(huán)境下這就意味作每一個獨(dú)立的調(diào)用都必須被oracle服務(wù)器處理,這就占用大量的服務(wù)器時間,同時導(dǎo)致網(wǎng)絡(luò)擁擠。而PL/SQL是以整個語句塊發(fā)給服務(wù)器,這就降低了網(wǎng)絡(luò)擁擠
PL/SQL塊不同部分的作用:
聲明部分(Declaration section) :
聲明部分包含了變量和常量的數(shù)據(jù)類型和初始值。這個部分是由關(guān)鍵字DECLARE開始,如果不需要聲明變量或常量,那么可以忽略這一部分;需要說明的是游標(biāo)的聲明也在這一部分。
執(zhí)行部分(Executable section) :
執(zhí)行部分是PL/SQL塊中的指令部分,由關(guān)鍵字BEGIN開始,所有的可執(zhí)行語句都放在這一部分,其他的PL/SQL塊也可以放在這一部分
異常處理部分(Exception section) :
這一部分是可選的,在這一部分中處理異常或錯誤,對異常處理的詳細(xì)討論我們在后面進(jìn)行。
例:顯示問候語的簡單PL/SQL塊
PL/SQL程序塊可被獨(dú)立編譯并存儲在數(shù)據(jù)庫中,任何與數(shù)據(jù)庫相連接的應(yīng)用程序都可以訪問這些存儲的PL/SQL程序塊。
ORACLE提供了四種類型的可存儲的程序:
函數(shù)
過程
包
觸發(fā)器
將數(shù)據(jù)導(dǎo)入
imp lewen/lewen file=/tmp/scott_v1.dmp log=/tmp/scott.log ignore=y full=y imp lewen/lewen file=/tmp/lewen.dmp log=/tmp/lewen.log ignore=y full=y 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的13 Oracle数据库开发与设计入门篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 05 Linux快速安装 Oracle1
- 下一篇: oracle 常见操作