婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解SQL Server中的數(shù)據(jù)類型

詳解SQL Server中的數(shù)據(jù)類型

熱門標簽:安卡拉地圖標注app 我要地圖標注數(shù)量有限制嗎 電話機器人怎么代理商 家庭農(nóng)場地圖標注名稱怎樣起名 電銷需要外呼系統(tǒng)嗎 零成本地圖標注賺錢 千呼電話機器人可以試用嗎 400電話辦理泰安 互聯(lián)網(wǎng)電話外呼系統(tǒng)

前言

前面幾篇文章我們講解了索引有關(guān)知識,這一節(jié)我們再繼續(xù)我們下面內(nèi)容講解,簡短的內(nèi)容,深入的理解。

數(shù)據(jù)類型

SQL Server支持兩種字符數(shù)據(jù)類型,一種是常規(guī),另外一種則是Unicode。常規(guī)數(shù)據(jù)類型包括CHAR和VARCHAR,Unicode數(shù)據(jù)類型包括NCAHR和NVARCHAR。常規(guī)字符的每個字符使用1個字節(jié)存儲,而Unicode數(shù)據(jù)的每個字符要求2個字節(jié)。常規(guī)字符列限制為僅僅只針對于英語,而Unicode則是針對于多種語言。兩種字符數(shù)據(jù)類型的文本表示方式也不相同,在表示常規(guī)字符文本時,只需要使用單引號,比如'Hello,my name is JeffckyWang,I'm from cnblogs',而對于Unicode字符文本時,需要指定字符N作為前綴,即N‘Hello,my name is JeffckyWang,I'm from cnblogs'。

名稱中沒有VAR元素的任何數(shù)據(jù)類型(CHAR、NCHAR)具有固定長度,即SQL Server按照列定義大小保留行空間,而不是按照字符中的實際字符保留空間。比如某列定義大小為CHAR(25),則SQL Server在該行保留25個字符的空間,而不管存儲字符串的長度。

名稱中含有VAR元素的數(shù)據(jù)類型(VARCHAR、NVARCHAR)具有可變長度,即SQL Server根據(jù)存儲需要,在行中使用盡可能多的存儲空間存儲字符串,同時外加兩個額外的字節(jié)偏移數(shù)據(jù)。例如,如果將某列定義為VARCHAR(25),此時支持的最大字符數(shù)為25,但實際上按照字符串中實際字符確定存儲量。-摘抄自SQL Server 2012 T-SQL基礎(chǔ)教程。

這里關(guān)于Unicode字符數(shù)據(jù)類型我們需要重點理解下。我們先創(chuàng)建一個表,如下:

CREATE TABLE UnicodeType
(
 firstname VARCHAR(5) NOT NULL,
 lastname NVARCHAR(5) NOT NULL
);

此時我們手動插入數(shù)據(jù),正常插入,如下:

INSERT dbo.UnicodeType
  ( firstname, lastname )
VALUES ( '11111', -- firstname - varchar(5)
   N'啊的發(fā)個好' -- lastname - nvarchar(5)
   )

字符都完全插入表中,如下:

此時我們將firstname,插入五個中文試試如下:

INSERT dbo.UnicodeType
  ( firstname, lastname )
VALUES ( '達得到讓人', -- firstname - varchar(5)
   N'達得到讓人' -- lastname - nvarchar(5)
   )

此時出現(xiàn)如下結(jié)果:

也就是說在常規(guī)字符類型如上述VARVHAR中定義為五個字符,此時我們插入五個中文字符則會被截取,當然也插入不進去。因為上述已經(jīng)明確講了1個非英語字符串相當于兩個字節(jié),此時中文所占用的是十個字節(jié),而此時VARCHAR才五個字符,所以出現(xiàn)警告。我們再來將firstname插入兩個中文兩個英文或者數(shù)字看看

INSERT dbo.UnicodeType
  ( firstname, lastname )
VALUES ( '達得1', -- firstname - varchar(5)
   N'達得到讓人' -- lastname - nvarchar(5)
   )

此時插入進去為出現(xiàn)警告,因為此時兩個中文字符即四個字節(jié)加上一個數(shù)字字節(jié)剛好五個字節(jié),所以能正常插入,我們再來看看lastname,由上知,既然英文或者數(shù)字被當做一個字節(jié),那么我們對lastname插入四個中文字符和兩個英文字節(jié)剛好十個字節(jié)應(yīng)該是好使的。我們看看:

INSERT dbo.UnicodeType
  ( firstname, lastname )
VALUES ( '達得1', -- firstname - varchar(5)
   N'達得到讓ab' -- lastname - nvarchar(5)
   )

