MySQL学习(六)

用户管理

--创建用户CREATE USER 用户名 IDENTIFIED BY '密码'
CREATE USER zyw IDENTIFIED BY '123456';

--修改密码(当前用户)
SET PASSWORD = PASSWORD('123456');

--修改密码(指定用户)
SET PASSWORD FOR zyw = PASSWORD('6556456');

--重命名用户名
RENAME USER zyw TO zyw1

--用户授权 ALL PRIVILEGES 全部权限,库,表
--ALL PRIVILEGES 除了给别人授权,其他操作都能执行
GRANT ALL PRIVILEGES ON . TO zyw1

--查询权限
SHOW GRANTS FOR zyw1; --查看指定用户的权限
SHOW GRANTS FOR root@localhost;

--撤销权限 REVOKE 哪些权限,ON 在哪个库撤销(.:哪个库.哪个表),FROM 给谁撤销
REVOKE ALL PRIVILEGES ON . FROM zyw1;

--删除用户 DROP USER 用户名
DROP USER zyw1;

数据库备份

为什么要备份:

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

MySQL数据库备份的方式:

  • 直接拷贝物理文件
  • 使用命令行 mysqldump
    (''')
    -- 导出(备份)
    mysqldump -hlocalhost -uroot -p123456 testdemo student > D:/a.sql;
    mysqldump -h主机名 -u用户名 -p密码 数据库名 [表名1 表名2 ...] > 存放地址/文件名.sql;

-- 导入(转移)
登录mysql情况:source a.sql;
source 备份文件;
未登录: mysql -u用户名 -p密码 库名 < 备份文件;
(''')


规范化数据库设计

当数据库比较复杂时我们需要设计数据库
糟糕的数据库设计:

  • 数据冗余,存储空间浪费
  • 数据更新和插入异常
  • 程序性能差
    良好的数据库:
  • 节省数据的存储空间
  • 能保证数据的完整性
  • 方便进行数据库应用系统的开发
    设计数据库步骤:
  • 收集信息:分析了解用户需求,理解数据库需要完成的任务
  • 标识实体(Entiry):标识数据库需要的关键对象或实体,实体一般是名词
  • 标识每个实体需要存储的详细信息(Attribute)
  • 标识实体之间的关系(Relationship)

三大范式

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

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

第一范式(1st NF)

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

第二范式(2nd NF)

第二范式是在满足第一范式的前提下,要求每个表只能描述一件事件

第三范式(3rd NF)

第三范式是在满足第二范式的前提下,除主键外的其他列都不传递依赖于主键,则满足第三范式
第三范式需要保证数据表中的每一列数据都与主键直接相关,而不是间接相关

规范化和性能的关系

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

JDBC

参考

posted @ 2020-06-24 23:57  Noirz  阅读(156)  评论(0编辑  收藏  举报