sqlserver存储类型数据
Ⅰ sql server怎么定义数据类型
SQLServer 提供了 25 种数据类型:
Binary [(n)],Varbinary [(n)],Char[(n)],Varchar[(n)],Nchar[(n)],Nvarchar[(n)],Datetime,Smalldatetime
Decimal[(p[,s])],Numeric[(p[,s])],Float[(n)],Real,Int,Smallint,Tinyint,Money,Smallmoney,Bit,Cursor
Sysname,Timestamp,Uniqueidentifier,Text,Image,Ntext。
下面来分别介绍这些数据类型:
(1)二进制数据类型
二进制数据包括 Binary、Varbinary 和 Image
Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。
Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。
Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。
在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。
例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。
(2)字符数据类型
字符数据的类型包括 Char,Varchar 和 Text
字符数据是由任何字母、符号和数字任意组合而成的数据。
Varchar 是变长字符数据,其长度不超过 8KB。
Char 是定长字符数据,其长度最多为 8KB。
超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,
并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。
(3)Unicode 数据类型
Unicode 数据类型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。
在 SQL Server安装过程,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。
在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,
所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两倍。
在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。
使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar 字符类型,
这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,
这时最多可以存储4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。
(4)日期和时间数据类型
日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型
日期和时间数据类型由有效的日期和时间组成。
例如,有效的日期和时间数据包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。
前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期在后。
在 Microsoft SQL Server中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,
所存储的日期范围是从 1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。
使用 Smalldatetime 数据类型时,
所存储的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。
日期的格式可以设定。设置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为MDY。
例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形式;
当执行 Set DateFormat DMY 之后,日期的格式为日 月有年 形式
(5)数字数据类型
数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数
整数由正整数和负整数组成,例如 39、25、0-2 和 33967。
在 Micrsoft SQL Server 中,整数存储的数据类型是Int,Smallint和 Tinyint。
Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围,
而 Smallint 据类型存储数据的范围大于Tinyint 数据类型存储数据的范围。
使用 Int 数据存储数据的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求4个字节存储空间)。
使用 Smallint 数据类型时,存储数据的范围从 -32 768 到 32 767(每一个值要求2个字节存储空间)。
使用Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。
精确小 数数据在 SQL Server 中的数据类型是 Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。
在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如,三分之一这个分数记作。
3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。
=======================================================================================
SQL Server的数据类型介绍(二)
(6)货币数据表示正的或者负的货币数量 。
在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney 。
而Money数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。
(7)特殊数据类型
特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即Timestamp、Bit 和 Uniqueidentifier。
Timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 数据与插入数据或者日期和时间没有关系。
Bit 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 数据类型。
例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的列中。
Uniqueidentifier 由 16 字节的十六进制数字组成,表示一个全局唯一的。
当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。
=======================================================================
用户定义的数据类型
用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类型。当几个表中必须存储同一种数据类型时,
并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。
例如,可定义一种称为 postal_code 的数据类型,它基于 Char 数据类型。
当创建用户定义的数据类型时,必须提供三个数:数据类型的名称、所基于的系统数据类型和数据类型的可空性。
(1)创建用户定义的数据类型
创建用户定义的数据类型可以使用 Transact-SQL 语句。系统存储过程 sp_addtype 可以来创建用户定义的数据类型。其语法形式如下:
sp_addtype {type},[,system_data_bype][,'null_type']
其中,type 是用户定义的数据类型的名称。system_data_type 是系统提供的数据类型,例如 Decimal、Int、Char 等等。
null_type 表示该数据类型是如何处理空值的,必须使用单引号引起来,例如'NULL'、'NOT NULL'或者'NONULL'。
例子:
Use cust
Exec sp_addtype ssn,'Varchar(11)','Not Null'
创建一个用户定义的数据类型 ssn,其基于的系统数据类型是变长为11 的字符,不允许空。
例子:
Use cust
Exec sp_addtype birthday,datetime,'Null'
创建一个用户定义的数据类型 birthday,其基于的系统数据类型是 DateTime,允许空。
例子:
Use master
Exec sp_addtype telephone,'varchar(24),'Not Null'
Eexc sp_addtype fax,'varchar(24)','Null'
创建两个数据类型,即 telephone 和 fax
(2)删除用户定义的数据类型
当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是 sp_droptype {'type'}。
例子:
Use master
Exec sp_droptype 'ssn'
注意:当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。
Ⅱ sql sever中照片用什么数据类型
sql sever中照片用image数据类型。
sql sever数据库中的Image数据类型可以进行数据图片的存储。保存的是二进制字节,所以写入sql sever数据库Image数据类型时,sql sever数据库自动将图片转换成二进制字节后存入。读取的时候,将二进制再转换成图片从sql sever数据库中输出显示到页面或者程序中。
(2)sqlserver存储类型数据扩展阅读:
如果SQL Server是缺省安装时, IMAGE类型字段是有长度限制,用来存储图片大小不超过2g的图片。缺点是占用了很大的数据存储空间。但是对于之前的存储物理路径来说读取图片和存储图片方便了很多。
一般开发中,照片等二进制的文件并不保存在数据库中。而是保存在服务器的特定目录中,然后在数据库中记录一下这个具体路径和文件名。
Ⅲ 二、数据库与数据表--2、SQLServer的数据类型
(1)文本类型: 字符数据包含任意字母、符号或数字字符的组合
char: 固定长度的非Unicode字符数据,最大长度为8000个字符
varchar: 可变长度的非Unicode数据,最大长度为8000个字符
text: 存储长文本信息,最大长度为2^31-1(2147483647)个字符
nchar: 固定长度的Unicode数据,最大长度为4000个字符
narchar: 可变长度的Unicode数据,最大长度为4000个字符
ntext: 存储长文本信息,最大长度为2^30-1(1073741823)个字符
(Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,编码数据长度是非编码数据的两倍)
(2)整数类型
bigint: 占用8个字节,可表示范围-2^63~2^63-1之间的整数
int: 占用4个字节
smallint: 占用2个字节
tinint: 占用1个字节,可表示0~255之间的整数
(3)精确数字类型
decimal: -10^38~10^38-1之间固定精度和小数位的数字
numeric(常用): 功能等同于decimal
写法:
decimal(整数,小数)和numeric(整数,小数)——若不指定位数,默认18位整数,0位小数:
(4)近似数字(浮点)类型(很少用,可以用numeric替代)
float[(n)]: 表示范围-1.79E+308~1.79E+308
n 表示精度,在1-53之间取值,当n在1~24之间时,精度为7位有效数字,占用4个字节;当n在25~53之间时,精度为15位有效数字,占8个字节。
real: 表示范围-3.40E+38~3.40E+38占用4个字节,相当于float(24)
(5)日期类型
datetime: 允许范围1753-1-1至9999-1-1
smalldatetime(常用): 允许范围1900-1-1至2079-6-6
时间精度不同: datetime精确到3%秒;smalldatetime精确到1分钟
格式说明:
分隔符数字方式: 2013-08-20 或 08/20/2013
纯数字方式: 08202013
英文数字类型: Aug 20,2013
注意问题: 日期在使用的时候需要使用单引号' ' 括起来
(6)货币类型
money: 货币数值介于-2^63与2^63-1之间,精确到货币单位的千分之一
smallmoney: 货币数据介于-214748.3648与214748.3648之间,精确到货币单位的千分之十
(7)位类型
bit: 表示“是/否”类型的数据(1/0,true/false)
(8)二进制类型
binary: 固定长度的二进制数据,最大8000个字节
vbinary: 可变长度的二进制数据,最大8000个字节
image: 可变长度的二进制数据,最大长度2^31个字节—— 应用场合: 可存储图片
Ⅳ SQL Server常用数据类型
SQL Server常用数据类型
数据类型是数据的一种属性,是数据所表示信息的类型。下面是我为大家搜索整理了关于SQLServer常用数据类型,欢迎参考阅读,希望对大家有所帮助。
SQLServer2000提供了比较多的数据类型供用户使用,包括字符型数据类型、数值型数据类型、货币型数据类型、日期/时间型数据类型等。
一、字符型数据类型
字符型数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。在使用字符类型数据时,必须为其加上单引号。若将数值数据包括在单引号中,将被视为字符类型数据。一般来说,字符型数据类型有两种基本形式:
(一)CHAR定长字符型数据类型
CHAR数据类型的定义形式为CHAR(n),n为长度,n的取值范围为1-8000,共占n个字节。若存储的字符串长度小于n,则系统自动使用空格填补剩余的位置。若存储的字符串长度大于n,那么在执行插入记录语句时将导致执行错误。
(二)VARCHAR变长字符型数据类型
VARCHAR数据类型的定义形式为VARCHAR(n),最大长度为n,n的取值范围为1-8000。VARCHAR数据类型的存储长度为实际字符串的长度,若存储的字符串长度小于n,系统不会使用空格填补剩余的位置。VARCHAR数据类型通常用于存放长度变化较大的字符串,这样可以节约大量的存储空间。但是使用varn)数据类型的缺点是,这种变长的存储方法使得用户无法确切地估计存储数据所使用的空间大小。
二、数值型数据类型
数值型数据类型包括整型数据类型、数字数据类型和浮点数据类型三种。
(一)整型数据类型
整型数据类型只存储整数。整型数据类型包括以下四种:
bigint数据类型
bigint数据类型占8个字节,共64位,能够存储-263~263-1之间的所有正负整数。在64位中,63位用来存储数值,1位用来存储数值的正负。
int数据类型
int数据类型占4个字节,共32位,能够存储-231~231-1之间的所有正负整数。在32位中,31位用来存储数值,1位用来存储数值的正负。
smallint数据类型
smallint数据类型占2个字节,共16位,能够存储-215~215-1之间的所有正负整数。在16位中,15位用来存储数值,1位用来存储数值的正负。
(二)数字数据类型
数字数据类型包括decimal数据类型和numeric数据类型两种,numeric数据类型与decimal数据类型完全相同。decimal数据类型可以提供小数所需要的实际存储空间,decimal数据类型最多可存储38位数字。
decimal数据类型的定义形式为decimal(p,s)。
其中:
p:为指定精度或对象能够控制的数字个数。
s:为指定可放到小数点右边的小数位数或数字个数。
p和s必须遵守以下规则:0<=s<=p<=38。
(三)浮点数据类型
浮点数据类型包括float数据类型和real数据类型,这两种数据类型被称为近似数据类型。
real数据类型
real数据类型占4个字节,共32位,能够存储-3.40E+38~3.40E+38之间所有的浮点数。
float数据类型
float数据类型占8个字节,共64位,能够存储-1.79E+308~1.79E+308之间所有的浮点数。float数据类型可精确到第15位小数。float数据类型可以定义为float(n),n为数据的精度。若n取1到7时,实际上是定义了一个real类型的数据,系统将分配4个字节的.空间存储数据;若n取8到15时,系统认为其是float类型,将分配8个字节的空间存储数据。
三、货币型数据类型
货币型数据类型用于存储货币值。在SQLServer2000中提供两种货币型数据类型:money数据类型和smallmoney数据类型。
(一)money数据类型
money数据类型使用8个字节存储数据,由两部分组成,前面4个字节表示货币值的整数部分,后面4个字节表示货币值的小数部分。
(二)smallmoney数据类型
smallmoney数据类型类似于money类型,使用4个字节存储数据,前面2个字节表示货币值的整数部分,后面2个字节表示货币值的小数部分。
四、日期/时间型数据类型
日期/时间型数据类型用于存储日期和时间的结合体。
(一)datetime数据类型
datetime数据类型可以存储从公元1753年1月1日零时起到公元9999年12月31日23时59分59秒之间的所有日期和时间,其精确度可达三百分之一秒。datetime数据类型占用8个字节的存储空间。
(二)smalldatetime数据类型
smalldatetime数据类型与datetime数据类型相似,但其日期时间范围较小,可以存储从1900年1月1日到2079年6月6日,精度可以达到分钟。smalldatetime数据类型占用4个字节的存储空间。
SQL Server vNext on Linux安装
今天微软正式发布上SQL Server 2016 SP1,根据以往的SP1定律,可以在生产环境上使用了。打了SP1的标准版将具有企业版几乎所有的的功能。只有RAM 超过128GB或者超过24核心或者超过4路的环境才必须要安装企业版。
还有一个重要的发布:SQL Server vNext on Linux。也是本文介绍安装的版本。长话短说,开始安装。
这个版本的SQL Server,官方支持的平台是Red Hat Enterpise 7.2 或者Ubuntu 16.04。但是我手上暂时没有Red Hat,就用CentOS 7.2试试。我是以root身份安装的。
1. 安装
#下载库配置文件curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > /etc/yum.repos.d/mssql-server.repo#安装sudo yum install -y mssql-server
2. 运行配置文件
#运行SQL Server的配置文件进行配置。#这个过程会要你同意License条款,设置SA密码,设置SQL Server服务开机启动/opt/mssql/bin/sqlservr-setup
3. 检查服务状态
#检查SQL Server的服务状态systemctl status mssql-server
4. 修改防火墙
#修改防火墙,允许1433端口systemctl start firewalldfirewall-cmd --zone=public --add-port=1433/tcp --permanentfirewall-cmd --reload
5. 安装SQL工具,包括sqlcmd和bcp
#下载源的库配置文件curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo#安装toolsyum install mssql-tools
6. 连接测试
# 使用sqlcmd的本地连接。直接在-P参数后填密码或者回车后输入密码。sqlcmd -S . -U SA -p
发现sqlcmd的使用方式和windows下是一样的。返回内容最后有一个根据当前查询的耗时预估的每秒事务处量。
然后建个库,建个表试试。
远程连接。从windows使用sqlcmd,用外网IP连接
使用SSMS连接,我使用是SQL 2014安装时自带SSMS,可能会有一些不支持问题。可以看到Agent没启动的,实际上是这个版本没有Agent。
有意思的是,使用SSMS可以创建库,却不能创建表。从错误信息来看,似乎是不支持图形界面创建表。
总结:
尝鲜性地测试一下,有机会还会测试更多功能。目前不支持Agent,复制和大部分BI功能组件。
很多人对SQL Server On Linux是有所期待。如果它在Linux上的表现与之在以往Windows上的表现一样优秀的话,我相信会有更多人会使用它的。
SQL Server On Linux的更多文档内容:SQL Server on Linux Documentation
;Ⅳ SQL server 常用基本数据类型有哪些
一、
整数数据类型
整数数据类型是最常用的数据类型之一。
1、int
(integer)
2、smallint
3、tinyint
4、bigint
二、
浮点数据类型
浮点数据类型用于存储十进制小数。浮点数值的数据在sql
server
中采用上舍入(round
up
或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1
,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979
分别进行2
位和12位舍入,结果为3.15
和3.141592653590。
1、real
数据类型
2、float
3、decimal
4、numeric
三、二进制数据类型
1、binary
2、varbinary
四、
逻辑数据类型
bit:
bit数据类型占用1
个字节的存储空间,其值为0
或1
。如果输入0
或1
以外的值,将被视为1。
bit
类型不能定义为null
值(所谓null
值是指空值或无意义的值)。
五、字符数据类型
字符数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。一般情况下,使用字符类型数据时须在其前后加上单引号’或双引号”
。
1
char
2、nchar
3、varchar
4、nvarchar
六、文本和图形数据类型
这类数据类型用于存储大量的字符或二进制数据。
1、text
2
ntext
3
image
七、
日期和时间数据类型
1
datetime
2
smalldatetime
八、货币数据类型
1
money
2
smallmoney
smallmoney数据类型类似于money
类型,但其存储的货币值范围比money数据类型小,其取值从-214,748.3648到+214,748.3647,存储空间为4
个字节。
九、
特定数据类型
sql
server
中包含了一些用于数据存储的特殊数据类型。
1
timestamp
十、用户自定义数据类型
sysname
sysname
数据类型是系统提供给用户的,便于用户自定义数据类型。它被定义为nvarchar(128),即它可存储128个unicode字符或256个一般字符。其具体使用方法请参见第7章“管理数据库表”中的“自定义数据类型”章节。
十一、
新数据类型
sql
server
2000
中增加了3
种数据类型:bigint、sql_variant和table。其中bigint数据类型已在整数类型中介绍,下面介绍其余两种:
1
sql_variant
sql_variant数据类型可以存储除文本、图形数据(text、ntext、image)和timestamp类型数据外的其它任何合法的sql
server数据。此数据类型大大方便了sql
server的开发工作。
2
table
table
数据类型用于存储对表或视图处理后的结果集。这一新类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便快、捷其、使用请参见第13章“游标、视图和自定义函数”。
Ⅵ sql server数据以什么形式存储的
SQLSERVER有两种数据存储文件,分别是数据文件和日志文件。
其中:数据文件是以8K(=8192Byte)的页面(Page)作为存储单元的。
而日志文件是以日志记录作为存储单元。
数据文件以页面做为存储单元存储数据,要理解数据文件的存储方式,必须了解SQLSERVER中定义的页面类型种类。