Oracle數據庫SQL語句的分類

  

  1986年10月,美國國家標準協會對SQL進行規範後,以此做爲關係式數據庫管理系統的標準語言,1987年在國際標準組織的支持下成爲國際標準。不過各類通行的數據庫系統其實在實踐過程當中都對SQL規範的做了某些編改和擴充。因此,實際上不一樣數據庫系統之間的SQL不能徹底相互通用。1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2和SQL/DS數據庫系統中也實現了SQL。咱們知道關係型數據庫都遵循了ACID原則,且都統一的實現了SQL語句,以SQL語句爲核心來實現數據的操做,在Oracle中的SQL語句與常見的數據庫的SQL語句是有點不一樣的。算法

 

SQL簡介:sql

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

 

Oracle中SQL的分類:編程

  在Oracle中SQL的總體結構以下:編程語言

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

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

    包含: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)(Oracle獨有的)

    用於維護數據的一致性。

      包含:

      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

相關文章
相關標籤/搜索