日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

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

來源: 責(zé)編: 時間:2024-02-01 12:51:36 201觀看
導(dǎo)讀最近與開發(fā)和運(yùn)維討論數(shù)據(jù)庫賬號及賦權(quán)問題時,發(fā)現(xiàn)大家對DDL和DML兩個概念并不了解。于是寫一篇文章,系統(tǒng)的整理一下在數(shù)據(jù)庫領(lǐng)域中的DDL、DML、DQL、DCL的使用及區(qū)別。通常,數(shù)據(jù)庫SQL語言共分為四大類:數(shù)據(jù)定義語言DDL,數(shù)

最近與開發(fā)和運(yùn)維討論數(shù)據(jù)庫賬號及賦權(quán)問題時,發(fā)現(xiàn)大家對DDL和DML兩個概念并不了解。于是寫一篇文章,系統(tǒng)的整理一下在數(shù)據(jù)庫領(lǐng)域中的DDL、DML、DQL、DCL的使用及區(qū)別。H9n28資訊網(wǎng)——每日最新資訊28at.com

通常,數(shù)據(jù)庫SQL語言共分為四大類:數(shù)據(jù)定義語言DDL,數(shù)據(jù)操作語言DML,數(shù)據(jù)查詢語言DQL,數(shù)據(jù)控制語言DCL。再加上事務(wù)控制語言TCL,一個共5個。H9n28資訊網(wǎng)——每日最新資訊28at.com

下面,我們就詳細(xì)了解一下它們。H9n28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)定義語言DDL

DDL(Data Definition Language)是數(shù)據(jù)定義語言,它用于定義或改變數(shù)據(jù)庫或表的結(jié)構(gòu)等初始化工作上。通常,包括數(shù)據(jù)類型、表(Table)之間的關(guān)系以及數(shù)據(jù)庫(Database)中的約束、索引、視圖、存儲過程、觸發(fā)器等。H9n28資訊網(wǎng)——每日最新資訊28at.com

DDL命令通常用于創(chuàng)建數(shù)據(jù)庫模式,例如CREATEALTERDROPTRUNCATERENAMECOMMENT等。這些命令一旦執(zhí)行,就無法被撤銷,因為它們改變了數(shù)據(jù)庫的結(jié)構(gòu)。H9n28資訊網(wǎng)——每日最新資訊28at.com

DDL常見命令及使用

CREATE:用來創(chuàng)建數(shù)據(jù)庫、表、索引等對象。例如:H9n28資訊網(wǎng)——每日最新資訊28at.com

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

ALTER:用來修改已存在的數(shù)據(jù)庫對象。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

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

DROP:用來刪除整個數(shù)據(jù)庫或者數(shù)據(jù)庫中的表。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

DROP DATABASE testDB;                     --刪除名為testDB的數(shù)據(jù)庫DROP TABLE Students;                      --刪除Students表

TRUNCATE:用來刪除表中所有的行,但不刪除表本身。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

TRUNCATE TABLE Students;                 --刪除Students表中的所有數(shù)據(jù),但不刪除表本身

RENAME:用來重命名數(shù)據(jù)庫或者表。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

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

COMMENT:用來為數(shù)據(jù)庫對象如表、列添加注釋。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

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

以上是幾種常見的DDL命令示例,不同的數(shù)據(jù)庫系統(tǒng)可能語法稍有不同,使用時需要參考對應(yīng)數(shù)據(jù)庫的文檔。H9n28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)操作語言DML

DML(Data Manipulation Language)是數(shù)據(jù)操作語言,用于管理和檢索數(shù)據(jù)庫中的數(shù)據(jù)。適用于對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行一些簡單操作,比如增刪改查表中的數(shù)據(jù)。H9n28資訊網(wǎng)——每日最新資訊28at.com

DML命令用于處理表中的記錄,例如INSERT(插入)、UPDATE(更新)、SELECT(查詢)、DELETE(刪除)等。這些命令不會影響數(shù)據(jù)庫的結(jié)構(gòu),而是直接作用于數(shù)據(jù)本身。如果執(zhí)行了錯誤的操作,可以通過回滾機(jī)制來取消這些操作。H9n28資訊網(wǎng)——每日最新資訊28at.com

