欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文帶你深入了解并掌握MySQL的DML和DCL

 更新時(shí)間:2024年02月10日 09:43:43   作者:嶼小夏  
在數(shù)據(jù)庫(kù)管理中,數(shù)據(jù)操作語(yǔ)言(DML)和數(shù)據(jù)控制語(yǔ)言(DCL)是至關(guān)重要的概念,DML使我們能夠?qū)?shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行增加、修改和刪除操作,本文將深入探討這兩個(gè)關(guān)鍵領(lǐng)域的核心概念和操作方法,幫助您更好地理解和應(yīng)用數(shù)據(jù)庫(kù)管理技術(shù)

前言

在數(shù)據(jù)庫(kù)管理中,數(shù)據(jù)操作語(yǔ)言(DML)和數(shù)據(jù)控制語(yǔ)言(DCL)是至關(guān)重要的概念。DML使我們能夠?qū)?shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行增加、修改和刪除操作,而DCL則允許我們管理用戶和控制數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。本文將深入探討這兩個(gè)關(guān)鍵領(lǐng)域的核心概念和操作方法,幫助您更好地理解和應(yīng)用數(shù)據(jù)庫(kù)管理技術(shù)。

一. DML

DML英文全稱是Data Manipulation Language(數(shù)據(jù)操作語(yǔ)言),用來(lái)對(duì)數(shù)據(jù)庫(kù)中表的數(shù)據(jù)記錄進(jìn)行增、刪、改操作。

  • 添加數(shù)據(jù)(INSERT)
  • 修改數(shù)據(jù)(UPDATE)
  • 刪除數(shù)據(jù)(DELETE)

1.1 添加數(shù)據(jù)

給指定字段添加數(shù)據(jù)

INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);

給全部字段添加數(shù)據(jù)

INSERT INTO 表名 VALUES (值1, 值2, ...);

批量添加數(shù)據(jù)

INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), (值
1, 值2, ...) ;
INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;

注意事項(xiàng) :

  • 插入數(shù)據(jù)時(shí),指定的字段順序需要與值的順序是一一對(duì)應(yīng)的。
  • 字符串和日期型數(shù)據(jù)應(yīng)該包含在引號(hào)中。
  • 插入的數(shù)據(jù)大小,應(yīng)該在字段的規(guī)定范圍內(nèi)。

案例1: 給employee表所有的字段添加數(shù)據(jù) ;

insert into employee(id,workno,name,gender,age,idcard,entrydate)
values(1,'1','Itcast','男',10,'123456789012345678','2000-01-01');

查詢數(shù)據(jù)的SQL語(yǔ)句, 語(yǔ)句如下:

select * from employee;

**案例2:**給全部字段添加數(shù)據(jù)

INSERT INTO 表名 VALUES (值1, 值2, ...);

插入數(shù)據(jù)到employee表,具體的SQL如下:

insert into employee values(2,'2','張無(wú)忌','男',18,'123456789012345670','2005-01-01');

**案例3:**批量插入數(shù)據(jù)到employee表,具體的SQL如下:

insert into employee values(3,'3','韋一笑','男',38,'123456789012345670','2005-01-01'),(4,'4','趙敏','女',18,'123456789012345670','2005-01-01');

1.2 修改數(shù)據(jù)

修改數(shù)據(jù)的具體語(yǔ)法為:

UPDATE 表名 SET 字段名1 = 值1 , 字段名2 = 值2 , .... [ WHERE 條件 ] ;

注意事項(xiàng):

  • 修改語(yǔ)句的條件可以有,也可以沒有,如果沒有條件,則會(huì)修改整張表的所有數(shù)據(jù)。

案例:

A. 修改id為1的數(shù)據(jù),將name修改為yuxia

update employee set name = 'yuxia' where id = 1;

B. 修改id為1的數(shù)據(jù), 將name修改為小昭, gender修改為 女

update employee set name = '小昭' , gender = '女' where id = 1;

C. 將所有的員工入職日期修改為 2008-01-01

update employee set entrydate = '2008-01-01';

