91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL常用語句

發布時間:2020-06-07 19:42:07 來源:網絡 閱讀:744 作者:ZYJTF_Zhang 欄目:MySQL數據庫

????? Hi,大家好,今天我給大家帶來的是“MariaDB(MySQL)常用語句的使用


????? 說明

????????????? 1MySQL語句不區分字符大小寫,在Unix或類Unix(Linux)系統下“參數”區分字符大小寫

????????????? 2、多數MySQL語句以";"結尾;如果結尾處不寫";"MySQL會等待輸入下一條語句,直到結尾有";"為止

????????????? 3、一行需要執行多條語句用";"進行分隔

?????????? 本篇內容以Linux系統為例;本文中的[ 符號里邊的內容為可選內容,既可有可無的 ]{ 符號里的內容為必須給出的內容 }| 符號為或者之意;語句之前的符號# Linux系統的命令提示符(需在系統下執行的)、符號> MySQL數據庫提示符(需在MySQL數據庫中執行的);字體顏色為紅色的是需要注意的地方(可能會出現誤操作的地方)

?

溫馨提示:使用電腦閱讀效果更佳

?

MariaDB(MySQL)語句分類

????? 服務端命令:通過mysql連接發往服務器執行并取回結果(SQL語句)

????????????? DDL(Data Defined Language)要用于管理數據庫組件,例如表、索引、視圖、用戶、存儲過程

???????????????????? CREATE DATABASE, ALTER DATABASE, DROP DATABASE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, DROP INDEX, CREATE USER, DROP USER, SELECT

????? ????? DML(Data Manipulation Language)數據操縱語言,主要用管理表中的數據,實現數據的增、刪、改、查

???????????????????? INSERT, DELETE, UPDATE, SELECT

????????????? DCL:權限管理

???????????????????? GRANT, REVOKE

????? 客戶端命令:本地執行

以下語句有兩種表示方式(clear,\c),語句結尾處不用加; 但加了也不會出錯

語句

說明

? (\?)

獲取命令幫助

clear (\c)

清除當前的輸入語句

connect (\r)

重新連接MySQL

delimiter (\d)

設置語句分隔符,默認為分號;

ego (\G)

語句結束標記,結果以垂直方式顯示

exit (\q)

退出MySQL

go (\g)

語句結束標記

help (\h)

顯示此幫助

prompt (\R)

更改MySQL提示符

quit (\q)

退出MySQL

source (\.)

裝載并運行SQL腳本,腳本存放的位置"MySQL"用戶需要有權限讀取

status (\s)

獲取MySQL狀態信息

system (\!)

執行shell命令

use (\u)

設定哪個庫為默認數據庫

?

???? 一、登錄/退出MySQL

?????????? 登錄

???????????????? 登錄本地數據庫

?????? ???????????????? 匿名登錄

?????????????????????????????????? # mysql [數據庫名稱]

?????????????????????????????????? # mysql -p [數據庫名稱]

???????????????????? ????? 指定用戶登錄

?????????????????????????????????? # mysql -u 用戶名 -p [數據庫名稱]

?????????????????????????????????? # mysql -u 用戶名 –p用戶的密碼 [數據庫名稱]

?????? ?????????? 遠程登錄數據庫

??????????????????????????? # mysql -h 主機 -u 用戶名 -p用戶的密碼 [數據庫名稱]

???????????????? 注意:在登錄時可指定數據庫"[DATABASE_NAME]"

?????????? 退出

???????????????????? > exit

???????????????????? > quit

???????????????????? > \q

???????????????????? Ctrl+C

MySQL常用語句

???? 二、選擇/切換數據庫:在數據庫中執行的操作都要先選擇數據庫

????????????? > USE 數據庫名稱;

MySQL常用語句

?

???? 三、數據庫管理

?????????? 創建

???????????????? 創建一個新的數據庫

??????????????????????????? > CREATE {DATABASE | SCHEMA} 數據庫名稱;