oh,shit,此時居然出錯了,如下:

我們上述分析的不是有理有據(jù)么,難道這里英文不是占用一個字節(jié)么,我們插入一個英文試試。

INSERT dbo.UnicodeType
  ( firstname, lastname )
VALUES ( '達得1', -- firstname - varchar(5)
   N'達得到讓b' -- lastname - nvarchar(5)
   )

結(jié)果正確了,實踐是檢驗真理的唯一標準,從這里我們可以看出:在常規(guī)字符中,一個中文會當做是兩個字節(jié)來使用,一個英文會當做是一個字節(jié)使用,但是在Unicode中,一個中文也是會當做兩個字節(jié)來使用,但是一個英文也會當做是兩個字節(jié)來使用。至此我們可以得出結(jié)論,個人一直以為在Unicode中,將英文是作為一個字節(jié)存儲,見識短啊。

常規(guī)字符和Unicode中一個中文字符用兩個字節(jié)存儲,而對英文,常規(guī)字符用一個字節(jié)存儲,而Unicode依然是用兩個字節(jié)存儲。

字符串函數(shù)

對字符串操作的函數(shù)有SUBSTRING、LEFT、RIGHT、CHARINDEX、PATINDEX、REPLACE、REPICATE、STUFF、UPPER、LOWER、RTRIM、LTRIM、FORMAT。對于簡單的函數(shù)我們略過,下面我們來講講幾個需要注意的地方。

LEN與DATALENGTH比較

我們首先創(chuàng)建如下測試表

CREATE TABLE StringFun
(
 firststr VARCHAR(max) NOT NULL,
 secondstr TEXT NOT NULL
);

我們插入測試數(shù)據(jù)

INSERT dbo.StringFun
  ( firststr, secondstr )
VALUES ( '我是JeffckyWang,我來自于博客園,專注于.NET技術(shù)', -- firststr - varchar(max)
   '我是JeffckyWang,我來自于博客園,專注于.NET技術(shù)' -- secondstr - text
   )

我們首先利用LEN函數(shù)來返回firststr和secondstr的字符串長度大小

SELECT LEN(firststr) AS VARCAHRFieldSize 
FROM dbo.StringFun
SELECT LEN(secondstr) AS TEXTFieldSize 
FROM dbo.StringFun

好極了,出錯了。LEN函數(shù)無法對TEXT進行操作。我們接著往下看。

SELECT DATALENGTH(firststr) AS VARCAHRFieldSize 
FROM dbo.StringFun
SELECT DATALENGTH(secondstr) AS TEXTFieldSize 
FROM dbo.StringFun

此時未報錯誤,結(jié)果顯示為47個字節(jié)大小。 既然LEN對文本無效,我們不對文本操作就是。

SELECT LEN(firststr) AS VARCAHRFieldSize 
FROM dbo.StringFun
SELECT DATALENGTH(secondstr) AS TEXTFieldSize 
FROM dbo.StringFun

此時類型為VARCAHR的firststr字節(jié)大小卻為31,為何,看到這里我們想必恍然大悟,在上述我們講到常規(guī)字符會對中文以一個字符兩個字節(jié)大小存儲,但是這里實際上返回的是實際字符大小,當然一個是存儲,一個是檢索,還是有點不同,同時我們也不會將中文存儲到VARCHAR中。到這里我們可以得出結(jié)論。

結(jié)論:DATALENGTH函數(shù)是針對于TEXT,而LEN是針對于VARCHAR,對TEXT無效會報錯。

到這里我們還有一個特殊值未進行處理,那就是NULL。那么問題來了,LEN和DATALENGTH對NULL,它的長度大小是多少呢,是0還是不是0尼?

是我們來測試下:

DECLARE @MyVar VARCHAR(10)
SET @MyVar = NULL
IF (LEN(@MyVar) = 0)
PRINT 'LEN of NULL is 0'
ELSE
PRINT 'LEN of NULL is NULL'

我們上述得到的結(jié)果是LEN of NULL is NULL,DATALENGTH就不再演示了。

結(jié)論:LEN和DATALENGTH對于NULL計算的結(jié)果就是NULL。

我們再來看看二者差異的一個小地方:

SELECT LEN('JeffckyWang ') AS 'LEN'
SELECT DATALENGTH('JeffckyWang ') AS 'DATALENGTH'

結(jié)論:LEN會刪除尾隨空格,而DATALENGTH不會

CHARINDEX與PATINDEX比較

CHARINDEX和PATINDEX字符串函數(shù)都是查詢返回指定匹配字符串的開始位置。

我們先查詢一個字符串,此字符串在表中存在,如下:

