SQL 数据类型

2024年11月18日 SQL 数据类型 极客笔记

SQL 数据类型

数据类型用于表示可以存储在数据库表中的数据的性质。例如,在表的特定列中,如果我们想存储字符串类型的数据,则必须声明该列的字符串数据类型。

数据类型主要分为三类,适用于每个数据库。

  • 字符串数据类型
  • 数值数据类型
  • 日期和时间数据类型

MySQL、SQL Server和Oracle数据库中的数据类型

MySQL数据类型

MySQL数据库中使用的数据类型列表。这是基于MySQL 8.0版本的。

MySQL字符串数据类型

CHAR(Size) 用于指定一个固定长度的字符串,可以包含数字、字母和特殊字符。其大小可以为0到255个字符。默认为1。
VARCHAR(Size) 用于指定一个可变长度的字符串,可以包含数字、字母和特殊字符。其大小可以为0到65535个字符。
BINARY(Size) 等同于CHAR(),但存储二进制字节字符串。它的大小参数指定列长度(以字节为单位)。默认为1。
VARBINARY(Size) 等同于VARCHAR(),但存储二进制字节字符串。它的大小参数指定列的最大长度(以字节为单位)。
TEXT(Size) 保存一个最大长度为255个字符的字符串。
TINYTEXT 保存一个最大长度为255个字符的字符串。
MEDIUMTEXT 保存一个最大长度为16,777,215个字符的字符串。
LONGTEXT 保存一个最大长度为4,294,967,295个字符的字符串。
ENUM(val1, val2, val3,…) 用于表示只有一个值的字符串对象,该值必须从可能的值列表中选择。ENUM列表中最多可以包含65535个值。如果插入一个不在列表中的值,将插入一个空值。
SET( val1,val2,val3,….) 用于指定一个可以包含0个或多个值的字符串,这些值必须从可能的值列表中选择。在SET列表中一次最多可以列出64个值。
BLOB(size) 用于存储BLOBs(二进制大型对象)。它可以保存最多65,535个字节。

MySQL 数字数据类型

BIT(大小) 用于位值类型。每个值的位数在大小中指定。大小可以为1到64。默认值为1。
INT(大小) 用于整数值。其有符号范围从-2147483648到2147483647,无符号范围从0到4294967295。大小参数指定了最大显示宽度为255。
INTEGER(大小) 等同于INT(大小)。
FLOAT(大小, d) 用于指定浮点数。大小参数指定了总位数。小数点后的位数由d参数指定。
FLOAT(p) 用于指定浮点数。MySQL使用p参数来确定是否使用FLOAT或DOUBLE。如果p在0到24之间,数据类型变为FLOAT()。如果p在25到53之间,数据类型变为DOUBLE()。
DOUBLE(大小, d) 一个普通大小的浮点数。大小参数指定了总位数。小数点后的位数由d参数指定。
DECIMAL(大小, d) 用于指定定点数。大小参数指定了总位数。小数点后的位数由d参数指定。大小的最大值为65,默认值为10。d的最大值为30,默认值为0。
DEC(大小, d) 等同于DECIMAL(大小, d)。
BOOL 用于指定布尔值true和false。零被视为false,非零值被视为true。

MySQL日期和时间数据类型

DATE 它用于指定日期格式为YYYY-MM-DD。支持的范围从’1000-01-01’到’9999-12-31’。
DATETIME(fsp) 它用于指定日期和时间的组合。其格式为YYYY-MM-DD hh:mm:ss。支持的范围从’1000-01-01 00:00:00’到’9999-12-31 23:59:59’。
TIMESTAMP(fsp) 它用于指定时间戳。其值存储为自Unix纪元(‘1970-01-01 00:00:00’ UTC)以来的秒数。其格式为YYYY-MM-DD hh:mm:ss。支持的范围从UTC时区的’1970-01-01 00:00:01’到’2038-01-09 03:14:07’。
TIME(fsp) 它用于指定时间格式为hh:mm:ss。支持的范围从’-838:59:59’到’838:59:59’。
YEAR 它用于指定四位数格式的年份。允许的值为四位数范围从1901到2155,以及0000。

SQL Server数据类型

SQL Server字符串数据类型