???????????????? 創建一個新的數據庫,如果數據庫不存在,則創建

??????????????????????????? > CREATE DATABASE IF NOT EXISTS 數據庫名稱;

????????????????????? 注意:數據庫名稱在創建時定義,后期不可更改

MySQL常用語句

?????????? 修改

???????????????? 修改指定數據庫的默認字符集

??????????????????????????? > ALTER DATABASE 數據庫名稱 CHARACTER SET '字符集名稱';

?????????? 查詢

?????? ?????????? 查看當前設備上已有的數據庫

??????????????????????????? > SHOW DATABASES;

???????????????????? 查看以指定字符開頭的數據庫

??????????????????????????? > SHOW DATABASES LIKE 'name%';

???????????????????? 查看以指定字符結尾的數據庫

??????????????????????????? > SHOW DATABASES LIKE '%name';


MySQL常用語句

???????????????????? 查看數據庫所支持的引擎

??????????????????????????? > SHOW ENGINES;

????????????? ????? 查看所支持的字符集

??????????????????????????? > SHOW CHARACTER SET;

????????????????????? 常見字符集

?????????????????????????????????? big5:繁體中文

?????????????????????????????????? gb2312:簡體中文

?????????????????????????????????? utf8:統一的字符編碼標準

????????????? ????? 查看字符集的排序方式

??????????????????????????? > SHOW COLLATION;

???????????????????? 看當前數據庫的版本號和當前日期

??????????????????????????? > SELECT VERSION(), CURRENT_DATE;

?????????? 刪除

????????????? ????? 刪除數據庫:刪庫需小心(MySQL沒有回收站)

??????????????????????????? > DROP {DATABASE | SCHEMA} 數據庫名稱;

??????????????????????????? > DROP {DATABASE | SCHEMA} [IF EXISTS] 數據庫名稱;

MySQL常用語句

???????????????????? 建議把不用的數據庫移動到其他位置,而不是刪除

??????????????????????????? # mv /var/lib/mysql/DATABASE_NAME??/PATH/TO/DIRECTORY_NAME

MySQL常用語句

MySQL常用語句

?

???? 四、數據表管理

?????????? 創建

????????????? ????? 在數據庫內創建數據表

??????????????????????????? > USE 數據庫名稱;

??????????????????????????? > CREATE TABLE 數據表名稱 (字段1 數據類型 修飾符,字段2 數據類型 修飾符,字段3 數據類型 修飾符 ...) [table_option];

? ? ? ? ? ? ????????MySQL數據類型參考:點我查看

?????? ???????????????? 在創建數據表時還可以定義以下內容:

? ? ? ? ? ? ? ? ? ? ? ? ? ??定義鍵

????????????????????????????????????????? 主鍵:PRIMARY KEY (字段1, 字段2, ...)

????????????????????????????????????????? 唯一鍵:UNIQUE KEY? (字段1, 字段2,...)

????????????????????????????????????????? 外鍵:FOREIGN KEY (column)

??????????????????????????? 定義索引

????????????????????????????????????????? KEY|INDEX [索引名稱] (字段1, 字段2,...)

MySQL常用語句

> CREATE TABLE server ( IDC_ROOM VARCHAR(3) NOT NULL,RACK_SLOT VARCHAR(10)NOT NULL ,SN VARCHAR(30) PRIMARY KEY,HOSTNAME VARCHAR(16) NOT NULL,MACHINE_TYPE VARCHAR(10) NOT NULL ) ;

???????????????????? ????? table_option:

??????????????????????????? ? | ENGINE [=] engine_name 【定義存儲引擎】

??????????????????????????? ? | AUTO_INCREMENT [=] value 【設置默認自動增長數據從數字幾開始算,默認為1

??????????????????????????? ? | [DEFAULT] CHARACTER SET [=] charset_name 【定義字符集,如不定義則從數據庫繼承】

??????????????????????????? ? | [DEFAULT] COLLATE [=] collation_name 【定義排序規則】

