会签 数据库表设计_MySQL数据库的设计和表创建

首先,我们使用Navicat Premium编辑器创建一个用户,同时设置用户权限,MySQL默认有一个root用户,拥有最高权限

下面,我们先创建一个用户:

①CREATE USER  'aaa'@'localhost'  IDENTIFIED  BY  'aaa';

这里我们通过CREAT USER 创建了一个叫  'aaa'@'localhost' 的用户。

②GRANT ALL ON *.* TO 'jredu'@'localhost';

再通过GRANT给我们创建的用户分配权限,这里*.*表示用户可以处理数据库中的所有表。

创建完用户我们开始创建一个自己的数据库

CREATE DATABASE IF NOT EXISTS myDB;

同样的我们使用CREAT方法来创建数据库,这里为了不重复创建,我们使用IF NOT EXISTS写法。

最后是使用我们建好的数据库

USE  myDB

到这里我们通过Navicat Premium创建了一个简单的数据库

下面我们来看下MySQL中常见的几种数据类型

MySQL中主要有字符型、整形、浮点型和日期型四种数据类型

一、字符型:

① CHAR(N):固定N个长度的字符串,如果长度不够会自动空格补齐。N的范围,0~255

② VARCHAR():存储可变长度的字符串。 最常用的。

③ TEXT:存储可变长度的字符串。常用于发布文章等大段内容

④ TINYTEXT:小文本 0~2^8-1 * 10;

⑤ MEDIUMTEXT:0~2^24-1 * 10^3;

⑥ LONGTEXT:0~2^32-1 * 10^4;

⑦ enum('男','女');

二、整形:

① TINYINT: 无符号0~2^8-1 有符号 -2^7~2^7-1;

② SMALLINT: 无符号0~2^16-1 有符号 -2^15~2^15-1;

③ MEDIUMINT: 无符号0~2^24-1 有符号 -2^23~2^23-1;

④ INT:无符号0~2^32-1 有符号 -2^31~2^31-1; 最常用。

⑤ BIGINT :无符号0~2^64-1 有符号 -2^63~2^63-1;

三、浮点型:

① FLOAT:可以精确到小数点后七位有效数字:

② DOUBLE: 可以精确到小数点后十五到十六位数字

四、日期型:

几乎不用(由于时间存储使用字符串或时间戳,所有数据库中几乎不用日期类型)

① DATE:存储日期和时间数据

② `TIMESTAMP: 比date更精确

数据库设计的三大范式

第一范式(1NF)数据表中的每一列必须是不可拆分的最小单元,也就是确保每一列的原子性。

列如 userinfo: 山东省烟台市 11111111

可拆分为: userAds: 山东省烟台市 userTel 1111111

第二范式(2nd NF):满足1NF后,要求表中的所有列都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说,一个表只描述一件事情

例如:订单表只能描述订单相关的信息,所以所有字段都必须与订单ID相关

产品表只描述与产品相关的信息,所以所有的字段都必须与产品ID相关

因此:一张表中的产品信息与订单信息不能同时存在

第三范式(3NF)满足2NF后要求:表中的所有字段只与主键相关,而不与其他的列相关,表中的每一列只能依赖于主键

总结:

【第二范式与第三范式的本质区别】

在于有没有分出两张表,第二范式是说一张表中包含了多种不同实体的属性,那么必须要分出多张表,第三范式要求已经分出了多张表,那么一张

表中只能有另一张表的ID,不能有其他的任何信息,其他的信息一律用主键在另一表查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值