注意事項(xiàng):

  • DELETE 語(yǔ)句的條件可以有,也可以沒有,如果沒有條件,則會(huì)刪除整張表的所有數(shù)據(jù)。
  • DELETE 語(yǔ)句不能刪除某一個(gè)字段的值(可以使用UPDATE,將該字段值置為NULL即可)。
  • 當(dāng)進(jìn)行刪除全部數(shù)據(jù)操作時(shí),如果你使用的是datagrip,它就會(huì)提示我們,詢問(wèn)是否確認(rèn)刪除,我們直接點(diǎn)擊Execute即可。

案例:

A. 刪除gender為女的員工

delete from employee where gender = '女';

B. 刪除所有員工

delete from employee;

二. DCL

DCL英文全稱是Data Control Language(數(shù)據(jù)控制語(yǔ)言),用來(lái)管理數(shù)據(jù)庫(kù)用戶、控制數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。

2.1 管理用戶

**查詢用戶 **

select * from mysql.user;

其中 Host代表當(dāng)前用戶訪問(wèn)的主機(jī), 如果為localhost, 僅代表只能夠在當(dāng)前本機(jī)訪問(wèn),是不可以遠(yuǎn)程訪問(wèn)的。 User代表的是訪問(wèn)該數(shù)據(jù)庫(kù)的用戶名。在MySQL中需要通過(guò)Host和User來(lái)唯一標(biāo)識(shí)一個(gè)用戶。

創(chuàng)建用戶

CREATE USER '用戶名'@'主機(jī)名' IDENTIFIED BY '密碼';

修改用戶密碼

ALTER USER '用戶名'@'主機(jī)名' IDENTIFIED WITH mysql_native_password BY '新密碼' ;

刪除用戶

DROP USER '用戶名'@'主機(jī)名' ;

注意事項(xiàng):

  • 在MySQL中需要通過(guò)用戶名@主機(jī)名的方式,來(lái)唯一標(biāo)識(shí)一個(gè)用戶。
  • 主機(jī)名可以使用 % 通配。
  • 這類SQL開發(fā)人員操作的比較少,主要是DBA( Database Administrator 數(shù)據(jù)庫(kù)管理員)使用。

案例

A. 創(chuàng)建用戶itcast, 只能夠在當(dāng)前主機(jī)localhost訪問(wèn), 密碼123456;

create user 'itcast'@'localhost' identified by '123456';

B. 創(chuàng)建用戶yuxia, 可以在任意主機(jī)訪問(wèn)該數(shù)據(jù)庫(kù), 密碼123456;

create user 'yuxia'@'%' identified by '123456';

C. 修改用戶yuxia的訪問(wèn)密碼為1234;

alter user 'heima'@'%' identified with mysql_native_password by '1234';

D. 刪除 itcast@localhost 用戶

drop user 'itcast'@'localhost';

2.2 權(quán)限控制

MySQL中定義了很多種權(quán)限,但是常用的就以下幾種:

權(quán)限說(shuō)明
ALL, ALL PRIVILEGES所有權(quán)限
SELECT查詢數(shù)據(jù)
INSERT插入數(shù)據(jù)
UPDATE修改數(shù)據(jù)
DELETE刪除數(shù)據(jù)
ALTER修改表
DROP刪除數(shù)據(jù)庫(kù)/表/視圖
CREATE創(chuàng)建數(shù)據(jù)庫(kù)/表

上述只是簡(jiǎn)單羅列了常見的幾種權(quán)限描述,其他權(quán)限描述及含義

查詢權(quán)限

SHOW GRANTS FOR '用戶名'@'主機(jī)名' ;

授予權(quán)限

GRANT 權(quán)限列表 ON 數(shù)據(jù)庫(kù)名.表名 TO '用戶名'@'主機(jī)名';

撤銷權(quán)限

REVOKE 權(quán)限列表 ON 數(shù)據(jù)庫(kù)名.表名 FROM '用戶名'@'主機(jī)名';

注意事項(xiàng):

  • 多個(gè)權(quán)限之間,使用逗號(hào)分隔
  • 授權(quán)時(shí), 數(shù)據(jù)庫(kù)名和表名可以使用 * 進(jìn)行通配,代表所有。

案例:

