MySQL— 基礎語法大全及操作演示!!!(上)

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,假如我們以后到了公司,使用的是別的關系型數據庫,如:OracleDB2SQLServer,也完全不用擔心,因為操作的方式都是一致的。

我們在日常的開發中,會借助于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表格數據,有表頭、有列、有行,還可以通過一列關聯另外一個表格中的某一列數據)。
  • 我們之前提到的 MySQLOracleDB2SQLServer 這些都是屬于關系型數據庫,里面都是基于二維表存儲數據的。
  • 簡單說,基于二維表存儲數據的數據庫就成為 關系型數據庫,不是基于二維表存儲數據的數據庫,就是 非關系型數據庫

在這里插入圖片描述
特點:

  • 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語句,根據其功能,主要分為四類:DDLDMLDQLDCL

在這里插入圖片描述

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)、表操作-查詢創建

  1. 查詢當前數據庫所有表
show tables;

在這里插入圖片描述

  1. 查看指定表結構
desc 表名 ;

通過這條指令,我們可以查看到指定表的字段,字段的類型、是否可以為 NULL,是否存在默認值等信息。

在這里插入圖片描述

  1. 查詢指定表的建表語句
show create table 表名 ;

通過這條指令,主要是用來 查看建表語句 的,而有部分參數我們在創建表的時候,并未指定也會查詢到,因為這部分是數據庫的默認值,如:存儲引擎、字符集等。

在這里插入圖片描述

  1. 創建表結構
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)、表操作-數據類型

  • 在上述的建表語句中,我們在指定字段的數據類型時,用到了 intvarchar,那么在MySQL中除了以上的數據類型,還有哪些常見的數據類型呢? 接下來,我們就來詳細介紹一下MySQL的數據類型。
  • MySQL中的數據類型有很多,主要分為三類:數值類型字符串類型日期時間類型
  1. 數值類型

在這里插入圖片描述
在這里插入圖片描述

# 如:
# 1). 年齡字段 -- 不會出現負數, 而且人的年齡不會太大
age tinyint unsigned
# 2). 分數 -- 總分100分, 最多出現一位小數
score double(4,1)
  1. 字符串類型

在這里插入圖片描述

charvarchar 都可以描述字符串:

  • char 是定長字符串,指定長度多長,就占用多少個字符(不足補0),和字段值的長度無關 。
  • varchar變長字符串,指定的長度為最大占用長度 。

相對來說,char的性能會更高些。

# 如:
# 1). 用戶名 username ------> 長度不定, 最長不會超過50
username varchar(50)
# 2). 性別 gender ---------> 存儲值, 不是男,就是女
gender char(1)
# 3). 手機號 phone --------> 固定長度為11
phone char(11)
  1. 日期時間類型

# 如:
#1). 生日字段 birthday
birthday date
#2). 創建時間 createtime
createtime datetime

?? 表操作-案例
設計一張員工信息表,要求如下:

  1. 編號(純數字)
  2. 員工工號 (字符串類型,長度不超過10位)
  3. 員工姓名(字符串類型,長度不超過10位)
  4. 性別(男/女,存儲一個漢字)
  5. 年齡(正常人年齡,不可能存儲負數)
  6. 身份證號(二代身份證號均為18位,身份證中有X這樣的字符)
  7. 入職時間(取值年月日即可)

對應的建表語句如下:

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)、表操作-修改

  1. 添加字段
alter table 表名 add 字段名 類型 (長度) [ comment 注釋 ] [ 約束 ];

在這里插入圖片描述

  1. 修改 數據類型
alter table  表名 modify 字段名 新數據類型 (長度);
  1. 修改 字段名和字段類型
alter table  表名 change 舊字段名 新字段名 類型 (長度) [ comment 注釋 ]

在這里插入圖片描述

  1. 刪除字段
alter table 表名 drop 字段名;

在這里插入圖片描述

  1. 修改表名
alter table 表名 rename to 新表名;

在這里插入圖片描述

?? 4)、表操作-刪除

  1. 刪除表
drop table [ if exists ] 表名;

可選項 IF EXISTS 代表,只有表名存在時才會刪除該表,表名不存在,則不執行刪除操作(如果不
加該參數項,刪除一張不存在的表,執行將會報錯)。

  1. 刪除指定表, 并重新創建表
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). wherehaving 區別

  • 執行時機不同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,13 ... 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中需要通過 HostUser 來唯一標識一個用戶。

