表与数据类型
表是 SQL 中最重要的数据对象,用来存储和操作数据。这篇讲表的结构与基本特性、常用数据类型,以及用 T-SQL 创建、修改、删除表。
表的概念
- 表结构:组成表的各列名称及数据类型。
- 记录:表中的每一行称为一个记录(一个实体)。
- 字段:组成记录的各个数据项称为字段(列)。
表的基本特性:
- 创建表时必须指定表名、列名以及数据类型;同一个表内列名必须唯一,不同表的列名可以相同。
- 表应该有标识列:每个表应有一个能唯一标识一条记录的关键字。
- 一个表只存储一种类型实体的数据。
- 表中不应有重复的列或值。
数据类型
数据类型是数据的一种属性,表示数据所表示信息的类型。
整数类型
| 类型 | 字节 | 精度 | 范围 |
|---|---|---|---|
| bigint | 8 | 19 | -2^63 ~ 2^63-1 |
| int(integer) | 4 | 10 | -2^31 ~ 2^31-1 |
| smallint | 2 | 5 | -2^15 ~ 2^15-1 |
| tinyint | 1 | 3 | 0 ~ 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 只删除对象内容(保留表结构)。最后更新于