??????????????????????????? ? | COMMENT [=] 'string' 【定義數據表的注釋信息】

??????????????????????????? ? | MAX_ROWS [=] value 【定義最大行數】

??????????????????????????? ? | MIN_ROWS [=] value 【定義最小行數】

??????????????????????????? ? | PASSWORD [=] 'string' 【加密】

?????????????????????????? ? | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT} 【定義行格式】

??????????????????????????? ? ?????????? DEFAULT:默認格式

??????????????????????????? ? ?????????? DYNAMIC:動態格式

??????????????????????????? ? ?????????? FIXED:固定長度

??????????????????????????? ? ?????????? COMPRESSED:壓縮存儲

??????????????????????????? ? ?????????? REDUNDANT:冗余存儲

??????????????????????????? ? ?????????? COMPACT:緊致存儲

?

???????????????????? ????? 鍵類型可以在字段中指明

?????????????????????????????????? > CREATE TABLE 數據表名稱 (ID TINYINT NOT NULL AUTO_INCREMENT UNIQUE KEY,NAME VARCHAR(20) NOT NULL UNIQUE KEY);


????????????? ?????????? 也可以單獨指明:把多個字段聯合起來定義(多字段索引)

?????????????????????????????????? > CREATE TABLE 數據表名稱 (ID TINYINT NOT NULL AUTO_INCREMENT ,NAME VARCHAR(20) NOT NULL,UNIQUE KEY(ID,NAME));

???????????????????? ??????????????????????注意:創建數據表的時候,表名不可使用"table"作為其名稱


?????? ?????????? 在指定數據庫中創建數據表

??????????????????????????? > CREATE TABLE 數據庫名稱.數據表名稱 (字段1 數據類型 修飾符,字段2 數據類型 修飾符,字段3 數據類型 修飾符 ...) [table_option];


?????????? 插入

?????? ?????????? 向數據表中插入數據

? ? ????????????????????一次插入一行

?????????????????????????????????? > INSERT INTO [數據庫名稱.]數據表名稱(字段1,字段2,字段3 ...)

?????? ???????????????? 一次插入多行

