Oracle DML,DDL,DCL,DQL

來源:互聯網
上載者:User

標籤:dml   ddl   dcl   dql   

  1. DML(data manipulation language):

    資料操作語言,對資料庫裡的資料進行操作的語言,包括命令SELECT、UPDATE、INSERT、DELETE、CALL、EXPLAIN PLAN、LOCK TABLE。詳解如下:

    1)SELECT - retrieve data from the a database 查詢 即資料查詢語言DQL,基本結構是由SELECT子句,FROM子句,WHERE子句組成的查詢塊:

    SELECT <欄位名表>

    FROM <表或視圖名>

    WHERE <查詢條件>

    2)INSERT - insert data into a table 添加 

    3)UPDATE - updates existing data within a table 更新 

    4)DELETE - deletes all records from a table, the space for the records remain 刪除 

    5)CALL - call a PL/SQL or Java subprogram 

    6)EXPLAIN PLAN - explain access path to data 

    Oracle RDBMS執行每一條SQL語句,都必須經過Oracle最佳化器的評估。所以,瞭解最佳化器是如何選擇(搜尋)路徑以及索引是如何被使用的,對最佳化SQL語句有很大的協助。Explain可以用來迅速方便地查出對於給定SQL語句中的查詢資料是如何得到的即搜尋路徑(我們通常稱為Access Path)。從而使我們選擇最優的查詢方式達到最大的最佳化效果。 

    7)LOCK TABLE - control concurrency 鎖,用於控制並發

  2. DDL(data definition language): 

    資料定義語言 (Data Definition Language),用於定義和管理 SQL 資料庫中的所有對象,DDL主要是用在定義或改變表(TABLE)的結構,資料類型,表之間的連結和約束等初始化工作上,他們大多在建立表時使用,主要的命令有CREATE、ALTER、DROP,TRUNCATE等。

    1)CREATE - to create objects in the database 建立 

    2)ALTER - alters the structure of the database 修改 

    3)DROP - delete objects from the database 刪除 

    4)TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed 

    TRUNCATE TABLE [Table Name]。

    Truncate table 表名 速度快,而且效率高,因為: 
      TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統和交易記錄資源少。 
      DELETE 語句每次刪除一行,並在交易記錄中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放儲存表資料所用的資料頁來刪除資料,並且只在交易記錄中記錄頁的釋放。 
      TRUNCATE TABLE 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重設為該列的種子。如果想保留標識計數值,請改用 DELETE。如果要刪除表定義及其資料,請使用 DROP TABLE 語句。 
      對於由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。由於 TRUNCATE TABLE 不記錄在日誌中,所以它不能啟用觸發器。 
      TRUNCATE TABLE 不能用於參與了索引檢視表的表。 
    5)COMMENT - add comments to the data dictionary 注釋 
    6)GRANT - gives user‘s access privileges to database 授權 
    7)REVOKE - withdraw access privileges given with the GRANT command 收回已經授與權限 

  3. DCL(Data Control Language): 

    資料控制語言,用來設定或更改資料庫使用者或角色許可權,並控制資料庫操縱事務發生的時間及效果,對資料庫實行監視等。在預設狀態下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權力執行DCL。主要命令有:GRANT、DENY、REVOKE、ROLLBACK、COMMIT等。

1)COMMIT - save work done 提交

在資料庫的插入、刪除和修改操作時,只有當事務在提交到資料庫時才算完成。在事務提交前,只有操作資料庫的這個人才能有權看到所做的事情,別人只有在最後提交完成後才可以看到。提交資料有三種類型:顯式提交、隱式提交及自動認可。下面分別說明這三種類型。

(1) 顯式提交

用COMMIT命令直接完成的提交為顯式提交。其格式為:

SQL>COMMIT;

(2) 隱式提交

用SQL命令間接完成的提交為隱式提交。這些命令是:

ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,

EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

(3) 自動認可

若把AUTOCOMMIT設定為ON,則在插入、修改、刪除語句執行後,

系統將自動進行提交,這就是自動認可。其格式為:

SQL>SET AUTOCOMMIT ON;

2)SAVEPOINT - identify a point in a transaction to which you can later roll back 儲存點 

3)ROLLBACK - restore database to original since the last COMMIT 復原 

ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一點。

復原---ROLLBACK

復原命令使資料庫狀態回到上次最後提交的狀態。其格式為:

SQL>ROLLBACK;

4)SET TRANSACTION - Change transaction options like what rollback segment to use 設定當前事務的特性,它對後面的事務沒有影響.



Oracle DML,DDL,DCL,DQL

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.