SQL:创建表

创建表查询可用于在现有数据库中创建新表。
在创建新表之前,重要的是要考虑表布局以及需要使用哪些数据类型。

对于 MySQL,具有唯一索引的简单创建表查询如下所示:

create table blog_posts (
  title varchar(100) not null,
  description varchar(255) not null,
  url varchar(255) not null,
  ptime timestamp default current_timestamp,
  mtime timestamp default current_timestamp,
  unique (url)
);

此查询将创建一个表,该表会在创建新教程 文章时自动插入当前时间戳。
布局将如下所示:

mysql> describe blog_posts;
+-------------+--------------+------+-----+-------------------+-------------------+
| Field       | Type         | Null | Key | Default           | Extra             |
+-------------+--------------+------+-----+-------------------+-------------------+
| title       | varchar(100) | NO   |     | NULL              |                   |
| description | varchar(255) | NO   |     | NULL              |                   |
| url         | varchar(255) | NO   | PRI | NULL              |                   |
| ptime       | timestamp    | YES  |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
| mtime       | timestamp    | YES  |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+-------------+--------------+------+-----+-------------------+-------------------+
5 rows in set (0.01 sec)

这张表为我们构建自己的教程 CMS 奠定了良好的基础;我们可以使用更改表查询轻松地根据自己的需要调整它。

选择数据类型

一个字段只会占用它包含的数据的大小,而不是列的最大大小。

为表中的每一列选择合适的数据类型是构建数据库表的重要部分;对于许多目的,varchar 和 text 就足够了。
但是,我们还应该了解其他数据类型,并注意其中的一些差异。

下面是一些字符串数据类型:

varchar0-255字节(+1字节存储数据)或者255-65535字节(+2字节存储数据)
text65535字节
mediumtext6.777.215字节 - (16 MB)
longtext4.294.967.295字节 - (4 GB)

varchar 和 text 都是字符串数据类型。
varchar 类型用于可变长度的数据。
两者的区别主要是text类型是定长的(65535字节),而varchar的长度可以根据需要进行调整。

长度为0-255的varchar占用1个字节+数据大小; 255-65535 占用 2 个字节 + 数据大小。

如果最大行大于 65535 字节,我们可能需要改用中文本或者长文本。

日期:2020-06-02 22:17:34 来源:oir作者:oir