国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一篇文章,徹底理解數據庫操作語言:DDL、DML、DCL、TCL

開發 前端
本篇文章以具體的SQL語句講解了數據庫SQL語言四大分類(數據定義語言DDL,數據操作語言DML,數據查詢語言DQL,數據控制語言DCL),同時也介紹了事務控制語言TCL。

最近與開發和運維討論數據庫賬號及賦權問題時,發現大家對DDL和DML兩個概念并不了解。于是寫一篇文章,系統的整理一下在數據庫領域中的DDL、DML、DQL、DCL的使用及區別。

通常,數據庫SQL語言共分為四大類:數據定義語言DDL,數據操作語言DML,數據查詢語言DQL,數據控制語言DCL。再加上事務控制語言TCL,一個共5個。

下面,我們就詳細了解一下它們。

數據定義語言DDL

DDL(Data Definition Language)是數據定義語言,它用于定義或改變數據庫或表的結構等初始化工作上。通常,包括數據類型、表(Table)之間的關系以及數據庫(Database)中的約束、索引、視圖、存儲過程、觸發器等。

DDL命令通常用于創建數據庫模式,例如CREATEALTERDROPTRUNCATERENAMECOMMENT等。這些命令一旦執行,就無法被撤銷,因為它們改變了數據庫的結構。

DDL常見命令及使用

CREATE:用來創建數據庫、表、索引等對象。例如:

CREATE DATABASE testDB;                 --創建一個名為testDB的數據庫
CREATE TABLE Students (ID INT, Name TEXT);  --創建一個名為Students的表,包含ID和Name兩個字段

ALTER:用來修改已存在的數據庫對象。例如,

ALTER TABLE Students ADD Grade INT;        --在Students表中添加一個名為Grade的字段
ALTER TABLE Students DROP COLUMN Grade;    --在Students表中刪除名為Grade的字段

DROP:用來刪除整個數據庫或者數據庫中的表。例如,

DROP DATABASE testDB;                     --刪除名為testDB的數據庫
DROP TABLE Students;                      --刪除Students表

TRUNCATE:用來刪除表中所有的行,但不刪除表本身。例如,

TRUNCATE TABLE Students;                 --刪除Students表中的所有數據,但不刪除表本身

RENAME:用來重命名數據庫或者表。例如,

ALTER TABLE Students RENAME TO Pupils;  --將Students表重命名為Pupils

COMMENT:用來為數據庫對象如表、列添加注釋。例如,

COMMENT ON COLUMN Students.Name IS 'Student Name';  --在Students表的Name列上添加注釋'Student Name'

以上是幾種常見的DDL命令示例,不同的數據庫系統可能語法稍有不同,使用時需要參考對應數據庫的文檔。

數據操作語言DML

DML(Data Manipulation Language)是數據操作語言,用于管理和檢索數據庫中的數據。適用于對數據庫中的數據進行一些簡單操作,比如增刪改查表中的數據。

DML命令用于處理表中的記錄,例如INSERT(插入)、UPDATE(更新)、SELECT(查詢)、DELETE(刪除)等。這些命令不會影響數據庫的結構,而是直接作用于數據本身。如果執行了錯誤的操作,可以通過回滾機制來取消這些操作。

需要注意的是,DML命令不會自動提交,而且是可以回滾操作。

常用的語句關鍵字有:SELECTINSERTUPDATEDELETEMERGECALLEXPLAIN PLANLOCK TABLE

DML常見命令及使用

以下的例子基于 SQL 語言:

SELECT:從數據庫中檢索數據。例如,

SELECT * FROM Students;                    --選擇Students表中的所有數據
SELECT Name, Grade FROM Students;          --選擇Students表中的Name和Grade數據

INSERT:在表中插入新的數據。例如,

INSERT INTO Students (ID, Name, Age)
VALUES (1, 'Tom', 18);                    --在Students表中插入一條新的數據

UPDATE:更新數據庫表中的數據。例如,

UPDATE Students 
SET Age = 19 
WHERE ID = 1;                             --將Students表中ID為1的記錄的Age設置為19

DELETE:從數據庫中刪除數據。例如,

DELETE FROM Students
WHERE ID = 1;                             --刪除Students表中ID為1的數據

