DDL與DML區別
一、DML(data manipulation language)數據操縱語言:
DML(data manipulation language)數據操縱語言:
就是我們最經常用到的 SELECT、duUPDATE、INSERT、DELETE。 主要用來對數據庫的zhi數據進行一些操作dao。
比如:
SELECT 列名稱 FROM 表名稱
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
DELETE FROM 表名稱 WHERE 列名稱 = 值
insert 將記錄插入到數據庫
update 修改數據庫的記錄
delete 刪除數據庫的記錄
當執行DML命令如果沒有提交,將不會被其他會話看到。
除非在DML命令之后執行了DDL命令或DCL命令,或用戶退出會話,或終止實例,此時系統會自動發出commit命令,使未提交的DML命令提交。
二、DDL(data definition language)數據庫定義語言:
數據定義語言,用於定義和管理 SQL 數據庫中的所有對象的語言
create table 創建表
alter table 修改表
drop table 刪除表
truncate table 刪除表中所有行
create index 創建索引
drop index 刪除索引
當執行DDL語句時,在每一條語句前后,oracle都將提交當前的事務。
如果用戶使用insert命令將記錄插入到數據庫后,執行了一條DDL語句(如create table),此時來自insert命令的數據將被提交到數據庫。
當DDL語句執行完成時,DDL語句會被自動提交,不能回滾。
其實就是我們在創建表的時候用到的一些sql,比如說:CREATE、ALTER、DROP等。DDL主要是用在定義或改變表的結構,數據類型,表之間的鏈接和約束等初始化工作上。
比如:
CREATE TABLE 表名稱(列名稱1 數據類型,列名稱2 數據類型,列名稱3 數據類型,....)ALTER TABLE table_nameALTER COLUMN column_name datatypeDROP TABLE 表名稱DROP DATABASE 數據庫名稱
三、總結下二者區別:
DML是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對數據庫里的數據進行操作的語言。
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結構,數據類型,表之間的鏈接和約束等初始化工作上,他們大多在建立表時使用。
擴展資料:
DCL(Data Control Language)——數據控制語言,用來授予或回收訪問數據庫的某種特權,並控制數據庫操縱事務發生的時間及效果,對數據庫實行監視等。
數據庫控制功能,用來設置或更改數據庫用戶或角色權限的語句,包括grant,deny,revoke等語句。在默認狀態下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權力執行DCL 詳細解釋。
(1)COMMIT - save work done 提交
(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 回滾
(4)SET TRANSACTION - Change transaction options like what rollback segment to use 設置當前事務的特性,它對后面的事務沒有影響
新的總結:
DML是baiSELECT、UPDATE、INSERT、DELETE,就象它的名字一樣du,這4條命令是用來對數據庫里的數據進行操作zhi的語言。DDL比daoDML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結構,數據類型,表之間的鏈接和約束等初始化工作上,他們大多在建立表時使用。
一、DDL is Data Definition Language statements. Some examples:
數據定義語言,用於定義和管理 SQL 數據庫中的所有對象的語言
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]。
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 收回已經授予的權限。
二、DML is Data Manipulation Language statements.
數據操作語言,SQL中處理數據等操作統稱為數據操縱語言
1、SELECT - retrieve data from the a database 查詢;
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 鎖,用於控制並發。
三、DCL is Data Control Language statements.
數據控制語言,用來授予或回收訪問數據庫的某種特權,並控制數據庫操縱事務發生的時間及效果,對數據庫實行監視等
1、COMMIT - save work done 提交 ;
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 回滾;
4、SET TRANSACTION - Change transaction options like what rollback segment to use 設置當前事務的特性,它對后面的事務沒有影響。