MySQL—— 基礎語法大全及操作演示(上)
- 一、MySQL概述
- 1.1 、數據庫相關概念
- 1.1.1 MySQL啟動和停止
- 1.2 、MySQL 客戶端連接
- 1.3 、數據模型
- 二、SQL
- 2.1、SQL通用語法
- 2.2、SQL分類
- 2.3、DDL
- 2.3.1 DDL — 數據庫操作
- 2.3.1 DDL — 表操作
- 2.4、DML
- 2.4.1 DML——添加數據
- 2.4.1 DML——修改數據
- 2.4.1 DML——刪除數據
- 2.5、DQL
- 2.5.1 基礎語法
- 2.5.2 基礎查詢
- 2.5.3 條件查詢
- 2.5.4 聚合函數
- 2.5.5 分組查詢
- 2.5.6 排序查詢
- 2.5.7 分頁查詢
- 2.5.8 執行順序
- 2.6、DCL
- 2.6.1 管理用戶
- 2.6.2 權限控制
一、MySQL概述
1.1 、數據庫相關概念
數據庫、數據庫管理系統、SQL:
目前主流的關系型數據庫管理系統的市場占有率排名如下:
Oracle
:大型的收費數據庫,Oracle公司產品,價格昂貴。MySQL
:開源免費的中小型數據庫,后來Sun公司收購了MySQL,而Oracle又收購了Sun公司。
目前Oracle推出了收費版本的 MySQL,也提供了免費的社區版本。SQL Server
:Microsoft 公司推出的收費的中型數據庫,C#、.net等語言常用。PostgreSQL
:開源免費的中小型數據庫。DB2
:IBM公司的大型收費數據庫產品。SQLLite
:嵌入式的微型數據庫。Android內置的數據庫采用的就是該數據庫。MariaDB
:開源免費的中小型數據庫。是MySQL數據庫的另外一個分支、另外一個衍生產品,與MySQL數據庫有很好的兼容性。
而不論我們使用的是上面的哪一個關系型數據庫,最終在操作時,都是使用 SQL
語言來進行統一操作,因為 SQL
語言,是操作關系型數據庫的 統一標準。所以即使我們現在學習的是MySQL
,假如我們以后到了公司,使用的是別的關系型數據庫,如:Oracle
、DB2
、SQLServer
,也完全不用擔心,因為操作的方式都是一致的。
我們在日常的開發中,會借助于MySQL的圖形化界面,來簡化開發,提高開發效率。而目前
mysql 主流的圖形化界面工具,有以下幾種:
我選擇最后一種 DataGrip
,這種圖形化界面工具,功能更加強大,界面提示更加友好。
MySQL下載,請參考其他教程!
圖形化界面工具 DataGrip 安裝 與 MySQL 連接。
1.1.1 MySQL啟動和停止
net start mysql80
net stop mysql80
1.2 、MySQL 客戶端連接
- 方式一:使用 MySQL 提供的客戶端命令行工具
- 方式二:使用系統自帶的命令行工具執行指令
mysql [-h 127.0.0.1] [-P 3306] -u root -p
參數:
-h
: MySQL服務所在的主機 IP-P
: MySQL服務端口號,默認3306-u
: MySQL數據庫用戶名-p
: MySQL數據厙用戶名對應的密碼
[]
內為可選參數,如果需要連接 遠程的 MySQL,需要加上這兩個參數來指定遠程主機IP、端口,如果連接本地的MySQL,則無需指定這兩個參數。
注意: 使用這種方式進行連接時,需要安裝完畢后配置
PATH環境變量
。
1.3 、數據模型
?? 1)、關系型數據庫(RDBMS
)
- 概念:建立在關系模型基礎上,由多張相互連接的 二維表 組成的數據庫。
- 而所謂 二維表,指的是由行和列組成的表,如下圖(就類似于Excel表格數據,有表頭、有列、有行,還可以通過一列關聯另外一個表格中的某一列數據)。
- 我們之前提到的
MySQL
、Oracle
、DB2
、SQLServer
這些都是屬于關系型數據庫,里面都是基于二維表存儲數據的。- 簡單說,基于二維表存儲數據的數據庫就成為 關系型數據庫,不是基于二維表存儲數據的數據庫,就是 非關系型數據庫。
特點:
- A. 使用表存儲數據,格式統一,便于維護。
- B. 使用 SQL語言操作,標準統一,使用方便。
?? 2)、數據模型
- MySQL是關系型數據庫,是基于 二維表 進行數據存儲的,具體的結構圖下:
- 我們可以通過MySQL客戶端連接 數據庫管理系統 DBMS,然后通過DBMS操作數據庫。
- 可以使用SQL語句,通過 數據庫管理系統 操作數據庫,以及操作數據庫中的表結構及數據。
- 一個數據庫服務器中可以創建多個數據庫,一個數據庫中也可以包含多張表,而一張表中又可以包
含多行記錄。
二、SQL
全稱 Structured Query Language
,結構化查詢語言。操作關系型數據庫的編程語言,定義了
一套操作關系型數據庫統一標準 。
2.1、SQL通用語法
在學習具體的SQL語句之前,先來了解一下SQL語言的同于語法。
- SQL語句可以 單行 或 多行 書寫,以 分號 結尾。
- SQL語句可以使用 空格/縮進 來增強語句的可讀性。
- MySQL數據庫的SQL語句 不區分大小寫 ,關鍵字建議使用大寫。
- 注釋:
- 單行注釋:
-- 注釋內容
或# 注釋內容
- 多行注釋:
/* 注釋內容 */
- 單行注釋:
2.2、SQL分類
SQL語句,根據其功能,主要分為四類:DDL
、DML
、DQL
、DCL
。
2.3、DDL
2.3.1 DDL — 數據庫操作
?? 1)、查詢所有數據庫
show databases ;
?? 2)、查詢當前數據庫
select database() ;
?? 3)、創建數據庫
create database [ if not exists ] 數據庫名 [ default charset 字符集 ] [ collate 排序規則 ] ;
[]
內的是可選項。- 字符集例如:
utf8mb4
;不建議使用utf8
, 其長度為3個字節,而utf8mb4
長度是4個字節。 - 在同一個數據庫服務器中,不能創建兩個名稱相同的數據庫,否則將會報錯。(可以通過
if not exists
參數來解決這個問題,數據庫不存在, 則創建該數據庫,如果存在,則不創建。)
舉個栗子:
create database if not exists rmzh default charset utf8mb4 ;
?? 4)、刪除數據庫
drop database [ if exists ] 數據庫名 ;
- 如果刪除一個不存在的數據庫,將會報錯。此時,可以加上參數
if exists
,如果數據庫存在,再執行刪除,否則不執行刪除。
?? 5)、切換數據庫
use 數據庫名 ;
- 我們要操作某一個數據庫下的表時,就需要通過該指令,切換到對應的數據庫下,否則是不能操作的。
比如,切換到rmzh
數據,執行如下SQL:
use rmzh ;
🚀🚀🚀 DDL數據庫操作 快速食用:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
# 1)、查詢所有數據庫
show databases ;
# 2)、查詢當前數據庫
select database() ;
# 3)、創建數據庫
create database [ if not exists ] 數據庫名 [ default charset 字符集 ] [ collate 排序規則 ] ;
# 4)、刪除數據庫
drop database [ if exists ] 數據庫名 ;
# 5)、切換數據庫
use 數據庫名 ;
2.3.1 DDL — 表操作
?? 1)、表操作-查詢創建
- 查詢當前數據庫所有表
show tables;
- 查看指定表結構
desc 表名 ;
通過這條指令,我們可以查看到指定表的字段,字段的類型、是否可以為
NULL
,是否存在默認值等信息。
- 查詢指定表的建表語句
show create table 表名 ;
通過這條指令,主要是用來
查看建表語句
的,而有部分參數我們在創建表的時候,并未指定也會查詢到,因為這部分是數據庫的默認值,如:存儲引擎、字符集等。
- 創建表結構
CREATE TABLE 表名(字段1 字段1類型 [COMMENT 字段1注釋 ],字段2 字段2類型 [COMMENT 字段2注釋 ],字段3 字段3類型 [COMMENT 字段3注釋 ],......字段n 字段n類型 [COMMENT 字段n注釋 ]
) [ COMMENT 表注釋 ] ;
注意:
[...]
內為可選參數,最后一個字段后面沒有逗號。
比如,我們創建一張表 tb_user
,對應的結構如下,那么建表語句為:
create table tb_user(id int comment '編號',name varchar(50) comment '姓名',age int comment '年齡',gender varchar(1) comment '性別'
) comment '用戶表';
?? 2)、表操作-數據類型
- 在上述的建表語句中,我們在指定字段的數據類型時,用到了
int
,varchar
,那么在MySQL中除了以上的數據類型,還有哪些常見的數據類型呢? 接下來,我們就來詳細介紹一下MySQL的數據類型。 - MySQL中的數據類型有很多,主要分為三類:
數值類型
、字符串類型
、日期時間類型
。
- 數值類型
# 如:
# 1). 年齡字段 -- 不會出現負數, 而且人的年齡不會太大
age tinyint unsigned
# 2). 分數 -- 總分100分, 最多出現一位小數
score double(4,1)
- 字符串類型
char
與varchar
都可以描述字符串:
char
是定長字符串,指定長度多長,就占用多少個字符(不足補0),和字段值的長度無關 。- 而
varchar
是變長字符串,指定的長度為最大占用長度 。相對來說,
char
的性能會更高些。
# 如:
# 1). 用戶名 username ------> 長度不定, 最長不會超過50
username varchar(50)
# 2). 性別 gender ---------> 存儲值, 不是男,就是女
gender char(1)
# 3). 手機號 phone --------> 固定長度為11
phone char(11)
- 日期時間類型
# 如:
#1). 生日字段 birthday
birthday date
#2). 創建時間 createtime
createtime datetime
?? 表操作-案例
設計一張員工信息表,要求如下:
- 編號(純數字)
- 員工工號 (字符串類型,長度不超過10位)
- 員工姓名(字符串類型,長度不超過10位)
- 性別(男/女,存儲一個漢字)
- 年齡(正常人年齡,不可能存儲負數)
- 身份證號(二代身份證號均為18位,身份證中有X這樣的字符)
- 入職時間(取值年月日即可)
對應的建表語句如下:
create table emp(id int comment '編號',workno varchar(10) comment '工號',name varchar(10) comment '姓名',gender char(1) comment '性別',age tinyint unsigned comment '年齡',idcard char(18) comment '身份證號',entrydate date comment '入職時間'
) comment '員工表';
?? 3)、表操作-修改
- 添加字段
alter table 表名 add 字段名 類型 (長度) [ comment 注釋 ] [ 約束 ];
- 修改
數據類型
alter table 表名 modify 字段名 新數據類型 (長度);
- 修改
字段名和字段類型
alter table 表名 change 舊字段名 新字段名 類型 (長度) [ comment 注釋 ]
- 刪除字段
alter table 表名 drop 字段名;
- 修改表名
alter table 表名 rename to 新表名;
?? 4)、表操作-刪除
- 刪除表
drop table [ if exists ] 表名;
可選項
IF EXISTS
代表,只有表名存在時才會刪除該表,表名不存在,則不執行刪除操作(如果不
加該參數項,刪除一張不存在的表,執行將會報錯)。
- 刪除指定表, 并重新創建表
truncate table 表名;
注意: 在刪除表的時候,表中的全部數據也都會被刪除。
🚀🚀🚀 DDL表操作 快速食用:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
# 1. 查詢當前數據庫所有表
show tables;
# 2. 查看指定表結構
desc 表名 ;
# 3. 查詢指定表的建表語句
show create table 表名 ;# 4. 創建表結構
create table 表名(字段1 字段1類型 [comment 字段1注釋 ],字段2 字段2類型 [comment 字段2注釋 ],字段3 字段3類型 [comment 字段3注釋 ],......字段n 字段n類型 [comment 字段n注釋 ]
) [ comment 表注釋 ] ;# 5. 添加字段
alter table 表名 add 字段名 類型 (長度) [ comment 注釋 ] [ 約束 ];
# 6. 修改數據類型
alter table 表名 modify 字段名 新數據類型 (長度);
# 7. 修改字段名和字段類型
alter table 表名 change 舊字段名 新字段名 類型 (長度) [ comment 注釋 ]
# 8. 刪除字段
alter table 表名 drop 字段名;
# 9. 修改表名
alter table 表名 rename to 新表名;# 10. 刪除表
drop table [ if exists ] 表名;
# 11. 刪除指定表, 并重新創建表
truncate table 表名;
2.4、DML
DML英文全稱是Data Manipulation Language
(數據操作語言),用來對數據庫中表的數據記錄進行 增
、刪
、改
操作。
- 添加數據(
INSERT
) - 修改數據(
UPDATE
) - 刪除數據(
DELETE
)
以下使用可視化工具DataGrip操作,沒有安裝的可以裝一下: DataGrip 安裝 與 MySQL 連接。
2.4.1 DML——添加數據
?? 1)、 給指定字段添加數據
insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...) ;
案例: 給 employee 表所有的字段添加數據 ;
insert employee(id, name, age, gender, workno, idcard, entrydate) values(1, 'rm', '18', '男', '1', '123456789012345678', '2023-01-01');
注意事項:
- 插入數據時,指定的字段順序需要與值得順序一 一對應。
- 字符串和日期型數據應該包含在引用中。
- 插入得數據大小,應該在字段的規定范圍內。
插入數據完成之后,我們有兩種方式,查詢數據庫的數據:
A、方式一
- 在左側的表名上雙擊,就可以查看這張表的數據。
B. 方式二
- 可以直接一條查詢數據的SQL語句, 語句如下:
select * from employee;
?? 2)、給全部字段添加數據
insert into 表名 values (值1, 值2, ...) ;
?? 3)、批量添加數據
insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;
insert into 表名 values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;
2.4.1 DML——修改數據
修改數據的具體語法為:
update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [ where 條件 ] ;
注意事項:
- 修改語句的條件可以有,也可以沒有,如果沒有條件,則會修改整張表的所有數據。
delete
語句不能刪除某一個字段的值(可以使用update
,將該字段值置為null
即
可)。- 當進行刪除全部數據操作時,
datagrip
會提示我們,詢問是否確認刪除,我們直接點擊
Execute
即可。
2.4.1 DML——刪除數據
刪除數據的具體語法為:
delete from 表名 [ where 條件 ] ;
🚀🚀🚀 DML數據操作 快速食用:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
# 1)、 給指定字段添加數據
insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...) ;
# 2)、給全部字段添加數據
insert into 表名 values (值1, 值2, ...) ;
# 3)、批量添加數據
insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;
insert into 表名 values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;# 修改數據的具體語法為:
update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [ where 條件 ] ;# 刪除數據的具體語法為:
delete from 表名 [ where 條件 ] ;
2.5、DQL
DQL
英文全稱是 Data Query Language
(數據查詢語言),數據查詢語言,用來查詢數據庫中表的記錄。
查詢關鍵字: SELECT
在一個正常的業務系統中,查詢操作的頻次是要遠高于增刪改的,當我們去訪問企業官網、電商網站,在這些網站中我們所看到的數據,實際都是需要從數據庫中查詢并展示的。而且在查詢的過程中,可能還會涉及到條件、排序、分頁等操作。
那么,本小節我們主要學習的就是如何進行數據的查詢操作。 我們先來完成如下數據準備工作:
drop table if exists employee;create table emp(id int comment '編號',workno varchar(10) comment '工號',name varchar(10) comment '姓名',gender char(1) comment '性別',age tinyint unsigned comment '年齡',idcard char(18) comment '身份證號',workaddress varchar(50) comment '工作地址',entrydate date comment '入職時間'
)comment '員工表';insert into emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
values (1, '00001', '柳巖666', '女', 20, '123456789012345678', '北京', '2020-01-01'),(2, '00002', '張無忌', '男', 18, '123456789012345670', '北京', '2021-09-01'),(3, '00003', '韋一笑', '男', 38, '123456789712345670', '上海', '2021-08-01'),(4, '00004', '趙敏', '女', 18, '123456757123845670', '北京', '2022-12-01'),(5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2022-07-01'),(6, '00006', '楊逍', '男', 28, '12345678931234567X', '北京', '2022-01-01'),(7, '00007', '范瑤', '男', 40, '123456789212345670', '北京', '2022-05-01'),(8, '00008', '黛綺絲', '女', 38, '123456157123645670', '天津', '2023-05-01'),(9, '00009', '范涼涼', '女', 45, '123156789012345678', '北京', '2023-04-01'),(10, '00010', '陳友諒', '男', 53, '123456789012345670', '上海', '2023-01-01'),(11, '00011', '張士誠', '男', 55, '123567897123465670', '江蘇', '2023-05-01'),(12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01'),(13, '00013', '張三豐', '男', 88, '123656789012345678', '江蘇', '2020-11-01'),(14, '00014', '滅絕', '女', 65, '123456719012345670', '西安', '2022-05-01'),(15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2023-04-01'),(16, '00016', '周芷若', '女', 18, null, '北京', '2022-06-01');
準備完畢后,我們就可以看到 emp
表中準備的16條數據。接下來,我們再來完成DQL語法的學習。
2.5.1 基礎語法
DQL 查詢語句,語法結構如下:
select字段列表
from表名列表
where條件列表
group by分組字段列表
having分組后條件列表
order by排序字段列表
limit分頁參數
在學習這部分的時候,會將上面的完整語法進行拆分,分為以下幾個部分:
- 基本查詢(
不帶任何條件
) - 條件查詢(
where
) - 聚合函數(
count、max、min、avg、sum
) - 分組查詢(
group by
) - 排序查詢(
order by
) - 分頁查詢(
limit
)
2.5.2 基礎查詢
在基本查詢的DQL語句中,不帶任何的查詢條件,查詢的語法如下:
?? 1). 查詢多個字段
select 字段1, 字段2, 字段3 ... from 表名 ;
select * from 表名 ;
注意 :
*
號代表查詢所有字段,在實際開發中盡量少用(不直觀、影響效率)。
?? 2). 字段設置別名
select 字段1 [ as 別名1 ] , 字段2 [ as 別名2 ] ... from 表名;
select 字段1 [ 別名1 ] , 字段2 [ 別名2 ] ... from 表名;
?? 3). 去除重復記錄
select distinct 字段列表 from 表名;
2.5.3 條件查詢
?? 1). 語法
select 字段列表 from 表名 where 條件列表 ;
?? 2). 條件
- 常用的比較運算符如下:
- 常用的邏輯運算符如下:
一般使用
and
,or
,not
。
2.5.4 聚合函數
?? 1). 介紹
- 將一列數據作為一個整體,進行 縱向計算。
?? 2). 常見的聚合函數
?? 3). 語法
select 聚合函數(字段列表) from 表名 ;
注意 :
NULL
值是不參與所有聚合函數運算的。
2.5.5 分組查詢
?? 1). 語法
select 字段列表 from 表名 [ where 條件 ] group by 分組字段名 [ having 分組后過濾條件 ];
?? 2). where
與 having
區別
- 執行時機不同:
where
是 分組之前 進行過濾,不滿足where
條件,不參與分組;而having
是 分組之后 對結果進行過濾。 - 判斷條件不同:
where
不能對 聚合函數 進行判斷,而having
可以。
注意事項:
- 分組之后,查詢的字段一般為 聚合函數 和 分組字段,查詢其他字段無任何意義。
- 執行順序:
where
>聚合函數
>having
。- 支持多字段分組, 具體語法為 :
group by columnA,columnB
2.5.6 排序查詢
排序在日常開發中是非常常見的一個操作,有 升序排序,也有 降序排序。
?? 1). 語法
select 字段列表 from 表名 order by 字段1 排序方式1 , 字段2 排序方式2 ;
?? 2).排序方式
ASC
: 升序(默認值
)DESC
: 降序
注意事項:
- 如果是升序, 可以不指定排序方式
ASC
;- 如果是多字段排序,當第一個字段值相同時,才會根據第二個字段進行排序 ;
2.5.7 分頁查詢
分頁操作在業務系統開發時,也是非常常見的一個功能,我們在網站中看到的各種各樣的分頁條,后臺都需要借助于數據庫的分頁操作。
?? 1). 語法
select 字段列表 from 表名 limit 起始索引, 查詢記錄數 ;
注意事項:
- 起始索引從
0
開始,起始索引
=(查詢頁碼 - 1)* 每頁顯示記錄數
。- 分頁查詢是數據庫的方言,不同的數據庫有不同的實現,MySQL中是
LIMIT
。- 如果查詢的是第一頁數據,起始索引可以省略,直接簡寫為
limit 10
。
2.5.8 執行順序
DQL語句在執行時是有執行順序的,也就是先執行那一部分,后執行那一部分:
🚀🚀🚀 DQL數據查詢操作 快速食用:
# **1、基本查詢**(`不帶任何條件`)
# 1.1). 查詢多個字段
select 字段1, 字段2, 字1 段3 ... from 表名 ;
select * from 表名 ;# 1.2). 字段設置別名
select 字段1 [ as 別名1 ] , 字段2 [ as 別名2 ] ... from 表名;
select 字段1 [ 別名1 ] , 字段2 [ 別名2 ] ... from 表名;# 1.3). 去除重復記錄
select distinct 字段列表 from 表名;# **2、條件查詢**(`where`)
select 字段列表 from 表名 where 條件列表 ;# **3、聚合函數**(`count、max、min、avg、sum`)
select 聚合函數(字段列表) from 表名 ;# **4、分組查詢**(`group by`)
select 字段列表 from 表名 [ where 條件 ] group by 分組字段名 [ having 分組后過濾條件 ];# **5、排序查詢**(`order by`)
select 字段列表 from 表名 order by 字段1 排序方式1(asc/desc) , 字段2 排序方式2(asc/desc) ;# **6、分頁查詢**(`limit`)
select 字段列表 from 表名 limit 起始索引, 查詢記錄數 ;
2.6、DCL
DCL英文全稱是 Data Control Language
(數據控制語言),用來管理數據庫用戶、控制數據庫的訪問權限。
2.6.1 管理用戶
?? 1). 查詢用戶
select * from mysql.user;
查詢的結果如下:
- 其中
Host
代表當前用戶訪問的主機, 如果為localhost
, 僅代表只能夠在當前本機訪問,是不可以遠程訪問的。 User
代表的是訪問該數據庫的用戶名。- 在MySQL中需要通過
Host
和User
來唯一標識一個用戶。
?? 2). 創建用戶
# 只能夠在當前主機localhost訪問
create user '用戶名'@'主機名' identified by '密碼';
# 可以在任意主機訪問該數據庫
create user '用戶名'@'%' identified by '密碼';
?? 3). 修改用戶密碼
alter user '用戶名'@'主機名' identified with mysql_native_password by '新密碼' ;
?? 4). 刪除用戶
drop user '用戶名'@'主機名' ;
注意事項:
- 在MySQL中需要通過
用戶名@主機名
的方式,來唯一標識一個用戶。- 主機名可以使用
%
通配。- 這類SQL開發人員操作的比較少,主要是
DBA
(Database Administrator
數據庫管理員)使用。
2.6.2 權限控制
MySQL中定義了很多種權限,但是常用的就以下幾種:
上述只是簡單羅列了常見的幾種權限描述,其他權限描述及含義,可以直接參考 官方文檔。
?? 1). 查詢權限
show grants for '用戶名'@'主機名' ;
?? 2). 授予權限
grant 權限列表 on 數據庫名.表名 to '用戶名'@'主機名';
?? 3). 撤銷權限
revoke 權限列表 on 數據庫名.表名 from '用戶名'@'主機名';
注意事項:
- 多個權限之間,使用逗號分隔;
- 授權時, 數據庫名和表名可以使用
*
進行通配,代表所有。
🚀🚀🚀 DCL數據控制操作 快速食用:
# 1、管理用戶
# 1.1). 查詢用戶
select * from mysql.user;# 1.2). 創建用戶
create user '用戶名'@'主機名' identified by '密碼';# 1.3). 修改用戶密碼
alter user '用戶名'@'主機名' identified with mysql_native_password by '新密碼' ;# 1.4). 刪除用戶
drop user '用戶名'@'主機名' ;# 2、權限控制
# 2.1). 查詢權限
show grants for '用戶名'@'主機名' ;# 2.2). 授予權限
grant 權限列表 on 數據庫名.表名 to '用戶名'@'主機名';# 2.3). 撤銷權限
revoke 權限列表 on 數據庫名.表名 from '用戶名'@'主機名';