管理维护MySQL的SQL语句有哪些_MySQL常用管理SQL语句
前言
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 testG #查看建庫語句
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的代碼:
//$link_id=mysql_connect('數據庫主機名','用戶','密碼');
$link_id=mysql_connect('172.16.1.7')
if($link_id){
echo "mysql successful by oldboy !";
}else{
echo mysql_error();
}
?>
內容來源于網絡如有侵權請私信刪除
總結
以上是生活随笔為你收集整理的管理维护MySQL的SQL语句有哪些_MySQL常用管理SQL语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python模拟ajax请求_短信炸弹—
- 下一篇: MySQL innosetup_使用In