学习笔记1:数据库类型(SQL与MySQL的区别)
浏览量:3626
- SQL Server 数据类型
Character 字符串:
数据类型 |
描述 |
存储 |
char(n) |
固定长度的字符串。最多8,000 个字符。 |
n |
varchar(n) |
可变长度的字符串。最多8,000 个字符。 |
|
varchar(max) |
可变长度的字符串。最多1,073,741,824 个字符。 |
|
text |
可变长度的字符串。最多2GB 字符数据。 |
Unicode 字符串:
数据类型 |
描述 |
存储 |
nchar(n) |
固定长度的Unicode 数据。最多4,000 个字符。 |
|
nvarchar(n) |
可变长度的Unicode 数据。最多4,000 个字符。 |
|
nvarchar(max) |
可变长度的Unicode 数据。最多536,870,912 个字符。 |
|
ntext |
可变长度的Unicode 数据。最多2GB 字符数据。 |
Number 类型:
数据类型 |
描述 |
存储 |
tinyint |
允许从0 到255 的所有数字。 |
1 字节 |
smallint |
允许从-32,768 到32,767 的所有数字。 |
2 字节 |
int |
允许从-2,147,483,648 到2,147,483,647 的所有数字。 |
4 字节 |
bigint |
允许介于-9,223,372,036,854,775,808 和9,223,372,036,854,775,807 之间的所有数字。 |
8 字节 |
Date 类型:
数据类型 |
描述 |
存储 |
datetime |
从1753 年1 月1 日到9999 年12 月31 日,精度为3.33 毫秒。 |
8 bytes |
datetime2 |
从1753 年1 月1 日到9999 年12 月31 日,精度为100 纳秒。 |
6-8 bytes |
smalldatetime |
从1900 年1 月1 日到2079 年6 月6 日,精度为1 分钟。 |
4 bytes |
date |
仅存储日期。从0001 年1 月1 日到9999 年12 月31 日。 |
3 bytes |
time |
仅存储时间。精度为100 纳秒。 |
3-5 bytes |
datetimeoffset |
与datetime2 相同,外加时区偏移。 |
8-10 bytes |
timestamp |
存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 基于内部时钟,不对应真实时间。每个表只能有一个timestamp 变量。 |
其他数据类型:
数据类型 |
描述 |
sql_variant |
存储最多8,000 字节不同数据类型的数据,除了text、ntext 以及timestamp。 |
uniqueidentifier |
存储全局标识符(GUID)。 |
xml |
存储XML 格式化数据。最多2GB。 |
cursor |
存储对用于数据库操作的指针的引用。 |
table |
存储结果集,供稍后处理。 |
MySQL 数据类型
在MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。
Text 类型:
数据类型 |
描述 |
CHAR(size) |
保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多255 个字符。 |
VARCHAR(size) |
保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多255 个字符。 注释:如果值的长度大于255,则被转换为TEXT 类型。 |
TINYTEXT |
存放最大长度为255 个字符的字符串。 |
TEXT |
存放最大长度为65,535 个字符的字符串。 |
BLOB |
用于BLOBs (Binary Large OBjects)。存放最多65,535 字节的数据。 |
MEDIUMTEXT |
存放最大长度为16,777,215 个字符的字符串。 |
MEDIUMBLOB |
用于BLOBs (Binary Large OBjects)。存放最多16,777,215 字节的数据。 |
LONGTEXT |
存放最大长度为4,294,967,295 个字符的字符串。 |
LONGBLOB |
用于BLOBs (Binary Large OBjects)。存放最多4,294,967,295 字节的数据。 |
ENUM(x,y,z,etc.) |
允许你输入可能值的列表。可以在ENUM 列表中列出最大65535 个值。如果列表中不存在插入的值,则插入空值。 注释:这些值是按照你输入的顺序存储的。 可以按照此格式输入可能的值:ENUM('X','Y','Z') |
SET |
与ENUM 类似,SET 最多只能包含64 个列表项,不过SET 可存储一个以上的值。 |
Number 类型:
数据类型 |
描述 |
TINYINT(size) |
-128 到127 常规。0 到255 无符号*。在括号中规定最大位数。 |
SMALLINT(size) |
-32768 到32767 常规。0 到65535 无符号*。在括号中规定最大位数。 |
MEDIUMINT(size) |
-8388608 到8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。 |
INT(size) |
-2147483648 到2147483647 常规。0 到4294967295 无符号*。在括号中规定最大位数。 |
BIGINT(size) |
-9223372036854775808 到9223372036854775807 常规。0 到18446744073709551615 无符号*。在括号中规定最大位数。 |
FLOAT(size,d) |
带有浮动小数点的小数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。 |
DOUBLE(size,d) |
带有浮动小数点的大数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。 |
DECIMAL(size,d) |
作为字符串存储的DOUBLE 类型,允许固定的小数点。 |
* 这些整数类型拥有额外的选项UNSIGNED。通常,整数可以是负数或正数。如果添加UNSIGNED 属性,那么范围将从0 开始,而不是某个负数。
Date 类型:
数据类型 |
描述 |
DATE() |
日期。格式:YYYY-MM-DD 注释:支持的范围是从'1000-01-01' 到'9999-12-31' |
DATETIME() |
*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从'1000-01-01 00:00:00' 到'9999-12-31 23:59:59' |
TIMESTAMP() |
*时间戳。TIMESTAMP 值使用Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从'1970-01-01 00:00:01' UTC 到'2038-01-09 03:14:07' UTC |
TIME() |
时间。格式:HH:MM:SS注释:支持的范围是从'-838:59:59' 到'838:59:59' |
YEAR() |
2 位或4 位格式的年。 注释:4 位格式所允许的值:1901 到2155。2 位格式所允许的值:70 到69,表示从1970 到2069。 |
* 即便DATETIME 和TIMESTAMP 返回相同的格式,它们的工作方式很不同。在INSERT 或UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或YYMMDD。
以上表格中,红色的是今天主要用到的数据类型。
上一篇:学习笔记2常用正则表达式