?????????????????????????????????? > INSERT INTO [數據庫名稱.]數據表名稱(字段1,字段2,字段3 ...) {VALUES | VALUE} (DATE1: '字段1的值','字段2的值',字段3的值' ...),(DATE2: '字段1的值','字段2的值','字段3的值' ...) ...;

注意

?????????????????????????????????? (1) 使用INSERT語句,可以一次插入一行,也可以一次插入多行"(line1_data),(line2_data)..."

?????????????????????????????????? (2) 如果想用INSERT語句插入空值時,可以直接用NULL

????????????????????

???????????????????? 替換表中已有數據:如果沒有數據,則插入;如果已有數據,則替換(支持單行插入、多行插入、給定字段插入或全字段插入)

??????????????????????????? > REPLACE [INTO] 數據表名稱(字段1,字段2,字段3 ...) VALUES ('字段1的值','字段2的值','字段3的值','字段4的值','字段5的值','字段6的值')[,(line2_data)...];


???????????????? 從文件中讀取數據并插入到表中:一個空表,填充它的一個簡易方法是創建一個文本文件,每條信息各一行,然后用一個語句將文件的內容裝載到表中

??????????????????????????? > LOAD DATA LOCAL INFILE '/PATH/TO/ FILE_NAME' INTO TABLE [數據庫名稱.]數據表名稱;

????????????????????? 注意:如果需要填充空值時,使用\N(反斜線+字母N)表示

???????????????? ????? 我演示的是從文件中導入到數據庫,表中的敏感數據我已修改

MySQL常用語句

???????????????? EXCEL表格中插入數據:點我查看

?????????? 修改

?????? ?????????? 修改數據表的名稱

??????????????????????????? > RENAME TABLE [數據庫名稱.]數據表名稱 TO 數據庫名稱.新表名稱 ;

??????????????????????????? > ALTER TABLE [數據庫名稱.]數據表名稱 RENAME TO 數據庫名稱.新表名稱;

MySQL常用語句

???????????????? 修改注釋信息

??????????????????????????? > ALTER TABLE [數據庫名稱.]數據表名稱 COMMENT = '注釋信息';

MySQL常用語句

???????????????????? 給表中添加一個新字段

??????????????????????????? > ALTER TABLE 數據表名稱 ADD 新字段名 數據類型 修飾符 [FIRST | AFTER 字段名];

?????????????????????????????????? 指明字段位置

????????????????????????????????????????? FIRST:添加到第一字段

????????????????????????????????????????? AFTER:添加到哪個字段后面

????????????????????????????????????????? 如果不指定字段位置,則放在最后

MySQL常用語句

???????????????? 修改字段名稱(CHANGE)

??????????????????????????? > ALTER TABLE 數據表名稱 CHANGE 原名稱 新名稱 原有屬性信息(數據類型、修飾符...;

???????????????? 修改/更新指定字段

??????????????????????????? > UPDATE [LOW_PRIORITY] [IGNORE] [數據庫名稱.]數據表名稱 SET 字段1=字段1的值[,字段2=字段2的值] ... WHERE where_condition [ORDER BY ...] [LIMIT row_count]

MySQL常用語句

????????????? ?????????? 注意:用UPDATE修改行時必須使用WHERE子句指明條件(盡量指主鍵),否則將修改所有

?????????? 查詢

????????????? ????? 查詢當前數據庫中的數據表

??????????????????????????? > USE 數據庫名稱;

??????????????????????????? > SHOW TABLES;

????????????? ????? 查詢指定庫中的數據表

??????????????????????????? > SHOW TABLES IN 數據庫名稱;

??????????????????????????? > SHOW TABLES FROM 數據庫名稱;

???????????????????? 查看數據表的詳細信息

??????????????????????????? > DESCRIBE [數據庫名稱.]數據表名稱;

??????????????????????????? > DESC [數據庫名稱.]數據表名稱;

MySQL常用語句

????????????? ????? 查看數據表的狀態信息

??????????????????????????? > SHOW TABLE STATUS [LIKE '數據表名稱'];

?????? ?????????? 查看數據表的狀態信息(垂直顯示)

??????????????????????????? > SHOW TABLE STATUS [LIKE '數據表名稱']\G;

??????????????????????????? ????????????? 輸出內容說明

MySQL常用語句

?????? ?????????? ?查看創建命令

???????????????????? ????? > SHOW CREATE TABLE [數據庫名稱.]數據表名稱;

MySQL常用語句

???????????????? 顯示以指定字符開頭的表的狀態

??????????????????????????? > SHOW TABLE STATUS WHERE Name LIKE '數據表名稱%'\G;

???????????????? 顯示指定時間創建的表

??????????????????????????? > SHOW TABLE STATUS WHERE Create_time LIKE '時間%'\G;

MySQL常用語句

?????????? SELECT語句:用來從數據表中檢索信息

??????????????????????????? > SELECT SELECT_EXPR FROM [數據庫名稱.]數據表名稱1,[數據表名稱2 ...] [WHERE where_condition];

SELECT語句的子句的執行過程

MySQL常用語句

???????????????????? ????? SELECT_EXPR

?????????????????????????????????? *:所有字段(所有行,所有列)

?????????????????????????????????? ALL

?????????????????????????????????? 字段1,字段2,字段3:投影;只顯示指定字段

?????????????????????????????????? DISTINCT:相同的數據,只顯示一次

?????????????????????????????????? field AS field_alias:給field取個別名field_alias

?

??????????????????????????? 只查看表中不同的數據

?????????????????????????????????? > SELECT DISTINCT FROM [數據庫名稱.]?數據表1,[數據表2 ...];

???????????????????? ????? 查看指定表中所有字段(慎用)

?????????????????????????????????? > SELECT * FROM [數據庫名稱.]數據表名稱1,[數據表2 ...];

MySQL常用語句

??????????????????????????? 查看指定表中的指定列(如果表太大則不適合執行)

?????????????????????????????????? > SELECT 字段1,字段2,字段3 ... FROM [數據庫名稱.]數據表名稱;

????????????????????? 定義顯示的字段別名

?????????????????????????????????? > SELECT 字段 AS 字段別名 FROM [數據庫名稱.]數據表名稱;

MySQL常用語句

MySQL常用語句

???????????????????? ????? FROM子句:指定要查詢的關系

?????????????????????????????????? 單表查詢(簡單查詢):后面跟一個表名

?????????????????????????????????? 多表查詢:后面跟多個表名

?????????????????????????????????? 子查詢:后面跟WHERE子句

?

??????????????????????????? WHERE子句:選擇、指明條件;只輸出符合條件的行(重要)

?????????????????????????????????? > SELECT 字段1,字段2,字段3 ... FROM [數據庫名稱.]數據表名稱 WHERE where_condition;

?????????????????????????????????? ????? where_condition

??????????????????????????? ???????????????? 操作符

BETWEEN x AND y

xy范圍之間的值

IS NULL

空值

IS NOT NULL

非空值

IN (LIST)

使用列表給出的值;用于離散取值

MySQL常用語句

MySQL常用語句

????????????????????????????????????????? ????? 算數運算

+

-

*

/

%

取模

????????????????????????????????????????? ????? 比較表達式

>?

大于

<?

小于

>=

大于等于

<=

小于等于

=

等于

!= <>

不等于

<=>

空值比較

MySQL常用語句

???????????????????? ????????????????????? 組合條件(邏輯運算)

AND (&&)

與;并且關系,既兩個條件同時滿足

OR (||)

或;或者關系,既兩個條件滿足一個

NOT (!)

非;條件不滿足即為真

???????????????????????????????????????????????? ?????????? 注意:ANDOR可以混用,但ANDOR具有更高的優先級。如果你使用兩個操作符,使用圓括號指明如何對條件進行分組是一個好主意( NOT xxx AND NOT xxx AND NOT xxx 等于NOT ( xxx OR xxx OR xxx ) )

MySQL常用語句

?????????????????????????????????????? 字符串比較

???????????????????????????????????????????? 通配符

?????????????????????????????????????????????????????????????? LIKE '模式':支持使用“通配符”做模糊匹配

????????????????????????????????????????????????????????????????????? %:任意長度的任意字符

????????????????????????????????????????????????????????????????????? _:任意單個字符

MySQL常用語句

???????????????????????????????????????????? 正則表達式

?????????????????????????????????????????????????????????????? {RLIKE | REGEXP} '模式':基基于正則表達式做模式匹配;不用索引、效率低

?????????????????????????????????????????????????????????????? 正則表達式元字符:點我查看

????????????????????? 排序(ORDER BY):將查詢到的結果排序顯示;如果表太大,排序操作極其消耗資源

????????????????????? ?????? > ORDER BY 字段名稱 {ASC | DESC}

??????????????????????????? 升序:默認(ASC)

????????????????????????????????????????? ?> SELECT 字段1,字段2,字段3 ... FROM [數據庫名稱.]數據表名稱 ORDER BY?字段名稱?ASC;

??????????????????????????? 降序(DESC)

????????????????????????????????????????? ?> SELECT 字段1,字段2,字段3 ... FROM [數據庫名稱.]數據表名稱 ORDER BY 字段名稱?DESC;

MySQL常用語句

?????????????????????????????????? 注意:默認是區分字符大小寫的,如不想區分字符大小寫則執行“ORDER BY BINARY 字段名稱

????????????????????? LIMIT子句

?????????????????????????????????? LIMIT [offset,]count

?????????????????????????????????? LIMIT #:只顯示前#行的內容

?????????????????????????????????? LIMIT x,y:忽略x行,顯示y行后的行

???????????????????? ???????????????????? x:偏移量

????????????????????????????????????????? y:偏移后取幾個值予以顯示

?????? ????????????????????? 注意:在MySQL中字符串必須加引號,而數值一定不能加引號

????????????????????? 聚合計算

?????????????????????????????????? > SELECT 聚合計算函數 FROM [數據庫名稱.]數據表名稱;

?????????????????????????????????? 聚合計算函數

????????????????????????????????????????? AVG(字段名稱):求平均值

????????????????????????????????????????? MAX(字段名稱):求最大值

????????????????????????????????????????? MIN(字段名稱):求最小值

????????????????????????????????????????? SUM(字段名稱):求合

????????????????????????????????????????? COUNT(字段名稱):求個數之和

MySQL常用語句

????????????????????? 分組(GROUP BY):分組主要目的是為了做聚合計算

?????????????????????????????????? > SELECT * FROM [數據庫名稱.]數據表名稱 GROUP BY '字段名';

?????????????????????????????????? 對分組進行過濾

????????????????????????????????????????? > HAVING conditions;

?????????? 復制

????????????? ????? 復制表結構

??????????????????????????? > CREATE TABLE 數據表名稱 LIKE?原數據庫.原數據表;

???????????????? 復制表中的幾個字段并將其創建成一個新表(不會復制其屬性)

??????????????????????????? > CREATE TABLE 數據表名稱 SELECT 字段1,字段2,字段3 ... FROM 原數據庫.原數據表;

?????????? 刪除???

???????????????? 刪除表:刪表需小心(MySQL沒有回收站)

??????????????????????????? > DROP TABLE [IF EXISTS] [數據庫名稱.]數據表名稱;

???????????????? 刪除表中的行(DELETE)

??????????????????????????? > DELETE FROM [數據庫名稱.]數據表名稱 [WHERE where_condition];

??????????????????????????? > DELETE FROM 數據表名稱 [ORDER BY ...] [LIMIT row_count]

MySQL常用語句

???????????????????? ????? 注意:用DELETE刪除行時必須使用WHERE子句,否則將清空整張表(DELETE FROM table_name)

???????????????? 先排序后刪除

??????????????????????????? > DELETE FROM [數據庫名稱.]數據表名稱 [WHERE where_condition] [ORDER BY '字段名' [DESC]]

???????????????? 刪除字段(列)

??????????????????????????? > ALTER TABLE 數據表名稱 DROP 字段名稱;

???????????????? 清空整張數據表

??????????????????????????? > TRUNCATE [數據庫名稱.]數據表名稱;

?

???? 五、索引管理

?????? ????? 創建

???????????????????? 創建索引

??????????????????????????? > CREATE {INDEX | INDEXES} 索引名稱 ON [數據庫名稱.]數據表名稱(字段1,字段2,字段3 ...);

MySQL常用語句

???????????????? 創建多列索引

??????????????????????????? > CREATE UNIQUE {INDEX | INDEXES} 索引名稱 ON [數據庫名稱.]數據表名稱;??????

???????????????????? 給表中指定的字段加入索引

??????????????????????????? > ALTER TABLE [數據庫名稱.]數據表名稱?ADD INDEX(‘字段名稱’);

?????? ????? 查詢

???????????????? 查看表中索引

??????????????????????????? > SHOW {INDEX | INDEXES} FROM [數據庫名稱.]數據表名稱;

MySQL常用語句

??? ????? 刪除:索引不用時,要立即刪除

?????? ?????????? 刪除索引:這可能會導致查詢操作降低

??????????????????????????? > DROP {INDEX | INDEXES} 索引名稱 ON [數據庫名稱.]數據表名稱;

MySQL常用語句

?????????? 注意:INDEX為一個索引,INDEXES為多個索引

?

???? 六、鍵管理

?????????? 創建

???????????????? (1) 在數據表創建的時候定義主鍵

???????????????? (2) 給已有的表中指定的字段加入主鍵

??????????????????????????? ALTER TABLE [數據庫名稱.]數據表名稱 ADD {PRIMARY KEY | UNIQUE KEY}(‘字段名稱’);

?????????? 修改

?????? ????????????? 先刪除鍵,再添加鍵

?????????? 查詢

????? ????????????? 查詢主鍵

???????????????? ?????? > SHOW KEYS FROM [數據庫名稱.]數據表名稱 WHERE key_name='PRIMARY';

?????????? 刪除

???????????????????? 刪除鍵:不是自增長的才可以刪除,如果是自增長(有auto_increment屬性)必須先將表中其他屬性刪除

??????????????????????????? > ALTER TABLE [數據庫名稱.]數據表名稱 DROP {PRIMARY KEY | UNIQUE KEY};

?

???? 七、用戶管理

?????????? MySQL用戶和操作系統中的用戶不同;不能用MySQL用戶登錄操作系統,同樣也不能用操作系統用戶訪問MySQL

?????????? 用戶是公開的,大家都可以看到;而密碼只有某個授權使用用戶才能獲取

?????????? MySQL使用自己獨有的加密機制password()函數加密用戶密碼

?????????? MySQL默認管理員是root,和操作系統管理員名稱一致

?????????? MySQL用戶由'用戶名'@'主機'共同組成

????????????? ?????? MySQL用戶名:不能超過16個字符

???????????????? 主機

???????????????????? ????? 主機名:zhangdaifu

??????????????????????????? IP地址:10.0.0.1

???????????????????? ????? 網絡地址:10.0.0.1/255.0.0.0

?????????????????????????????????? 支持使用通配符表示:10.%.%._/255.0.0.0

????????????????????????????????????????? 如需表示通配符本身的含義則需要進行轉義\

?????????? 創建

?????? ?????????? 創建用戶帳號

??????????????????????????? > CREATE USER '用戶名'@'主機';

????????????? ????? 創建用戶賬號并設置其密碼

??????????????????????????? > CREATE USER '用戶名'@'主機' IDENTIFIED BY '密碼';

?

?????????? 修改

?????? ?????????? 修改用戶名

??????????????????????????? > UPDATE mysql.user SET USER='新用戶名稱' WHERE User='用戶名';

????????????? 查詢:MySQL用戶在mysql.user表中保存

???????????????? 查看所有用戶信息

??????????????????????????? > SELECT User,Host[, ...] FROM mysql.user;

???????????????? 查看指定用戶信息

??????????????????????????? > SELECT User,Host[, ...] FROM mysql.user WHERE User='用戶名';

?????????? 刪除

????????????? ????? 刪除用戶帳號

??????????????????????????? > DROP USER '用戶名'[@'主機' [, 用戶名@主機] ...] ;

?

???? 八、密碼管理

?????????? 創建

????????????? ????? 給用戶配置密碼

??????????????????????????? 為當前登錄用戶配置密碼

?????????????????????????????????? > SET PASSWORD = PASSWORD("用戶的密碼");

?????????? 修改

????????????? ????? 通過命令行修改

??????????????????????????? # mysqladmin -u'用戶名' -p'老密碼' password '新密碼'

???????????????????? 使用UPDATE直接編輯user?

??????????????????????????? > UPDATE mysql.user SET PASSWORD=用戶的密碼 WHERE User='用戶名';

??????????????????????????? 刷新權限:flush privileges;

?????? ?????????? 通過SET PASSWORD語句修改

??????????????????????????? > SET PASSWORD FOR 用戶名=PASSWORD('用戶的密碼');

???????????????????? 參考:https://blog.csdn.net/qq_33285112/article/details/78982766

?????????? 查詢

???????????????????? > SELECT User,Password FROM mysql.user WHERE User='用戶名';

?????????? 刪除???

????????????? ????? 清除指定用戶密碼

??????????????????????????? > UPDATE mysql.user SET PASSWORD='' WHERE User='用戶名'

?

???? 九、權限管理

?????????? MySQL使用帳號的目的是為了“認證”

?????????? MySQL用戶信息存儲在以下表中

user

存儲了用戶的賬號、全局權限及其他非權限字段

db

數據庫級別的權限、庫級別的權限

host

已被廢棄,已被整合進user

tables_priv

表級別的權限

columns_priv

列(字段)級別的權限

procs_priv

存儲過程和存儲函數相關的權限

proxies_priv

代理用戶權限

???????????????????? MySQL服務器在啟動時會讀取這6張表,并在內存中生成“授權表”

?????????? 授權

???????????????????? 權限級別:管理權限、數據庫、數據表、字段、存儲例程

??????????????????????????? > GRANT permissions_type,... ON [object_type] { [數據庫名稱.]數據表名稱 | function_name | procedure_name } TO 'user_name'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];

??????????????????????????? > flush privileges

?????????????????????????????????? 權限類型

????????????????????????????????????????? ALL:所有權限;不安全

??????????????????????????? database_name.table_name

?????????????????????????????????? ????? *.*:所有庫的所有表

??????????????????????????? ??????????數據庫.*:指定庫的所有表

?????? ??????????????????????????? 數據庫.數據表:指定庫的指定表

????????????? ????????????? ?????????? 數據庫.routine_name:指定庫上的存儲過程或存儲函數

?????????????????????????????????? [object_type]

???????????????????? ???????????????? TABLE給數據表授權;默認

????????????????????????????????? FUNCTION給存儲函數授權

???????????????????? ???????????????? PROCEDURE給存儲過程授權

??????????????????????????? ????? [WITH GRANT OPTION]將自己所擁有的權限轉權一個副本給其他用戶

?

?????????? 查詢

???????????????????? 查看當前用戶所擁有的權限

??????????????????????????? > SHOW GRANTS;

???????????????????? 查看指定用戶所擁有的權限

??????????????????????????? > SHOW GRANTS FOR '用戶名'@'權限類型';

?????????? 刪除

???????????????????? 回收授權

??????????????????????????? > REVOKE 權限類型[, ...] ON ?[數據庫名稱.]數據表名稱 FROM '用戶名'@'主機';

?????????? 注意:MariaDB服務進程啟動時,會讀取mysql庫的所有授權表至內存中

????????????? ?????? (1) GRANTREVOKE命令等執行的權限操作會保存于表中,MariaDB此時一般會自動重讀授權表,權限修改會立即生效

???????????????????? (2) 其它方式實現的權限修改,要想生效,必須手動運行FLUSH PRIVILEGES命令方可

?

?????????? 檢查上一條語句是否正確執行(類似于Shell變量"$?"

???????????????????? > SHOW WARNINGS;

?

????? 常見錯誤

????????????? (1) ERROR 1046 (3D000): No database selected

???????????????????? 未選擇數據庫

????????????? (2) ERROR 1050 (42S01): Table 'table1' already exists

???????????????????? 'table1'已存在

????????????? (3) ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

???????????????????? 登錄數據庫沒有輸入密碼

????????????? (4)?? ERROR 1317 (70100): Query execution was interrupted

???????????????????? 查詢執行被中斷

?

?????? 更多參考: http://www.bluestep.cc/demos/mysql/manual/index.htm


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰顺县| 广东省| 石棉县| 甘南县| 淄博市| 庐江县| 台中市| 天津市| 乌鲁木齐县| 青铜峡市| 湖南省| 禹城市| 克什克腾旗| 天津市| 大渡口区| 公安县| 乌什县| 宜丰县| 华阴市| 文安县| 汉源县| 迁西县| 淮滨县| 万州区| 都匀市| 嘉义市| 黄龙县| 噶尔县| 宜宾市| 凤山县| 永靖县| 红原县| 柘荣县| 长兴县| 罗山县| 曲阜市| 潞城市| 泸定县| 牡丹江市| 北票市| 洛扎县|