《MYSQL必知必會(huì)》筆記

MYSQL必知:

  • MSQL不區(qū)分大小寫(xiě),在執(zhí)行匹配的時(shí)候同樣不區(qū)分
  • MYSQL語(yǔ)句必須以 ; 結(jié)束
  • Sql語(yǔ)句忽略空格
  • 子句(clause):sql語(yǔ)句由子句構(gòu)成,一個(gè)子句通常由一個(gè)關(guān)鍵字和所提供的數(shù)據(jù)組成
  • SELECT語(yǔ)句中子句有嚴(yán)格的排序,次序不對(duì)會(huì)報(bào)錯(cuò)。SELECT子句的順序:SELECT—FROM—WHERE—GROUP BY—HAVING—ORDER BY—LIMIT
  • 外鍵foreign key:外鍵為某個(gè)表中的一列,它包含另一個(gè)表的主鍵值,定義了兩個(gè)表之間的關(guān)系

第三章:使用MYSQL

  • 選擇數(shù)據(jù)庫(kù):USE關(guān)鍵字,只有先用USE打開(kāi)某一個(gè)數(shù)據(jù)庫(kù),才能讀取其中的數(shù)據(jù)
  • 返回一個(gè)數(shù)據(jù)庫(kù)列表:
SHOW DATABASES;
  • 返回某個(gè)數(shù)據(jù)庫(kù)中的表列表:
SHOW TABLES;
  • 顯示表列:
SHOW COLUMNS FROM table_name; 或者 DESC table_name;
  • 其他SHOW語(yǔ)句:
SHOW STATUS;顯示服務(wù)器狀態(tài)信息
SHOW CREATE DATABASE/TABLE;顯示創(chuàng)建數(shù)據(jù)庫(kù)/表的mysql語(yǔ)句
SHOW GRANTS;顯示用戶(hù)的權(quán)限
SHOW ERRORS/WARNINGS;顯示服務(wù)器錯(cuò)誤/警告信息

第四章:檢索數(shù)據(jù)

  • SELECT語(yǔ)句:從一個(gè)或多個(gè)表中檢索信息
SELECT prod_name FROM products;檢索單個(gè)列
SELECT prod_id, prod_name,prod_price FROM products;檢索多個(gè)列:不同列之間通過(guò)逗號(hào)隔開(kāi)
SELECT * FROM products; 檢索所有列:* 為通配符
SELECT DISTINCT vend_id FROM products; 檢索不同的行:DISTINCT 表示唯一值,這邊只返回vend_id不同的行
SELECT prod_name FROM products LIMIT 5;限制結(jié)果: LIMIT 5指示mysql返回值不多于五行,LIMIT 5,5;則指示顯示從第五行開(kāi)始的后五行
SELECT products.prod_name FROM products; 完全限定表名:products.prod_name完全限定表名:prod_name是products表中的一個(gè)列

第五章:排序檢索數(shù)據(jù)

  • ORDER BY子句:取一個(gè)或多個(gè)列的名字,據(jù)此對(duì)輸出進(jìn)行排序
SELECT prod_name 
FROM products 
ORDER BY prod_name;
  • 按照多個(gè)列排序:
SELECT prod_id,
       prod_name,
       prod_price 
FROM products 
ORDER BY prod_name,prod_price;

先按prod_name排序,再按prod_price排序

  • 指定排序方向(默認(rèn)的排序方式是升序順序):
SELECT prod_id, 
       prod_name,
       prod_price 
FROM products 
ORDER BY prod_name DESC,prod_price;

先按 prod_name降序排序,再按prod_price升序排列。DESC進(jìn)行降序排序

第六章:過(guò)濾數(shù)據(jù)

  • WHERE子句:指定搜索條件,它的操作符有 = 等于、<> 不等于、!= 不等于、< 小于、<= 小于等于、> 大于、>= 大于等于、BETWEEN 在指定的兩個(gè)值之間(BETWEEN 1 AND 10 :1到10之間的數(shù)值)