MERGE:合并兩張表或更改其中一張表的數據。例如,

MERGE INTO Students AS Target
USING (SELECT ID, Name FROM Enrolled_Students) AS Source
ON Target.ID = Source.ID
WHEN MATCHED THEN 
UPDATE SET Name = Source.Name 
WHEN NOT MATCHED THEN 
INSERT (ID, Name) VALUES (Source.ID, Source.Name); --更新已存在的記錄或插入新的記錄

CALL:調用一個存儲過程。例如,

CALL Update_Students_Age(18); -- 調用名為“Update_Students_Age”的存儲過程

EXPLAIN PLAN:提供一條查詢語句的執行計劃。例如,

EXPLAIN PLAN FOR SELECT * FROM Students; -- 顯示查詢所有學生數據的執行計劃

LOCK TABLE:對數據庫表進行鎖定,以控制并發讀寫。例如,

LOCK TABLE Students IN EXCLUSIVE MODE;  -- 對Students表施加獨占鎖

以上是幾種常見的DML命令示例,不同的數據庫系統可能語法稍有不同,具體使用時需要參考對應數據庫的文檔。

數據控制語言DCL

DCL(Data Control Language)數據控制語言:主要用于控制用戶對數據庫的訪問權限以及對數據的執行權限。常見的DCL語句包括GRANT、REVOKE等。

DCL主要包括兩種SQL命令,分別是GRANT和REVOKE。

GRANT:該命令用于授予用戶對數據庫對象(例如表格)的訪問權限。下面是一個例子:

GRANT SELECT, INSERT, UPDATE ON Students TO user1;

在這個例子中,給 "user1" 授予了對 "Students" 表進行 SELECT、INSERT 和 UPDATE 的權限。

REVOKE:該命令用于撤回已經授予用戶的某些權限。

下面是一個例子:

REVOKE UPDATE ON Students FROM user1;

在這個例子中,撤回了 "user1" 對 "Students" 表的 UPDATE 權限。

使用DCL,數據庫管理員可以精細化管理數據庫的訪問權限,保護數據的安全性。

注意,這些命令的具體語法和使用可能會根據使用的數據庫系統而有所不同,所以在實際使用時,需要參考相應數據庫的具體文檔。

數據查詢語言DQL

DQL(Data Query Language)數據查詢語言:主要用來查詢數據。實際上,DQL在操作中主要體現為SQL的SELECT語句。

例如,我們有一個學生表(Students)包括ID, 名字(Name), 年齡(Age)等字段:

  1. 查詢所有數據:
SELECT * FROM Students;

這條命令會返回Students表中的所有行和列。

  1. 查詢部分字段:
SELECT Name, Age FROM Students;

這條命令僅返回Name和Age字段的數據。

  1. 對查詢結果進行篩選:
SELECT * FROM Students WHERE Age > 18;

這條命令只返回年齡大于18的學生數據。

  1. 對查詢結果進行排序:
SELECT * FROM Students ORDER BY Age DESC;

這條命令將數據按照年齡降序排列后返回。

以上幾個例子展示了最基本的數據查詢操作,但是實際上SELECT語句的用法和技巧還有很多,例如聚合函數(如COUNT、SUM)、分組(GROUP BY)、連接(JOIN)等等。

事務控制語言TCL

TCL (Transaction Control Language) 是事務控制語言的簡稱,主要用來管理和控制數據庫中的事務(Transaction),以保證數據庫操作的完整性和一致性。

TCL命令往往和DML(數據操作語言)命令一起使用,以確保一系列的數據庫操作要么全部成功,要么全部不成功(可回滾至操作前的狀態)。

TCL 主要包括以下幾種命令:

COMMIT:用于提交事務,將所有數據庫修改保存到數據庫中。

INSERT INTO Students (ID, Name, Age) VALUES (1, 'Tom', 18);
COMMIT;  -- 提交事務,將插入的數據保存到數據庫中

ROLLBACK:用于回滾事務,撤銷所有未經提交的數據庫修改。

INSERT INTO Students (ID, Name, Age) VALUES (1, 'Tom', 18);
ROLLBACK;  -- 回滾事務,撤銷上一條插入命令

