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


一、什么叫数据类型?

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

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

二、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数据类型快速参考手册

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

数据类型AccessSQLServerOracleMySQLPostgreSQL
booleanYes/NoBitByteN/ABoolean
integerNumber (integer)IntNumberIntIntegerIntInteger
floatNumber (single)FloatRealNumberFloatNumeric
currencyCurrencyMoneyN/AN/AMoney
string (fixed)N/ACharCharCharChar
string (variable)Text (<256)Memo (65k+)VarcharVarcharVarchar2VarcharVarchar
binary objectOLE Object MemoBinary (fixed up to 8K)Varbinary (<8K)Image (<2GB)LongRawBlobTextBinaryVarbinary

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

MySQL数据类型详见《MySQL数据类型介绍》,还有视频介绍


评论区(0)

评论