数据类型

SQL中将数据类型分成了三大类: 数值类型, 字符串类型和时间日期类型

sql server 小数格式 sql小数的数据类型_整型

 

 

数值型

系统将数值型分为整数型和小数型

整数型

存放整型数据: 在SQL中因为更多要考虑如何节省磁盘空间, 所以系统将整型又细分成了5类:

tinyint: 迷你整型,使用一个字节存储, 表示的状态最多为256种(常用)

smallint: 小整型,使用2个字节存储,表示的状态最多为65536种

mediumint: 中整型, 使用3个字节存储

int: 标准整型, 使用4个字节存储(常用)

bigint: 大整型,使用8个字节存储

sql server 小数格式 sql小数的数据类型_数据_02

 小数型

带有小数点或者范围超出整型的数值类型.

SQL中: 将小数型细分成两种: 浮点型和定点型

浮点型: 小数点浮动, 精度有限,而且会丢失精度

定点型: 小数点固定, 精度固定, 不会丢失精度

浮点型

浮点型数据是一种精度型数据: 因为超出指定范围之后, 会丢失精度(自动四舍五入)

浮点型: 理论分为两种精度

Float: 单精度, 占用4个字节存储数据, 精度范围大概为7位左右

Double: 双精度,占用8个字节存储数据, 精度方位大概为15位左右

sql server 小数格式 sql小数的数据类型_数据_03

 定点型

定点型: 绝对的保证整数部分不会被四舍五入(不会丢失精度),小数部分有可能(理论小数部分也不会丢失精度)

 

sql server 小数格式 sql小数的数据类型_整型_04

 时间日期类型

Datetime: 时间日期, 格式是YYYY-mm-dd HH:ii:ss,表示的范围是从1000到9999年,有0值: 0000-00-00 00:00:00

Date: 日期,就是datetime中的date部分

Time: 时间(段), 指定的某个区间之间, -时间到+时间

Timestamp: 时间戳, 并不是时间戳,只是从1970年开始的YYYY-mm-dd HH:ii:ss格式与datetime完全一致

Year: 年份,两种形式, year(2)和year(4): 1901-2156

sql server 小数格式 sql小数的数据类型_字符串_05

 字符串类型

在SQL中,将字符串类型分成了6类: char、varchar、text、blob、enum和set

定长字符串(char)

定长字符串: char, 磁盘(二维表)在定义结构的时候,就已经确定了最终数据的存储长度.

char(L): L代表length, 可以存储的长度, 单位为字符, 最大长度值可以为255.

char(4): 在UTF8 环境下,需要4 * 3 = 12个字节

变长字符串(varchar)

变长字符串: varchar, 在分配空间的时候, 按照最大的空间分配: 但是实际上最终用了多少,是根据具体的数据来确定.

varchar(L): L表示字符长度 理论长度是65536个字符, 但是会多处1到2个字节来确定存储的实际长度: 但是实际上如果长度超过255,既不用定长也不用变长, 使用文本字符串text

varchar(10): 的确存了10个汉字, utf8环境, 10 * 3 + 1 = 31(bytes)

存储了3个汉字: 3 * 3 + 1 = 10(bytes)

sql server 小数格式 sql小数的数据类型_sql server 小数格式_06

 文本字符串

如果数据量非常大, 通常说超过255个字符就会使用文本字符串

文本字符串根据存储的数据的格式进行分类: text和blob

Text: 存储文字(二进制数据实际上都是存储路径)

Blob: 存储二进制数据(通常不用)

sql server 小数格式 sql小数的数据类型_数据_07

 枚举字符串

枚举: enum, 事先将所有可能出现的结果都设计好, 实际上存储的数据必须是规定好的数据中的一个.

枚举的使用方式

定义: enum(可能出现的元素列表); //如enum(‘男’,’女’,’不男不女’,’妖’,’保密’);

使用: 存储数据,只能存储上面定义好的数据

集合字符串

集合跟枚举很类似: 实际存储的是数值,而不是字符串(集合是多选)

集合使用方式:

定义: Set(元素列表)

使用: 可以使用元素列表中的元素(多个), 使用逗号分隔