標籤:dml ddl dcl dql
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 鎖,用於控制並發
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 收回已經授與權限
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