?? 2). 創建用戶

# 只能夠在當前主機localhost訪問
create user '用戶名'@'主機名' identified by '密碼';
# 可以在任意主機訪問該數據庫
create user '用戶名'@'%' identified by '密碼';

在這里插入圖片描述

?? 3). 修改用戶密碼

alter user '用戶名'@'主機名' identified with mysql_native_password by '新密碼' ;

?? 4). 刪除用戶

drop user '用戶名'@'主機名' ;

在這里插入圖片描述

注意事項:

  • 在MySQL中需要通過 用戶名@主機名 的方式,來唯一標識一個用戶。
  • 主機名可以使用 % 通配。
  • 這類SQL開發人員操作的比較少,主要是 DBADatabase 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 '用戶名'@'主機名';

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40130.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40130.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40130.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

等保案例 5

用戶簡介 四川省人民代表大會常務委員會,作為省人民代表大會地常設機關,隨著政府部門信息化程度地提高,對信息系統地依賴程度越來越高,同時由于網絡安全形勢日益嚴峻、新型攻擊層出不窮,單位信息化所面臨地各種風險也…

途樂證券-寧德時代發力超充賽道,高壓快充概念強勢拉升,泰永長征漲停

高壓快充概念17日盤中強勢拉升,到發稿,泰永長征漲停,萬祥科技漲超9%,英可瑞漲逾8%,迦南智能漲超4%。 消息面上,8月16日,寧德時代舉行線下新品發布會,正式發布全球首款磷酸鐵鋰4C超充…

Spark第二課RDD的詳解

1.前言 RDD JAVA中的IO 1.小知識點穿插 1. 裝飾者設計模式 裝飾者設計模式:本身功能不變,擴展功能. 舉例: 數據流的讀取 一層一層的包裝,進而將功能進行進一步的擴展 2.sleep和wait的區別 本質區別是字體不一樣,sleep斜體,wait正常 斜體是靜態方法…

經過幾天的亂搞,已經搞出來第一次stm32點燈程序

看吧那個燈泡已經亮了 stm32跟51不同的地方是這里引腳一組16個,如PA0,PA1,PA2,,,,,,PA15 51一組8個 例如P00,P01,P02,,,,P07

全新重構,探尋 24 歲 QQ 大重構背后的思考

在瞬息萬變的互聯網行業中,年過二十四的 QQ 堪稱超長壽的產品,見證了中國互聯網崛起的完整歷程。然而,如今這個元老級產品經歷了一次從內到外徹底的重構。 在這次重構中,QQ 選擇了 Electron 作為 UI 跨平臺開發框架。盡管 Electron 被 Slack、Visual Studio Code 和 Disco…

[Go版]算法通關村第十一關青銅——理解位運算的規則

目錄 數字在計算機中的表示:機器數、真值對機器數進一步細化:原碼、反碼、補碼為何會有原碼、反碼和補碼為何計算機中的按位運算使用的是補碼?位運算規則與、或、異或和取反移位運算移位運算與乘除法的關系位運算常用技巧?? 操作某個位的數…

Unity用NPOI創建Exect表,保存數據,和修改刪除數據。以及打包后的坑——無法打開新創建的Exect表

先說坑花了一下午才找到解決方法解決, 在Unity編輯模式下點擊物體創建對應的表,獲取物體名字與在InputText填寫的注釋數據。然后保存。創建Exect表可以打開,打包PC后,點擊物體創建的表,打不開文件破損 解決方法&#…

大數據培訓前景怎么樣?企業需求量大嗎

大數據行業對大家來說并不陌生,大數據行業市場人才需求量大,越早入行越有優勢,發展機會和上升空間等大。不少人通過大數據培訓來提升自己的經驗和自身技術能力,以此來獲得更好的就業機會。 2023大數據培訓就業前景怎么樣呢?企業需…

ubuntu18 下更改 mysql 數據目錄

一、修改步驟 更改 MySQL 的數據目錄需要注意以下幾個步驟: 停止 MySQL 服務 在 Ubuntu 中,你可以使用以下命令停止 MySQL 服務: sudo systemctl stop mysql 復制現有數據 假設你的新的數據目錄是 /new/dir/mysql,你應該使用 rsy…

區間覆蓋 線段覆蓋 二分

