跳到主要内容

任务一 创建数据表

知识点​

1.什么是数据表?创建数据表的语法格式是什么?​

答:数据表是数据库中一个非常重要的对象,是数据的集合,用来存储数据和操作数据的逻辑结构。一个数据库可以包含一张或多张表。创建数据表使用CREATE TABLE语句,语法格式为:

CREATE TABLE [IF NOT EXISTS] <表名> (
字段名1 数据类型 [列级别约束条件],
字段名2 数据类型 [列级别约束条件],
......
) ENGINE=存储引擎类型 DEFAULT CHARSET=字符集类型 COLLATE=检验规则;

2.创建数据表前需要做什么准备?​

答:表是属于某个数据库的,在创建数据表之前,必须先使用USE语句选择指定的数据库为当前数据库,之后才能为该数据库创建表。如果没有选择数据库,系统会显示错误提示"NO database selected"。

3.IF NOT EXISTS在创建表时的作用是什么?​

答:如果数据库中已经存在与要创建的表同名的表,再使用CREATE TABLE创建时系统会给出错误信息。在表名前加上IF NOT EXISTS,只有该表当前不存在时才执行CREATE TABLE操作,避免系统给出错误提示。

4.表名的命名规则有哪些?​

答:(1)表名可以由当前字符集中的任何字母、中文、数字字符组成,还可以包括下划线(_)和美元符号($)。一般不建议使用中文,因为不同字符集对中文字符的编码不同,如果字符集不匹配会出现乱码。 (2)最长为64个字符,但长度受限于所用操作系统限定的长度。 (3)表名应尽可能做到"见名知意",通过数据表名称就可以知道数据表表示的实体集,增强可读性。

5.字段名的命名规则有哪些?​

答:(1)字段名可由中文、英文字母、数字、下划线(_)、#符号及$符号组合而成,实际应用中不建议使用中文作为字段名。 (2)同一个数据表中,不能出现重名字段,但不同数据表中的字段名可以重名。 (3)字段名不能使用MySQL语言中的关键字,如DROP、ALTER、INSERT、CREATE等。

6.定义字段时可以设置哪些属性?各有什么作用?​

答:定义字段的语法格式为:

字段名 数据类型 [NOT NULL | NULL] [DEFAULT 默认值] [AUTO_INCREMENT] [UNIQUE KEY]
[PRIMARY KEY] [COMMENT 注释名称] [REFERENCE 外键] [INDEX 索引名]
[CHARACTER SET 字符集] [COLLATE 校验规则]

各属性说明: (1)NOT NULL或NULL:表示字段是否可以为NULL值。NULL不同于零、空白或长度为零的字符串,NULL值意味着此值是未知的或不可用的。 (2)DEFAULT:指定字段的默认值。 (3)AUTO_INCREMENT:设置自增属性,只有整数类型才能设置该属性。 (4)UNIQUE KEY:对字段指定唯一性约束,该字段不能有重复值,但可以有一个NULL值。 (5)PRIMARY KEY:对字段指定主键约束,该字段不能有重复值,也不能为NULL。 (6)COMMENT:对字段指定注释名称,即给字段起一个别名。 (7)REFERENCE:指定外键约束。 (8)INDEX:为表的相关字段设置索引。

7.创建表时如何设置存储引擎、字符集和校验规则?​

答:在CREATE TABLE语句的最后使用以下格式设置:

ENGINE=存储引擎类型 DEFAULT CHARSET=字符集类型 COLLATE=检验规则;

存储引擎是MySQL中数据存储在文件或内存中时采用的存储技术,可以根据需要为每个数据表选择不同的存储引擎。MySQL支持的存储引擎有MyISAM、InnoDB、MEMORY等。

字符集是一种编码方案,定义可以存储的字符的集合以及编码规则。每种字符集都包含几种校验规则,每种字符集也有默认的校验规则,设置时注意字符集类型和校验规则的对应关系,不要发生冲突。

8.创建表时字段之间如何分隔?​

答:创建表时必须定义表的每一个字段的名称和数据类型。如果包含多个字段,字段之间要用逗号隔开,但最后一项定义的后面不能加逗号。

9.如何使用Navicat创建数据表?​

答:(1)在Navicat中双击连接对象,展示数据库列表。 (2)双击要使用的数据库打开它。 (3)在"表"上单击鼠标右键,选择"新建表"命令(或单击工具栏上的"新建表"按钮),打开表结构设计窗口。 (4)在表结构设计窗口中设置字段名、数据类型及长度、是否允许为空值、默认值、自动递增、主键及注释等。 (5)通过工具栏上的"添加字段"按钮添加新字段,还可以进行"插入字段"或"删除字段"操作。 (6)完成所有字段设置后,单击工具栏上的"保存"按钮,在弹出的"表名"对话框中输入表名,单击"确定"按钮完成创建。

10.在MySQL中NULL值表示什么?​

答:NULL值意味着"没有值"或"未知值",NULL不同于零、空白或长度为零的字符串。在MySQL中,0或NULL都意味着假,其余值都意味着真。可以给字段设置是否允许为空值(NOT NULL或NULL)。