MySQL常用管理SQL语句
目录
- 前言
- DDL
- DCL
- DML
- 1.DDL语句之管理数据库
- 1.1.创建数据库
- 1.2.显示数据库
- 1.3.切换数据库
- 1.4.查看数据库包含的表信息
- 1.4.1.切换到数据库里面去查看表信息
- 1.4.2.在库外面查看库里的表信息
- 1.5.删除数据库
- 2.DDL&&DCL语句之管理用户
- 2.1.查看当前数据库的用户列表
- 2.2.创建数据库用户
- 2.3.删除数据库用户
- 2.4.授权数据库用户
- 2.4.1.创建test3用户,对test库具备所有权限,允许从localhost主机登录管理数据库,密码是123456。
- 2.4.2.授权与root同等地位的system用户权限。
- 2.5.授权的权限列表
- 2.6.企业中grant授权权限问题说明
- 2.6.1.企业里主数据库用户的授权问题说明
前言
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的代码:
<?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();
}
?>
以上是 MySQL常用管理SQL语句 的全部内容, 来源链接: utcz.com/z/516039.html