4195. 線段覆蓋 - AcWing題庫 P2082 區間覆蓋&#xff08;加強版&#xff09; - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 做法&#xff1a; void solve() {int n; cin>>n;vector<array<LL,2>> seg(n);for(auto &t: seg) cin>>t[0]>>…

從視覺裝備到智能駕駛,天準科技能否打造第二增長極?

智能網聯汽車已經成為了上市公司跨界布局的熱門賽道。 天準科技是工業視覺智能裝備領域的龍頭企業&#xff0c;主要客戶包括蘋果、三星等企業。招股說明書顯示&#xff0c;2016年至2018年&#xff0c;天準科技來源于蘋果公司及其供應商的收入合計占比達到49.98%、67.99%及76.0…

Spark操作Hive表冪等性探索

前言 旁邊的實習生一邊敲著鍵盤一邊很不開心的說:做數據開發真麻煩,數據bug排查太繁瑣了,我今天數據跑的有問題,等我處理完問題重新跑了代碼,發現報表的數據很多重復,準備全部刪了重新跑。 我:你的數據操作具備冪等性嗎? 實習生:啥是冪等性?數倉中的表還要考慮冪等…

JVS開源基礎框架:平臺基本信息介紹

JVS是面向軟件開發團隊可以快速實現應用的基礎開發腳手架&#xff0c;主要定位于企業信息化通用底座&#xff0c;采用微服務分布式框架&#xff0c;提供豐富的基礎功能&#xff0c;集成眾多業務引擎&#xff0c;它靈活性強&#xff0c;界面化配置對開發者友好&#xff0c;底層容…

互聯網賬號被封禁解決辦法,以qq為例

百度搜索&#xff1a;互聯網信息服務投訴平臺 電腦端瀏覽器&#xff1a;打開 ts.isc.org.cn 推薦使用360極速瀏覽器 谷歌瀏覽器 提交完成后&#xff0c;將投訴碼保存&#xff0c;可以在“查詢評價”處用投訴碼查詢進度

windows安裝go,以及配置工作區,配置vscode開發環境

下載安裝go 我安裝在D:\go路徑下配置環境變量 添加GOROOT value為D:\go修改path 添加%GOROOT%\bin添加GOPATH value為%USERPROFILE%\go 其中GOPATH 是我們自己開發的工作區&#xff0c;其中包含三個folder bin,pkg,以及src&#xff0c;其中src為我們編寫代碼的位置 配置vscod…

Vue路由守衛

目錄 一、全局路由守衛二、獨享路由守衛三、組件內路由守衛 一、全局路由守衛 作用全局 router.beforeEach全局前置路由守衛—初始化的時候被調用、每次路由切換之前被調用router.afterEach全局后置路由守衛—初始化的時候被調用、每次路由切換之后被調用 配置 // 該文件專…

git使用規范

Git規范&#xff08;公司使用gitlab&#xff09; 版本規范 前端項目使用語義化版本進行發布: 版本格式&#xff1a;主版本號.次版本號.修訂號&#xff0c;版本號遞增規則如下&#xff1a; 主版本號&#xff1a;當你做了不兼容的 API 修改&#xff0c;次版本號&#xff1a;當…

uniapp 使用 uni push 2.0 推送消息

因為之前使用uni push 1.0&#xff0c;開通賬號和配置廠商就不寫了。只說一點&#xff0c;配置廠商很重要&#xff0c;不然收不到離線推送的消息。那么就直接開始咯&#xff01;&#xff01;&#xff01; 一、創建并關聯云服務空間 1.創建云服務空間&#xff0c;右鍵項目【創…

Java進階(3)——手動實現ArrayList 源碼的初步理解分析 數組插入數據和刪除數據的問題

目錄 引出手動實現ArrayList定義接口MyList<T>寫ArrayList的實現類增加元素刪除元素 寫測試類進行測試數組插入數據? 總結 引出 1.ArrayList的結構分析&#xff0c;可迭代接口&#xff0c;是List的實現&#xff1b; 2.數組增加元素和刪除元素的分析&#xff0c;何時擴容…

利用HTTP代理實現請求路由

嘿&#xff0c;大家好&#xff01;作為一名專業的爬蟲程序員&#xff0c;我知道構建一個高效的分布式爬蟲系統是一個相當復雜的任務。在這個過程中&#xff0c;實現請求的路由是非常關鍵的。今天&#xff0c;我將和大家分享一些關于如何利用HTTP代理實現請求路由的實用技巧&…