SELECT prod_id, 
       prod_name,
       prod_price 
FROM products 
ORDER BY prod_name,
         prod_price 
WHERE prod_price=2.5;

只返回prod_price=2.5限定下的搜索值

  • 空值檢查(IS NULL):
SELECT prod_name FROM products WHERE prod_name IS NULL;

第七章:數(shù)據(jù)過(guò)濾

  • MYSQL允許一個(gè)語(yǔ)句中有多個(gè)WHERE子句,可以以AND子句或OR子句的方式使用:
SELECT prod_id, 
       prod_name,
       prod_price 
FROM products 
ORDER BY prod_name,
         prod_price 
WHERE prod_price=2.5 AND/OR prod_id>1;

AND與OR有著不同的優(yōu)先級(jí),AND的優(yōu)先級(jí)比OR高,當(dāng)使用很多個(gè)邏輯操作符的時(shí)候,可以使用括號(hào)進(jìn)行分組

  • IN操作符可以指定條件范圍:
SELECT prod_id, 
       prod_name,
       prod_price 
FROM products 
ORDER BY prod_name,
         prod_price 
WHERE prod_price IN (1.0,2.5,3,4,5); 

IN中合法值通過(guò)括號(hào)包括,不同合法值由逗號(hào)分隔

  • NOT操作符可以否定后面所跟的條件

第八章:使用通配符進(jìn)行過(guò)濾

  • LIKE操作符:為在搜索子句中使用通配符,必須使用LIKE操作符,它指示后面跟的搜索模式利用通配符而不是直接相等匹配進(jìn)行比較
  • % 通配符:表示任何字符出現(xiàn)任意次數(shù)(0次也算),但不匹配N(xiāo)ULL
SELECT prod_id, 
       prod_name,
       prod_price 
 FROM products 
WHERE prod_name LIKE ‘jet%’;
  • _ 通配符:只匹配單個(gè)字符
    通配符搜索的處理一般會(huì)比前面幾章討論的搜索更費(fèi)時(shí)間

第九章:用正則表達(dá)式進(jìn)行搜索

  • 基本字符匹配:
SELECT prod_id,
       prod_name,
       prod_price 
FROM products 
WHERE prod_name REGEXP ‘.1000’;

REGEXP告訴MYSQL其后面所跟的東西為正則表達(dá)式。其中'.' 是正則表達(dá)式語(yǔ)言中一個(gè)特殊的字符,可以匹配任意一個(gè)字符

  • LIKE與REGEXP之間的差別:LIKE匹配整個(gè)列(所尋找的東西必須在列值里面完全匹配,不能多或少,不能只是部分匹配);REGEXP在列值中匹配,匹配成功會(huì)返回相應(yīng)的行
  • 進(jìn)行 | (or)匹配:
SELECT prod_id, 
       prod_name,
       prod_price 
FROM products 
WHERE prod_name REGEXP ‘1000|2000’;
  • 匹配幾個(gè)字符之一([ ] 括號(hào),另一種形式的or):
SELECT prod_id,
       prod_name,
       prod_price 
FROM products 
WHERE prod_name REGEXP ‘[123] ton’;#/ [A-Z] [1-9]可以是范圍
  • 在mysql中匹配特殊字符要用 \ 進(jìn)行轉(zhuǎn)義

第十章:創(chuàng)建計(jì)算字段

  • 拼接字段CONCAT函數(shù):
SELECT CONCAT(vend_name,’(’,vend_country,’)’) AS name(country) 
FROM products ;#將兩列整合成為一列,命名為name(country)
  • 執(zhí)行算數(shù)計(jì)算:
SELECT prod_id,
       prod_name,
       prod_price*prod_numbers AS price 
FROM products ;

*、-、+、/ 都可以在mysql中使用,進(jìn)行計(jì)算

