MySQL(八)权限管理, mysql备份; (九)数据库设计规范(三大范式)

8-权限管理

8.1, 用户管理

-- 创建用户
CREATE USER xbd_zc IDENTIFIED by '123456';

-- 修改密码 当前用户密码
SET PASSWORD = PASSWORD('654321')
-- 修改指定用户
SET PASSWORD FOR xbd_zc = PASSWORD('654321');

-- 新版本修改密码
ALTER USER 'xbd_zc'@'%' IDENTIFIED BY '123456';

-- 重命名   旧        新
RENAME USER xbd_zc TO xbd_fc

-- 用户授权 all PRIVILEGES 全部权限, 库.表
-- ALL PRIVILEGES 不能给其他账号授权
GRANT ALL PRIVILEGES ON *.* TO xbd_zc

-- 查询权限
SHOW GRANTS FOR xbd_zc
SHOW GRANTS FOR 'root'@'%' 

-- 撤销权限 REVOKE
REVOKE ALL PRIVILEGES ON *.* FROM xbd_zc

-- 删除用户
DROP USER xbd_zc

8.2, MySQL备份

MySQL备份方式:

  • 拷贝data目录
  • 使用可视化工具导出, 如 Navicat
  • 使用命令行 dump
可视化工具导出

image-20220226174234886

使用命令行
# 导出表                                              库名  表1 表2 ...
root@b1a0297cc402:/# mysqldump -hlocalhost -uroot -p school student > /home/b.sql
Enter password: 
# 导入
mysql -uroot -p123456
mysql> use school;
mysql> source /home/c.sql;

9-规范数据库设计

9.1, 为什么要设计数据库

数据库比较复杂的时候, 就需要设计数据库了

数据库设计步骤(个人博客):
  • 收集信息, 分析需求
    • 用户表( 用户登录注销, 个人信息)
    • 分类表( 文章分类, 创建信息)
    • 文章表 ( 文章信息, 标题)
    • 评论表 (评论信息, 评论人, 父级评论人)
    • 自定义表 (系统信息, 某个关键的字, 或者一些主字段) key:value
    • 关注表, 中间表( 关注人ID, 被关注人ID)
  • 标识实体
    • 把需求落实到每个字段
  • 表关系
    • 写博客: user — blog
    • 创建分类: user–category
    • 关注: user
    • 评论: user - user - blog

9.2,三大范式

第一范式(1NF)

原子性: 保证每一列不可再分

比如说学校信息: 可以拆分成,: 学历, 年级

第二范式(2NF)

满足第一范式的前提下:

第二范式:消除各个非主属性的部分函数依赖

第三范式(3NF)

满足第一第二范式的前提下:

第三范式需要确保数据表的每一列数据都和主键直接相关, 而不能间接相关

规范性和性能问题

关联查询的表不超过三张表(阿里)

  • 考虑商业化的需求和目标时, 数据库的性能更加重要, 需考虑用户体验, 成本问题
  • 在考虑性能问题时, 需适当考虑规范性
  • 故意给某些表增加一些冗余的字段 (从多表查询变为单表)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值