需要注意的是,DML命令不會自動提交,而且是可以回滾操作。H9n28資訊網(wǎng)——每日最新資訊28at.com

常用的語句關(guān)鍵字有:SELECTINSERTUPDATEDELETEMERGECALLEXPLAIN PLANLOCK TABLEH9n28資訊網(wǎng)——每日最新資訊28at.com

DML常見命令及使用

以下的例子基于 SQL 語言:H9n28資訊網(wǎng)——每日最新資訊28at.com

SELECT:從數(shù)據(jù)庫中檢索數(shù)據(jù)。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

SELECT * FROM Students;                    --選擇Students表中的所有數(shù)據(jù)SELECT Name, Grade FROM Students;          --選擇Students表中的Name和Grade數(shù)據(jù)

INSERT:在表中插入新的數(shù)據(jù)。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

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

UPDATE:更新數(shù)據(jù)庫表中的數(shù)據(jù)。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

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

DELETE:從數(shù)據(jù)庫中刪除數(shù)據(jù)。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

DELETE FROM StudentsWHERE ID = 1;                             --刪除Students表中ID為1的數(shù)據(jù)

MERGE:合并兩張表或更改其中一張表的數(shù)據(jù)。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

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

CALL:調(diào)用一個存儲過程。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

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

EXPLAIN PLAN:提供一條查詢語句的執(zhí)行計劃。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

EXPLAIN PLAN FOR SELECT * FROM Students; -- 顯示查詢所有學(xué)生數(shù)據(jù)的執(zhí)行計劃

LOCK TABLE:對數(shù)據(jù)庫表進(jìn)行鎖定,以控制并發(fā)讀寫。例如,H9n28資訊網(wǎng)——每日最新資訊28at.com

LOCK TABLE Students IN EXCLUSIVE MODE;  -- 對Students表施加獨(dú)占鎖

以上是幾種常見的DML命令示例,不同的數(shù)據(jù)庫系統(tǒng)可能語法稍有不同,具體使用時需要參考對應(yīng)數(shù)據(jù)庫的文檔。H9n28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)控制語言DCL

DCL(Data Control Language)數(shù)據(jù)控制語言:主要用于控制用戶對數(shù)據(jù)庫的訪問權(quán)限以及對數(shù)據(jù)的執(zhí)行權(quán)限。常見的DCL語句包括GRANT、REVOKE等。H9n28資訊網(wǎng)——每日最新資訊28at.com

DCL主要包括兩種SQL命令,分別是GRANT和REVOKE。H9n28資訊網(wǎng)——每日最新資訊28at.com

GRANT:該命令用于授予用戶對數(shù)據(jù)庫對象(例如表格)的訪問權(quán)限。下面是一個例子:H9n28資訊網(wǎng)——每日最新資訊28at.com

GRANT SELECT, INSERT, UPDATE ON Students TO user1;

在這個例子中,給 "user1" 授予了對 "Students" 表進(jìn)行 SELECT、INSERT 和 UPDATE 的權(quán)限。H9n28資訊網(wǎng)——每日最新資訊28at.com

REVOKE:該命令用于撤回已經(jīng)授予用戶的某些權(quán)限。H9n28資訊網(wǎng)——每日最新資訊28at.com

下面是一個例子:H9n28資訊網(wǎng)——每日最新資訊28at.com

REVOKE UPDATE ON Students FROM user1;

在這個例子中,撤回了 "user1" 對 "Students" 表的 UPDATE 權(quán)限。H9n28資訊網(wǎng)——每日最新資訊28at.com

使用DCL,數(shù)據(jù)庫管理員可以精細(xì)化管理數(shù)據(jù)庫的訪問權(quán)限,保護(hù)數(shù)據(jù)的安全性。H9n28資訊網(wǎng)——每日最新資訊28at.com

