在 database 的介绍中,记录了 database 的创建以及删除,但是还只是第一步,这一节,记录下关于 table 的相关信息。
首先还是先进入数据库,使用上一节中创建的 test 数据库,查看相关表的信息:
use test;
show tables;
如果是新建立的数据库,可以看到是没有 table 数据表的返回的。
所以我们要创建表,这一节主要介绍字段的相关信息以及表的创建 。
1. 字段信息
如果是接触过其它的计算机语言,可以知道字符的类型一般会有 字符串、数字等等,而在数据库里的字段类型,也会包括以上这些,。
但在这里先介绍三种常用的,因为如果不是特殊需要,比如说,长文本之类,长整型啊用于指定长度的,但这三种对于刚刚接触 MySQL 的人来说已经够使用了,所以就不多说其它的来迷糊了。
这个是字段的类型,就是说,每张表的每个字段指定了类型以后,就会储存这种类型的数据:
- 字符
varchar,用 varchar 这个关键字来指定某个字段的类型为字符。 - 整型
int,用 int 来指定某个字段的类型为整数。 - 时间
datetime,用这个关键字来指定某个字段的类型为时间,这里注意一点, datetime 包括 date 和 time ,是日期和时间,一般的在调用中使用的格式是 ‘年-月-日 时:分:秒’,比如’2019-01-16 23:59:59’.
以上就是今天要介绍的三种常用的字段的类型,接下来,在创建表的过程中需要指定它们如何使用。
2、创建 table
为了简化使用过程,如下是我一般在创建一张表时候的使用方法:
create table table_name(
id in not null auto_increment primary key,
name varchar(45),
number int
) ENGINE=InnoDB;
在第二行中,有几个参数需要解释一下:
首先说 primary key, 这是主键的意思,每张表都必须选择一个字段,作为这张表每条记录的唯一标识,也就是说,这个参数必须是唯一的,一旦指定,就不能有重复的值。
我一般使用的 id 这个参数作为主键,而要确保这个参数是唯一的,怎么办呢?
这就涉及到另一个参数 auto_increment。
字面意思是自动增加,事实也确是如此,在我们插入数据的时候,不用 insert(插入数据的方法)id 这个字段,表就会根据其中的数据自动往下增加,这就保证了主键的唯一性。
再看看 name 这个字段的指定类型,用到的是 varchar(45),表示这是一个最多输入 45 个字符的长度。
number 这个字段使用的是 int,表示这个字段输入的数据只能是整数,当然 int 不止这个一个,还有表示其它长度的 tinyint, bigint 之类的,这里不多说,用到的时候自然会知道。
最后面还有个尾巴,表示储存的时候使用的 MySQL 引擎,这个暂时也可以不用了解, 一般我是没有加上的。
接下来,我们可以创建一张表,用来储存我的书籍信息,首先创建一个叫做 book 的表:
CREATE TABLE book(
id int not null AUTO_INCREMENT PRIMARY KEY,
book_name varchar(45),
author varchar(20)
)
注意:
1)MySQL 保留字段不区分大小写
可以看到在上述创建表的过程中, 一些参数我是用的大写,这就是要注意的一点,对于 MySQL 的保留字段,是不区分大小写的,所以可以用大写也可以使用小写。
推荐使用大写,用于区分命令与你自己输入的数据。
(但我一般比较懒,都是用的小写,这是坏习惯,但我不想改。。。)
2)不要使用保留字段作为 table 的字段名
如果这样做了,会引起什么样的后果呢,在后续我们进行查看表的数据使用 SELECT 的时候,会报错。
但是如果已经这样做了并且存入了很多数据怎么怎么办呢?
可以使用表的别名,这一点后面讲到了可以再说。
3、查看表的结构
现在我们已经把表建立起来了, 如果我们想查看这张表的结构信息,比如说,每个字段都指定的是什么类型,最大的能输入的长度是多少,怎么办呢?
使用命令 DESC,是 describe 的简写,比如我们已经创建了 book 这张表,现在要查看这张表的结构,就可以输入以下命令:
DESC book;
这就是这一节要介绍的三点:字段、创建 table 、查看 table 的结构。
表已经建立起来了,下一节介绍如何向表里插入数据。