像程序员一样使用MySQL
上QQ阅读APP看书,第一时间看更新

2.2.1 创建第一张表

有以下两种常用的方法可以创建表:

  • 使用MySQL客户端创建表。
  • 使用SQL语句创建表。

1.使用MySQL客户端(Workbench / DataGrip)创建表

01 在客户端单击zoo数据库,若是Workbench,则右击zoo数据库,在弹出的快捷菜单中选择【Create Table...】命令;若是DataGrip,则右击zoo数据库,在弹出的快捷菜单中依次选择【New】|【Table】命令。

02 在弹出来的页面中填写表名、字段名称、字段类型等信息,如图2-7和图2-8所示。

03 所有信息填写完成后,在Workbench中单击【Apply】按钮,在DataGrip中单击【Execute】按钮。

不同的字段(Column)用于存储不同的信息,比如name字段用于存储动物名称,age字段用于存储动物年龄,description字段用于存储动物详细介绍,create_time字段用于存储数据创建时间,update_time字段用于存储数据更新时间,is_delete字段用于存储数据是否被删除(0表示未被删除,1表示已被删除)。

图2-7 使用Workbench创建动物表animal

图2-8 使用DataGrip创建动物表animal

字段还有类型,例如int表示整型,varchar表示字符串类型,datetime表示日期时间类型等。

最后是id字段,id字段是主键且不能为空(勾选【Not Null】复选框表示该字段必填)。所谓主键就是用来唯一标识一行的字段。字段类型、主键等内容在后续章节会详细介绍。

2.使用SQL语句创建表

使用SQL语句创建动物表animal,具体的SQL语句如下:

     -- 注释,zoo是动物园数据库
     create table 'zoo'.'animal' (
       `id` int not null comment '主键',
       `name` varchar(50) not null comment '动物名称',
       `age` smallint not null comment '年龄',
       `description` text null comment '详细介绍',
       `create_time` datetime not null comment '创建时间',
       `update_time` datetime not null comment '更新时间',
       `is_delete` tinyint not null comment '是否删除,1 表示已删除,0 表示未删除',
       primary key (`id`));

使用“create table `zoo`.`animal`”表示在zoo数据库下创建animal表。SQL语句创建表与第一种方式一样,需要指定字段类型、主键、字段备注等信息。

这里简单分析其中一个字段,其他字段类似:

     -- `id`字段分析
     `id` int not null comment '主键',

说明:

  • id:字段名称。
  • int:字段类型,int表示整数。
  • not null:表示id字段不能为空。
  • comment:字段备注信息。
  • primary key (`id`):表示id是主键。

注意 每个字段定义完成后,需要用英文逗号(,)作为结尾,否则SQL执行后会提示异常。create语句有非常详细的语法,语法一旦错误,MySQL就无法让SQL执行通过。关于create语句详细的语法内容,读者可以参考MySQL官方文档(https://dev.mysql.com/doc/refman/8.0/en/create-table.html)。