1-4.表的创建

孤人 提交于 2019-12-20 04:51:28

 

前面提到,在创建表之前,一定要先创建用来存储表的数据库。运行 CREATE DATABASE 语句就可以在 RDBMS 上创建数据库了。语法:CREATE DATABASE <数据库名称>;   例我们要创建一个名字为 shop 的数据库,语法:CREATE DATABASE shop;

此外,数据库名称、表名以及列名都要使用半角字符(英文字母、数 字、符号)

 

表的创建(CREATE TABLE语句)

CREATE TABLE <表名>

(<列名1> <数据类型> <该列所需约束>,

<列名2> <数据类型> <该列所需约束>,

<列名3> <数据类型> <该列所需约束>,

<列名4> <数据类型> <该列所需约束>,

.

.

.

<该表的约束1>, <该表的约束2>,……);

 


例如我们要创建下面这个图表

代码如下:

 

 我们只能使用半角英文字母、数字、下划线(_)作为数据库、表和 列的名称  。例如,不能将 product_id 写成 product-id,因为标 准 SQL 并不允许使用连字符作为列名等名称。$、#、? 这样的符号同样 不能作为名称使用。

 

数据类型的指定

Product 表所包含的列,定义在 CREATE TABLE Product( ) 的括号中。列名右边的 INTEGER 或者 CHAR 等关键字,是用来声明该 列的数据类型的,所有的列都必须指定数据类型。

四种基本的数据类型:

 INTEGER型

用来指定存储整数的列的数据类型(数字型),不能存储小数。

CHAR型

CHAR 是 CHARACTER(字符)的缩写,是用来指定存储字符串的列 的数据类型(字符型)。可以像 CHAR(10) 或者 CHAR(200) 这样,在 括号中指定该列可以存储的字符串的长度(最大长度)。字符串超出最大 长度的部分是无法输入到该列中的。

字符串以定长字符串  的形式存储在被指定为 CHAR 型的列中。所谓 定长字符串,就是当列中存储的字符串长度达不到最大长度的时候,使用半 角空格进行补足。例如,我们向 CHAR(8) 类型的列中输入 'abc'的时候, 会以 'abc      '(abc 后面有 5 个半角空格)的形式保存起来。

VARCHAR型

同 CHAR 类型一样,VARCHAR 型也是用来指定存储字符串的列的 数据类型(字符串类型),也可以通过括号内的数字来指定字符串的长度(最 大长度)。但该类型的列是以可变长字符串  的形式来保存字符串的。定 长字符串在字符数未达到最大长度时会用半角空格补足,但可变长字符串 不同,即使字符数未达到最大长度,也不会用半角空格补足。例如,我们 向 VARCHAR(8) 类型的列中输入字符串 'abc' 的时候,保存的就是字 符串 'abc'。

DATE型

用来指定存储日期(年月日)的列的数据类型(日期型)。

 

约束的设置

约束是除了数据类型之外,对列中存储的数据进行限制或者追加条件 的功能。Product 表中设置了两种约束。

数据类型的右侧设置了 NOT NULL 约束。NULL 是代表空白(无 记录)的关键字 。在 NULL 之前加上了表示否定的 NOT,就是给该列 设置了不能输入空白,也就是必须输入数据的约束(如果什么都不输入 就会出错)。

这样一来,Product 表的 product_id(商品编号)列、product_ name(商品名称)列和 product_type(商品种类)列就都成了必须 输入的项目。

另外,在创建 Product 表的 CREATE TABLE 语句的后面,还有 下面这样的记述。

这是用来给 product_id 列设置主键约束的。所谓键,就是在指 定特定数据时使用的列的组合。键种类多样,主键(primary key)就是可 以特定一行数据的列 。也就是说,如果把 product_id 列指定为主键, 就可以通过该列取出特定的商品数据了。

反之,如果向 product_id 列中输入了重复数据,就无法取出唯一的特定数据了(因为无法确定唯一的一行数据)。这样就可以为某一列 设置主键约束了。

 

自增长策略(AUTO_INCREMENT)

 

有时候我们向表中插入数据时,可能表的记录很多(几万条),但是插入的时候有主键约束,如果与之前插入的主键约束重复,则会插入失败,为了避免这种情况,可以在创建表的时候在主键约束后面加一个AUTO_INCREMENT。

它可以在主键列自动生成数据,依次生成(如:1、2、3.....),而且插入主键列的时候可以直接输入“NULL”,这都是没有任何影响的。

 

唯一键(UNIQUE)

 

 这个键可以控制值的唯一性,就说设置了这个约束后,插入这一列的数据的时候,插入的值是不可以重复的,但是插入NULL的时候是可以重复的。

 

外界约束(FOREIGN KEY (列名) REFERENCES (表名(列名)))

 

 有时候我们向一个表中插入数据的时候,很有可能和另外一张表有联系,这样也就容易产生错误,为了是两张表建立对应性,避免输入错误数据,我们此时就需要对两个表之间有联系的列设置外键约束了。

但是需要注意的是,设置外界约束的两个列必须是各自表中的主键列。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!