SQL Server—的数据类型

SQL Server---的数据类型

SQL Server 数据库中,数据类型是定义数据模型的基础,它们决定了数据在数据库中的存储方式和格式。正确选择数据类型不仅可以优化存储空间,还能提高查询性能和数据完整性。

1文本类型

文本类型:字符数据包含任意字母、符号或数字字符的组合

  1. char:固定长度的非 Unicode 字符数据,最大长度为8000个字符,一个汉字占2个字符
  2. varchar:可变长度的非 Unicode 数据,最大长度为8000个字符
  3. text:存储长文本信息,最大长度为2^31-1 (2147483647)个字符。如果定义的字符超过 char的8000个字符,那么就需要定义为 text 长文本类型的了。
  4. nchar:固定长度的 Unicode 数据,最大长度为4000个字符
  5. nvarchar:可变长度的 Unicode 数据,最大长度为4000个字符
  6. ntext:存储可变长度的长文本,2^30-1 (1073741823)个字符
  7. Unicode:是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案

注意:带n的数据类型长度是不带n的两倍。比如nchar(1)和char(2)长度相同(1个字节 nchar 等于 声明2个字节的char,所以带 n 的最大长度就降低了)

2整数类型

  1. bigint:占用8个字节,可表示范围:-2^63 ~ 2^63-1之间的整数
  2. int:占用4个字节,可表示范围:-2^31 ~ 2^31-1之间的整数
  3. smallint:占用2个字节,可表示范围:-2^15 ~ 2^15-1之间的整数
  4. tinyint:占用1个字节,可表示范围:0 ~ 255之间的整数

3精确数字类型:

  1. decimal:-10^38 ~ 10^38-1之间的固定精度和小数位的数字
  2. numeric:功能等同于decimal

写法:decimal(整数,小数)和numeric(整数,小数)

默认:如果不指定位数,默认18位整数,0位小数,比如身份证号:numeric(18,0),当然身份证号一般不用 numeric,而是用 char,因为身份证号有的还含有 X 字符

4近似数字(浮点)类型:

  1. float[(n)]:表示范围:-1.79E+308 ~ 1.79E+308 (1.79乘以10的308次幂) n表示精度,在1-53之间取值,当n在1-24之间时,精度为7位有效数字,占用4个字节;当n在25-53之间时,精度为15位有效数字,占用8个字节
  2. real:表示范围: -3.40E+38 ~ 3.40E+38占用4个字节存储空间,相当于float(24)

5日期类型:

  1. datetime:允许的范围1753-1-1至9999-1-1
  2. smalldatetime:允许的范围1900-1-1至2079-6-6

时间精度不同:datetime精确到3/100秒;smalldatetime精确到1分钟

格式说明:

  • 分隔符数字方式:2023-04-24或04/24/2023
  • 纯数字方式:04242023
  • 英文数字方式:Apr 24,2023

注意问题:日期在使用的时候需要使用单引号''括起来

6货币类型:

  1. money:货币数值介于 -2^63 ~ 2^63-1之间,精确到货币单位的千分之一。
  2. smallmoney:货币数据介于 -214748.3648 ~ -214748.3648之间,精确到货币单位的千分之十。

7位类型:

  1. bit:表示"是/否"类型的数据。(0、1 / true、false)

8二进制类型:

  1. binary:固定长度的二进制数据,最大长度为8000个字节。
  2. vbinary:可变长度的二进制数据,其最大长度为8000个字节。image:可变长度的二进制数据,其最大长度为2^31个字节。应用场合:可存储图
相关推荐
Elastic 中国社区官方博客5 小时前
在 Elasticsearch 中使用 Mistral Chat completions 进行上下文工程
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
编程爱好者熊浪6 小时前
两次连接池泄露的BUG
java·数据库
TDengine (老段)8 小时前
TDengine 字符串函数 CHAR 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
qq7422349848 小时前
Python操作数据库之pyodbc
开发语言·数据库·python
姚远Oracle ACE8 小时前
Oracle 如何计算 AWR 报告中的 Sessions 数量
数据库·oracle
Dxy12393102169 小时前
MySQL的SUBSTRING函数详解与应用
数据库·mysql
码力引擎9 小时前
【零基础学MySQL】第十二章:DCL详解
数据库·mysql·1024程序员节
杨云龙UP9 小时前
【MySQL迁移】MySQL数据库迁移实战(利用mysqldump从Windows 5.7迁至Linux 8.0)
linux·运维·数据库·mysql·mssql
l1t9 小时前
利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
c语言·数据库·单元测试·lua·duckdb
安当加密9 小时前
Nacos配置安全治理:把数据库密码从YAML里请出去
数据库·安全