MS SQL数据类型比较
- 字符串数据类型
char
此数据类型可存储1~8000个定长字符串,字符串长度在创建时指定;如未指定,默认为char(1)。每个字符占用1byte存储空间。
nchar
此数据类型可存储1~4000个定长Unicode字符串,字符串长度在创建时指定;如未指定,默认为nchar(1)。每个字符占用2bytes存储空间。
varchar
此数据类型可存储最大值为8000个字符的可变长字符串。可变长字符串的最大长度在创建时指定,如varchar(50),每个字符占用1byte存储空间。
nvarchar
此数据类型可存储最大值为4000个字符可变长Unicode字符串。可变长Unicode字符串的最大长度在创建时指定,如nvarchar(50),每个字符占用2bytes存储空间。
text
此数据类型可存储最大值为2147483647个字符的变长文本,并且无需指定其初始值,每个字符占用1byte存储空间,一般用来存储大段的文章。text数据类型实际上是一个Large Object数据类型,默认情况下,此类型的数据不是存储在数据行内,而是存储于独立的Large Object数据页上。另外,text数据类型不能做为函数、存储过程或触发器中的参数来用。
ntext
同text数据类型,只不过存储的是最大值为1073741823个字符的Unicode变长文本,每个字符占用1byte存储空间。说明:无论使用哪种字符串数据类型,字符串值必须放在引号内,推荐使用单引号。
各字符类型区别:
CHAR,NCHAR 定长,速度快,占空间大,需处理
VARCHAR,NVARCHAR,TEXT 不定长,空间小,速度慢,无需处理
NCHAR、NVARCHAR、NTEXT处理Unicode码
2. 数值数据类型
bit
此数据类型存储值为0或1的二进制字段。占用1byte存储空间。
tinyint
此数据类型存储0~255的整数,占用1byte存储空间。
smallint
此数据类型存储-32768~32767的整数,占用2bytes存储空间。
int
此数据类型存储-2147483648~2147483647的整数,占用4bytes存储空间。
bigint
此数据类型存储-9223372036854775808~9223372036854775807的整数,占用8bytes存储空间。
decimal/numeric
这两个数据类型功能相同,均为存储精度可变的浮点值。但推荐采用decimal,因其存储的数据“更有说明性”。此种数据类型由两个值来确定decimal(p,s),p为精度,s为标量,如decimal(3,2),其中数值2为小数的位数,那么decimal(3,2)可用来存储如1.28这样的浮点数。此种数据类型占用的存储空间取决于精度值p。p为1~9,占用5bytes存储空间;p为10~19,占用9bytes存储空间;p为20~28,占用13bytes存储空间;p为29~38,占用17bytes存储空间。
float
此数据类型存储1~53的可变精度的浮点值,精度表示为float(n),n表示科学记数法的尾数,取值范围为-1.79E+308~-2.23E-308的负数和2.23E-308~1.79E+308的正数。其存储空间由精度值决定,n为1~24,占用4bytes存储空间;n为25~53,占用8bytes存储空间。
real
此数据类型存储-3.40E+38~-1.18E-38的负数和1.18E~3.40E+38的正数。占用4bytes存储空间。
smallmoney
此数据类型存储-214748.3648~214748.3647的货币值,精确到小数后4位。占用4bytes存储空间。
money
此数据类型存储-922337203685477.5808~922337203685477.5807的货币值,精确到小数后4位。占用8bytes存储空间。
3. 日期和时间数据类型
smalldatetime
此数据类型存储从1900年1月1日到2079年6月6日的日期。占用4btyes存储空间。
datetime
此数据类型存储从1753年1月1日到9999年12月31日的日期。占用8bytes存储空间。
4. 二进制数据类型
binary
此数据类型存储1~8000个字符的二进制数据,其指定长度即为占用的存储空间。
varbinary
此数据类型存储可变长的二进制数据,可在创建时指定其具体长度,也可不指定。
5. 其它数据类型
rowversion/timestamp
这两种数据类型功能一样,但Microsoft建议在任何情况下尽可能地指明rowversion而不是timestamp,因为rowversion更加准确地反应了数据类型的真实性质。timestamp数据类型跟时间完全无关,它表明数据库中的数据修改发生的相对顺序。不要在键(尤其是主键)中使用timestamp列,因为每次修改行时,timestamp值都会更改。当指定数据类型为rowversion或timestamp,那么SQL Server会在对表的插入或删除等更新操作时自动生成一个新值,并把这个新值放在合适的字段里。此类型数据占用8bytes存储空间。
uniqueidentifier
此类型数据存储二进制值,其作用与全局唯一标识符(GUID)一样。GUID 主要用于在有多个节点、多台计算机的网络中,分配必须具有唯一性的标识符。占用16bytes存储空间。
SQL与C#类型对照表
|
序号 |
类别 |
SQL |
C# |
备注 |
|
1 |
整数 |
bit |
Boolean |
True转换为1,False转换为0 |
|
2 |
tinyint |
Byte |
C#数据类型都位于System命名空间 |
|
|
3 |
smallint |
Int16 |
||
|
4 |
int |
Int32 |
||
|
5 |
bigint |
Int64 |
||
|
6 |
smallmoney |
decimal |
||
|
7 |
money |
decimal |
||
|
8 |
numeric |
decimal |
||
|
9 |
decimal |
decimal |
||
|
10 |
浮点数 |
float |
double |
|
|
11 |
real |
single |
||
|
12 |
日期和时间 |
smalldatetime |
datetime |
|
|
13 |
datetime |
datetime |
||
|
14 |
timestamp |
datetime |
||
|
15 |
字符串 |
char |
string |
|
|
16 |
text |
string |
||
|
17 |
varchar |
string |
||
|
18 |
nchar |
string |
||
|
19 |
ntext |
string |
||
|
20 |
nvarchar |
string |
||
|
21 |
二进制数据 |
binary |
Byte[] |
|
|
22 |
varbinary |
Byte[] |
||
|
23 |
image |
Byte[] |
||
|
24 |
其他 |
uniqueidentifier |
guid |
|
|
25 |
variant |
object |
MS SQL数据类型比较的更多相关文章
- MS SQL SERVER 中的系统表
MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行. 2 syscomments 包含每 ...
- (火炬)MS SQL Server数据库案例教程
(火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...
- MS SQL SERVER 2008 使用OBJECT_ID判断临时表是否存在
MS SQL SERVER 2008 使用OBJECT_ID判断临时表是否存在 我们在写sql 脚本的时候经常会用到临时表,有时间也需要根据临时表是否存在做一些逻辑处理.还好sql server已经集 ...
- MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加
微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MD ...
- MS SQL Server数据库查询优化技巧
[摘 要]本文主要是对MS SQL Server数据库查询优化技巧进行了说明和分析,对索引使用.查询条件以及数据表的设计等进行了阐述.中国论文网 http://www.xzbu.com/2/view- ...
- MS SQL语句优化
MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计 ...
- MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerable<T>数据源
MS SQL自定义函数IsPositiveInteger 判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON ...
- MS SQL 数据类型转换
MS SQL 转换数据类型 select cast(列A as int) 列A select convert(int,列A) 列A --转字符串为int select len(ltrim(str('数 ...
- Docker-compose搭建ELK环境并同步MS SQL Server数据
前言 本文作为学习记录,供大家参考:一次使用阿里云(Aliyun)1核2G centos7.5 云主机搭建Docker下的ELK环境,并导入MS SQL Server的商品数据以供Kibana展示的配 ...
随机推荐
- 利用Photos 框架搭建美图秀秀相册选择器
简介:Photos框架是iOS8.0后推出的一个新的用于对系统相册进行相关操作的,在iOS8.0之前,开发中只能使用AssetsLibrary框架来访问移动设备的图片库.本文中不再对AssetsLib ...
- eclipse 搭建python环境
1.安装eclipse + jdk windows下面就直接下载,双击安装就完了. Linux下: 安装eclipse: 安装完之后,可直接运行eclipse: 快捷方式在: 安装jidk: 2. ...
- iOS 获取键盘view 覆盖新view
UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject]; UIView * keyview=[[w ...
- LeetCode之412. Fizz Buzz
-------------------------------------------- 虽然是从最简单的开始刷起,但木有想到LeetCode上也有这么水的题目啊... AC代码: public cl ...
- Laravel Homestead安装笔记
引言: 最近开始学习laravel框架,了解到有个laravel homestead的box,开发起来非常方便快捷,于是就准备开始配置homestead虚拟开发环境了 什么是Homestead 要想学 ...
- 基于Libevent的HTTP Server
简单的Http Server 使用Libevent内置的http相关接口,可以很容易的构建一个Http Server,一个简单的Http Server如下: #include <event2/e ...
- python中各种结构的复杂度
list The Average Case assumes parameters generated uniformly at random. Internally, a list is repres ...
- Maven入门指南① :Maven 快速入门及简单使用
原文链接:http://www.cnblogs.com/luotaoyeah/archive/2014/06/02/3764533.html 开发环境 MyEclipse 2014 JDK 1.8 M ...
- JAVA中List 排序
第一种方法,就是list中对象实现Comparable接口,代码如下: public class SortEntity implements Comparable<SortEntity>{ ...
- nodejs review-04
79 Secure your projects with HTTPS Express 生成SSL证书 openssl genrsa -out privkey.pem 1023 openssl req ...