(1)文本類型: 字符數(shù)據(jù)包含任意字母、符號或數(shù)字字符的組合
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、武定網(wǎng)絡(luò)推廣、微信小程序開發(fā)、武定網(wǎng)絡(luò)營銷、武定企業(yè)策劃、武定品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供武定建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
char: 固定長度的非Unicode字符數(shù)據(jù),最大長度為8000個(gè)字符
varchar: 可變長度的非Unicode數(shù)據(jù),最大長度為8000個(gè)字符
text: 存儲長文本信息,最大長度為2^31-1(2147483647)個(gè)字符
nchar: 固定長度的Unicode數(shù)據(jù),最大長度為4000個(gè)字符
narchar: 可變長度的Unicode數(shù)據(jù),最大長度為4000個(gè)字符
ntext: 存儲長文本信息,最大長度為2^30-1(1073741823)個(gè)字符
(Unicode是國際組織制定的可以容納世界上所有文字和符號的字符編碼方案,編碼數(shù)據(jù)長度是非編碼數(shù)據(jù)的兩倍)
(2)整數(shù)類型
bigint: 占用8個(gè)字節(jié),可表示范圍-2^63~2^63-1之間的整數(shù)
int: 占用4個(gè)字節(jié)
smallint: 占用2個(gè)字節(jié)
tinint: 占用1個(gè)字節(jié),可表示0~255之間的整數(shù)
(3)精確數(shù)字類型
decimal: -10^38~10^38-1之間固定精度和小數(shù)位的數(shù)字
numeric(常用): 功能等同于decimal
寫法:
decimal(整數(shù),小數(shù))和numeric(整數(shù),小數(shù))——若不指定位數(shù),默認(rèn)18位整數(shù),0位小數(shù):
(4)近似數(shù)字(浮點(diǎn))類型(很少用,可以用numeric替代)
float[(n)]: 表示范圍-1.79E+308~1.79E+308
n 表示精度,在1-53之間取值,當(dāng)n在1~24之間時(shí),精度為7位有效數(shù)字,占用4個(gè)字節(jié);當(dāng)n在25~53之間時(shí),精度為15位有效數(shù)字,占8個(gè)字節(jié)。
real: 表示范圍-3.40E+38~3.40E+38占用4個(gè)字節(jié),相當(dāng)于float(24)
(5)日期類型
datetime: 允許范圍1753-1-1至9999-1-1
smalldatetime(常用): 允許范圍1900-1-1至2079-6-6
時(shí)間精度不同: datetime精確到3%秒;smalldatetime精確到1分鐘
格式說明:
分隔符數(shù)字方式: 2013-08-20 或 08/20/2013
純數(shù)字方式: 08202013
英文數(shù)字類型: Aug 20,2013
注意問題: 日期在使用的時(shí)候需要使用單引號'? ? ?' 括起來
(6)貨幣類型
money: 貨幣數(shù)值介于-2^63與2^63-1之間,精確到貨幣單位的千分之一
smallmoney: 貨幣數(shù)據(jù)介于-214748.3648與214748.3648之間,精確到貨幣單位的千分之十
(7)位類型
bit: 表示“是/否”類型的數(shù)據(jù)(1/0,true/false)
(8)二進(jìn)制類型
binary: 固定長度的二進(jìn)制數(shù)據(jù),最大8000個(gè)字節(jié)
vbinary: 可變長度的二進(jìn)制數(shù)據(jù),最大8000個(gè)字節(jié)
image: 可變長度的二進(jìn)制數(shù)據(jù),最大長度2^31個(gè)字節(jié)—— 應(yīng)用場合: 可存儲圖片
sqlserver的數(shù)據(jù)類型比較多,常用的包括:
第一大類:整數(shù)數(shù)據(jù)
bit:bit數(shù)據(jù)類型代表0,1或NULL,就是表示true,false.占用1byte.
int:以4個(gè)字節(jié)來存儲正負(fù)數(shù).可存儲范圍為:-2^31至2^31-1.
smallint:以2個(gè)字節(jié)來存儲正負(fù)數(shù).存儲范圍為:-2^15至2^15-1
tinyint: 是最小的整數(shù)類型,僅用1字節(jié),范圍:0至此^8-1
第二大類:精確數(shù)值數(shù)據(jù)
numeric:表示的數(shù)字可以達(dá)到38位,存儲數(shù)據(jù)時(shí)所用的字節(jié)數(shù)目會隨著使用權(quán)用位數(shù)的多少變化.
decimal:和numeric差不多
第三大類:近似浮點(diǎn)數(shù)值數(shù)據(jù)
float:用8個(gè)字節(jié)來存儲數(shù)據(jù).最多可為53位.范圍為:-1.79E+308至1.79E+308.
real:位數(shù)為24,用4個(gè)字節(jié),數(shù)字范圍:-3.04E+38至3.04E+38
第四大類:日期時(shí)間數(shù)據(jù)
datatime:表示時(shí)間范圍可以表示從1753/1/1至9999/12/31,時(shí)間可以表示到3.33/1000秒.使用8個(gè)字節(jié).
smalldatetime:表示時(shí)間范圍可以表示從1900/1/1至2079/12/31.使用4個(gè)字節(jié).
第五大類:字符串?dāng)?shù)據(jù)
char:長度是設(shè)定的,最短為1字節(jié),最長為8000個(gè)字節(jié).不足的長度會用空白補(bǔ)上.
varchar:長度也是設(shè)定的,最短為1字節(jié),最長為8000個(gè)字節(jié),尾部的空白會去掉.
text:長寬也是設(shè)定的,最長可以存放2G的數(shù)據(jù).
第六大類:Unincode字符串?dāng)?shù)據(jù)
nchar:長度是設(shè)定的,最短為1字節(jié),最長為4000個(gè)字節(jié).不足的長度會用空白補(bǔ)上.儲存一個(gè)字符需要2個(gè)字節(jié).
nvarchar:長度是設(shè)定的,最短為1字節(jié),最長為4000個(gè)字節(jié).尾部的空白會去掉.儲存一個(gè)字符需要2個(gè)字節(jié).
ntext:長度是設(shè)定的,最短為1字節(jié),最長為2G.尾部的空白會去掉,儲存一個(gè)字符需要2個(gè)字節(jié).
第七大類:貨幣數(shù)據(jù)類型
money:記錄金額范圍為:-92233720368577.5808至92233720368577.5807.需要8 個(gè)字節(jié).
smallmoney:記錄金額范圍為:-214748.3648至214748.36487.需要4個(gè)字節(jié).
第八大類:標(biāo)記數(shù)據(jù)
timestamp:該數(shù)據(jù)類型在每一個(gè)表中是唯一的!當(dāng)表中的一個(gè)記錄更改時(shí),該記錄的timestamp字段會自動(dòng)更新.
uniqueidentifier:用于識別數(shù)據(jù)庫里面許多個(gè)表的唯一一個(gè)記錄.
第九大類:二進(jìn)制碼字符串?dāng)?shù)據(jù)
binary:固定長度的二進(jìn)制碼字符串字段,最短為1,最長為8000.
varbinary:與binary差異為數(shù)據(jù)尾部是00時(shí),varbinary會將其去掉
image:為可變長度的二進(jìn)制碼字符串,最長2G.
在SQL SERVER 2005中,將表中字符串轉(zhuǎn)換為數(shù)字的函數(shù)共2個(gè):
1. convert(int,字段名) 例如:select convert(int,'3')
2. cast(字段名 as int) 例如:select cast('3' as int)
其實(shí),一般情況下沒有必要把字符串轉(zhuǎn)換為數(shù)字類型
假如需要比較兩個(gè)字段是否相等,但是一個(gè)字段為字符串類型,一個(gè)為數(shù)字類型,用“=”比較兩個(gè)值是否相等時(shí),SQL SERVER會自動(dòng)把字符串轉(zhuǎn)換為數(shù)字再比較的!
例如:
select da.TITLE_NAME,dsc.NAME
from dbo.DV_DUTY dd
inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA)
left join DV_ASSET da on(da.ID=dd.RECORD_ID and dd.TYPE='2')
where dd.AREA is not null
這個(gè)SQl中,inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA) 中dsc.ID為數(shù)字類型,dd.AREA為字符類型,相當(dāng)于這樣on(1='1')的判斷,這時(shí)候就會自動(dòng)吧字符串的'1'轉(zhuǎn)換為數(shù)字類型再比較的。
但是也有弊端,一旦字符類型轉(zhuǎn)換為數(shù)字類型出錯(cuò)(說明字符串的確就非數(shù)字組成的),SQL就會拋出異常。
SQL SERVER 2005中有判斷字段是否為數(shù)字的函數(shù):
ISNUMERIC(字段名) -----假如字段是數(shù)字類型返回1,不是就返回0
但是好像有的時(shí)候不好使,比如:select isnumeric('3,34') 就返回1
說明這個(gè)函數(shù)對字段值中全是數(shù)字但是數(shù)字間用“,”和“.”(逗號或點(diǎn))隔開的都視為數(shù)字了!
數(shù)字有很多類型,那么通常的數(shù)字類型有如下一些:
整型,也就是整數(shù):int,bigint,smallint,tinyint等
小數(shù):float,numeric(整數(shù)位數(shù),小數(shù)位數(shù)),decimal(整數(shù)位數(shù),小數(shù)位數(shù))
SQL Server常用數(shù)據(jù)類型
數(shù)據(jù)類型是數(shù)據(jù)的一種屬性,是數(shù)據(jù)所表示信息的類型。下面是我為大家搜索整理了關(guān)于SQLServer常用數(shù)據(jù)類型,歡迎參考閱讀,希望對大家有所幫助。
SQLServer2000提供了比較多的數(shù)據(jù)類型供用戶使用,包括字符型數(shù)據(jù)類型、數(shù)值型數(shù)據(jù)類型、貨幣型數(shù)據(jù)類型、日期/時(shí)間型數(shù)據(jù)類型等。
一、字符型數(shù)據(jù)類型
字符型數(shù)據(jù)類型是使用最多的數(shù)據(jù)類型。它可以用來存儲各種字母、數(shù)字符號、特殊符號。在使用字符類型數(shù)據(jù)時(shí),必須為其加上單引號。若將數(shù)值數(shù)據(jù)包括在單引號中,將被視為字符類型數(shù)據(jù)。一般來說,字符型數(shù)據(jù)類型有兩種基本形式:
(一)CHAR定長字符型數(shù)據(jù)類型
CHAR數(shù)據(jù)類型的定義形式為CHAR(n),n為長度,n的取值范圍為1-8000,共占n個(gè)字節(jié)。若存儲的字符串長度小于n,則系統(tǒng)自動(dòng)使用空格填補(bǔ)剩余的位置。若存儲的字符串長度大于n,那么在執(zhí)行插入記錄語句時(shí)將導(dǎo)致執(zhí)行錯(cuò)誤。
(二)VARCHAR變長字符型數(shù)據(jù)類型
VARCHAR數(shù)據(jù)類型的定義形式為VARCHAR(n),最大長度為n,n的取值范圍為1-8000。VARCHAR數(shù)據(jù)類型的存儲長度為實(shí)際字符串的長度,若存儲的字符串長度小于n,系統(tǒng)不會使用空格填補(bǔ)剩余的位置。VARCHAR數(shù)據(jù)類型通常用于存放長度變化較大的字符串,這樣可以節(jié)約大量的存儲空間。但是使用varn)數(shù)據(jù)類型的缺點(diǎn)是,這種變長的存儲方法使得用戶無法確切地估計(jì)存儲數(shù)據(jù)所使用的空間大小。
二、數(shù)值型數(shù)據(jù)類型
數(shù)值型數(shù)據(jù)類型包括整型數(shù)據(jù)類型、數(shù)字?jǐn)?shù)據(jù)類型和浮點(diǎn)數(shù)據(jù)類型三種。
(一)整型數(shù)據(jù)類型
整型數(shù)據(jù)類型只存儲整數(shù)。整型數(shù)據(jù)類型包括以下四種:
bigint數(shù)據(jù)類型
bigint數(shù)據(jù)類型占8個(gè)字節(jié),共64位,能夠存儲-263~263-1之間的所有正負(fù)整數(shù)。在64位中,63位用來存儲數(shù)值,1位用來存儲數(shù)值的正負(fù)。
int數(shù)據(jù)類型
int數(shù)據(jù)類型占4個(gè)字節(jié),共32位,能夠存儲-231~231-1之間的所有正負(fù)整數(shù)。在32位中,31位用來存儲數(shù)值,1位用來存儲數(shù)值的正負(fù)。
smallint數(shù)據(jù)類型
smallint數(shù)據(jù)類型占2個(gè)字節(jié),共16位,能夠存儲-215~215-1之間的所有正負(fù)整數(shù)。在16位中,15位用來存儲數(shù)值,1位用來存儲數(shù)值的正負(fù)。
(二)數(shù)字?jǐn)?shù)據(jù)類型
數(shù)字?jǐn)?shù)據(jù)類型包括decimal數(shù)據(jù)類型和numeric數(shù)據(jù)類型兩種,numeric數(shù)據(jù)類型與decimal數(shù)據(jù)類型完全相同。decimal數(shù)據(jù)類型可以提供小數(shù)所需要的實(shí)際存儲空間,decimal數(shù)據(jù)類型最多可存儲38位數(shù)字。
decimal數(shù)據(jù)類型的定義形式為decimal(p,s)。
其中:
p:為指定精度或?qū)ο竽軌蚩刂频臄?shù)字個(gè)數(shù)。
s:為指定可放到小數(shù)點(diǎn)右邊的小數(shù)位數(shù)或數(shù)字個(gè)數(shù)。
p和s必須遵守以下規(guī)則:0=s=p=38。
(三)浮點(diǎn)數(shù)據(jù)類型
浮點(diǎn)數(shù)據(jù)類型包括float數(shù)據(jù)類型和real數(shù)據(jù)類型,這兩種數(shù)據(jù)類型被稱為近似數(shù)據(jù)類型。
real數(shù)據(jù)類型
real數(shù)據(jù)類型占4個(gè)字節(jié),共32位,能夠存儲-3.40E+38~3.40E+38之間所有的浮點(diǎn)數(shù)。
float數(shù)據(jù)類型
float數(shù)據(jù)類型占8個(gè)字節(jié),共64位,能夠存儲-1.79E+308~1.79E+308之間所有的浮點(diǎn)數(shù)。float數(shù)據(jù)類型可精確到第15位小數(shù)。float數(shù)據(jù)類型可以定義為float(n),n為數(shù)據(jù)的精度。若n取1到7時(shí),實(shí)際上是定義了一個(gè)real類型的數(shù)據(jù),系統(tǒng)將分配4個(gè)字節(jié)的.空間存儲數(shù)據(jù);若n取8到15時(shí),系統(tǒng)認(rèn)為其是float類型,將分配8個(gè)字節(jié)的空間存儲數(shù)據(jù)。
三、貨幣型數(shù)據(jù)類型
貨幣型數(shù)據(jù)類型用于存儲貨幣值。在SQLServer2000中提供兩種貨幣型數(shù)據(jù)類型:money數(shù)據(jù)類型和smallmoney數(shù)據(jù)類型。
(一)money數(shù)據(jù)類型
money數(shù)據(jù)類型使用8個(gè)字節(jié)存儲數(shù)據(jù),由兩部分組成,前面4個(gè)字節(jié)表示貨幣值的整數(shù)部分,后面4個(gè)字節(jié)表示貨幣值的小數(shù)部分。
(二)smallmoney數(shù)據(jù)類型
smallmoney數(shù)據(jù)類型類似于money類型,使用4個(gè)字節(jié)存儲數(shù)據(jù),前面2個(gè)字節(jié)表示貨幣值的整數(shù)部分,后面2個(gè)字節(jié)表示貨幣值的小數(shù)部分。
四、日期/時(shí)間型數(shù)據(jù)類型
日期/時(shí)間型數(shù)據(jù)類型用于存儲日期和時(shí)間的結(jié)合體。
(一)datetime數(shù)據(jù)類型
datetime數(shù)據(jù)類型可以存儲從公元1753年1月1日零時(shí)起到公元9999年12月31日23時(shí)59分59秒之間的所有日期和時(shí)間,其精確度可達(dá)三百分之一秒。datetime數(shù)據(jù)類型占用8個(gè)字節(jié)的存儲空間。
(二)smalldatetime數(shù)據(jù)類型
smalldatetime數(shù)據(jù)類型與datetime數(shù)據(jù)類型相似,但其日期時(shí)間范圍較小,可以存儲從1900年1月1日到2079年6月6日,精度可以達(dá)到分鐘。smalldatetime數(shù)據(jù)類型占用4個(gè)字節(jié)的存儲空間。
SQL Server vNext on Linux安裝
今天微軟正式發(fā)布上SQL Server 2016 SP1,根據(jù)以往的SP1定律,可以在生產(chǎn)環(huán)境上使用了。打了SP1的標(biāo)準(zhǔn)版將具有企業(yè)版幾乎所有的的功能。只有RAM 超過128GB或者超過24核心或者超過4路的環(huán)境才必須要安裝企業(yè)版。
還有一個(gè)重要的發(fā)布:SQL Server vNext on Linux。也是本文介紹安裝的版本。長話短說,開始安裝。
這個(gè)版本的SQL Server,官方支持的平臺是Red Hat Enterpise 7.2 或者Ubuntu 16.04。但是我手上暫時(shí)沒有Red Hat,就用CentOS 7.2試試。我是以root身份安裝的。
1. 安裝
#下載庫配置文件curl /etc/yum.repos.d/mssql-server.repo#安裝sudo yum install -y mssql-server
2. 運(yùn)行配置文件
#運(yùn)行SQL Server的配置文件進(jìn)行配置。#這個(gè)過程會要你同意License條款,設(shè)置SA密碼,設(shè)置SQL Server服務(wù)開機(jī)啟動(dòng)/opt/mssql/bin/sqlservr-setup
3. 檢查服務(wù)狀態(tài)
#檢查SQL Server的服務(wù)狀態(tài)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參數(shù)后填密碼或者回車后輸入密碼。sqlcmd -S . -U SA -p
發(fā)現(xiàn)sqlcmd的使用方式和windows下是一樣的。返回內(nèi)容最后有一個(gè)根據(jù)當(dāng)前查詢的耗時(shí)預(yù)估的每秒事務(wù)處量。
然后建個(gè)庫,建個(gè)表試試。
遠(yuǎn)程連接。從windows使用sqlcmd,用外網(wǎng)IP連接
使用SSMS連接,我使用是SQL 2014安裝時(shí)自帶SSMS,可能會有一些不支持問題??梢钥吹紸gent沒啟動(dòng)的,實(shí)際上是這個(gè)版本沒有Agent。
有意思的是,使用SSMS可以創(chuàng)建庫,卻不能創(chuàng)建表。從錯(cuò)誤信息來看,似乎是不支持圖形界面創(chuàng)建表。
總結(jié):
嘗鮮性地測試一下,有機(jī)會還會測試更多功能。目前不支持Agent,復(fù)制和大部分BI功能組件。
很多人對SQL Server On Linux是有所期待。如果它在Linux上的表現(xiàn)與之在以往Windows上的表現(xiàn)一樣優(yōu)秀的話,我相信會有更多人會使用它的。
SQL Server On Linux的更多文檔內(nèi)容:SQL Server on Linux Documentation
;