資料庫:淺談DML、DDL、DCL的區別

  • 2020 年 9 月 18 日
  • 筆記

簡介

SQL是一個標準的資料庫語言,是面向集合的描述性非過程化語言。它功能強,效率高,簡單易學易維護(迄今為止,我還沒見過比它還好學的語言)。然而SQL語言由於以上優點,同時也出現了這樣一個問題:它是非過程性語言,即大多數語句都是獨立執行的,與上下文無關,而絕大部分應用都是一個完整的過程,顯然用SQL完全實現這些功能是很困難的。

所以大多數資料庫公司為了解決此問題,作了如下兩方面的工作:

  1. 擴充SQL,在SQL中引入過程性結構;

  2. 把SQL嵌入到高級語言中,以便一起完成一個完整的應用。

SQL語言的分類

SQL語言共分為四大類:數據查詢語言DQL,數據操縱語言DML,數據定義語言DDL,數據控制語言DCL。

DQL

DML(data query language)數據查詢語言

數據查詢語言DQL基本結構是由SELECT子句,FROM子句,WHERE
子句組成的查詢塊:
SELECT <欄位名表>
FROM <表或視圖名>
WHERE <查詢條件>

SELECT 列名稱 FROM 表名稱

DML

DML(data manipulation language)數據操縱語言

就是我們最經常用到的 UPDATE、INSERT、DELETE。 主要用來對資料庫的數據進行一些操作。

UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
DELETE FROM 表名稱 WHERE 列名稱 = 值

DDL

DDL(data definition language)資料庫定義語言

其實就是我們在創建表的時候用到的一些sql,比如說:CREATE、ALTER、DROP等。DDL主要是用在定義或改變表的結構,數據類型,表之間的鏈接和約束等初始化工作上

CREATE TABLE 表名稱
(
列名稱1 數據類型,
列名稱2 數據類型,
列名稱3 數據類型,
....
)

ALTER TABLE table_name
ALTER COLUMN column_name datatype

DROP TABLE 表名稱
DROP DATABASE 資料庫名稱

DCL

DCL(Data Control Language)資料庫控制語言

是用來設置或更改資料庫用戶或角色許可權的語句,包括(grant,deny,revoke等)語句。這個比較少用到。

結語

歡迎關注微信公眾號『碼仔zonE』,專註於分享Java、雲計算相關內容,包括SpringBoot、SpringCloud、微服務、Docker、Kubernetes、Python等領域相關技術乾貨,期待與您相遇!