MYSQL之DCL(数据库控制语言)和规范
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
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 |