第十一章:使用數(shù)據(jù)處理函數(shù)

  • 文本處理函數(shù):
SELECT prod_id,
       prod_name,
       RTrim(prod_price) 
FROM products 
WHERE prod_name LIKE ‘jet%’;
  • 函數(shù):
LFET()返回串左邊的字符、
LENGTH()返回串的長(zhǎng)度
LOCATE()找出串的子串
LOWER()將串轉(zhuǎn)換為小寫(xiě)
LTRIM()去掉串左邊的空格
RIGHT()返回串右邊的字符
RTRIM()去掉串右邊的空格
SOUNDEX()返回串的soundex值
SUBSTRING()返回子串的字符
UPPER()將串轉(zhuǎn)換為大寫(xiě)

第十二章:匯總數(shù)據(jù)

  • 聚集函數(shù):
AVG()返回某列的平均值
COUNT()返回某列的行數(shù)
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM()返回某列值之和
  • COUNT(*)對(duì)表中行的數(shù)目進(jìn)行計(jì)數(shù),不管是否包含NULL。COUNT(column)對(duì)特定列中具有值的行進(jìn)行計(jì)算(忽略NULL)

第十三章:分組數(shù)據(jù)

  • 創(chuàng)建分組GROUP BY:
SELECT vend_id, 
       COUNT(*) AS num_prods 
FROM products 
GROUP BY vend_id; 

GROUP BY vend_id表示按vend_id排序并分組數(shù)據(jù)。

  • GROUP BY子句的規(guī)定:
    1、子句中列出來(lái)的每個(gè)列都必須是檢索列或有效的表達(dá)式(但不能是聚集函數(shù))
    2、SELECT語(yǔ)句中的每個(gè)列都必須在GROUP BY子句中給出
    NULL會(huì)被作為一個(gè)分組
  • 過(guò)濾分組HAVING:這邊不能用WHERE,WHERE過(guò)濾指定的是行而不是分組
SELECT vend_id, 
       COUNT(*) AS num_prods 
FROM products 
GROUP BY vend_id HAVING COUNT(*)>=2;

1、 HAVING支持所有WHERE操作符
2、 HAVING在數(shù)據(jù)分組后過(guò)濾,而WHERE在數(shù)據(jù)分組前過(guò)濾

第十四章:使用子查詢(xún)

  • 子查詢(xún):嵌套在其他查詢(xún)中的查詢(xún)
SELECT cust_id 
FROM orders 
WHERE order_num IN ( SELECT order_num 
                     FROM orderitems 
                     WHERE prod_id = ‘TNT2’);# 這邊先執(zhí)行括號(hào)內(nèi)的查詢(xún)。

WHERE子句中對(duì)能嵌套的子查詢(xún)數(shù)目沒(méi)有限制,但是會(huì)受到性能限制

  • 作為計(jì)算字段使用子查詢(xún):
SELECT cust_name,
       cust_state,
       ( SELECT COUNT(*) 
       FROM orders 
       WHERE orders.cust_id = customers.cust_id) AS orders 
FROM customers;

第十五章:聯(lián)結(jié)表

  • 完全限定列名:在引用的列可能出現(xiàn)二義性的時(shí)候,必須使用完全限定列名(用一個(gè)點(diǎn)分割的表名和列名)
  • 創(chuàng)建聯(lián)結(jié):
SELECT prod_id, 
       prod_name,
       vend_name 
FROM products,vendors 
WHERE vendors.vend_id = products.vend_id;

這個(gè)聯(lián)結(jié)可被稱(chēng)為等值聯(lián)結(jié),它是基于兩個(gè)表的相等測(cè)試,也被稱(chēng)為內(nèi)部聯(lián)結(jié)

  • 使用INNER JOIN 子句建立內(nèi)部聯(lián)結(jié):
SELECT prod_id, 
       prod_name,
       vend_name 
FROM products INNER JOIN vendors ON vendors.vend_id = products.vend_id
  • 聯(lián)結(jié)多個(gè)表:
SELECT prod_id, 
       prod_name,
       vend_name,
       prod_price,
       quantity 
FROM products,
     vendors,
     orderitems 
WHERE vendors.vend_id = products.vend_id 
      AND orderitems.prod_id=products.prod_id; #在WHERE中使用AND

第十六章:創(chuàng)建高級(jí)聯(lián)結(jié)

  • 使用表別名:
SELECT cust_name,
       cust_contact
 FROM customers AS c,
      orders AS o,
      orderitems AS oi
WHERE c.cust_id=o.cust_id
      AND oi.order_num = o.order_num
      AND prod_id='TNT2';

FROM 語(yǔ)句中三個(gè)表全部具有別名

  • 使用不同類(lèi)型的聯(lián)結(jié)

https://blog.csdn.net/plg17/article/details/78758593
圖解MySQL 內(nèi)連接、外連接、左連接、右連接、全連接

1、自聯(lián)結(jié):

SELECT p1.prod_id,
       p1.prod_name
 FROM products AS p1,
      products AS p2,
WHERE p1.vend_id=p2.vend_id
      AND p2.prod_id='DTNTR'

自聯(lián)結(jié)通常作為外部語(yǔ)句用來(lái)替代從相同表中檢索數(shù)據(jù)時(shí)使用的子查詢(xún)語(yǔ)句。
2、自然聯(lián)結(jié):
標(biāo)準(zhǔn)的聯(lián)結(jié)返回所有數(shù)據(jù),甚至相同的列多次出現(xiàn)。自然聯(lián)結(jié)排除多次出現(xiàn),使每個(gè)列只返回一次

SELECT c.*,
       o.order_num,
       o.order_date,
       oi.prod_id,
       oi.quantity,
       OI.item_price
FROM customers AS c,
     orders AS o,
     orderitem AS oi
WHERE c.cust_id = o.cust_id
      AND oi.order_num=o.order_num
      AND prod_id='FB';

自然聯(lián)結(jié)中你只能選擇那些唯一的列,一般通過(guò)對(duì)一個(gè)表使用通配符,對(duì)所有其他表的列使用明確的子集來(lái)完成。
3、外部聯(lián)結(jié)

SELECT   customers.cust_id,
         orders.order_num
FROM customers INNER JOIN orders
ON customers.cust_id=orders.cust_id;

與內(nèi)部聯(lián)結(jié)關(guān)聯(lián)兩個(gè)表中的行不同的是,外部聯(lián)結(jié)還包括沒(méi)有關(guān)聯(lián)行的行。在使用outer join 語(yǔ)法時(shí),必須使用RIGHT或LFET 關(guān)鍵字指定包括其所有行的表(RIGHT指出的是OUTER JOIN右邊的表,LEFT相反)

第十七章:組合查詢(xún)

在MYSQL中允許多個(gè)查詢(xún)(多條SELECT語(yǔ)句),并將結(jié)果作為單個(gè)查詢(xún)結(jié)果返回。這些組合查詢(xún)成為并或復(fù)合查詢(xún)。

  • 使用UNION:給出每條SELECT語(yǔ)句,在各條語(yǔ)句之間放上UNION
SELECT vend_id,prod_id,prod_price
FROM products
WHERE prod_price <=5
UNION
SELECT vend_id,prod_id,prod_price
FROM products
WHERE vend_id IN (1001,1002)

UNION有著一些規(guī)則:
1、UNION中每個(gè)查詢(xún)必須包含相同的列、表達(dá)式或聚集函數(shù)
2、列數(shù)據(jù)類(lèi)型必須兼容

  • 包含或者取消重復(fù)的行
    UNION會(huì)自動(dòng)從查詢(xún)結(jié)果集中自動(dòng)去除重復(fù)的行
    在用UNION組合查詢(xún)時(shí),只能使用一條ORDER BY子句,它必須出現(xiàn)在最后一條SELECT語(yǔ)句

