Oracle數據庫SQL語句的分類


  

  1986年10月,美國國家標准協會對SQL進行規范后,以此作為關系式數據庫管理系統的標准語言,1987年在國際標准組織的支持下成為國際標准。不過各種通行的數據庫系統其實在實踐過程中都對SQL規范的作了某些編改和擴充。所以,實際上不同數據庫系統之間的SQL不能完全相互通用。1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2和SQL/DS數據庫系統中也實現了SQL。我們知道關系型數據庫都遵循了ACID原則,且都統一的實現了SQL語句,以SQL語句為核心來實現數據的操作,在Oracle中的SQL語句與常見的數據庫的SQL語句是有點不同的。

 

SQL簡介:

  SQL(Structured Query Language)又叫“結構化查詢語言”,簡稱:SQL。SQL是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,是用於存取數據、查詢數據、更新數據和刪除數據的管理關系數據庫系統語言。同時也是關系型數據庫腳本文件的擴展名(.sql)。

 

Oracle中SQL的分類:

  在Oracle中SQL的整體結構如下:

  數據定義語言(DDL:Date Definition Language)

    用來創建、修改或刪除表對象(庫對象),管理表對象(庫對象)。

    包含:CREATE(創建)、ALTER(修改)、DROP(刪除)、TRUNCATE(清空)等。

  數據操作語言(DML:Date Manipulation Language)

    用來添加、更新和刪除表對象內的數據。

    包含:INSERT(插入)、UPDATE(修改)、DELETE(刪除)、MERGE(合並新舊數據)等。

  數據查詢語言(DQL:Date Query Language)

    用來檢索(查看)數據庫中的數據。

    包含:SELECT(查詢)、FROM(子句;后跟表名)、WHERE(子句;后跟查詢條件)、以及很多用於方便檢索用到的函數與檢索算法。

  數據控制語言(DCL:Date Control Language)

    用於DBA執行權限授予和權限收回操作。

    包含:GRANT(授予)、REVOKE(撤銷)等。

  事務控制語言(TCL:Transaction Control Language

    用於維護數據的一致性。

      包含:

      COMMIT:確認和提交已經進行的數據庫改變
      ROLLBACK:撤銷已經控模型的數據庫的改變
      SAVEPOINT:設置保存點,取消部分數據庫改變
      ROLLBACK TO SAVEPOINT:ROLLBACK會結束一個事物,而這個命令不會
      SET TRANSACTION:設置一個事物的屬性(事物的隔離級別)
      READ COMMITTED:提交讀,Oracle 默認的級別
      SET CONSTRAINT:在每個DML語句之后或事物提交之后,執行可延遲完整性的約束檢查

    (注意:在Oracle中DDL是不需要TCL來提交事務的,因為DDL操作完成就直接默認會提交事務。)

 

  在Oracle中,一般用DDL來創建並定義表對象,用DML來操作表中的數據、用TCL來提交保存、最后用DQL來獲取(查詢)我們存入的數據。至於DCL的好處是用來分層管理,給各個用戶之間權限的,一般我們授權或者撤銷權限都要用到SYS用戶的SYSDBA權限。

  除了TCL,Oracle中還獨有會話控制語句(SCS:Session Control Statement)與嵌入式SQL語句(ESS:Embedded SQL Statement)。

  會話控制語句(SCS;Session Control Statement):

    ALTER SESSION:改變當前會話設置
    SET ROLE:啟用和禁用角色
    ALTER SYSTEM:更改系統設置(不會隱式提交當前事物)

  嵌入式SQL語句(ESS:Embedded SQL Statement):

    OPEN、CLOSE、CONNECT、DESCRIBE、WHENEVER、PREPARE、EXECUTE、FETCH
    定義、分配、和釋放游標:DECLARE CURSOR、OPEN、CLOSE
    指定一個數據庫,並連接到該數據庫:DECLARE DATABASE、CONNECT
    初始化描述符:DESCRIBE
    指定如何處理錯誤和警告:WHENEVE
    分析並運行SQL 語句:PREPARE、EXECUTE、EXECUTE IMMEDIATE
    從數據庫中檢索數據:FETCH

  

  此外,Oracle還對標准數據庫語言SQL進行了擴展,把數據庫技術和過程化程序設計語言聯系起來。

  過程化SQL語言(PL/SQL):PL/SQL是專用於Oracle服務器,在SQL基礎之上,添加了一些過程化控制語句,叫PLSQL,過程化包括有:類型定義,判斷,循環,游標,異常或例外處理等等,PLSQL主要強調過程。

    

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM