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

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

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

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

        DCL

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

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

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

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

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

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

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

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

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

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

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

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

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

        如果我們退出當前登錄狀態(tài),以 test 用戶登錄,就只能看到 test 數(shù)據(jù)庫,因為它對其他數(shù)據(jù)庫沒有操作權(quán)限:

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

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

        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';

        事務提交/回滾

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

        對于單條 SQL 語句,數(shù)據(jù)庫系統(tǒng)自動將其作為一個事務執(zhí)行,這種事務被稱為隱式事務

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

        我們在命令行中簡單演示下數(shù)據(jù)庫事務的操作:

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

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

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

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

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

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

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

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

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

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 免费看一级毛片在线观看精品视频 | 亚洲精品久久久www| 99re这里只有精品6| 自拍偷在线精品自拍偷无码专区| 99在线精品免费视频| 国产精品久久成人影院| 日韩精品久久久久久久电影蜜臀| 精品一区二区三区色花堂| 热re99久久精品国产99热| 国产精品免费高清在线观看| 亚洲欧洲成人精品香蕉网| 日韩精品一区二区三区影院| 国产精品嫩草影院一二三区| 青青草国产精品| 亚洲国产精品久久久久网站| 精品一区二区三区在线视频| 2048亚洲精品国产| 国产精品女同一区二区| 日韩精品毛片| 在线电影国产精品| 欧美精品中文字幕亚洲专区| 中文精品久久久久人妻不卡 | 亚洲日韩国产AV无码无码精品 | 成人国产精品999视频| 国产麻豆一精品一AV一免费 | 亚洲国产精品VA在线看黑人| 一本大道无码日韩精品影视| 曰韩精品无码一区二区三区| 在线成人精品国产区免费| 亚洲精品无码高潮喷水在线| 亚洲乱码国产乱码精品精| 亚洲国产精品无码一线岛国| 无码囯产精品一区二区免费| 无码人妻精品一区二区三18禁| 亚洲精品午夜无码专区| 亚洲av永久无码精品漫画| 日韩精品人妻系列无码专区 | 国产在线精品无码二区| 国产精品免费高清在线观看| 国产精品久久久天天影视| 亚洲国产精品欧美日韩一区二区|