初识MySql语句/库的操作/补充内容:MySql创建用户授权
一.初识MySql语句
1.操作文件夹(库)
(1).增
create database db1 charset utf8;
(2).查
# 查看当前创建的数据库
show create database db1;
# 查看所有的数据库
show databases;
(3).改
alter database db1 charset gbk;
(4).删
drop database db1;
2.操作文件(表)
use db1; #切换文件夹 select database(); #查看当前所在文件夹
(1).增
create table t1(id int, name char);
(2).查
#查看当前的这张t1表
show create table t1;
#查看所有的表
show tables;
#查看表的详细信息
desc t1;
(3).改
#modify修改的意思 alter table t1 modify name char(6); #改变name为大写的Name alter table t1 change name Name char(7);
(4).删
#删除表
drop table t1;
3.操作文件内容(记录)
(1).增
#插入一条数据,规定id,name数据类型 insert t1(id,name) values(1,"wahaha"),(2,"shuangww"),(3,"ruwawa");
(2).查
select id from db1.t1; select id,name from db1.t1; select * from db1.t1;
(3).改
update db1.t1 set name = "jianhao"; update db1.t1 set name = "gailun" where id = 2;
(4).删
delete from t1; delete from t1 where id = 2;
二.库的操作
1.系统数据库
执行如下命令,查看系统库
show databases;
information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息,列信息,权限信息,字符信息等
performance_schema: MySQL 5.5开始新增一个数据库:主要用于手机数据库服务器性能参数,记录处理查询请求时发生的各种事件,锁等现象
MySql: 授权库,主要存储系统用户的权限信息
test: MySql数据库系统自动创建的测试数据库
2.创建数据库
(1).求救语法:
help create database;
(2).创建数据库语法
create database 数据库名 charset utf8;
(3).数据库命名规则:
可以由字母,数字,下划线,@, #, $ 区分大小写 唯一性 不能使用关键字如: create select 不能单独使用数字 最长128位 # 基本上跟python或者JS的命名规则一样
3.数据库相关操作
#查看数据库 show databases; #查看当前库 show create database db1; #查看所在的库 select database(); #选择数据库 use 数据库名; #删除数据库 drop database 数据库名; #修改数据库 alter database db1 charset utf8;
4.了解内容
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型: 1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER 2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT 3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
View Code
三.补充内容:MySql创建用户和授权
1.权限管理
我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作,包括select, update, delete, update, grant等操作,那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限),那么这时就需要我们来简单了解一下:
- 如何创建用户和密码
- 给当前的用户授权
- 移除当前用户的权限
如果你想创建一个新的用户,则需要一下操作:
(1).进入到MySql数据库下
mysql> use mysql
Database changed
(2).对新用户增删改查
1.创建用户 #指定IP:192.118.1.1的wahaha用户登录 create user "wahaha"@"192.118.1.1" identified by "123"; #指定IP:192.118.1.开头的wahaha用户登录 create user "wahaha"@"192.118.1.%" identified by "123"; #指定任何IP的wahaha用户登录 create user "wahaha"@"%" identified by "123"; 2.删除用户 drop user "用户名"@"IP地址"; 3.修改用户 rename user "用户名"@"IP地址" to "新用户名"@"IP地址"; 4.修改密码 set password for "用户名"@"IP地址" = Password("新密码");
5.查看用户
SELECT DISTINCT CONCAT(\'User: \'\'\',user,\'\'\'@\'\'\',host,\'\'\';\') AS query FROM mysql.user;
(3).对当前的用户授权管理
#查看权限 show grants for "用户"@"IP地址"; #授权wahaha用户仅对db1.t1文件有查询,插入和更新的操作 grant select, insert, update on db1.t1 to "wahaha"@"%"; #表示右所有的权限,除了grant这个命令,这个命令是root独有的,wahaha用户对db1下的t1文件有任意操作 grant all privileges on db1.t1 to "wahaha"@"%"; #wahaha用户对db1数据库中的文件执行任何操作 grant all privileges on db1.* to "wahaha"@"%"; #wahaha用户对所有数据库中文件有任何操作 grant all privileges on *.* to "wahaha"@"%"; #取消权限 #取消wahaha用户对db1的t1文件的任意操作 revoke all on db1.t1 from "wahaha"@"%"; #取消来自远程服务器的wahaha用户对数据库db1的所有表的权限 revoke all on db1.*from "wahaha"@"%"; #取消来自远程服务器的wahaha用户所有数据库的所有的表的权限 revoke all privileges on *.* from "wahaha"@"%";
PS: 在公司中,一般都是DBA工程师来做这些授权工作,给你一个用户名和密码,你来连接就可以了
(4).MySql备份命令行操作
#备份: 数据表结构+数据 mysqdump -uroot db1 > db1.sql -p #备份:数据表结构 mysqdump -uroot -d db1 > db1.sql -p #导入现有的数据到某个数据库 #1.先创建一个新的数据库 create database db10; #2.将已有的数据库文件导入到db10数据库中 mysqdump -uroot -d db10 < db1.sql -p