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 。
存储数据的范围是从-2的15次方(-32768)到2的15次方-1(32767),占用2个字节的储存空间 。
INTEGER 整数值(没有小数点) 。精度 10 。
存储数据的范围是-2的31次方到2的31次方-1,占用4个字节的储存空间 。
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 数据

其中标红的是在建表时常用的数据类型 。

数据类型的名称在不同数据库平台中有一些区别,在SQL Server和MY SQL中(或者还有其他平台)数值型还有一个tinyint的类型(范围从0到255) 。

应该注意根据实际情况选用不同的数据类型 。

一、定义数据长度太长会造成存储空间的浪费 。

例如:

对“姓名”字段:中国人姓名一般不会太长,可以定义为char (10) 。char(10)可以存储5个中文字符 。而在需要考虑少数民族或者其他名字很长(例如外国人?)的情况下,则需要改成char(20)或者更长 。

二、选择类型不准确可能会造成对后续操作的影响 。

例如:

对“年龄”字段:理论上“年龄”可以定义成char和tinyint 。当不需要对年龄进行计算时,定义成char是没有问题的;但很多情况下,我们需要对年龄进行计算、排序和比较等操作,选用tinyint会方便一些 。而且正常地球人寿命不超过150,smallint和int的范围太大,造成空间浪费 。

对“电话号码”字段:建议用varchar类型 。电话号码如果分固定电话和手机号码的话,长度不一 。而varchar比char更灵活,长度可变,而且存储空间更小 。

您可能感兴趣的文章:

  • 详解SQL Server中的数据类型
  • 详解MySQL数据类型int(M)中M的含义
  • mysql存储引擎和数据类型(二)
  • Java数据类型与MySql数据类型对照表
  • SQL Server数据类型转换方法
  • SQL Server比较常见数据类型详解
  • SQLite教程(七):数据类型详解
  • SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析
  • sql使用cast进行数据类型转换示例
  • SQL2005中char nchar varchar nvarchar数据类型的区别和使用环境讲解