USE AdventureWorks2012;
GO
SELECT CHARINDEX('Worn', DocumentSummary) AS 'CHARINDEX'
FROM Production.Document
WHERE ChangeNumber = 55;
GO
SELECT PATINDEX('Worn', DocumentSummary) AS 'PATINDEX'
FROM Production.Document
WHERE ChangeNumber = 55;

為何CHARINDEX函數(shù)查找到了,而PATINDEX沒有查詢到呢?此時就說說二者的區(qū)別,二者都有兩個參數(shù),第二個參數(shù)都是要匹配的字符串,但是PATINDEX函數(shù)必須在需要匹配的字符串之前或者之后添加百分號即通配符,而CHARINDEX函數(shù)則不需要。如下即可:

USE AdventureWorks2012;
GO
SELECT CHARINDEX('Worn', DocumentSummary) AS 'CHARINDEX'
FROM Production.Document
WHERE ChangeNumber = 55;
GO
SELECT PATINDEX('%Worn%', DocumentSummary) AS 'PATINDEX'
FROM Production.Document
WHERE ChangeNumber = 55;

結(jié)論:PATINDEX匹配字符串必須在字符串前面或者后面或者前后添加通配符,而CHARINDEX無需添加。

總結(jié)

本節(jié)我們主要講解了SQL中的數(shù)據(jù)類型以及幾個需要注意的地方,簡短的內(nèi)容,深入的理解,我們下節(jié)再會。

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,同時也希望多多支持腳本之家!

您可能感興趣的文章:
  • 詳解MySQL數(shù)據(jù)類型int(M)中M的含義
  • mysql存儲引擎和數(shù)據(jù)類型(二)
  • Java數(shù)據(jù)類型與MySql數(shù)據(jù)類型對照表
  • SQL Server數(shù)據(jù)類型轉(zhuǎn)換方法
  • SQL Server比較常見數(shù)據(jù)類型詳解
  • SQLite教程(七):數(shù)據(jù)類型詳解
  • SQL Server數(shù)據(jù)類型char、nchar、varchar、nvarchar的區(qū)別淺析
  • sql使用cast進行數(shù)據(jù)類型轉(zhuǎn)換示例
  • SQL2005中char nchar varchar nvarchar數(shù)據(jù)類型的區(qū)別和使用環(huán)境講解
  • SQL的常用數(shù)據(jù)類型列表詳解

標簽:東營 濱州 來賓 大同 黃山 池州 新鄉(xiāng) 文山

