扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
数字有很多类型,那么通常的数字类型有如下一些:
10多年的可克达拉网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整可克达拉建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“可克达拉网站设计”,“可克达拉网站推广”以来,每个客户项目都认真落实执行。
整型,也就是整数:int,bigint,smallint,tinyint等
小数:float,numeric(整数位数,小数位数),decimal(整数位数,小数位数)
sqlserver的数据类型比较多,常用的包括:
第一大类:整数数据
bit:bit数据类型代表0,1或NULL,就是表示true,false.占用1byte.
int:以4个字节来存储正负数.可存储范围为:-2^31至2^31-1.
smallint:以2个字节来存储正负数.存储范围为:-2^15至2^15-1
tinyint: 是最小的整数类型,仅用1字节,范围:0至此^8-1
第二大类:精确数值数据
numeric:表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化.
decimal:和numeric差不多
第三大类:近似浮点数值数据
float:用8个字节来存储数据.最多可为53位.范围为:-1.79E+308至1.79E+308.
real:位数为24,用4个字节,数字范围:-3.04E+38至3.04E+38
第四大类:日期时间数据
datatime:表示时间范围可以表示从1753/1/1至9999/12/31,时间可以表示到3.33/1000秒.使用8个字节.
smalldatetime:表示时间范围可以表示从1900/1/1至2079/12/31.使用4个字节.
第五大类:字符串数据
char:长度是设定的,最短为1字节,最长为8000个字节.不足的长度会用空白补上.
varchar:长度也是设定的,最短为1字节,最长为8000个字节,尾部的空白会去掉.
text:长宽也是设定的,最长可以存放2G的数据.
第六大类:Unincode字符串数据
nchar:长度是设定的,最短为1字节,最长为4000个字节.不足的长度会用空白补上.储存一个字符需要2个字节.
nvarchar:长度是设定的,最短为1字节,最长为4000个字节.尾部的空白会去掉.储存一个字符需要2个字节.
ntext:长度是设定的,最短为1字节,最长为2G.尾部的空白会去掉,储存一个字符需要2个字节.
第七大类:货币数据类型
money:记录金额范围为:-92233720368577.5808至92233720368577.5807.需要8 个字节.
smallmoney:记录金额范围为:-214748.3648至214748.36487.需要4个字节.
第八大类:标记数据
timestamp:该数据类型在每一个表中是唯一的!当表中的一个记录更改时,该记录的timestamp字段会自动更新.
uniqueidentifier:用于识别数据库里面许多个表的唯一一个记录.
第九大类:二进制码字符串数据
binary:固定长度的二进制码字符串字段,最短为1,最长为8000.
varbinary:与binary差异为数据尾部是00时,varbinary会将其去掉
image:为可变长度的二进制码字符串,最长2G.
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
length
是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。
function
是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。
例:
Select ROUND(150.75, 0)
151.00
Select ROUND(150.75, 0, 1)
150.00
FLOOR
返回小于或等于所给数字表达式的最大整数。
FLOOR(1.1)=1
FLOOR(2)=2
CEILING
返回大于或等于所给数字表达式的最小整数。
CEILING(1.1)=2
CEILING(2)=2
如果要四舍五入:
cast(round(1.6,0) as int) =2
cast(round(1.4,0) as int)=1
cast(round(2,0) as int)=2
(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常用数据类型
数据类型是数据的一种属性,是数据所表示信息的类型。下面是我为大家搜索整理了关于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 /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 /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
;
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'
注意:当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流