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数据类型的区别和使用环境讲解
(0)

相关推荐

  • sql使用cast进行数据类型转换示例

    @num=1; 把num类型转成nvarchar类型 cast(@num as nvarchar(10)) @str='123'; 把str转换成int 类型 cast(@str as int)

  • SQLite教程(七):数据类型详解

    一.存储种类和数据类型: SQLite将数据值的存储划分为以下几种存储类型:   复制代码 代码如下: NULL: 表示该值为NULL值.      INTEGER: 无符号整型值.      REAL: 浮点值.      TEXT: 文本字符串,存储使用的编码方式为UTF-8.UTF-16BE.UTF-16LE.      BLOB: 存储Blob数据,该类型数据和输入数据完全相同. 由于SQLite采用的是动态数据类型,而其他传统的关系型数据库使用的是静态数据类型,即字段可以存储的数据类型

  • 详解SQL Server中的数据类型

    前言 前面几篇文章我们讲解了索引有关知识,这一节我们再继续我们下面内容讲解,简短的内容,深入的理解. 数据类型 SQL Server支持两种字符数据类型,一种是常规,另外一种则是Unicode.常规数据类型包括CHAR和VARCHAR,Unicode数据类型包括NCAHR和NVARCHAR.常规字符的每个字符使用1个字节存储,而Unicode数据的每个字符要求2个字节.常规字符列限制为仅仅只针对于英语,而Unicode则是针对于多种语言.两种字符数据类型的文本表示方式也不相同,在表示常规字符文本

  • mysql存储引擎和数据类型(二)

    存储引擎: 1. 查看支持的存储引擎:       show engines \G;       show variables like 'have%'; 2. 查看默认存储引擎:       show variables like 'storage_engine%'; 3. 修改默认的存储引擎:  ① 安装版可以通过向导的方式:     "开始"-> "程序" -> "MySQL" -> "MySQL Server

  • SQL2005中char nchar varchar nvarchar数据类型的区别和使用环境讲解

    现在就摘录一下sql2005联机丛书里的关于这几个数据类型的解释 字符数据类型(nchar 长度固定,nvarchar 长度可变)和 Unicode 数据使用 UNICODE UCS-2 字符集. nchar [ ( n ) ] n 个字符的固定长度的 Unicode 字符数据.n 值必须在 1 到 4,000 之间(含).存储大小为两倍 n 字节.nchar 的 SQL-2003 同义词为 national char 和 national character. nvarchar [ ( n |

  • SQL Server比较常见数据类型详解

    在SQL Server 中每个变量.参数.表达式等都有数据类型.系统提供的数据类型分为几大类,如表4-2 所示. 其中,BIGINT. SQL_VARIANT 和TABLE 是SQL Server 2000 中新增加的3 种数据类型.下面分类讲述各种数据类型. 一. 整数数据类型 整数数据类型是最常用的数据类型之一. 1.INT (INTEGER) INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,64

  • SQL Server数据类型转换方法

    在SQL Server日常的函数.存储过程和SQL语句中,经常会用到不同数据类型的转换.在SQL Server有两种数据转换类型:一种是显性数据转换:另一种是隐性数据转换.下面分别对这两种数据类型转换进行简要的说明: 1 显式转换 显示转换是将某种数据类型的表达式显式转换为另一种数据类型.常用的是CAST 和 CONVERT 函数. CAST: CAST ( expression AS data_type )  CONVERT: CONVERT (data_type[(length)], exp

  • 详解MySQL数据类型int(M)中M的含义

    介绍 MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) 占用的存储空间比 int(4) 要小, int(4) 占用的存储空间比 int(8) 小. 后来,参看 MySQL 手册,发现自己理解错了. int(M): M indicates the maximum display width for integer types. 在 integer

  • SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析

    在SQL Server中,当我们设置字符型字段的时候,往往有很多个数据类型供我们选择,如:char nchar varchar nvarchar等,那么我们到底应该选择哪一个呢?下面就一一来描述其区别. char:固定长度,非Unicode字符数据,长度为n个字节.n的取值范围为1至8,000,存储大小是n个字节.char的SQL2003同义词为character. varchar:可变长度,非Unicode字符数据.n的取值范围为1至8,000.max指示最大存储大小是2^31-1个字节.存储

  • Java数据类型与MySql数据类型对照表

    本文讲述了Java数据类型与MySql数据类型对照表.分享给大家供大家参考,具体如下: 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TEXT 65535 VARCHAR java.lang.String -1 INTEGER 4 INTEGER UNSIGNE

随机推荐