SAVEPOINT:為事務中的一系列操作設定保存點。設立保存點后,可以選擇只回滾到保存點的部分,而不需要全部回滾。

SAVEPOINT SP1;  -- 創建保存點 SP1
INSERT INTO Students (ID, Name, Age) VALUES (1, 'Tom', 18);
ROLLBACK TO SP1;  -- 回滾至保存點 SP1,不會撤銷保存點后的操作

以上就是SQL中的TCL中的主要命令,用于確保數據庫的完整性和一致性。

小結

本篇文章以具體的SQL語句講解了數據庫SQL語言四大分類(數據定義語言DDL,數據操作語言DML,數據查詢語言DQL,數據控制語言DCL),同時也介紹了事務控制語言TCL。

針對不同的數據庫,具體的SQL可能有所不同,但分類思想和功能基本相同。在上述英文縮寫的記憶中,建議通過英文原文,特別是中間的英文字母來輔助記憶。

責任編輯:武曉燕 來源: 程序新視界
相關推薦

2024-02-28 12:41:00

源碼內核參數

2024-06-25 08:18:55

2021-04-07 13:28:21

函數程序員異步

2024-05-17 10:05:06

Java機制應用

2013-04-15 10:59:08

iOS開發ARC版本說明

2022-05-18 08:05:31

SQL程序語言數據庫

2016-07-01 14:55:07

開源數據庫

2021-05-31 08:59:57

Java數據庫訪問JDBC

2017-07-20 16:55:56

Android事件響應View源碼分析

2015-07-15 17:09:48

HiveHadoop分布式文件系統

2017-12-20 10:08:07

數據庫阿里巴巴分庫分表技術

2021-04-22 09:01:35

MongoDB數據庫NoSql數據庫

2021-02-20 10:06:14

語言文件操作

2020-10-09 08:15:11

JsBridge

2021-01-13 08:40:04

Go語言文件操作

2025-01-26 15:38:11

Spring事務編程式

2019-07-23 08:55:46

Base64編碼底層

2020-12-29 09:05:48

基礎DjangoORM

2021-01-05 09:07:30

Django ORMF查詢Q查詢

2021-11-13 10:11:45

Pythonurllib庫Python基礎
點贊
收藏

51CTO技術棧公眾號