巨人網(wǎng)絡(luò)通訊聲明:本文標題《詳解SQL Server中的數(shù)據(jù)類型》,本文關(guān)鍵詞  詳解,SQL,Server,中的,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解SQL Server中的數(shù)據(jù)類型》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解SQL Server中的數(shù)據(jù)類型的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美成人bangbros| 久久精品噜噜噜成人88aⅴ| 日韩精品一区二区三区蜜臀| 欧美视频一区二区| 亚洲自拍偷拍欧美| 国产精品一级二级三级| 久久精品国产在热久久| 国产精选一区二区三区| 懂色av一区二区三区蜜臀| www.在线成人| 91精品国产免费| 久久久久久日产精品| 亚洲国产精品自拍| 激情综合色播五月| 色婷婷国产精品综合在线观看| 欧美精品丝袜久久久中文字幕| 久久这里都是精品| 欧美日韩精品专区| 精品中文字幕一区二区小辣椒| 懂色av一区二区夜夜嗨| 91豆麻精品91久久久久久| 日韩免费看的电影| 依依成人综合视频| 成人成人成人在线视频| 久久久久成人黄色影片| 日韩中文字幕亚洲一区二区va在线| 精品一区二区在线播放| 欧美人狂配大交3d怪物一区| 国产精品私房写真福利视频| 久久精品噜噜噜成人av农村| 成人激情免费电影网址| 日韩国产一区二| 一本久久综合亚洲鲁鲁五月天 | aaa欧美日韩| 国产网站一区二区三区| 久久99日本精品| 精品对白一区国产伦| 另类人妖一区二区av| 日韩三级视频中文字幕| 日本一道高清亚洲日美韩| 日韩一级二级三级| 国产一区中文字幕| 天堂一区二区在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 三级一区在线视频先锋| 欧美成人欧美edvon| 国产一区二区三区四区五区美女 | 久久日韩精品一区二区五区| 国内成人免费视频| 国产欧美日韩激情| 欧洲亚洲国产日韩| 国内久久精品视频| 亚洲精品老司机| 91精品中文字幕一区二区三区| 国产激情视频一区二区三区欧美| 免费成人结看片| 久久精品在这里| www.亚洲人| 精品制服美女久久| 亚洲精品日日夜夜| 日韩一二在线观看| 91美女精品福利| 久久精品国产在热久久| 亚洲综合在线五月| 国产精品久久久久久久久久免费看| 色婷婷精品大在线视频| 亚洲精品视频一区| 久久精品免费看| 亚洲一级在线观看| 久久精品夜色噜噜亚洲a∨| 欧美日韩专区在线| 972aa.com艺术欧美| 国产成人av福利| 国产美女主播视频一区| 久久99精品国产.久久久久| 亚洲综合精品自拍| 亚洲精品一二三四区| 综合激情成人伊人| 亚洲色图丝袜美腿| 中文字幕人成不卡一区| 国产精品电影院| 一区二区三区在线影院| 亚洲成人手机在线| 久久激情综合网| 国产高清无密码一区二区三区| 国产精品亚洲视频| 99麻豆久久久国产精品免费优播| 99久精品国产| 欧美特级限制片免费在线观看| 欧美日韩在线三区| 精品嫩草影院久久| 久久久精品天堂| 亚洲激情校园春色| 精品一区二区三区影院在线午夜| 偷窥少妇高潮呻吟av久久免费| 天天操天天干天天综合网| 激情综合色播激情啊| 成人午夜短视频| 在线观看日韩高清av| 欧美成人精品1314www| 国产日产欧美一区二区视频| 亚洲一区二区在线播放相泽| 美女网站色91| 91久久精品网| 久久综合久色欧美综合狠狠| 日韩理论片一区二区| 精品一区在线看| 欧美日韩亚州综合| 国产精品久久久久aaaa樱花| 美女网站在线免费欧美精品| 91色porny在线视频| 欧美极品xxx| 黑人巨大精品欧美黑白配亚洲| 欧美午夜在线一二页| 亚洲私人影院在线观看| 丁香婷婷综合激情五月色| 91精品国产入口| 免费观看成人av| 欧美一区二区三区在线观看| 亚洲bdsm女犯bdsm网站| 欧美在线视频全部完| 樱桃视频在线观看一区| 在线精品视频小说1| 中文一区二区在线观看| 国产一区二区美女诱惑| 久久精品人人做人人爽97| 国产福利精品导航| 欧美韩日一区二区三区| 一本一道久久a久久精品| 亚洲精品乱码久久久久久日本蜜臀| 国产·精品毛片| 亚洲人精品一区| 欧美性猛片xxxx免费看久爱| 亚洲精品ww久久久久久p站 | 91精品久久久久久久久99蜜臂| 性做久久久久久| 精品福利一区二区三区免费视频| 国产精品一二三区| 亚洲欧美日韩精品久久久久| 欧美性一区二区| 国产91露脸合集magnet| 亚洲国产精品自拍| 久久久久久久久久电影| 日韩欧美国产高清| 久草在线在线精品观看| 国产精品美女视频| 欧美日韩视频在线第一区| 国产在线精品国自产拍免费| 亚洲视频在线一区观看| 精品国产乱码久久久久久影片| 99久久精品免费观看| 蜜乳av一区二区三区| 亚洲视频免费在线观看| 日韩一区和二区| 91黄色免费版| 91丨porny丨户外露出| 国产精品一区二区不卡| 麻豆精品视频在线观看| 一区二区三区在线观看国产| 视频一区欧美精品| 精品国产91乱码一区二区三区 | 日本人妖一区二区| 中文字幕一区二区三区不卡| 欧美福利视频导航| 波多野结衣中文字幕一区| 免费观看在线色综合| 久久精子c满五个校花| 欧美日韩精品欧美日韩精品 | 亚洲自拍偷拍欧美| 国产精品久久久久精k8| 精品av综合导航| 欧美视频中文字幕| 99精品视频免费在线观看| 91久色porny | 精品免费国产一区二区三区四区| 91免费版在线| 97se亚洲国产综合在线| 国产99久久久国产精品| 波多野结衣中文字幕一区| 激情丁香综合五月| 国产精一区二区三区| 高清av一区二区| 色综合天天综合狠狠| 在线观看欧美日本| 日韩一区二区三区在线视频| 欧美亚洲高清一区| 欧美视频在线观看一区二区| 欧美精品久久久久久久多人混战| 欧美一区二区高清| 国产亚洲成aⅴ人片在线观看| 亚洲精品一区二区精华| 国产欧美日韩亚州综合| 亚洲女子a中天字幕| 日本不卡一二三| 成人免费三级在线| 777久久久精品| 久久精品一区蜜桃臀影院| 亚洲精品国产第一综合99久久| 久久久久久99精品| 国产精品欧美一区二区三区|