MySQL初级之【3.数据库用户管理、备份与设计】


前言

本文为MySQL数据库用户管理、备份与设计相关知识,Java全栈学习路线可参考:,内含最全Java全栈学习知识清单~ 本文上接:,

一、数据库用户管理

1.新建用户

2.查看用户信息

use mysql;
select User,authentication_string,Host from user;
    创建后的用户保存在 mysql 数据库的 user 表里

3.重命名用户

rename user 原名字@localhost to 新名字@localhost;

4.删除用户

drop user 用户名@localhost;

5.修改用户密码

    修改当前登录用户密码
set password = password(123456);
    修改其他用户密码
set password for 用户名@localhost = password(654321);

6.数据库用户授权

授予权限

数据库授权

    查看用户权限
show grants for 用户名@localhost;
    指定用户可以查看哪个数据库/表,别的数据库无权访问
#用户yong只有test库下所有表的查询权限
grant select on test.* to 用户名@localhost;

远程登录授权

grant all on *.* to 用户名@% identified by 123456;

撤销权限

revoke select on test.* from 用户名@localhost;

二、数据库备份

1.数据库备份必要性

    保证重要数据不丢失 数据转移

2.MySQL数据库备份方法

    mysqldump备份工具
-- 导出
- 导出一张表
  mysqldump -u用户名 -p密码 库名 表名 > 文件名(D:/a.sql)
- 导出多张表
  mysqldump -u用户名 -p密码 库名 表1 表2 表3 > 文件名(D:/a.sql)
- 导出所有表
  mysqldump -u用户名 -p密码 库名 > 文件名(D:/a.sql)
- 导出一个库 
  mysqldump -u用户名 -p密码 -B 库名 > 文件名(D:/a.sql)
  
-- 导入
- 在登录mysql的情况下:
  source  备份文件
- 在不登录的情况下
  mysql -u用户名 -p密码 库名 < 备份文件
  
--恢复
- List item

   mysql-u用户名 -p密码 库名 < 路径/文件名
    用数据库管理工具,如SQLyog 直接拷贝数据库文件和相关配置文件

三、数据库表设计

1.为什么需要数据规范化

不合规范的表设计会导致的问题:

    信息重复 更新异常 插入异常 无法正确表示信息 删除异常 丢失有效信息

2.三大范式通俗定义

第一范式 (1st NF)

    第一范式的目标是确保每列的原子性,如果每列都是不可再分的最小数据单元,则满足第一范式

第二范式(2nd NF)

    第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF) 第二范式要求每个表只描述一件事情

第三范式(3rd NF)

    如果一个关系满足第二范式,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式 第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关

3.规范化和性能的关系

    为满足某种商业目标 , 数据库性能比规范化数据库更重要 在数据规范化的同时 , 要综合考虑数据库的性能 通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间 通过在给定的表中插入计算列,以方便查询

后记

Java全栈学习路线可参考:,内含最全Java全栈学习知识清单~

经验分享 程序员 微信小程序 职场和发展