DCL(数据库控制语言):

数据控制语言 用户权限控制 grant、revoke

权限管理

用户管理

-- 创建用户 create user 用户名 identified by '密码'
    create user xh identitied by 'a';
    -- 修改密码
    set password = password('123321');
    -- 修改密码(修改指定用户密码)
    set password from xh = password('a');
    -- 重命名
    rename user 原来名 to 新名字;
    -- 用户授权
    -- all privileges 除了给别人授权,其他都能干
    grant all privileges on *.* to xh;
    -- 查询权限
    show grant for xh ; -- 查看指定用户的权限
    show grant for root@loaclhost
    -- root用户权限:Grant all privileges on *.* to 'root'@'localhost' with grant option 
    Grant all privileges on *.* to 'root'@'localhost' with grant option 
    -- 撤销权限 revoke 哪些权限,在哪个库撤销,给谁撤销
    revoke all privileges on *.* from xh;
    -- 删除用户
    drop user xh;

MYSQL备份

为啥要备份:

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

MYSQL数据库备份的方式:

  • 直接拷贝物理文件
  • 在可视化编辑器中手动导出
  • 使用命令行导出 mysqldump 命令行导出。
# 导出数据库,windows或者linux导出
# -p 后密码 ,数据库名 ,表名 >D:/文件名.sql
mysqldump -hlocalhost -uroot -pa test test1 >D:/a.sql
# 导入数据库
mysql -uroot -pa 库名 < 备份文件

use test;

source d:/文件名.sql;

数据库规范

为啥需要设计?

当数据库比较复杂的时候,我们需要设计.

一个糟糕的数据库设计:

  • 存在数据沉余,浪费空间
  • 数据插入和删除都会比较麻烦,异常【屏蔽使用物理外键】
  • 程序的性能很差

良好的数据库设计:

  • 节省内存空间。
  • 保证数据库的完整性。
  • 方便我们进行开发。

软件开发中,关于数据库设计

  • 分析需求:分析业务和需要处理的数据库的需求。
  • 概要设计:设计关系图E-R图。

用个人博客:

  • 收集用户信息:
  • 用户表(用户登录注册,用户信息,写博客,创建分类)
  • 分类表(类型编号,类型名,类型图片)
  • 文章表(文章id,文章名,文章类型,文章内容,作者)
  • 自定义表(…)

三大范式

为什么需要数据规范化

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

三大范式

第一范式:保证原子性,也就是每一列都不可再分。

第二范式:必须先满足第一范式,然后才能判断是否满足第二范式,确保每张表只干一件事

第三范式:确保满足第二范式的基础下,确保每张表每一列的数据都和主键直接相关,而不是间接相关。

规范性和性能问题

关联查询的表不得超过三张表

  • 在考虑商业化的需求和目标(成本和用户体验!)数据库的性能更加重要
  • 在规范性能问题的时候,需要适当考虑一下规范性。
  • 故意给某些表增加一些冗余的字段(从多表查询中变为单表查询,问就是增快查询数据呗)
  • 故意增加一些计算列(从大数据量降为小数据量:索引)。


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysql数据库