char(n) 这是一个固定宽度的字符字符串数据类型。其大小可达到8000个字符。
varchar(n) 这是一个可变宽度的字符字符串数据类型。其大小可达到8000个字符。
varchar(max) 这是一个可变宽度的字符字符串数据类型。其大小可达到1,073,741,824个字符。
text 这是一个可变宽度的字符字符串数据类型。其大小可达到2GB的文本数据。
nchar 这是一个固定宽度的Unicode字符串数据类型。其大小可达到4000个字符。
nvarchar 这是一个可变宽度的Unicode字符串数据类型。其大小可达到4000个字符。
ntext 这是一个可变宽度的Unicode字符串数据类型。其大小可达到2GB的文本数据。
binary(n) 这是一个固定宽度的二进制字符串数据类型。其大小可达到8000个字节。
varbinary 这是一个可变宽度的二进制字符串数据类型。其大小可达到8000个字节。
image 这也是一个可变宽度的二进制字符串数据类型。其大小可达到2GB。

SQL Server 数值数据类型

bit 这是一个可以是0、1或空的整数。
tinyint 允许的整数范围是0到255。
Smallint 允许的整数范围是-32,768到32,767。
Int 允许的整数范围是-2,147,483,648到2,147,483,647。
bigint 允许的整数范围是-9,223,372,036,854,775,808到9,223,372,036,854,775,807。
float(n) 用于指定浮点精度数值数据范围为-1.79E+308到1.79E+308。参数n指示字段是否应保持4字节或8字节,默认值为53。
real 浮点精度数值数据范围为-3.40E+38到3.40E+38。
money 用于指定货币数据范围为-922,337,233,685,477.5808到922,337,203,685,477.5807。

SQL Server日期和时间数据类型

datetime 它用于指定日期和时间的组合。精度为3.33毫秒,支持范围从1753年1月1日到9999年12月31日。
datetime2 它用于指定日期和时间的组合。精度为100纳秒,支持范围从0001年1月1日到9999年12月31日。
date 它仅用于存储日期。支持范围从0001年1月1日到9999年12月31日。
time 它仅存储时间,精度为100纳秒。
timestamp 它在创建或修改新行时存储一个唯一的数字。时间戳的值基于内部时钟,而不对应真实时间。每个表中只能包含一个时间戳变量。

SQL Server其他数据类型

Sql_variant 用于除文本、时间戳和ntext以外的各种数据类型。它可以存储最多8000字节的数据。
XML 用于存储XML格式的数据。最大容量为2GB。
cursor 用于存储用于数据库操作的游标的引用。
table 用于存储用于后续处理的结果集。
uniqueidentifier 用于存储GUID(全局唯一标识符)。

Oracle 数据类型

Oracle 字符串数据类型

CHAR(size) 用于存储预定长度内的字符数据。可存储最多2000个字节。
NCHAR(size) 用于存储预定长度内的国家字符数据。可存储最多2000个字节。
VARCHAR2(size) 用于存储预定长度内的可变字符串数据。可存储最多4000个字节。
VARCHAR(SIZE) 与VARCHAR2(size)相同。也可以使用VARCHAR(size),但建议使用VARCHAR2(size)。
NVARCHAR2(size) 用于存储预定长度内的Unicode字符串数据。必须指定NVARCHAR2数据类型的大小。可存储最多4000个字节。

Oracle数字数据类型

NUMBER(p, s) 它包含了精度p和标度s。精度p的范围是从1到38,标度s的范围是从-84到127。
FLOAT(p) 它是NUMBER数据类型的一个子类型。精度p的范围是从1到126。
BINARY_FLOAT 它用于二进制精度(32位)。它需要5个字节,包括长度字节。
BINARY_DOUBLE 它用于双精度二进制(64位)。它需要9个字节,包括长度字节。

Oracle 日期和时间数据类型

日期(DATE) 它用于存储具有固定长度的有效日期时间格式。其范围从公元前4712年1月1日到公元9999年12月31日。
时间戳(TIMESTAMP) 它用于以YYYY-MM-DD和hh:mm:ss格式存储有效日期。

Oracle大型对象数据类型(LOB类型)

BLOB 它用于指定非结构化的二进制数据。其范围达到2 32 -1字节或4 GB。
BFILE 它用于将二进制数据存储在外部文件中。其范围达到2 32 -1字节或4 GB。
CLOB 它用于单字节字符数据。其范围达到2 32 -1字节或4 GB。
NCLOB 它用于指定单字节或固定长度多字节国家字符集(NCHAR)数据。它的范围达到2 32 -1字节或4 GB。
RAW(size) 它用于指定可变长度的原始二进制数据。每行的范围是多达2000字节。必须指定其最大大小。
LONG RAW 它用于指定可变长度的原始二进制数据。其范围为2 31 -1字节或2 GB,每行。

本文链接:http://so.lmcjl.com/news/18106/

展开阅读全文
上一篇:SQL 语法 下一篇:离婚和离异有什么区别