etableMSSQL数据库中创建表的操作经验

1. 简介

在MS SQL Server中,创建表是一个基础性的操作。本文将介绍如何在MS SQL Server中创建表格。

2. 创建表的基础语法

创建表格需要使用 CREATE TABLE 关键字,后跟表的名称和要创建的列。 在创建表之前,请确保在SQL Server中创建了相应的数据库。

下面是创建表的基础语法:

CREATE TABLE table_name (

column1 datatype1,

column2 datatype2,

column3 datatype3,

....

);

其中:

table_name : 表名,指定新创建的表的名称。

column1, column2, column3, ... : 表中的列名。

datatype1, datatype2, datatype3, ... : 每列的数据类型。

2.1 示例

示例代码:

CREATE TABLE employee (

employee_id INT,

name VARCHAR(50),

age INT,

salary MONEY

);

这个例子中创建了一个名为 employee 的表格,表格中包含4个列分别表示员工ID、姓名、年龄和工资。

3. 指定列属性

在创建表时,我们必须为每一列指定数据类型。 数据类型指定了该列可以包含的数据类型范围。 MS SQL Server提供了许多内置数据类型,例如整数、字符、日期等。

3.1 整型数据类型

整型值仅为整数值(正数、负数或零)。 整数数据类型的典型示例包括 INT 和 BIGINT 。

3.1.1 INT

INT 整数数据类型表示32位带符号整数。 此类型允许存储 -2,147,483,648 到 2,147,483,647 范围内的值。如果您需要存储比此范围更大的整数,考虑使用 BIGINT 数据类型。

3.1.2 BIGINT

BIGINT 整数数据类型表示64位带符号整数。 此类型允许存储 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 范围内的值。

3.2 字符型数据类型

字符型数据类型用于存储文本值,例如名字或地址。 常用字符类型包括 VARCHAR 和 CHAR。

3.2.1 VARCHAR

VARCHAR 数据类型用于存储可变长度字符串,其中最大字符串长度为 8,000 个字符。

3.2.2 CHAR

CHAR 数据类型用于存储定长字符串,其中字符串长度为 1 到 8,000 个字符。 如果添加至 CHAR 列的值短于列的定义长度,则 SQL Server 将在该值的右侧填充空格,直到该列列长度。

3.3 日期和时间型数据类型

日期和时间型数据类型用于存储与日期和/或时间相关的值。 常用日期和时间类型包括 DATETIME 和 SMALLDATETIME。

3.3.1 DATETIME

DATETIME 数据类型用于存储日期和时间值。 允许存储的日期范围为 1753 年 1 月 1 日到 9999 年 12 月 31 日,时间范围为 00:00:00 到 23:59:59。

3.3.2 SMALLDATETIME

SMALLDATETIME 数据类型同样用于存储日期和时间值。 只允许存储日期范围在1900年1月1日到2079年6月6日之间的值。 时间的精度为分钟。

4. 主键

主键是指用于唯一标识每个表中行的列或一组列。 在MS SQL Server中,主键由一个或多个列组成,用于确保在表中每一行都具有唯一的标识符。 主键列不能包含 NULL 值并且必须唯一。 如果指定了多个列,则这仅在这些列的值的组合方面唯一。

4.1 创建主键

可以在创建表时为表定义主键,也可以在创建表后单独为表添加主键。

以下示例展示了如何在创建表时同时创建主键:

CREATE TABLE employee (

employee_id INT PRIMARY KEY,

name VARCHAR(50),

age INT,

salary MONEY

);

这个例子中,在创建表时为 employee_id 行指定了主键,否则我们可以使用以下命令为表添加主键:

ALTER TABLE employee

ADD CONSTRAINT pk_employee PRIMARY KEY (employee_id);

4.2 自动增量列

在某些情况下,您可能希望在每次插入新行时为主键列使用自动增量值。 对于这种情况,可以使用自动增量列,该列由增量数值填充。

您可以通过在创建表的列定义中使用 IDENTITY 属性来为该列启用自动增量。

4.3 示例

以下示例展示如何为表定义自动增量列作为主键:

CREATE TABLE employee (

employee_id INT IDENTITY(1,1) PRIMARY KEY,

name VARCHAR(50),

age INT,

salary MONEY

);

在这个例子中,我们添加了一个自动增量列 employee_id。 该列被定义为主键并且将使用默认增量值(1, 1)。此表创建后,每次插入新行时将自动为该列填充增量值。

5. NULL 和 NOT NULL 约束

如果在创建表时使用 NULL 约束,则该列未设置任何值。 如果没有明确列为 NOT NULL,则将自动设置 NULL 约束。

以下示例演示如何在创建表时明确为NOT NULL :

CREATE TABLE employee (

employee_id INT NOT NULL,

name VARCHAR(50) NOT NULL,

age INT,

salary MONEY

);

在这个例子中,我们明确地将 employee_id 和 name 列定义为 NOT NULL。 如果试图添加一个不包含 employee_id 或 name 值的行,则 SQL Server将拒绝该行的添加并返回错误。

6. 索引

索引是一种帮助搜索引擎实现更快数据检索的数据结构。 在MS SQL Server中,索引由通过某一列的值来关联到表中的特定行的记录。 默认情况下,主键列自动获得聚集索引。 如果未指定聚集索引,则将创建一个称为堆的未排序表。

6.1 示例

CREATE INDEX idx_employee_name

ON employee (name);

此示例为employee表的 name 列创建了一个非聚集索引。

7. 总结

在本文中,我们学习了如何在MS SQL Server中创建表。 我们介绍了创建表的基础语法,如何指定列属性,如何定义主键,如何使用自动增量列并创建索引。

数据库标签