MySQL笔记四之表的创建及字段介绍

本文首发于公众号:Hunter后端

原文链接:MySQL笔记四之表的创建及字段介绍

库的下一级单位是表,表再往下是字段,所以这一篇笔记我们先介绍一下表字段,然后再介绍如何创建表的操作

  1. 表字段介绍
  2. 创建表
  3. 查看表信息

1、表字段介绍

这里介绍几种常用的字段类型:

varchar

可变长字符,这个可变针对的是 MySQL 底层对该字段存储的长度是可变的

比如我们给某字段定义 varchar(100),当我们插入数据,给该字段传入 10个字符,或者100个字符都是可以的,MySQL 会根据给定字符串来存储长度

与之对应的是 char 这是定长字符,当我们定义 char(100),我们可以存储 10个字符,也可以存储100 个字符,但不管我们存多少, MySQL 在底层对这个字段都会给出 100 个字符长度存储

varchar 字节可存储范围为 0-65535,但实际上并不能真的存储这么长的字节数

如果字节长度不超过 255,则需要一个字节来存储长度,

如果长度超过255则额外需要两个字节来存储长度

还有一些其他的原因,导致 varchar 的最大存储长度是会小于 65535 的

int

整型,用于储存证书,四个字节,一个字节八位,所以存储的范围 -2 ^ (48 - 1) ~ 2 ^ (48 - 1) - 1,也就是 -2^31 ~ 2^31 - 1

datetime

日期时间,包括年月日时分秒的数据

text

文本字段,可以存储 65535 个字节到 64kb 的数据,记住一点,text 字段是个筐,啥都往里装。

2、创建表

以下是创建一张表的基本语法:

create table if not exists table_name(
 id int not null auto_increment primary key,
 name varchar(100) not null,
 num int default 0
);

在我们进入 MySQL 之后,use 一个 DATABASE 就可以运行上面的创建表的命令。

第一行有一个 if not exists,后面紧跟着将要创建的表名,表示如果不存在该表,则创建

第二行,id int not null 是表示创建的 id 字段不允许为 null,auto_increment 参数表示是自增,primary key 则表示是主键

第三行表示 name 字段为 varchar(100) 字符串类型,且长度最大为 100个字符长度,not null 表示该字段不允许为 null

第四行表示 num 字段为整型数据,且 default 是默认值为 0

3、查看表信息

我们可以通过 DESC 命令来查看一张表的基本信息:

DESC table_name;

大致会显示下面的内容:

+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(100) | NO | | NULL | |
| num | int(11) | YES | | 0 | |
+-------+--------------+------+-----+---------+----------------+

返回的就包含了这张表所有的信息

Field 这列表示的是字段名

Type 表示的是字段类型,比如 int, varchar 等

Null 表示是否允许为 Null 值,No 表示不允许为 Null

Key 表示该字段是否有一些约束信息,比如 主键 PRI,或者 唯一键 UNI

Default 表示该字段的默认值

Extra 这一行是一些额外的信息,比如 auto_increment 自增的属性

可以看到, DESC table_name 命令这条命令之后,将我们创建表的属性都展示了出来。

创建相同表

如果是想创建一张和某表一样表结构的表,可以用下面下面的命令获得创建表的语句:

show create table table_name;

然后就可以获得创建该表的 sql 语句,把创建的表名更改为需要新建的表名运行就可以了。

如果想获取更多相关文章,可扫码关注阅读:

作者:Hunter原文地址:https://segmentfault.com/a/1190000043812002

%s 个评论

要回复文章请先登录注册