MySQL常用管理SQL語句

来源:https://www.cnblogs.com/yanyanqaq/archive/2020/04/30/12810236.html
-Advertisement-
Play Games

[TOC] 前言 DDL DDL,中文為數據定義語言,DDL的特點是對資料庫內部的對象進行create(創建)、alter(修改)、drop(刪除)等操作,負責管理資料庫的基礎數據,不涉及對錶中內容的操作和更改。 DCL DCL,中文為數據控制語言,DDL的特點是對資料庫內部的對象grant(用戶授 ...


目錄

前言

DDL

DDL,中文為數據定義語言,DDL的特點是對資料庫內部的對象進行create(創建)、alter(修改)、drop(刪除)等操作,負責管理資料庫的基礎數據,不涉及對錶中內容的操作和更改。

DCL

DCL,中文為數據控制語言,DDL的特點是對資料庫內部的對象grant(用戶授權)、revoke(許可權回收)、commit(提交)、rollback(回滾)。

DML

DML,中文為數據操作語言,DML的特點是對資料庫內部的對象insert(增)、delete(刪)、update(改)、select(查),主要針對資料庫中表內的數據進行操作。

1.DDL語句之管理資料庫

1.1.創建資料庫
create database test;  #創建預設字元集資料庫
create database test_gbk character set gbk collate gbk_chinese_ci;  #創建gbk字元集資料庫
create database test_utf8 character set utf8 collate utf8_general_ci;  #創建utf8字元集資料庫
show create database test\G  #查看建庫語句
1.2.顯示資料庫
show databases;  #查看所有資料庫
show databases like 'test';  #匹配test字元串的資料庫
show databases like 'test%';  #%為通配符,表示匹配以test開頭的所有資料庫
1.3.切換資料庫
use test;  #切換到test庫
select database();  #查看當前管理員所在的庫名
1.4.查看資料庫包含的表信息
1.4.1.切換到資料庫裡面去查看表信息
use test;
show tables;
1.4.2.在庫外面查看庫里的表信息
show tables from test;  #查看指定庫test中包含的表
show tables in test_gbk;
show tables from mysql like 'db%';  #匹配包含指定字元開頭的表
1.5.刪除資料庫
drop database test_gbk;  #刪除test_gbk資料庫
show databases like 'test_gbk';

2.DDL&&DCL語句之管理用戶

2.1.查看當前資料庫的用戶列表

查看資料庫用戶列表屬於DML負責的部分內容。

select user,host from mysql.user;  #這裡的select關鍵字表示查詢,是DML語句的關鍵字之一,user和host為要查找的MySQL表的欄位,from表示去哪查,mysql.user是MySQL庫里的user表。資料庫的標準用戶由“用戶”@“主機名”共同組成的,兩者加起來是資料庫用戶的唯一標識。
2.2.創建資料庫用戶
create user test1@localhost identified by '123456';
select user,host from mysql.user;  #查看所有資料庫用戶
create user test2@'192.168.1.%' identified by '123456';
select user,host from mysql.user where user='test2;  #查看指定資料庫用戶
show grants for test2@'192.168.1.%';
#USAGE表示連接許可權
2.3.刪除資料庫用戶
drop user 'test1'@'localhost';  #刪除資料庫用戶命令
select user,host from mysql.user where user='test1';  #刪除後檢查資料庫用戶
flush privileges;  #使得處理用戶後,對資料庫生效,有資料庫改動的情況,執行這個命令

delete from mysql.user where user='test2' and host='192.168.1.%';
flush privileges;
2.4.授權資料庫用戶
2.4.1.創建test3用戶,對test庫具備所有許可權,允許從localhost主機登錄管理資料庫,密碼是123456。
grant all privileges on test.* to 'test3'@'localhost' identified by '123456';
select user,host from mysql.user where user='test3';
show grants for 'test3'@'localhost';
#ALL PRIVILEGES就是授權的許可權
2.4.2.授權與root同等地位的system用戶許可權。
show grants for root@localhost;  #查看root用戶的許可權
grant all on *.* to 'system'@'localhost' identified by '123456' with grant option;
grant proxy on ''@'' to 'system'@'localhost' with grant option;  #允許創建代理用戶
show grants for system@localhost;
2.5.授權的許可權列表
show grants for 'test3'localhost';
#ALL PRIVILEGES就是授權的許可權
revoke select on test.* from 'test3'@'localhost';
show grants for 'test'@'localhost';
#許可權ALL被拆分成了更細的許可權

MySQL的ALL PRIVILEGES的許可權列表

許可權 說明
SELECT 查詢(數據)
INSERT 插入(數據)
UPDATE 修改(數據)
DELETE 刪除(數據)
CREATE 創建(資料庫、表等對象)
DROP 刪除(資料庫、表等對象)
RELOAD 重載
SHUTDOWN 關閉
PROCESS 進程
FILE 文件
REFERENCES 參考資料
INDEX 索引
ALTER 修改(資料庫、表等對象)
SHOW DATABASES 查看資料庫
SUPER 超級許可權
CREATE TEMPORARY TABLES 創建臨時表
LOCK TABLES 鎖表
EXECUTE 執行
REPLICATION SLAVE 從複製許可權
REPLICATION CLIENT 從客戶端複製
CREATE VIEW 創建視圖
SHOW VIEW 查看視圖
CREATE ROUTINE 創建存儲過程
ALTER ROUTINE 修改存儲過程
CREATE USER 創建用戶
EVENT 事件
TRIGGER 觸發器
CREATE TABLESPACE 創建表空間
2.6.企業中grant授權許可權問題說明
2.6.1.企業里主資料庫用戶的授權問題說明

在企業生產環境中,如果是以web形式連接資料庫的用戶,那麼儘量不要授予all許可權,最好是分拆授權,比如,授予select、insert、update、delete等適合web使用的DML語句關鍵字許可權。

grant select,insert,update,delete on oldboy.* to test3@'172.16.1.%' identified by '123456';

#註意:授權用戶許可權時有如下3條安全紅線不要輕易跨過。
1、許可權不能用all,要應用select、insert、update、delete等具體許可權。
2、庫不能用"*.*",而應用"oldboy.*"格式具體到庫。
3、主機不能用%,而應用內網IP段,即'192.168.0.%'格式。

PHP程式語言連接MySQL的代碼:

<?php
  //$link_id=mysql_connect('資料庫主機名','用戶','密碼');
    $link_id=mysql_connect('172.16.1.7')
    if($link_id){
        echo "mysql successful by oldboy !";
    }else{
        echo mysql_error();
    }
?>

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目前一直在用policy做許可權校驗,但是好像組裡需要將返回結果統一,之前用的都是直接繼承AuthorizationHandler然後調用context.Fail(),但是這樣會導致沒辦法自定義返回結果比如{code:403,msg:'未授權',data:null}, 也百度了下https://q.c ...
  • 最近被安排開發文件存儲微服務,要求是能夠通過配置來無縫切換我們公司內部研發的文件存儲系統,FastDFS,MongDb GridFS,阿裡雲OSS,騰訊雲OSS等。根據任務緊急度暫時先完成了通過配置來無縫切換內部文件系統以及FastDFS。至於MongDb GridFS,阿裡雲OSS,騰訊雲OSS等 ...
  • 大部分在 Windows 下的腳本都是使用 bat 或 cmd 寫的,這部分的腳本對我來說可讀性不好。這個可讀性也是很主觀的,對我來說用 C# 寫腳本的可讀性很強,但是換個小伙伴就不是了。在 .NET Core 下的 C# 可以通過 dotnet run 運行代碼起來,此時特別適合用來寫腳本 ...
  • 昨天看群里在討論C 中的string駐留池,炒的火熱,幾輪下來理論一堆堆,但是在證據提供上都比較尷尬。雖然這東西很基礎,但比較好的回答也不是那麼容易,這篇我就以我能力範圍之內跟大家分享一下 一:無處不在的池 開發這麼多年,相信大家對‘池’ 這個概念都耳熟能詳了,連接池,線程池,對象池,還有這裡的駐留 ...
  • 0. 前言 在之前的章節中,大致介紹了C 中的一些基本概念。這篇我們將介紹一下C 的I/O操作,這將也是一個小連續劇。這是第一集,我們先來簡單瞭解一下C 中的I/O框架。 1. 什麼是I/O I/O 的全稱是input/output,翻譯過來就是輸入/輸出。對於一個系統或者電腦來說,鍵盤、U盤、網 ...
  • #include "ioCC2530.h" #define D3 P1_0#define D4 P1_1#define D5 P1_3#define D6 P1_4#define SW1 P1_2 unsigned char count_t = 0; //長定時累計變數unsigned char K ...
  • 一、編寫拆分腳本(splitNginxLog.sh) #!/bin/bash year=`date +%Y` month=`date +%m` day=`date +%d` # 原始日誌路徑 logs_path="/var/log/nginx/sitename.com/" # 日誌備份路徑 logs ...
  • 首先解釋一下 橋接模式:在該模式下,開啟的虛擬機相當於區域網中的一臺物理機,在該虛擬機開啟的服務,區域網的機器可以直接用 虛擬機ip + 埠直接訪問。 NAT模式:就是在宿主機內部的一臺虛機機,公用宿主機的網路。該虛擬機開啟的服務,宿主機可以通過 虛擬機ip + 埠直接訪問,但是區域網的機器無法 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...