使用SQL Server创建表

一、CREATE TABLE语句简介:

表用于在数据库中存储数据。 表在数据库和模式中唯一命名。 每个表包含一个或多个列。
每列都有一个相关的数据类型,用于定义它可以存储的数据类型,例如:数字,字符串和日期。
要创建新表,请使用 CREATE TABLE 语句。
CREATE TABLE 语句的语法:

CREATE TABLE [database_name.][schema_name.]table_name ( 
	pk_column data_type PRIMARY KEY, 
	column_1 data_type NOT NULL, 
	column_2 data_type, 
	...,
	table_constraints 
);

解析:
(1)指定创建表的数据库的名称。database_name 必须是现有数据库的名称。如果未指定,则database_name 默认为当前数据库。
(2)schema_name 指定新表所属的模式。
(3)table_name 指定新表的名称
(4)data_type 指定列的数据类型
(5)每个表应该有一个由一列或多列组成的主键。通常,首先列出主键列,然后列出其他列。如果主键只包含一列,则可以在列名后使用 PRIMARY KEY 关键字。 如果主键由两列或更多列组成,则需要将 PRIMARY KEY 约束指定为表约束。 每个列都在语句中的名称后面指定了关联的数据类型。 列可能具有一个或多个列约束,例如: NOT NULL 和 UNIQUE 。
(6)表可能在表约束部分中指定了一些约束,例如:FOREIGN KEY,PRIMARY KEY,UNIQUE和CHECK 。

二、SQL Server CREATE TABLE示例

用SQL Server语句创建一个名为 visits 的新表来跟踪客户的店内访问:

CREATE TABLE sales.visits ( 
	visit_id INT PRIMARY KEY IDENTITY (1, 1),
	first_name VARCHAR (50) NOT NULL,
	last_name VARCHAR (50) NOT NULL,
	visited_at DATETIME, 
	phone VARCHAR(20), 
	store_id INT NOT NULL,
	FOREIGN KEY (store_id) REFERENCES sales.stores (store_id)
);

示例中的解析:
(1)因为没有明确指定创建表的数据库名称,所以在 bb_stores 数据库中创建了 visits 表。
但是已经明确指定模式,因此,在 sales 模式中创建了 visits 表。
(2)visit_id 列是表的主键列。 IDENTITY(1,1) 指示SQL Server自动生成从 1 开始的列的整 数,并为每个新行递增 1 。
(3)first_name 和 last_name 列是 VARCHAR 类型的字符串列。这些列最多可以存储 50 个字符。
(4)visited_at 是 DATETIME 数据类型的列,记录客户访问商店的日期和时间。
(5)phone 列是一个接受 NULL 的 VARCHAR 字符串列。
(6)store_id 列存储标识客户访问商店的标识号。
(7)表定义的末尾是 FOREIGN KEY 约束。此外键确保visit表的store_id列中的值必须在stores 表的store_id 列中可用。可在后续教程中了解有关 FOREIGN KEY 约束的更多信息。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