第 6 创建数据库与数据表

34 阅读6分钟

1. 创建数据库

使用之前,我们先来创建数据库。打开客户端软件,并连接上去。选择,新增数据库

image.png

第一个项是数据库的名字,我们设置为clwy_api_development,这里的名字和我们项目名称对应,后面的development表示它是在开发环境中使用的数据库。

接着是Database Encoding,也就是编码的选择,这里默认使用了utf8mb4。非常的好,utf8是一种能非常好的支持世界各国语言的编码。后面的mb4可以让数据库正确的存储emoji表情符号,所以我们就用这个。

最后是Database Collation,这是排序规则的选择。它的意思是,对文本数据进行比较和排序时,该如何处理顺序和规则。这里选择utf8mb4_general_ci,它的意思是:不区分大小写,不区分重音符号。

image.png

2. 创建数据表

现在数据库已经有了,一定要确认一下,我们现在所在的数据库是clwy_api_development

image.png

接着就要来创建数据表了。大家可以这样理解,数据库就是一个Excel文件。在一个Excel文件里,我们可以创建很多的表。有的表要记录用户信息,有的表要记录订单信息,还有的表要记录文章信息,等等等等。

现在就来创建一个文章表吧。点击加号,表的名字,我们叫做Articles

注意一下,

  • 首字母大写:这里的首字母需要大写,如果你命名成小写了,将来部署到Linux服务器会报错的。
  • 复数形式:最后的s,这个复数形式,也是必须的。如果你的命名掉了s,在后面我们使用Node.js查询数据的时候,它也会无法找到这张表的。

image.png

3. 常见的数据类型

创建好表后,我们还需要创建一些字段。字段,大家就理解成表格里面的栏目,例如我们这里是一个文章表,那么最起码的,需要:文章的标题、文章的内容两个字段。

默认已经出现了一个叫做id的字段,这是用来记录每一篇文章的编号的。

里面有一些默认已经选中的东西,我们需要做一个认识,

这里有个,INT,它表示当前字段的类型。数据库的类型有很多,我们将它们分为三大类,一起来简单了解一下

3.1. 整数类型

类型字节大小有符号范围 (Signed)无符号范围 (Unsigned)
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32768 ~ 327670 ~ 65535
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215
INT/INTEGER4-2147483648 ~21474836470 ~ 4294967295
BIGINT8-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551615

这里有各种各样的整数,当然最常用的就是INT了。另外这里又分为有符号无符号,其实很简单,符号就是负号。这里的无符号也就是说,没有负数

3.2. 字符串

类型说明使用场景
CHAR固定长度,小型固定长度的数据身份证号、手机号、电话、密码
VARCHAR可变长度,小型数据姓名、地址、品牌、型号、用户的评论、文章的标题
TEXT可变长度,字符个数大于 4000存储文章正文
LONGTEXT可变长度,超大型文本数据存储超大型文本数据

字符串也有很多种,常用的是charvarchartext。这里还有个char需要注意,它和varchar有一定区别。

  • charchar是固定长度的,例如你选择char,并设定成 10 位长度。哪怕当你只存入 2 位长度的字符,那么依然会占据 10 位的空间。
  • varchar:而varchar,指定的是最大长度,而不是固定长度。它的实际存储大小,取决于存储的内容的长度,所以一些不固定长度的内容,例如用户的姓名,文章的标题这些长度不固定的东西,就非常适合了。
  • 性能:另外在性能上,char的速度更快一些,缺点是char的占用空间也更大一些。

3.3. 时间类型

类型字节大小示例
DATE4'2020-01-01'
TIME3'12:29:59'
DATETIME8'2020-01-01 12:29:59'
YEAR1'2017'
TIMESTAMP4'1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC

一般最常见的就是datetime了,因为日期和具体时间都记录的清清楚楚了。

4. 主键

接着大家看这里,有个key,里面写的PRI。它是主键的意思。一般,我们给每个表,都设置一个id,并把它设置成primary key。它是用来唯一标识当前这行数据的,大家就简单的理解为,用来给每条数据加了个编号。通过编号,你就能找到这条独一无二的数据了。

主键,还会搭配自增(auto_increment)来使用。

自增的意思就是说,当你在数据库增加第一条数据,它的 id,就自动会设定成:1。再加入第二条数据,id 会自动设定成:2。以此类推,一直自己增加下去。

这里的还有个Allow Null,是用来设定是否是空值的。不勾选它,就是不允许空,必须有东西存在。

5. 增加标题和内容

介绍就到这里了。我们这里的文章表,需要增加标题和内容。依照我们所学的知识,分别增加,titlecontent。还要将title设置为not null,表示标题不允许是空的,内容字段就不管了。

字段类型长度Allow Null
titlevarchar255false
contenttexttrue

image.png

好了,历经千辛万苦,咱们的第一张表终于顺利的建完了。

6. Navicat 的操作

使用 Navicat 的同学,还是跟着课程讲义里面的图片来操作,有问题来辅导群里叫我。

Navicat 要在本机上,点右键,选择新建数据库

image.png

然后点击,新建表

image.png

然后依次添加idtitlecontent字段,

image.png

最后点击保存,输入表名:Articles

7. 总结一下

  • 开发后端,实际上就是使用代码操作数据库
  • 数据库的编码选择utf8mb4,字符集选择utf8mb4_general_ci
  • 数据库里面有数据表数据表里又有字段
  • 所有的表,最好都要有主键,也就是id字段
  • 最常用的数据类型
类型含义说明
int整数需要设定长度
decimal小数金额常用,需要设定长度。如 decimal(10, 2) 表示共存 10 位数,其中小数占 2 位
char、varchar字符串文字类的常用,需要设定长度。例如身份证号、文章的标题使用。
text文本存储大文本,无需设定长度。一般会用文字很多的时候,例如文章的正文部分。
date、time、datetime日期记录时间