久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      【相關(guān)學(xué)習(xí)推薦:mysql教程(視頻)】

      DCL

      DCL 比較簡(jiǎn)單,主要用于授予或收回訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限,以及數(shù)據(jù)庫(kù)事務(wù)的提交和回滾。

      授予/收回權(quán)限

      以授予權(quán)限為例,我們新建一個(gè)數(shù)據(jù)庫(kù)后,想要授予特定用戶該數(shù)據(jù)庫(kù)的訪問(wèn)和操作權(quán)限(一般在生產(chǎn)環(huán)境為了安全起見(jiàn),不會(huì)通過(guò) root 用戶操作數(shù)據(jù)庫(kù)),為此我們先要?jiǎng)?chuàng)建一個(gè)特定用戶,比如 test,DCL 這種控制級(jí)的 SQL 語(yǔ)句一般在命令行執(zhí)行,我們進(jìn)入 MySQL Docker 容器,連接到數(shù)據(jù)庫(kù),通過(guò) CREATE USER 語(yǔ)句新建一個(gè) test 用戶,同時(shí)將密碼設(shè)置為 test

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      創(chuàng)建完成后,就可以在 mysql.user 數(shù)據(jù)表中看到這個(gè)用戶了:

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      Host 字段為 % 表示 test 用戶可以從任何主機(jī)連接到 MySQL 服務(wù)器。

      或者通過(guò)命令行查看(這里用到了 SQL 查詢語(yǔ)句):

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      然后我們就可以運(yùn)行 GRANT 語(yǔ)句授予 test 用戶對(duì) test 數(shù)據(jù)庫(kù)的所有操作權(quán)限了:

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      授權(quán)后,需要運(yùn)行 flush privileges; 刷新權(quán)限,這樣就可以在 test 數(shù)據(jù)庫(kù)的權(quán)限列表中看到這個(gè)用戶了:

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      如果我們退出當(dāng)前登錄狀態(tài),以 test 用戶登錄,就只能看到 test 數(shù)據(jù)庫(kù),因?yàn)樗鼘?duì)其他數(shù)據(jù)庫(kù)沒(méi)有操作權(quán)限:

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      要撤回權(quán)限,需要以 root 身份進(jìn)行,在權(quán)限列表刪除這個(gè)用戶,或者在命令行通過(guò) REVOKE 語(yǔ)句完成:

      revoke all privideges on test.* from 'test'@'%'; flush privileges;

      這里操作的都是所有權(quán)限,也可以指定特定的權(quán)限:

      // 授予權(quán)限 grant select on test.* to 'user1'@'localhost';  /*給予查詢權(quán)限*/ grant insert on test.* to 'user1'@'localhost'; /*添加插入權(quán)限*/ grant delete on test.* to 'user1'@'localhost'; /*添加刪除權(quán)限*/ grant update on test.* to 'user1'@'localhost'; /*添加權(quán)限*/  // 收回權(quán)限 revoke select on test.* from 'jack'@'localhost'; revoke insert on test.* from 'jack'@'localhost'; revoke delete on test.* from 'jack'@'localhost'; revoke update on test.* from 'jack'@'localhost';

      事務(wù)提交/回滾

      數(shù)據(jù)庫(kù)事務(wù)(Database Transaction)是指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作(對(duì)數(shù)據(jù)庫(kù)的相關(guān)增刪改查的操作,包含一條或多條 SQL 語(yǔ)句),要么完全地執(zhí)行,要么完全地不執(zhí)行。

      對(duì)于單條 SQL 語(yǔ)句,數(shù)據(jù)庫(kù)系統(tǒng)自動(dòng)將其作為一個(gè)事務(wù)執(zhí)行,這種事務(wù)被稱為隱式事務(wù)。

      要手動(dòng)把多條 SQL 語(yǔ)句作為一個(gè)事務(wù)執(zhí)行,可以使用 BEGIN 開(kāi)啟一個(gè)事務(wù),使用 COMMIT 提交一個(gè)事務(wù),這種事務(wù)被稱為顯式事務(wù),如果事務(wù)執(zhí)行過(guò)程中出現(xiàn)錯(cuò)誤或異常,可以通過(guò) ROLLBACK 語(yǔ)句回滾事務(wù)。

      我們?cè)诿钚兄泻?jiǎn)單演示下數(shù)據(jù)庫(kù)事務(wù)的操作:

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      我們通過(guò) BEGIN 語(yǔ)句開(kāi)啟事務(wù),但是在執(zhí)行多條語(yǔ)句后,沒(méi)有通過(guò) COMMIT 提交事務(wù),測(cè)試執(zhí)行這幾條 SQL 語(yǔ)句,進(jìn)入「瀏覽」面板查看,發(fā)現(xiàn)并沒(méi)有插入新的記錄:

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      如果在上述 SQL 序列后加上 ROLLBACK 回滾事務(wù),效果也是一樣的:

      BEGIN;  INSERT INTO post (`title`, `content, `created_at`) VALUES ('這是一篇測(cè)試文章2', '測(cè)試內(nèi)容哈哈哈', '2020-05-26 13:00:00'); INSERT INTO post (`title`, `content, `created_at`) VALUES ('這是一篇測(cè)試文章3', '測(cè)試內(nèi)容哈哈哈', '2020-05-26 13:30:00');  ROLLBACK;

      而如果在最后加上 COMMIT 語(yǔ)句,則可以順利提交修改:

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      MySQL基本使用(二)之DCL語(yǔ)句和聚合函數(shù)

      關(guān)于常見(jiàn)的 SQL 語(yǔ)句和 phpMyAdmin 中的可視化演示,就簡(jiǎn)單介紹到這里,

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)