表如何用SQL Server建立表

SQL Server建立表

在SQL Server中,要建立一个新的表,可以通过使用CREATE TABLE语句。CREATE TABLE语句用于定义表和表中的列,以及任何约束和索引。

语法

下面是使用CREATE TABLE语句创建新表的一般语法:

CREATE TABLE table_name (

column1 datatype constraint,

column2 datatype constraint,

column3 datatype constraint,

.....

columnN datatype constraint

)

其中,table_name是将要创建的表的名称; column1,column2,…,columnN是表中定义的每个列的名称;datatype是每个列的数据类型,constraint是对每个列定义的约束。

示例

例如,下面的语句创建一个名为"employees"的新表,该表包含四个列:EmployeeID、LastName、FirstName和BirthDate。

CREATE TABLE employees (

EmployeeID INT PRIMARY KEY,

LastName VARCHAR(50) NOT NULL,

FirstName VARCHAR(50) NOT NULL,

BirthDate DATE

)

在这个例子中,EmployeeID列是表的主键;LastName和FirstName列不允许为空值。

数据类型

在建立表的过程中,您需要为每个列指定数据类型,以指定该列中将要存储的数据类型。

下面是SQL Server支持的一些基本数据类型:

整数类型

数据类型 描述
INT 整数(从 -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647))。
BIGINT 大整数(从 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807))。
SMALLINT 短整数(从 -2^15 (-32,768) 到 2^15-1 (32,767))。
TINYINT 迷你整数(从 0 到 255)。

浮点类型

数据类型 描述
FLOAT 浮点数(从 -1.79E+308 到 1.79E+308)。
REAL 实数(从 -3.40E +38 到 3.40E +38)。

日期/时间类型

数据类型 描述
DATE 日期(YYYY-MM-DD)。
DATETIME 日期时间(YYYY-MM-DD HH:MI:SS)。
SMALLDATETIME 日期时间(YYYY-MM-DD HH:MI:SS)。
TIME 时间(HH:MI:SS)。
DATETIME2 日期时间(YYYY-MM-DD HH:MI:SS.NNNNNNN)。

字符串类型

数据类型 描述
CHAR 定长字符串(1 到 8,000 字符)。
VARCHAR 变长字符串(1 到 8,000 字符)。
TEXT 文本字符串(1 到 2^31-1 (2,147,483,647) 字符)。
NCHAR Unicode 定长字符串(1 到 4,000 字符)。
NVARCHAR Unicode 变长字符串(1 到 4,000 字符)。
NTEXT Unicode 文本字符串(1 到 2^30-1 (1,073,741,823) 字符)。

二进制类型

数据类型 描述
BINARY 固定长度的二进制数据(1 到 8000 字符)。
VARBINARY 可变长度的二进制数据 (1 到 8000 字符)。
IMAGE 二进制数据(1 到 2^31-1 (2,147,483,647) 字节)。

约束

约束是指对建立表的规定。在建立表时,您可以设置约束来限制如何向表中添加和修改数据,从而确保表中的数据完整性。

下面是一些SQL Server支持的可选约束:

主键约束

此约束强制是唯一的标识表中每行的单个列或列组合。

CREATE TABLE students (

StudentID INT PRIMARY KEY,

FirstName VARCHAR(50) NOT NULL,

LastName VARCHAR(50) NOT NULL

)

在这个例子中,StudentID列是表的主键,这意味着每个值都是唯一的,而且不可为空值。

外键约束

此约束指定一个或多个列是另一个表的主键的引用。

CREATE TABLE orders (

OrderID INT PRIMARY KEY,

CustomerID INT,

OrderDate DATE,

FOREIGN KEY (CustomerID) REFERENCES customers(CustomerID)

)

在这个例子中,“orders”表包含对“customers”表的外键引用,因为“CustomerID”列在“customers”表中是主键,而在“orders”表中是外键。

唯一约束

此约束确保表中的每个值都是唯一的。

CREATE TABLE users (

UserID INT PRIMARY KEY,

UserName VARCHAR(50) NOT NULL,

Email VARCHAR(50) UNIQUE

)

在此例中,Email列是一个唯一约束,确保每个值都是唯一的。

其他约束还包括:

- NOT NULL

- CHECK

- DEFAULT

索引

索引是一种协助快速查找表中数据的方法。在建立表时,可以为其定义索引,使其在执行查询时更快。

下面是一些SQL Server支持的可选索引:

聚集索引

此索引定义了一个表的排序规则和物理存储方式。

CREATE CLUSTERED INDEX idx_students 

ON students (StudentID)

此示例中,“idx_students”是一个聚集索引,按照“StudentID”列排列,“students”表区域物理排序。

非聚集索引

此索引定义表中单个列或列组合的排序规则和物理存储方式。

CREATE NONCLUSTERED INDEX idx_orders 

ON orders (CustomerID)

在此示例中,“idx_orders”是非聚集索引,按照“CustomerID”列排列,“orders”表的区域不需要物理排序。

总结

在SQL Server中,您可以使用CREATE TABLE语句来建立新表。通过定义列和约束,表会限制如何向其中添加和修改数据,从而确保了数据的完整性。此外,可以为表定义索引来协助快速查找表中的数据。

数据库标签