日韩av大片免费看| 福利视频第一区| 日韩免费电影一区| 国产96在线 | 亚洲| 成人黄色在线观看| 欧美片在线播放| 亚洲少妇中出一区| 国产精品一区视频| 久久久一本精品| 亚洲最大色网站| 亚洲av首页在线| 国产精品国产一区| 日韩中文在线观看| 欧美视频综合| 国产精品视频一区二区三区不卡| 精品国产一区二区三区四区精华 | 亚洲女在线观看| www亚洲成人| 国产一级精品在线| 92看片淫黄大片看国产片| 亚洲精品777| 精品久久五月天| 男人天堂午夜在线| 国产精品理伦片| 日本a在线免费观看| 久久久精品网| 国产在线久久久| aiai久久| 亚洲人成自拍网站| av中文在线资源| 精品福利二区三区| av在线电影网| 四虎在线观看| 色av一区二区三区| 欧美一级色片| 亚洲精品国产首次亮相| 在线综合视频播放| 亚洲高清福利| 色香蕉成人二区免费| 99热一区二区| 97aⅴ精品视频一二三区| 国产主播在线一区| 午夜欧美激情| 欧美丰满少妇xxxxx高潮对白| 美女少妇精品视频| 78精品国产综合久久香蕉| 精品日韩在线观看| a免费在线观看| 疯狂蹂躏欧美一区二区精品| 草草久视频在线观看电影资源| 国产福利精品一区二区| 国产在线精品一区二区中文| 一区二区三区中文| 官网99热精品| 天堂在线一区二区| 欧美日韩dvd| 国产美女av一区二区三区| 五月婷婷综合色| 成人自拍视频在线| 国产精品第157页| 久久亚洲精华国产精华液 | 亚洲香蕉网站| 99国产高清| 日本美女一区二区三区| 和岳每晚弄的高潮嗷嗷叫视频 | www国产91| 日韩精品一区二区三区中文字幕| 欧美成人全部免费| 久久国产影院| 日韩欧美一级在线| 亚洲国产另类av| 91麻豆一二三四在线| 亚洲欧美精品一区| 一区二区美女| 99中文字幕在线观看| 一区二区三区四区蜜桃| 亚洲大胆人体大胆做受1| 日韩av电影免费观看高清| 国产亚洲亚洲| 成人免费淫片95视频观看网站| 欧美日韩中字一区| av日韩精品| 国产男女免费视频| 一本大道久久精品懂色aⅴ| 三级成人在线| 国产精品免费观看高清| 99re热这里只有精品免费视频| 亚洲综合图片| 性欧美xxxx交| 国产91精品一区二区麻豆亚洲| 国产在线视频你懂| 亚洲欧美精品伊人久久| 精品成人在线| 超碰在线94| 日本欧美精品在线| 九色综合狠狠综合久久| 91精品专区| 成人动漫视频在线观看免费| 亚洲欧洲综合另类| 国产在线不卡| 偷拍亚洲精品| 欧美专区视频| 电影亚洲精品噜噜在线观看| 中文在线√天堂| 日韩高清在线播放| 国产成人亚洲精品| 亚洲精品720p| 亚洲欧洲综合另类在线| 美女高潮久久久| 国产一区二区三区| 在线观看免费成人av| 性亚洲最疯狂xxxx高清| 色婷婷av久久久久久久| 亚洲不卡av不卡一区二区| 精品视频一二三| 久久久久久久久一区| 亚洲国产精品久久久久| 国内成+人亚洲+欧美+综合在线 | 亚洲午夜av| 精品美女在线观看视频在线观看| 黄色国产精品一区二区三区| 91麻豆精品国产91久久久更新时间| 免费观看久久av| 欧美一区二区三区少妇| 国产日韩精品电影| 亚洲天堂av电影| 欧美性猛交xxxx富婆| 日韩精品一卡二卡三卡四卡无卡| 久久天堂影院| 午夜3点看的视频| 欧美大陆一区二区| 久久精品国产成人| 欧美婷婷六月丁香综合色| 国产成人av电影免费在线观看| 欧美午夜网站| 国产日本在线视频| 成人黄色av片| 国产成人精品福利一区二区三区 | 中文字幕一区二区三区av| 国产精品色呦| 国产乱色在线观看| 日韩欧美视频网站| 国产欧美日韩伦理| 97视频在线观看网址| 欧美日韩成人一区二区| 国产精品亚洲人在线观看| 免费看av成人| av激情成人网| 国产主播色在线| 国产精品视频网站| 日韩国产欧美精品在线| 色一区在线观看| 国产三级精品三级| 亚洲在线免费| 奇米亚洲欧美| 日本欧美肥老太交大片| 欧美黄页免费| 在线中文字幕电影| 高清免费电影在线观看| 500福利第一精品导航| 高清av免费看| 韩国日本在线视频| 天堂…中文在线最新版在线| 精品一区二区三区无码视频| 蜜桃精品久久久久久久免费影院| 欧美黑人国产人伦爽爽爽| 欧美裸体xxxx极品少妇| 日韩高清有码在线| 有码中文亚洲精品| 色偷偷av一区二区三区| 日韩高清免费在线| 日韩午夜激情av| 精品视频在线导航| 日韩激情视频在线播放| 国产午夜精品视频| 欧美日韩国产天堂| 亚洲成人国产精品| 亚洲嫩模很污视频| 久久综合国产精品台湾中文娱乐网| 久久久av免费| 国产精品wwwwww| 高清国语自产拍免费一区二区三区| 亚洲一区二区三区四区在线播放| 国产精品日韩二区| 日本一区二区三区在线视频| 夜夜爽99久久国产综合精品女不卡| 色狠狠久久av五月综合| 国产二区视频在线播放| 久草.com| 国产成人在线观看| 国产精品久久久久77777丨| 在线免费观看黄色片| 日韩av综合在线观看| 国产精品9999久久久久仙踪林| 国产伦精品一区二区三毛| 国产激情三区| 玖草视频在线| 色综合久久影院| 伊人www22综合色| 成人亚洲一区二区|