SQL常用数据类型定义
数据类型定义了存储在列中的值的类型。
SQL常用数据类型作用
数据库表中的每一列都需要有一个名称和数据类型。
SQL 开发人员必须在创建 SQL 表时决定表中的每个列将要存储的数据的类型。数据类型是一个标签,是便于 SQL 了解每个列期望存储什么类型的数据的指南,它也标识了 SQL 如何与存储的数据进行交互。
常用数据类型
数据类型 | 描述 |
CHARACTER(n) | 字符/字符串,固定长度 n。 |
VARCHAR(n) 或 CHARACTER VARYING(n) |
字符/字符串,可变长度,最大长度 n。 |
BINARY(n) | 二进制串,固定长度 n。 |
BOOLEAN | 存储 TRUE 或 FALSE 值 |
VARBINARY(n) 或 BINARY VARYING(n) |
二进制串,可变长度。最大长度 n。 |
INTEGER(p) | 整数值(没有小数点)。精度 p。 |
SMALLINT | 整数值(没有小数点)。精度 5。 |
INTEGER | 整数值(没有小数点)。精度 10。 |
BIGINT | 整数值(没有小数点)。精度 19。 |
DECIMAL(p,s) | 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数小数点后有 2 位数的数字。 |
NUMERIC(p,s) | 精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同) |
FLOAT(p) | 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。 |
REAL | 近似数值,尾数精度 7。 |
FLOAT | 近似数值,尾数精度 16。 |
DOUBLE PRECISION | 近似数值,尾数精度 16。 |
DATE | 存储年、月、日的值。 |
TIME | 存储小时、分、秒的值。 |
TIMESTAMP | 存储年、月、日、小时、分、秒的值。 |
INTERVAL | 由一些整数字段组成,代表一段时间,取决于区间的类型。 |
ARRAY | 元素的固定长度的有序集合 |
MULTISET | 元素的可变长度的无序集合 |
XML | 存储 XML 数据 |
这些数据类型通常在定义表结构,定义变量时使用,具有固定的写法。我们可以建几个表给大家做个示例:
示例脚本
--创建客户表Customers CREATE TABLE [dbo].[Customers]( [客户ID] [INT] IDENTITY(1,1) NOT NULL, [姓名] [VARCHAR](10) NULL, [地址] [VARCHAR](50) NULL, [城市] [VARCHAR](20) NULL, [邮编] [CHAR](6) NULL, [省份] [VARCHAR](20) NULL ) ; --创建订单表Orders CREATE TABLE [dbo].[Orders]( [订单ID] [INT] IDENTITY(1,1) NOT NULL, [客户ID] [INT] NULL, [员工ID] [INT] NULL, [订单日期] [DATETIME] NULL, [发货ID] [INT] NULL ) ; --创建产品表Products CREATE TABLE [dbo].[Products]( [产品ID] [INT] IDENTITY(1,1) NOT NULL, [名称] [VARCHAR](20) NULL, [供应商ID] [INT] NULL, [目录ID] [INT] NULL, [规格] [VARCHAR](50) NULL, [价格] [NUMERIC](18, 2) NULL ) ; --创建供应商表Suppliers CREATE TABLE [dbo].[Suppliers]( [供应商ID] [INT] IDENTITY(1,1) NOT NULL, [供应商名称] [VARCHAR](20) NULL, [地址] [VARCHAR](50) NULL, [城市] [VARCHAR](20) NULL, [邮编] [CHAR](6) NULL, [省份] [VARCHAR](20) NULL ) ;
如上是演示数据库的建表语句,其中用的较多的就是INT,CHAR,VARCHAR,DATETIME,NUMERIC等数据类型,上面的中括号([ ])可以省略不写.
注释:在不同的数据库中,相同的数据类型可能有不同的名称。即使名字相同,大小和其他细节也可能不同!请随时检查文件! |
批注
以上是比较全的数据类型,SQL Server一般常用的数据类型就几种INT(整数类型),VARCHAR(可变长字符类型),CHAR(固定长度字符类型),DATETIME(日期类型,带时间),TIME(时间类型,不带日期)。这些数据类型是在建表的时候就会用到的,其他一些定义参数时也会使用到。