MySQL知识总结

来源:互联网 发布:热血传奇源码 编辑:程序博客网 时间:2024/06/14 21:26

结构化查询语言SQL分类

1、数据定义语言(DDL)

       CREATE、ALTER、DROP

2、数据操纵语言(DML)

增加(INSERT)、删除(DELETE)、更新(UPDATE)、查询(SELECT)

3、数据控制语言(DCL)

分配(grant)、回收(revoke)、拒绝(deny)


MySQL下载步骤:

1、登录MySQL官方网站—-www.mysql.com
2、进入download模块
3、选择社区版—–community
4、选择MySQL Community Server下的download链接
5、找到官网推荐的最新版本
6、选择图形化安装包—-MySQL install msi下载

安装MySQL步骤:

1、如之前本机上已安装MySQL,必须先卸载并保证卸载干净
2、点击安装文件
3、选择接受许可开始安装过程
4、选择安装模式为自定义安装
5、进入安装过程
6、完成安装,进入配置向导


MySQL常用数据类型:

整数:

tinyint(1个字节):-128~+127
smallint(2个字节):-32768~32767
int(4个字节)
bigint(8个字节)

定点数:

decimal(p,s),其中p表示总位数,s表示小数位数。定点数所占的字节由p决定,为p+2.

浮点数:

float(p,s):4个字节
double(p,s):8个字节
定点数的小数点固定,数据精度得到保证,但是表示范围较小。浮点数小数点不固定,数据精度不如定点数,但表示范围较大。

日期/时间:

date:年/月/日
time:-839时59分59秒~+839时59分59秒
datetime:日期+时间

文本:

char:固定长度的文本,不够会自动填充
varchar:按实际长度分配字节数
text:存放大文本(无限长),不能作为查询的条件

二进制:bit


数据表的设计及ER图

数据表设计的基本步骤:

  1. 需求分析阶段:分析客户的业务和数据处理需求
  2. 概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整
  3. 详细设计阶段:将E-R图转换为多张表,进行逻辑设计,并应用数据库设计的三大范式进行审核
  4. 代码编写阶段:选择具体数据库进行物理实现,并编写代码实现前端运用。

举例:模拟QQ游戏大厅项目

需求分析:系统需要记录哪些信息?
数据表:游戏表、玩家表、分数表
每个表的字段:
游戏表:编号、名称、类型、难度
玩家表:QQ号、昵称、性别、生日、手机号
分数表:游戏编号、玩家QQ、得分

给表建立数据模型

E-R(Entity-Relationship)实体关系图:

这里写图片描述
QQ游戏大厅项目E-R图:
这里写图片描述

使用范式检查数据表设计合理性

什么是范式

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式成递次规范,越高的范式数据库冗余越小。

第一范式(1st NF)

如果每列都是不可再分的最小数据单元(也称最小的原子单元),则满足第一范式
第一范式的目标是确保每列的原子性(不可分割)
例如:
这里写图片描述
这里由于第一个表中的地址可以再分,所以不满足第一范式。

第二范式(2nd NF)

如果一个关系(表)满足1NF,并且除了主键以外的其他列,都完全依赖于该主键,则满足第二范式。
通俗地说,第二范式就是要求每个表只描述一件事情(表中的所有列都描述的是主键所代表的那个实体)
例如:
这里写图片描述
这里因为胜者得分与游戏无关,而与游戏难度相关,所以不应该出现在游戏表中。

第三范式(3rd NF)

如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式。
换句话说,第三范式要求表中不存在冗余字段。
这里写图片描述
这里因为玩家昵称字段可以只出现在玩家表中,再出现在分数表中就造成冗余

原创粉丝点击