MySQL03-权限管理和变量

MySQL03-权限管理和变量

1.MySQL常用命令-用户管理

  1. 创建用户。
create user test identified by '123456'; -- 创建test用户,密码为123456。
-- 创建一个test01用户,主机是localhost,密码使用mysql_native_password插件加密
create user `test01`@`localhost` identified with mysql_native_password by '123456';
  1. 修改用户名。
rename user test to test01; -- 修改test用户的用户名为test01
  1. 修改用户密码。
set password  = 'root'; -- 修改当前用户的密码为root,保存的密码会对root进行加密。
set password for test01 = '123456'; -- 修改test01用户的密码为123456
  1. 删除用户。
drop user test01 -- 删除test01用户
  1. 查看用户。
select user(); -- 查看当前登录用户。
select * from mysql.user where User = 'root'; -- 查看root用户的信息

2.MySQL常用命令-权限管理

  1. 添加权限。
-- 为test01@localhost用户添加所用的权限。
-- all privileges,所有权限;*.*,所有库的的所有表,库.表
-- all privileges,会分配所有权限;但是不会分配 grant权限,grant给其他用户分配权限的权限。
grant all privileges on *.* to test01@localhost;

-- 给test02@localhost用户分配test数据库中所有表的查询权限。
grant select on test.* to test02@localhost;
  1. 查看用户的权限。
show grants for test01@localhost; -- 查看test01@localhost用户的权限
  1. 撤销权限。
revoke all privileges on *.* from test01@localhost; -- 撤销test01@localhost用户的所有权限
  1. 刷新权限。
flush privileges;

3.MySQL常用命令-数据库备份和恢复

  1. 数据备份。
-- 备份test02数据库,通过gzip压缩后,备份到a.sql中。
mysqldump -hlocalhost -P3306 -uroot -p123456 -B test02 | gzip > d:/a.sql
mysql -h 127.0.0.1 -u root -P 3306 -p'123456' -e "select * from user where id > 10" > /tmp/user.sql
  1. 数据恢复。
    1. 没有登录的导入。需要先有test02数据库,然后执行mysql -uroot -p123456 test02 < d:/a.sql
    2. 登录之后的导入。先use test02切换数据库,然后执行source d:\a.sql

4.数据库设计-三大范式

  1. 第一范式确保列的原子性,即每一列都是一个最小的单元,不能在进行拆分。
  2. 第二范式确保一张表只保存一种信息,不能保存其他无关的信息。同时第二范式,在第一范式的基础上建立起来的,即满足第二范式必须先满足第一范式。
  3. 第三范式,其他列不能传递依赖于主键列,即表中的列应该直接依赖于主键列,而不是间接依赖于主键列。
  4. 在某些情况中可能会为了提高查询而违反三大范式。如给表中插入冗余的字段来,来使得原来的多表查询变为单表查询。
  5. 一般情况下为了保证性能,联合查询的表不能超过3张。

5.变量-变量的分类

  1. 系统变量。系统变量分为全局变量和会话变量。
    1. 全局变量。全局变量一旦修改,在整个系统的运行过程中都有效,系统重启,全局变量恢复默认值。
    2. 会话变量。针对当前连接会话有效。
  2. 自定义变量。自定义变量分为用户变量和局部变量。
    1. 用户变量。用户变量的作用域为当前会话。
    2. 局部变量。局部变量一般使用在函数或者存储过程中。

6.变量-变量的使用

  1. 用户变量的声明和初始化。
set @a01='aa01';
set @a02:='aa02';
select @a03:='aa03';
  1. 用户变量的修改。
set @a01='aa01';
set @a02:='aa02';
select @a03:='aa03';
	
-- 将tb_student表的查询结果输出到@a05
select count(*) into @a05 from tb_student;
  1. 变量的查询。
select @a01;
  1. 局部变量的声明和初始化。
declare n int;
declare m int default 1;
  1. 局部变量的赋值。
-- 局部变量的修改和用户变量一样,但是不需要使用@符号。
set a01='aa01';
set a02:='aa02';
select a03:='aa03';
select count(*) into a05 from tb_student;
  1. 局部变量的使用。
select a01;

7.MySQL常用命令-操作变量

  1. 变量名的查询。
show global variables; -- 查看所有系统变量
show session variables; -- 查看所有会话变量
		
show global variables like '%char%'; -- 模糊查询系统变量。
  1. 变量值的查询。
select @@global.character_set_client;

select @@autocommit; -- 查询事务自动提交是否开启
  1. 修改变量的值。
set global character_set_client = utf8mb4;
set @@global.character_set_client = utf8;
set @@global.autocommit=0;

set autocommit = 0; -- 推荐使用
posted @ 2021-10-31 14:31  行稳致远方  阅读(37)  评论(0)    收藏  举报