| 数据类型 | 描述 |
| char(n) | 固定长度的字符串,最多8000个字符 |
| varchar(n) | 可变长度的字符串,最多8000个字符 |
| varchar(max) | 可变长度的字符串,最多1073741824个字符 |
| text | 可变长度的字符串,最多2GB字符数据 |
2、Unicode字符串
| 数据类型 | 描述 |
| nchar(n) | 固定长度的Unicode数据,最多4000个字符 |
| nvaechar(n) | 可变长度的Unicode数据,最多4000个字符 |
| nvaechar(max) | 可变长度的Unicode数据,最多536870912个字符 |
| ntext | 可变长度的Unicode数据,最多2GB字符数据 |
🔴非Unicode 一个中文占两个长度,Unicode一个中文占一个长度
🔴char和nchar的区别是:
char的两个字节,可以存两个英文字母,可以存一个中文
nchar的两个字节,则可以存两个中文
VARCHAR与NVARCHAR比较
| 比较项 | VARCHAR | NVARCHAR |
| 字符数据类型 | 可变长度的非Unicode字符 | 可变长度,Unicode和非Unicode字符如:中文,日语和韩语。 |
| 最大长度 | 最大8000个字符 | 最大4000个字符 |
| 字符大小 | 每个字符占用1个字节 | 每个Unicode/非Unicode字符占用 2 个字节 |
| 使用 | 当数据长度为可变或可变长度列且 实际数据始终小于容量时使用 | 仅限存储,仅在需要Unicode支持时使用,例如:汉字,日语或韩文字符。 |
3、Binary类型
| 数据类型 | 描述 |
| bit | 允许0、1或null |
| binary(n) | 固定长度的二进制数据。最多 8,000 字节。 |
| varbinary(n) | 固定长度的二进制数据。最多 8,000 字节。 |
| varbinary(max) | 可变长度的二进制数据。最多 2GB 字节。 |
| image | 可变长度的二进制数据。最多 2GB。 |
4、Number 数字类型
| 数据类型 | 描述 | 存储 |
| tinyint | 允许从0到255的所以数字 | 1字节 |
| smallint | 允许从-32768到32768的所以数字 | 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字节 |
| smallmoney | 介于 -214,748.3648 和 214,748.3647 之间的货币数据。 | 4字节 |
| money | 介于 -922,337,203,685,477.5808 和 922,337,203,685,477.5807 之间的货币数据。 | 8字节 |
5、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 |
以上是我总结的一些数据类型,在开发项目和编写代码的时候,数据类型的定义很重要,数据类型定义好了,在开发项目和编写代码中会有少很多的事情。如果数据类型没有定义好,那么在开发项目和编写代码的过程中会遇到很多类型转换不了,后面又要来修改数据库,就很麻烦
希望我总结的这些数据类型可以帮助到大家
注:我这个不很很完整,我只写了一些比较常用的数据类型,不常用的就没写了