注意,這些命令的具體語法和使用可能會根據(jù)使用的數(shù)據(jù)庫系統(tǒng)而有所不同,所以在實際使用時,需要參考相應(yīng)數(shù)據(jù)庫的具體文檔。H9n28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)查詢語言DQL

DQL(Data Query Language)數(shù)據(jù)查詢語言:主要用來查詢數(shù)據(jù)。實際上,DQL在操作中主要體現(xiàn)為SQL的SELECT語句。H9n28資訊網(wǎng)——每日最新資訊28at.com

例如,我們有一個學(xué)生表(Students)包括ID, 名字(Name), 年齡(Age)等字段:H9n28資訊網(wǎng)——每日最新資訊28at.com

  1. 查詢所有數(shù)據(jù):
SELECT * FROM Students;

這條命令會返回Students表中的所有行和列。H9n28資訊網(wǎng)——每日最新資訊28at.com

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

這條命令僅返回Name和Age字段的數(shù)據(jù)。H9n28資訊網(wǎng)——每日最新資訊28at.com

  1. 對查詢結(jié)果進(jìn)行篩選:
SELECT * FROM Students WHERE Age > 18;

這條命令只返回年齡大于18的學(xué)生數(shù)據(jù)。H9n28資訊網(wǎng)——每日最新資訊28at.com

  1. 對查詢結(jié)果進(jìn)行排序:
SELECT * FROM Students ORDER BY Age DESC;

這條命令將數(shù)據(jù)按照年齡降序排列后返回。H9n28資訊網(wǎng)——每日最新資訊28at.com

以上幾個例子展示了最基本的數(shù)據(jù)查詢操作,但是實際上SELECT語句的用法和技巧還有很多,例如聚合函數(shù)(如COUNT、SUM)、分組(GROUP BY)、連接(JOIN)等等。H9n28資訊網(wǎng)——每日最新資訊28at.com

事務(wù)控制語言TCL

TCL (Transaction Control Language) 是事務(wù)控制語言的簡稱,主要用來管理和控制數(shù)據(jù)庫中的事務(wù)(Transaction),以保證數(shù)據(jù)庫操作的完整性和一致性。H9n28資訊網(wǎng)——每日最新資訊28at.com

TCL命令往往和DML(數(shù)據(jù)操作語言)命令一起使用,以確保一系列的數(shù)據(jù)庫操作要么全部成功,要么全部不成功(可回滾至操作前的狀態(tài))。H9n28資訊網(wǎng)——每日最新資訊28at.com

TCL 主要包括以下幾種命令:H9n28資訊網(wǎng)——每日最新資訊28at.com

COMMIT:用于提交事務(wù),將所有數(shù)據(jù)庫修改保存到數(shù)據(jù)庫中。H9n28資訊網(wǎng)——每日最新資訊28at.com

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

ROLLBACK:用于回滾事務(wù),撤銷所有未經(jīng)提交的數(shù)據(jù)庫修改。H9n28資訊網(wǎng)——每日最新資訊28at.com

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

SAVEPOINT:為事務(wù)中的一系列操作設(shè)定保存點(diǎn)。設(shè)立保存點(diǎn)后,可以選擇只回滾到保存點(diǎn)的部分,而不需要全部回滾。H9n28資訊網(wǎng)——每日最新資訊28at.com

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

以上就是SQL中的TCL中的主要命令,用于確保數(shù)據(jù)庫的完整性和一致性。H9n28資訊網(wǎng)——每日最新資訊28at.com

小結(jié)

本篇文章以具體的SQL語句講解了數(shù)據(jù)庫SQL語言四大分類(數(shù)據(jù)定義語言DDL,數(shù)據(jù)操作語言DML,數(shù)據(jù)查詢語言DQL,數(shù)據(jù)控制語言DCL),同時也介紹了事務(wù)控制語言TCL。H9n28資訊網(wǎng)——每日最新資訊28at.com