A. 查詢 ‘test’@‘%’ 用戶的權(quán)限

show grants for 'test'@'%';

B. 授予 ‘test’@‘%’ 用戶student數(shù)據(jù)庫(kù)所有表的所有操作權(quán)

grant all on student.* to 'test'@'%';

C. 撤銷 ‘test’@’%’ 用戶的student數(shù)據(jù)庫(kù)的所有權(quán)限

revoke all on student.* from 'test'@'%';

A. 查詢 ‘test’@‘%’ 用戶的權(quán)限

show grants for 'test'@'%';

B. 授予 ‘test’@‘%’ 用戶student數(shù)據(jù)庫(kù)所有表的所有操作權(quán)

grant all on student.* to 'test'@'%';

C. 撤銷 ‘test’@’%’ 用戶的student數(shù)據(jù)庫(kù)的所有權(quán)限

revoke all on student.* from 'test'@'%';

以上就是一文帶你深入了解并掌握MySQL的DML和DCL的詳細(xì)內(nèi)容,更多關(guān)于MySQL的DML和DCL的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySQL中出現(xiàn)亂碼和表格不對(duì)齊的解決辦法

    MySQL中出現(xiàn)亂碼和表格不對(duì)齊的解決辦法

    這篇文章給大家介紹了MySQL中出現(xiàn)亂碼和表格不對(duì)齊的解決辦法,文中通過(guò)代碼和圖文講解的非常詳細(xì),對(duì)大家的解決MySQL中出現(xiàn)亂碼和表格不對(duì)齊有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解

    MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解

    這篇文章主要介紹了MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解,THREAD_CACHE是Mysql的連接池,table_cache指定表高速緩存的大小,需要的朋友可以參考下
    2014-07-07
  • MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié)

    MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié)

    這篇文章主要介紹了MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié),文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • MySQL?數(shù)據(jù)持久化過(guò)程講解

    MySQL?數(shù)據(jù)持久化過(guò)程講解

    這篇文章主要介紹了MySQL?數(shù)據(jù)持久化過(guò)程講解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,?需要的朋友可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-07-07
  • MySQL如何確定VARCHAR大小問(wèn)題

    MySQL如何確定VARCHAR大小問(wèn)題

    本文主要介紹了MySQL如何確定VARCHAR大小問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • MySQL order by性能優(yōu)化方法實(shí)例

    MySQL order by性能優(yōu)化方法實(shí)例

    這篇文章主要介紹了MySQL order by性能優(yōu)化方法實(shí)例,本文講解了MySQL中order by的原理和優(yōu)化order by的三種方法,需要的朋友可以參考下
    2015-05-05
  • MySQL執(zhí)行狀態(tài)的查看與分析

    MySQL執(zhí)行狀態(tài)的查看與分析

    今天小編就為大家分享一篇關(guān)于MySQL執(zhí)行狀態(tài)的查看與分析,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • mysql中如何使用正則表達(dá)式查詢

    mysql中如何使用正則表達(dá)式查詢

    這篇文章主要介紹了mysql中如何使用正則表達(dá)式查詢,需要的朋友可以參考下
    2014-06-06
  • MySQL對(duì)數(shù)據(jù)庫(kù)和表進(jìn)行DDL命令的操作代碼

    MySQL對(duì)數(shù)據(jù)庫(kù)和表進(jìn)行DDL命令的操作代碼

    DDL(Data?Definition?Language),是數(shù)據(jù)定義語(yǔ)言的縮寫,它是SQL(Structured?Query?Language)語(yǔ)言的一個(gè)子集,用于定義或修改數(shù)據(jù)庫(kù)的結(jié)構(gòu),本文給大家介紹了MySQL對(duì)數(shù)據(jù)庫(kù)和表進(jìn)行DDL命令的操作,需要的朋友可以參考下
    2024-07-07
  • MySQL常用命令與內(nèi)部組件及SQL優(yōu)化詳情

    MySQL常用命令與內(nèi)部組件及SQL優(yōu)化詳情

    這篇文章主要介紹了MySQL常用命令與內(nèi)部組件及SQL優(yōu)化詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07

最新評(píng)論