第十八章:使用全文本搜索

MYSQL可創(chuàng)建指定列中各詞的一個(gè)索引,然后針對(duì)這些詞進(jìn)行搜索

  • FULLTEXT子句的使用:針對(duì)某一列進(jìn)行索引的建立
CREATE TABLE productnotes
(
note_id   int   NOT NULL AUTO_INCREMENT,
prod_id   char(10)   NOT NULL,
note_date   datetime   NOTNULL,
note_text   text   NULL,
PRIMARY KEY(note_id),
FULLTEXT(note_text)
)

這里FULLTEXT對(duì)note_id進(jìn)行索引的建立,可以同時(shí)對(duì)多個(gè)列進(jìn)行索引的建立。
可以在創(chuàng)建表的時(shí)候指定FULLTEXT,也可以稍后指定。但一般不要在導(dǎo)入數(shù)據(jù)的時(shí)候使用,這樣要花掉很多時(shí)間,可以先導(dǎo)入數(shù)據(jù),再對(duì)表進(jìn)行修改(定義FULLTEXT)

  • 進(jìn)行全文搜索
    在建立索引之后,使用Match()和Against()執(zhí)行全文本搜索,Match()指定被搜索的列,Against()指定要使用的搜索表達(dá)式
SELECT note_text
FROM productnotes
WHERE Match(note_text) Against(‘rabbit’);

可以同時(shí)指定多個(gè)列和多個(gè)搜索表達(dá)式,得到的結(jié)果是經(jīng)過(guò)排序的(按照等級(jí))

  • 使用查詢(xún)拓展
    查詢(xún)拓展可以放寬返回的范圍
SELECT note_text
FROM productnotes
WHERE Match(note_text) Against(‘rabbit’ WITH QUERY EXPANSION);
  • 布爾文本搜索(IN BOOLEAN MODE 子句)
    布爾文本搜索可以指定:
    1、要排除的詞
    2、要匹配的詞
    3、排列提示(對(duì)某些詞進(jìn)行等級(jí)設(shè)定)
    4、表達(dá)式分組
SELECT note_text
FROM productnotes
WHERE Match(note_text) Against(‘hravy -rabbit*’ IN BOOLEAN MODE );

這個(gè)語(yǔ)句表示匹配hravy而排除以rabbit開(kāi)頭的詞。
更多的全文本布爾操作符:


image.png

全文本搜索有著一些重要的使用說(shuō)明

第十九章:插入數(shù)據(jù)

  • 插入完整的行
    插入完整的行不需要指定列名
INSERT INTO Customers
VALUES(
  NULL
  'Pep E. LaPew',
  '100 Main Street',
  'Los Angeles',
  'CA',
  '90046',
  'USA',
  NULL,
  NULL)

Customers表的第一列是cust_id,為自動(dòng)增量,但不能省略輸入,所以用NULL

  • 按列名插入
INSERT INTO Customer(
  cust_address,
  cust_city,
  cust_state,
  cust_zip,
  cust_country,
  cust_contract,
  cust_email
)
VALUES(
  'Pep E. LaPew',
  NULL,
  '100 Main Street',
  'Los Angeles',
  'CA',
  '90046',
  'USA',
)

給出了列名,并按列名排序填充值,這時(shí)可以省略某些列(有默認(rèn)值與允許定義為NULL的列)

  • 同時(shí)插入多行
    可以用多個(gè)INSERT語(yǔ)句或者:
INSERT INTO Customer(
  cust_address,
  cust_city,
  cust_state,
  cust_zip,
  cust_country,
  cust_contract,
  cust_email
)
VALUES(
  'Pep E. LaPew',
  NULL,
  '100 Main Street',
  'Los Angeles',
  'CA',
  '90046',
  'USA',
)
(
  'Pep E. LaPew',
  NULL,
  '100 Main Street',
  'Los Angeles',
  'CA',
  '90046',
  'USA',
)
  • 插入檢索出的數(shù)據(jù)
    可以將查詢(xún)出的數(shù)據(jù)插入到另外一個(gè)表中
INSERT INTO Customer(
  cust_id,
  cust_contract,
  cust_email,
  cust_name,
  cust_address,
  cust_city,
  cust_state,
  cust_zip,
  cust_country,
)
SELECT cust_id,
  cust_contract,
  cust_email,
  cust_name,
  cust_address,
  cust_city,
  cust_state,
  cust_zip,
  cust_country
FROM custnew;

從custnew表中查詢(xún)出數(shù)據(jù),然后插入Customer中

第二十章:更新和刪除數(shù)據(jù)

  • UPDATE
UPDATE cusromers
SET cust_email='elmer@fudd.com',
    cust_name='The Fudds'
WHERE cust_id=10005;

一定要注意使用WHERE子句,如果沒(méi)有這個(gè)子句,它將更新整個(gè)表
可以在UPDATE中使用子查詢(xún)
在UPDATE更新出現(xiàn)錯(cuò)誤,但是想忽略它繼續(xù)執(zhí)行的時(shí)候,可以使用IGNORE關(guān)鍵字(沒(méi)有使用這個(gè)關(guān)鍵字,UPDATE將停止,并恢復(fù)原來(lái)的值):UPDATE IGNORE customers....

  • 刪除數(shù)據(jù)
    DELETE:刪除行
DELETE FROM customers
WHERE cust_id =100006;

更新和刪除數(shù)據(jù)都要記得使用WHERE子句,最好先使用SELECT子句先進(jìn)行測(cè)試,以保證正確的刪除范圍。還要使用強(qiáng)制實(shí)施引用完整性的數(shù)據(jù)庫(kù),讓MYSQL不允許刪除具有與其他表相關(guān)聯(lián)的數(shù)據(jù)的行

第二十一章:創(chuàng)建和操縱表

  • 創(chuàng)建表
    創(chuàng)建表和數(shù)據(jù)庫(kù)可以使用交互式軟件或mysql語(yǔ)法。
    mysql語(yǔ)法使用的是CREATE語(yǔ)句,新表的名字在關(guān)鍵字CREATE TABLE后面給出,表列的名字和定義用逗號(hào)分隔。每列的定義以列名(必須唯一)開(kāi)始,后跟列的數(shù)據(jù)類(lèi)型。
CREATE TABLE customers(
  cust_id    int NOT NULL AUTO_INCREMENT, //NOT NULL表示不能為空,AUTO_INCREMENT表示自增
  cust_contract     char(50) NOT NULL,
  cust_email      char(50)  NULL,
  cust_name   char(50)  NULL,
  cust_address      char(50)  NULL, 
  cust_city      char(50)  NULL,
  cust_state      char(50)  NULL,
  cust_zip      char(50)  NULL,
  cust_country      char(50)  NULL DEFAULT china,//DEFAULT指定該列的默認(rèn)值
  PRIMARY KEY (cust_id,cust_email)  //定義主鍵
)ENGINE=InnoDB;//ENGINE=InnoDB指定引擎

在mysql中不會(huì)覆蓋已經(jīng)存在的同名表,需要先刪除該表后才能建同名表。
NULL值表示沒(méi)有值或缺值,在定義列的時(shí)候申明便是允許該列沒(méi)有值。
在mysql中主鍵必須唯一,它可以使用單個(gè)列或者多個(gè)列組合。
SELECT last_insert_id()可以返回最后一個(gè)AUTO_INCREMENT值。
在mysql中多種引擎用來(lái)具體的管理和處理數(shù)據(jù),不同的引擎的功能特性是不一樣的:

InnoDB是一個(gè)可靠的事務(wù)處理引擎,但不支持全文本搜索
MEMORY功能與MYISAM一樣,但在數(shù)據(jù)存儲(chǔ)與內(nèi)存中時(shí),速度很快(適合建立臨時(shí)表)
MyISAM支持全文本搜索,但是不支持事務(wù)處理

引擎類(lèi)型可以混用

  • 更新表
    更新表使用ALTER TABLE語(yǔ)句,可以更新表定義
ALTER TABLE vendors
ADD vend_phone CHAR(20);
ALTER TABLE vendors
DROP vend_phone CHAR(20);

可以定義外鍵,主鍵

  • 刪除表
DROP TABLE customers;
  • 重命名表
RENAME TABLE customers TO customers1;

第二十二章:使用視圖

視圖是虛擬的表,與包含數(shù)據(jù)的表不一樣,視圖只包含使用動(dòng)態(tài)檢索數(shù)據(jù)的查詢(xún)。
視圖本身不包含數(shù)據(jù),它返回的數(shù)據(jù)是從其他表中檢索出來(lái)的。

使用視圖

使用CREATE VIEW語(yǔ)句來(lái)創(chuàng)建視圖
使用SHOW CREATE VIEW viewname來(lái)創(chuàng)建視圖的語(yǔ)句
使用DROP VIEW viewname來(lái)刪除視圖
更新視圖時(shí)可以先刪除后再創(chuàng)建或者使用CREATE OR REPLACE VIEW。

第二十三章:使用存儲(chǔ)過(guò)程

第二十四章:使用觸發(fā)器

第二十六章:管理事務(wù)處理

第二十七章:全球化和本地化

第二十八章:安全管理

  • 訪(fǎng)問(wèn)控制
    用戶(hù)應(yīng)該對(duì)他們需要的數(shù)據(jù)具有適當(dāng)?shù)脑L(fǎng)問(wèn)權(quán),即不能多也不能少。
    在使用數(shù)據(jù)庫(kù)中,盡量不要去使用root用戶(hù),而是創(chuàng)建一系列賬號(hào),進(jìn)行管理使用。
管理用戶(hù)

mysql用戶(hù)賬號(hào)信息存儲(chǔ)在名字為mysql的庫(kù)中,在mysql庫(kù)中,有一個(gè)user表,里面包含了所有用戶(hù)賬號(hào)。

  • 創(chuàng)建用戶(hù)可使用:CREATE USER
CREATE USER ben IDENTIFIED BY 'password';#創(chuàng)建一個(gè)名為ben的用戶(hù),其密碼時(shí)password
  • 重命名用戶(hù)賬號(hào):RENAME USER
RENAME USER ben TO aaa;#將ben重命名為aaa
  • 刪除賬戶(hù):DROP USER
  • 設(shè)置訪(fǎng)問(wèn)權(quán)限
    查看權(quán)限:
SHOW GRANTS FOR ben

設(shè)置權(quán)限:使用GRANT語(yǔ)句,并給出 ‘①要授予的權(quán)限②被授予訪(fǎng)問(wèn)權(quán)限的數(shù)據(jù)庫(kù)或表③用戶(hù)名’ 等信息

GRANT SELECT ON crashcourse.* TO ben #允許ben用戶(hù)在crashcourse.*(crashcourse中的所有表)使用select語(yǔ)句(只讀)。

撤銷(xiāo)權(quán)限:REVOKE,用它來(lái)撤銷(xiāo)特定的權(quán)限。

REVOKE SELECT ON crashcourse.* FROM ben #撤銷(xiāo)ben對(duì)crashcourse.*的select權(quán)限

可以授予和撤銷(xiāo)的每個(gè)權(quán)限:


權(quán)限
  • 更改密碼
SET PASSWORD FOR ben=Password('newpassword')#Password可以對(duì)密碼進(jìn)行加密

第二十九章:數(shù)據(jù)庫(kù)維護(hù)

第二十九章:改善性能

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容