針對不同的數(shù)據(jù)庫,具體的SQL可能有所不同,但分類思想和功能基本相同。在上述英文縮寫的記憶中,建議通過英文原文,特別是中間的英文字母來輔助記憶。H9n28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-70456-0.html一篇文章,徹底理解數(shù)據(jù)庫操作語言:DDL、DML、DCL、TCL

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Java中的緩存技術(shù)及其使用場景

下一篇: 太強(qiáng)了!CSS 文字效果還能這樣玩

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 多線程開發(fā)帶來的問題與解決方法

    使用多線程主要會帶來以下幾個問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結(jié)束訪問某一數(shù)據(jù)期間,該數(shù)據(jù)被其他的線程所修改,那么對于當(dāng)前線程而言,該線程
  • Python異步IO編程的進(jìn)程/線程通信實現(xiàn)

    這篇文章再講3種方式,同時講4中進(jìn)程間通信的方式一、 Python 中線程間通信的實現(xiàn)方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 猿輔導(dǎo)與新東方的兩種“歸途”

    作者|卓心月 出品|零態(tài)LT(ID:LingTai_LT)如何成為一家偉大企業(yè)?答案一定是對“勢”的把握,這其中最關(guān)鍵的當(dāng)屬對企業(yè)戰(zhàn)略的制定,且能夠站在未來看現(xiàn)在,即使這其中的
  • 當(dāng)家的盒馬,加速謀生

    來源 | 價值星球Planet作者 | 歸去來自己“當(dāng)家”的盒馬,開始加速謀生了。據(jù)盒馬官微消息,盒馬計劃今年開放生鮮供應(yīng)鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經(jīng)與
  • 造車兩年股價跌六成,小米的估值邏輯變了嗎?

    如果從小米官宣造車后的首個交易日起持有小米集團(tuán)的股票,那么截至2023年上半年最后一個交易日,投資者將浮虧59.16%,同區(qū)間的恒生科技指數(shù)跌幅為52.78%
  • 信通院:小米、華為等11家應(yīng)用商店基本完成APP簽名及驗簽工作

    中國信通院表示,目前,小米、華為、OPPO、vivo、360手機(jī)助手、百度手機(jī)助手、應(yīng)用寶、豌豆莢和努比亞等9家應(yīng)用商店,以及抖音和快手2家新型應(yīng)用分發(fā)平
  • 華為HarmonyOS 4.0將于8月4日發(fā)布 或搭載AI大模型技術(shù)

    華為宣布HarmonyOS4.0將于8月4日正式發(fā)布。此前,華為已經(jīng)針對開發(fā)者公布了HarmonyOS4.0,以便于開發(fā)者提前進(jìn)行適配,也因此被曝光出了一些新系統(tǒng)的特性
  • AI芯片初創(chuàng)公司Tenstorrent獲三星和現(xiàn)代1億美元投資

    Tenstorrent是一家由芯片行業(yè)資深人士Jim Keller領(lǐng)導(dǎo)的加拿大初創(chuàng)公司,專注于開發(fā)人工智能芯片,該公司周三表示,已經(jīng)從現(xiàn)代汽車集團(tuán)和三星投資基金等
  • 滴滴違法違規(guī)被罰80.26億 共存在16項違法事實

    滴滴違法違規(guī)被罰80.26億 存在16項違法事實開始于2121年7月,歷經(jīng)一年時間,網(wǎng)絡(luò)安全審查辦公室對“滴滴出行”網(wǎng)絡(luò)安全審查終于有了一個暫時的結(jié)束。據(jù)“網(wǎng)信
Top 主站蜘蛛池模板: 砀山县| 卢龙县| 灌阳县| 公主岭市| 建水县| 昭平县| 咸丰县| 康乐县| 新建县| 喀喇沁旗| 阳西县| 六安市| 凉城县| 柯坪县| 祁门县| 于田县| 抚松县| 德化县| 封开县| 当涂县| 巧家县| 淳化县| 芜湖县| 汤原县| 裕民县| 万载县| 永安市| 故城县| 和田县| 舒城县| 通州市| 边坝县| 昌平区| 沅江市| 鄂州市| 太原市| 镇平县| 都江堰市| 海林市| 凉城县| 徐州市|