跳至内容
表与数据类型

表与数据类型

表是 SQL 中最重要的数据对象,用来存储和操作数据。这篇讲表的结构与基本特性、常用数据类型,以及用 T-SQL 创建、修改、删除表。

表的概念

  • 表结构:组成表的各列名称及数据类型。
  • 记录:表中的每一行称为一个记录(一个实体)。
  • 字段:组成记录的各个数据项称为字段(列)。

表的基本特性:

  • 创建表时必须指定表名、列名以及数据类型;同一个表内列名必须唯一,不同表的列名可以相同。
  • 表应该有标识列:每个表应有一个能唯一标识一条记录的关键字。
  • 一个表只存储一种类型实体的数据。
  • 表中不应有重复的列或值。

数据类型

数据类型是数据的一种属性,表示数据所表示信息的类型。

整数类型

类型字节精度范围
bigint819-2^63 ~ 2^63-1
int(integer)410-2^31 ~ 2^31-1
smallint25-2^15 ~ 2^15-1
tinyint130 ~ 255

日期时间类型

类型说明
datetime日期 + 时间,精度约 3.33 毫秒
smalldatetime较小范围的日期时间,精度到分钟
date仅日期(SQL Server 2008+ 新增)
time仅时间(SQL Server 2008+ 新增)
timestamp行版本标识(自动生成的二进制数,非真正的日期时间)

字符类型

类型说明
char(n)固定长度,以空格填补多余长度空间
varchar(n)可变长度,不以空格填补多余空间
nchar(n)Unicode 固定长度
nvarchar(n)Unicode 可变长度
n 前缀的类型(nchar/nvarchar)使用 Unicode 国际标准码:双字节模式,固定每个字符 16 bit,可正确存储多语言文字。需要存中文等多语言时优先选用。

创建表

创建带 IDENTITY(标识自增列)的表:

USE 数据库名
CREATE TABLE 表名
(
    字段1 数据类型 IDENTITY(标识种子, 递增量) NOT NULL,
    字段2 数据类型,
    字段3 数据类型,
    ...
    字段n 数据类型
)
GO

IDENTITY(标识种子, 递增量):例如 IDENTITY(1,1) 表示从 1 开始、每次加 1。一个表的列数 n 最大可达 1024。

修改表

添加一列:

USE 数据库名
ALTER TABLE 表名
ADD 字段名 数据类型
GO

删除一列:

USE 数据库名
ALTER TABLE 表名
DROP COLUMN 字段名
GO

修改列的数据类型 / 长度:

-- 修改字符类型长度
ALTER TABLE 表名
ALTER COLUMN 字段名 CHAR(修改后的长度)
GO

-- 改变字段的数据类型
ALTER TABLE 表名
ALTER COLUMN 字段名 修改后的数据类型
GO

删除表

DROP TABLE 表名
DROP 与 DELETE 的区别DROP 删除对象本身(连表结构一起删),DELETE 只删除对象内容(保留表结构)。
最后更新于