T-SQL 语言基础(二)—— 数据类型

T-SQL 语言基础(二)—— 数据类型
一、精确数字型
1、整数型
数据类型存储长度范围
bigint8 字节-9223372036854775808 到 9223372036854775807
int4 字节-2147483648 到 2147483648 7
smallint2 字节-32768 到 32767
tinyint1 字节0,1 或 NULL
2、带国定精度和小数位数的数据类型
数据类型存储长度范围
numeric1-9位:5字节
10-19位:9字节
20-28位:13字节
29-38位:17字节
-(10^38+1) 到 (10^38-1)
decimal1-9位:5字节
10-19位:9字节
20-28位:13字节
29-38位:17字节
-(10^38+1) 到 (10^38-1)
3、货币型
数据类型存储长度范围
money8字节-922337203685477.5808 到 922337203685477.5808
smallmoney4字节-214748.3647 到 214748.3647
二、近似数字型
数据类型存储长度范围
float7位:4字节
15位:8字节
-922337203685477.5808 到 922337203685477.5808
real4字节-214748.3647 到 214748.3647
数据类型存储长度范围
money8字节-922337203685477.5808 到 922337203685477.5808
smallmoney4字节-214748.3647 到 214748.3647
三、日期时间类型
数据类型存储长度范围
datetime8字节1753-01-01到9999-12-31
smalldatetime4字节1900-01-01到2079-06-06
date0001-01-01到9999-12-31
time00:00:00.0000000 到 23.59.59.9999999
datetime2(7)时间日期组合,最高可以设定到小数点后7位
datetimeoffset时间日期组合,其中时间以24小时制显示并带有时区信息
  C# 类型的 DateTime 应对应数据库的 datetime2(7),但是 Code First 时属性应该加上 [Column(TypeName=”datetime2”)]特性,否则数据库生成的是 datetime 类型,而非datetime2 类型
四、字符串类型
数据类型存储长度范围
char1-8000 字符1个字符占一字节,定长字符串
varcharvarchar(n):1-8000字符
varchar(max):1到2^31-1字符
varchar(n):1字符占1字节
varchar(max):实际输入长度加2字节
text1到2^31-1字符1字符一字节,存储多少字符占多少空间,最大可存储2GB
五、Unicode 字符串类型
数据类型存储长度范围
nchar1-4000 字符1个字符占2字节,定长字符串
nvarcharnvarchar(n):1-4000字符
nvarchar(max):1到2^31-1字符
nvarchar(n):1字符占2字节
varchar(max):实际输入长度的两倍加2字节
ntext1到2^31-1字符1字符2字节,存储多少字符占多少空间,最大2GB
六、二进制字符串
数据类型存储长度范围
binary1-8000 字节定长,长度不足系统自动补上 0x00
varbinaryvarbinary(n):1-8000字节
varbinary(max):1到(2^31-1)个字节
varbinary(n):可变长度,输入数据的实际长度
varbinary(max):输入的实际长度加2
image1 到 (2^31-1) 个字节可变长度,输入数据的实际长度
七、其他数据类型
  1. cursor:
  2. sql_variant:
  3. timestamp:
  4. uniqueidentifier:
  5. HierarchyId:用数据表表达式(CTE)用于表现树状层次,而HierarchyId类型的字段存储了记录在层次结构中的准确位置,使用GetAncestor和GetDescendant方法可以遍历树
    xml
八、用户自定义数据类型
EXEC sp_addtype no,'INT','NOT NULL' -- 创建名为“编号”的用户定义非空类型
EXEC sp_addtype name,'varchar(10)','NULL'
GO
DECLARE @id no
DECLARE @name name
SELECT TOP 1 @id = id,@name = name 
    FROM employee ORDER BY id DESC
    PRINT @id 
    PRINT @name
DROP TYPE no -- 删除用户自定义类型 no
EXEC SP_DROPTYPE name  -- 删除用户自定义类型 name
GO
九、用户自定义表类型
CREATE TYPE UserViewModel AS TABLE
(UserName NVARCHAR(30),Birthday DATETIME2)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值