什么是SQL数据类型?SQL数据类型总结

一、什么叫数据类型?

人们能够非常容易地区分数字与字符,可是计算机并不会。除非是你明确地告诉它,1是数字,“汉”是文本,不然它始终没法分辨1和‘汉’的区别。因而,在每一个计算机语言里都界定了数据类型,实际上便是对常见的各种各样的数据类型进行了明确的区分。你要让计算机计算数值,就传输数字给它,你要让它处理文本,就传字符串类型给他们。

在SQL中,数据类型是一个标签,是一个有利于SQL掌握每列中期望储存什么类型的数据的手册,它也标志了SQL怎样与储存的数据进行交互。SQL中常见的数据类型有多种,本文便介绍一下SQL中基本的数据类型。

更多SQL数据类型定义请见:树懒学堂_一站式数据知识平台_SQL 通用数据类型 / 树懒学堂_一站式数据知识中心_SQL DB 数据类型

二、SQL 常见数据类型

1.字符型数据:

char\varchar\text——这几类数据类型是用于储存字符串的,他们的区别在于:

  • char 固定长度存储数据
  • varcahr 按变长存储数据
  • text 当你需要存储非常大量的字符串时使用

nchar、nvarchar、ntext——这几个是用来储存字符串的,与上面的对应是相同的。唯一的区别是这三类都选用Unicode编号,一般在做国际化的网站时应用。

2.时间日期型数据

datetime、smalldatetime——他们都是用以储存日期和时间信息,其区别在于:

  • datetime:存放1/1/1753-12/31/9999的时间数据,精确到0.001s
  • smalldatetime: 存放1/1/1900-6/6/2079的时间,精确到秒

3.整型数据

bigint、int、smallint、tinyint——这四个数据类型是用以存储整数的,其区别在于:

  • bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。
  • int 从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。
  • smallint 从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整数数据。
  • tinyint 从 0 到 255 的整数数据。

三、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 数据

四、SQL数据类型快速参考手册

但是总的来说,不同数据库对数据类型的界定是不一样的。下边的表格显示了各种不同数据库里面一些数据类型的通用名称:

数据类型 Access SQLServer Oracle MySQL PostgreSQL
boolean Yes/No Bit Byte N/A Boolean
integer Number (integer) Int Number IntInteger IntInteger
float Number (single) FloatReal Number Float Numeric
currency Currency Money N/A N/A Money
string (fixed) N/A Char Char Char Char
string (variable) Text (<256)Memo (65k+) Varchar VarcharVarchar2 Varchar Varchar
binary object OLE Object Memo Binary (fixed up to 8K)Varbinary (<8K)Image (<2GB) LongRaw BlobText BinaryVarbinary

注意:在不一样的数据库文件,同一种数据类型很可能有不一样的叫法。即便叫法是一样的,其占用内存大小和另外一些细节也可能不同。

原文出自:https://www.shulanxt.com/doc/dbdoc/sql-type

你可能感兴趣的:(数据库,mysql,sql,数据库)