03_SQL server数据类型

SQL server数据类型

String类型:

数据类型:

描述

存储

char(n)

固定长度的字符串。最多 8,000 个字符。定义类型为char(5),那么就表示该类型可以存储5个字符,即使存入2个字符,剩余的3个字符也会用空格补齐。

Defined width

varchar(n)

可变长度的字符串。最多 8,000 个字符。定义类型为varchar(5),那么就表示该类型可以存储5个字符,如果存入2个字符,字符长度就是2而不是5

2 bytes + number of chars

varchar(max)

可变长度的字符串。最多 1,073,741,824 个字符。

2 bytes + number of chars

text

可变长度的字符串。最多 2GB 文本数据。

4 bytes + number of chars

nchar

固定长度的 Unicode 字符串。最多 4,000 个字符。

Defined width x 2

nvarchar

可变长度的 Unicode 字符串。最多 4,000 个字符。

 

nvarchar(max)

可变长度的 Unicode 字符串。最多 536,870,912 个字符。

 

ntext

可变长度的 Unicode 字符串。最多 2GB 文本数据。

 

bit

允许 0、1 或 NULL,如果表中的列为8bit,则这些列作为一个字节存储,如果列为9-16bit,这这些列作为2个字节存储,以此类推

 

binary(n)

固定长度的二进制字符串。最多 8,000 字节。

 

varbinary

可变长度的二进制字符串。最多 8,000 字节。

 

varbinary(max)

可变长度的二进制字符串。最多 2GB。

 

image

可变长度的二进制字符串。最多 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 字节

decimal(p,s)

固定精度和比例的数字。

允许从 -10^38 +1 到 10^38 -1 之间的数字。

p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。

s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。

5-17 字节

numeric(p,s)

固定精度和比例的数字。

允许从 -10^38 +1 到 10^38 -1 之间的数字。

p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。

s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。

5-17 字节

smallmoney

介于 -214,748.3648 与 214,748.3647 之间的货币数据。

4 字节

money

介于 -922,337,203,685,477.5808 与 922,337,203,685,477.5807 之间的货币数据。

8 字节

float(n)

从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。

n 参数指示该字段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。

4 或 8 字节

real

从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。

4 或 8 字节


Date
类型:

数据类型

描述

存储

datetime

从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒。

8 字节

datetime2

从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒。

6-8 字节

smalldatetime

从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。

4 字节

date

仅存储日期。从 0001 年 1 月 1 日 到 9999 年 12 月 31 日。

3 bytes

time

仅存储时间。精度为 100 纳秒。

3-5 字节

datetimeoffset

与 datetime2 相同,外加时区偏移。

8-10 字节

timestamp

存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 值基于内部时钟,不对应真实时间。每个表只能有一个 timestamp 变量。

 


其他数据类型:

数据类型

描述

sql_variant

存储最多 8,000 字节不同数据类型的数据,除了 text、ntext 以及 timestamp。

uniqueidentifier

存储全局唯一标识符 (GUID)。

xml

存储 XML 格式化数据。最多 2GB。

cursor

存储对用于数据库操作的指针的引用。

table

存储结果集,供稍后处理。

 1 ----数据类型
 2 /*
 3 1.整型
 4     tinyint,smallint,int,tinyint,bigint
 5 2.浮点型
 6     real,float,decimal,numeric
 7 3.字符型
 8     char,nchar,varchar,nvarchar
 9 4.二进制数据类型
10     binary,varbinary
11 5.逻辑数据类型
12     bit
13 6.文本数据类型
14     text,ntext
15 7.图形数据类型
16     image
17 8.表数据类型
18     table
19 9.自定义数据类型
20     sp_addtype
21 */
22 
23 
24 
25 -------------------------------------使用前执行-----------------------------------------
26 use db_sql_test
27 GO
28 --检测表'tb_message1'是否存在,如果存在则删除,这样重复执行·时就不会报错
29 if exists( select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'tb_message1')
30 drop table tb_message1
31 GO
32 --创建留言信息表'tb_message1'
33 CREATE table tb_message1
34 (
35     留言编号 int identity(1001,1),
36     留言人 nvarchar(100),
37     留言内容 text,
38     留言头像 image
39 )
40 GO
41 if exists(select * from INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'tb_book01')
42 drop table tb_book01
43 GO
44 --创建图书信息表'tb_book01'
45 create table tb_book01
46 (
47     图书编号 nvarchar(100),
48     图书名称 nvarchar(100),
49     图书类别 nvarchar(100)
50 )
51 GO
52 --向该图书信息表插入几条数据
53 insert into tb_book01 values('book100101','ASP.NET','教学')
54 insert into tb_book01 values('book100102','C#','教学')
55 insert into tb_book01 values('book100103','ASP','教学')
56 insert into tb_book01 values('book100104','SQL','教学')
57 insert into tb_book01 values('book100105','Oracle','教学')
58 
59 -------------------------------------使用前执行-----------------------------------------
60 
61 
62 
63 ----定义表类型(一般只用于编程环境,相当于临时表格)
64 use db_sql_test
65 go
66 --定义
67 declare @varTable table(bookid nvarchar(100),bookname nvarchar(100),class nvarchar(100))
68 --插入数据
69 insert into @varTable select * from tb_book01
70 --查看
71 select * from @varTable
72 
73 
74 ----自定义数据类型
75 /*
76     并不是真正的数据类型,只是提供一种加强数据库内部元素和基本元素之间一致的机制
77 语法:
78   sp_addtype [@typename =] type,
79   [@phystype =] system_data_type
80   [, [@nulltype =] 'null_type']
81   [ , [ @owner = ] 'owner_name' ]
82 各参数说明:
83 [@typename =] type                指定用户定义的数据类型的名称。
84 [@phystype =] system_data_type  指定相应的系统提供的数据类型的名称及定义。不能使用TIMESTAMP 数据类型。当所使用的系统数据类型有额外说明时,需用引号将其括起来,如:‘CHAR(8)’。
85 [@nulltype =] ‘null_type’        指定用户自定义的数据类型的NULL 属性,其值可为‘NULL’ ‘NOT NULL’或 ‘NONULL’。缺省时与系统默认的NULL 属性相同。 
86 [ @owner = ] 'owner_name' ]        指定用户自定义的数据类型的所有者。
87 */
88 
89 ----exec :执行某个存储过程(execute),如果该语句不是第一个语句
90 ----若这里放一个GO则可省略EXEC
91 --exrc sp_addtype newint
92 --,'int',
93 --'not null'
View Code

 

转载于:https://www.cnblogs.com/Vison133/p/sql-note-03.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值