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全栈学习知识清单~