MySQL数据库管理与开发实践教程 (清华电脑学堂)
上QQ阅读APP看书,第一时间看更新

3.4 创建数据表

数据表是存储数据的,数据有多种类型,而一个数据库表可以存储多种不同类型的数据,因此其创建方式将比数据库复杂。本节介绍数据表的创建,分别使用MySQL Workbench和SQL语句。

3.4.1 MySQL Workbench创建数据表

数据表是在数据库的基础上创建的,因此在创建时需要指出数据表所在的数据库。在MySQL Workbench中创建表,步骤如下。

(1)展开该表所在的数据库,在Tables节点处右击,选择Create Table命令,如图3-9所示。

图3-9 创建数据表

(2)在选择了Create Table命令后可打开表的创建界面,如图3-10所示。

图3-10 创建表

如图3-10中向表添加了三个列(字段),对其说明如下。

①如图3-10所示,上部是表的基本信息,有表的名称、所属数据库、数据库类型、存储引擎和表的说明这几个信息,除了所属数据库以外都是可编辑状态。若此时修改数据库信息,如数据库的校对规则,那么在执行数据表创建的同时,将修改数据库信息。

②中间的表格是数据表的列,向表中添加新的列,并为其设置数据类型和约束(将在第4章中详细介绍)。

③图3-10中为表添加了三个字段,分别是有着主键约束和非空约束的id列,该列是整型数据;长度可变的字符串类型的、没有任何约束的name列;浮点类型、没有任何约束的price列。

④下面部分是对应列的具体属性,如图3-10中是现实的price列的属性,包括列的名称、数据类型、校对规则、默认值、说明和约束信息。

(3)如图3-10所示,在设置好表的字段信息之后,单击Apply按钮执行数据表创建;接着在弹出对话框中单击Apply按钮确认执行SQL语句;最后在弹出的对话框中单击Finish按钮完成数据表的创建。

3.4.2 使用数据表模板

由图3-9可以看出,Create Table Like选项下有MySQL中定义好的数据表模板,可直接在需要的数据库中添加类似的数据表。

数据表模板定义了常用的表的字段,如会员信息表可以用在商场、超市、KTV、各个品牌服装店等。那么若实现定义好会员信息表模板,之后这些地方在创建数据库并需要创建会员信息表时,可直接根据模板添加会员信息表。

本节需要介绍的有两点知识:数据表模板的创建和使用数据表模板创建数据表。

1.数据表模板的创建

如图3-9所示,Create Table Like选项下有三个系统模板和一个Edit Templates选项,选择Edit Templates选项即可创建数据表模板,如范例1所示。

【范例1】

选择Edit Templates选项进入如图3-11所示的界面。界面右上角有New Templates按钮,单击在左侧列表中可新建表模板。双击新建的表模板名称,可对模板进行重命名,如图3-11所示是将新建的模板命名为student。

图3-11 创建数据表模板

界面的下方是对表模板字段的定义,其字段的添加方式与创建表时字段的添加方式一样,可参考图3-10来添加模板表中的字段,如图3-11所示。

图3-11中向表中添加了5个字段,单击Close按钮完成数据表模板的创建。接着回到主页面,随意展开一个数据库节点,右击Tables节点,如图3-12所示,可以看到刚才新建的模板已经可以使用。

图3-12 找出新建模板

2.数据表模板的使用

范例1创建了学生信息表的模板,这里在数据库shop中创建该模板的表,步骤如下。

(1)首先展开shop数据库节点,选择Create Table Like|student命令进入如图3-13所示的界面。

图3-13 使用学生信息表模板

(2)如图3-13所示,范例1创建的学生信息表模板中的字段,都在图3-13中被列举出来,省去了不少的步骤。接下来对表的定义与创建表时的步骤一样,可参考3.4.1节,这里不再详细说明。

3.4.3 SQL语句创建数据表

使用SQL语句创建数据表,需要指出表所在的数据库、表的名称,列举出表中每个字段的字段名、字段的数据类型、是否为空、字段约束等,语法如下:

USE 数据库名称; CREATE TABLE 表的名称(字段1的名称 字段1的类型 字段1的约束,字段2的名称 字段2的类型 字段2的约束…);

CREATE TABLE数据库名称.表的名称(字段1的名称 字段1的类型 字段1的约束,字段2的名称 字段2的类型 字段2的约束…);

上述第一条语句中,首先打开指定的数据库,接下来在该数据库下创建表。表的名称后面是小括号,括号内定义表的字段。每个字段的名称、类型和约束之间使用空格隔开,而两个字段之间使用逗号(,)隔开。

上述第二条语句中,直接创建指定数据库下的表,数据库与表名称之间使用圆点(.)隔开。

如上述在shop数据库中创建new_table表,代码如下。

CREATE TABLE 'shop'.'new_table' (
      'id' INT NOT NULL,
      'name' VARCHAR(45) NULL,
      'price' FLOAT NULL,
      PRIMARY KEY ('id'));