SqlServer2012学习 - 基本数据类型认知
精确数字:
1、整数
int是Sql Server主要整数类型。tinyint,smallint,int 不会自动转成bigint。
大于 2,147,483,647 的整数常量将转换为 decimal 数据类型,而不是 bigint 数据类型。
2、bit
可以取值为1、0或NULL的integer数据类型。
字符串值 TRUE 和 FALSE 可转换为 bit 值:TRUE 将转换为 1,FALSE 将转换为 0。
转换为 bit 会将任何非零值升为 1。
3、decimal[(p[,s])]和 numeric[(p[,s])]
固定精度和小数位数。 使用最大精度时,有效值的范围为 - 10^38 +1 到 10^38 - 1。
decimal 的 ISO 同义词为 dec 和 dec(p、s)。 numeric在功能上等价于 decimal。
decimal(5,5)和decimal(5,0)为不同数据类型。
常量 12.345 将被转换为精度为 5,小数位数为 3 的 numeric 值。
默认情况下,将数字转换为较低精度和小数位数的 decimal 或 numeric 值时,SQL Server 会进行舍入。 但如果 SET ARITHABORT 选项为 ON,则发生溢出时,SQL Server 会产生错误。 若仅降低精度和小数位数,则不会产生错误。
4、货币(值)数据类型
money 和 smallmoney 数据类型精确到它们所代表的货币单位的万分之一。
近似数字:
5、float和real
用于表示浮点数值数据的大致数值数据类型。 浮点数据为近似值。real 的 ISO 同义词为 float(24)
SQL Server 将 n 视为下列两个可能值之一。 如果 1<=n<=24,则将 n 视为 24。 如果 25<=n<=53,则将 n 视为 53
日期和时间
6、date \datetime\datetime2\datetimeoffset\smalldatetime\time
对于新的工作,请使用 time、date、datetime2 和 datetimeoffset 数据类型。 这些类型符合 SQL 标准。 它们更易于移植。
time、datetime2 和 datetimeoffset 提供更高精度的秒数。 datetimeoffset 为全局部署的应用程序提供时区支持。
将一个字符串转换为各种日期类型结果如下:
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
普通字符串
7、char[(n)]和varchar[(n|max)]
n 用于定义字符串长度,并且它必须为 1 到 8,000 之间的值,
如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。 如果在使用 CAST 和 CONVERT 函数时未指定 n,则默认长度为 30
如果列数据项的大小一致,则使用 char。
如果列数据项的大小差异相当大,则使用 varchar。
如果列数据项大小相差很大,而且大小可能超过 8,000 字节,请使用 varchar(max)。
8、ntext\text和image
在 Microsoft SQL Server 的未来版本中将删除 ntext、text 和 image 数据类型。
请避免在新开发工作中使用这些数据类型,并考虑修改当前已使用这些数据类型的应用程序。 请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。
Unicode 字符串
9、nchar[(n)]和nvarchar[(n|max)]
nchar [ ( n ) ]
固定长度的 Unicode 字符串数据。 n 用于定义字符串长度,并且它必须为 1 到 4,000 之间的值。 存储大小为 n 字节的两倍。 当排序规则代码页使用双字节字符时,存储大小仍然为 n 个字节。 根据字符串的不同,n 个字节的存储大小可能小于为 n 指定的值。 nchar 的 ISO 同义词为national char 和 national character。
nvarchar [ ( n | max ) ]
可变长度的 Unicode 字符串数据。 n 用于定义字符串长度,并且它可以为 1 到 4,000 之间的值。 max 指示最大存储大小是 2^31-1 个字节 (2 GB)。 存储大小(以字节为单位)是所输入数据实际长度的两倍 + 2 个字节。 nvarchar 的 ISO 同义词为 national char varying 和 national character varying。
如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。 如果没有使用 CAST 函数指定 n,则默认长度为 30。
如果列数据项的大小可能相同,请使用 nchar。
如果列数据项的大小可能差异很大,请使用 nvarchar。
二进制字符串
10、binary[(n)]和varbinary[(n|max)]
binary [ ( n ) ]
长度为 n 字节的固定长度二进制数据,其中 n 是从 1 到 8,000 的值。 存储大小为 n 字节。
varbinary [ ( n | max) ]
可变长度二进制数据。 n 的取值范围为 1 至 8,000。 max 指示最大存储大小是 2^31-1 个字节。 存储大小为所输入数据的实际长度 + 2 个字节。 所输入数据的长度可以是 0 字节。 varbinary 的 ANSI SQL 同义词为 binary varying。
如果列数据项的大小一致,则使用 binary。
如果列数据项的大小差异相当大,则使用 varbinary。
当列数据条目超出 8,000 字节时,请使用 varbinary(max)。
其他数据类型
SQL Server 对数据类型使用以下优先级顺序:
用户定义数据类型(最高)
sql_varian t
xml
datetimeoffset
datetime2
datetime
smalldatetime
date
time
float
real
decimal
money
smallmoney
bigint
int
smallint
tinyint
bit
ntext
text
image
timestamp
uniqueidentifier
nvarchar(包括 nvarchar(max))
nchar
varchar(包括 varchar(max))
char
varbinary(包括 varbinary(max))
binary(最低)
SqlServer2012学习 - 基本数据类型认知的更多相关文章
- js学习之数据类型
js学习之数据类型 基础类型:number string boolean null undefined 引用类型:object array function undefined值是派生自null值的( ...
- Go语言学习之数据类型
### Go语言学习之数据类型 数据类型的转换 1.Go语言不允许隐式类型转换(显示转换才可以) 2.别名和原有类型也不能进行隐式类型转换 例子: func TestImplicit(t *testi ...
- python学习6—数据类型之集合与字符串格式化
python学习6—数据类型之集合与字符串格式化 1. 使用id()可以查看一个变量的内存地址: name = 'alex' id(name) 2. 进制转换 十进制转换为二进制等: a = 10 # ...
- MySQL学习笔记--数据类型
一.数据类型(内容参考<SQL学习指南>)不完整 1.文本类型 文本类型 最大字节数 tinytext 255 text 65535 varchar 65536 mediumtext 16 ...
- JPA学习(1)基础认知
JPA 是什么 Java Persistence API:用于对象持久化的API. Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层: JPA和Hibernate的 ...
- C语言基础学习基本数据类型-变量的输出与输入
变量的输出 变量如何输入输出呢?实际上,在这之前你已经使用过输出语句(printf语句)了,我们可以使用printf来执行输出. printf语句的使用方法如下: printf(格式控制字符串, 数据 ...
- C语言基础学习基本数据类型-变量和常量
变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...
- Redis 学习(二) —— 数据类型及操作
Redis支持string.list.set.zset.hash等数据类型,这一篇学习redis的数据类型.命令及某些使用场景. 一.String,字符串 字符串是 Redis 最基本的数据类型.一个 ...
- MySQL学习4 - 数据类型一
介绍 一.数值类型 二.浮点型 验证三种类型建表 验证三种类型的精度 三.日期类型 综合练习: 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选 ...
随机推荐
- [USACO16JAN]愤怒的奶牛Angry Cows
传送门 一道神奇的DP………(鬼知道他为什么在tarjan里面) 一开始可能会考虑贪心或者什么其他神奇的算法,不过还是DP比较靠谱. 我们用f[i]表示摧毁所有i左侧的炸 药包最少需要的能量,用g[i ...
- 使用webBrowse把网页word等转换成图片
http://blog.csdn.net/zgke/article/details/3248497 使用 Bitmap MyImage = Test.GetControlScrollImage(new ...
- bzoj1513
二维线段树 听说二维线段树不能下传标记? 就是裸的二维线段树,由于每次高度只能增加,所以我们就可以标记永久化 每个线段树里有两个数组,mx和mark,每次修改路径上所有mx都要修改,mark是区间的精 ...
- Combo Box (组合框)控件的使用方法
Combo Box (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本 ...
- linuxmint17.3提示flash不是最新版本解决方法(copy)
[资料来自于:http://blog.csdn.net/kh896424665/article/details/54879608] 问题:播放视频提示:Adobe Flash Player 不是最新版 ...
- Ruby Encoding类
Encoding类 内部编码 IO对象内部处理时候的编码 外部编码 IO对象对外输出的时候的编码 输入 外部字符与自己的外部编码对比(没设定的默认 ...
- Postgresql空库发布或者部分空库,模式,表处理备份流程
--备份数据库结构pg_dump -h localhost -p 8101 -d qhsoam -s -f /tmp/nodata.sql --仅备份某模式和该模式下的数据表结构pg_dump -h ...
- 51nod 1120 机器人走方格 V3 【卡特兰数+卢卡斯定理+组合数】
-我并不知道为什么事卡特兰数,反正用dp打的表就是卡特兰数,因为是两个三角所以再乘个2 卡特兰数使用\( h(n)=\frac{C_{2n}^{n}}{n+1} \)因为范围比较大所以组合数部分用卢卡 ...
- 超级实用的VSCode插件,帮你大幅提高工作效率
Visual Studio Code是一个轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于Windows,macOS和Linux. 它内置了对JavaScript,TypeScript和Node ...
- [Usaco2003 Open]Lost Cows
Description N (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular di ...