<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        SQLServer學習筆記系列2

        來源:懂視網 責編:小采 時間:2020-11-09 07:46:05
        文檔

        SQLServer學習筆記系列2

        SQLServer學習筆記系列2:一.寫在前面的話 繼上一次SQLServer學習筆記系列1 http://www.cnblogs.com/liupeng61624/p/4354983.html 以后,繼續(xù)學習Sqlserver,一步一步走下去,相信努力終會 有收獲!一直堅信這句話,這個世界上比你優(yōu)秀的人很多,他們在你休息的時候,勤勤懇懇的做著我
        推薦度:
        導讀SQLServer學習筆記系列2:一.寫在前面的話 繼上一次SQLServer學習筆記系列1 http://www.cnblogs.com/liupeng61624/p/4354983.html 以后,繼續(xù)學習Sqlserver,一步一步走下去,相信努力終會 有收獲!一直堅信這句話,這個世界上比你優(yōu)秀的人很多,他們在你休息的時候,勤勤懇懇的做著我

        一.寫在前面的話 繼上一次SQLServer學習筆記系列1 http://www.cnblogs.com/liupeng61624/p/4354983.html 以后,繼續(xù)學習Sqlserver,一步一步走下去,相信努力終會 有收獲!一直堅信這句話,這個世界上比你優(yōu)秀的人很多,他們在你休息的時候,勤勤懇懇的做著我

        一.寫在前面的話

        繼上一次SQLServer學習筆記系列1http://www.cnblogs.com/liupeng61624/p/4354983.html以后,繼續(xù)學習Sqlserver,一步一步走下去,相信努力終會

        有收獲!一直堅信這句話,這個世界上比你優(yōu)秀的人很多,他們在你休息的時候,勤勤懇懇的做著我們看不到的事情,但你回首往事的時候,真心覺得那段奮

        斗的歲月讓你驕傲!年輕就得折騰,年輕就要奮斗!好啦,進入正題吧!

        二.sql的范圍內查找

        (1)between.....and用法

        通常情況下我們查找一個在某固定區(qū)域內的所有記錄,可以采用>=,<=來寫sql語句,例如:查找訂單價格在1000到2000之間的所有記錄,可以這樣寫:

        1 select * from sales.ordervalues
        2 where val>=1000 and val<=2000

        查詢結果:

        此處的sales.ordervalues來自于定義的視圖,關于視圖后續(xù)會講到。

        如果采用between.....and.....則可以同樣達到效果。

        1 select * from sales.ordervalues
        2 where val between 1000 and 2000

        注意一點:between....and.....是包含邊界的,即此處包含1000和2000這個邊界值。

        (2)in 用法

        假如要查找1號顧客,2號顧客,9號顧客訂單信息,一般情況下,我們會這樣寫:

        1 select * from sales.ordervalues
        2 where custid=1 or custid=2 or custid=9

        結果為:

        采用in,則減少了寫法的繁雜,可以這樣如下寫法也能達到要求。

        1 select * from sales.ordervalues
        2 where custid in(1,2,9)

        (3)like用法,用來匹配字符或字符串。

        假如要查找雇員表Hr.employees里面lastname里包含a的字符。可以這樣寫:

        1 select * from Hr.employees
        2 where lastname like '%a%'

        顯示結果為:

        其中%表示通配符,即可以為任意字符。

        三.sql數據類型

        sql包含多種數據類型,滿足多種開發(fā)需求。常見的數據類型包括:

        (1)二進制數據類型。

        二進制數據包括 Binary、Varbinary 和 Image。
          Binary 數據類型既可以是固定長度的(Binary),也可以是變長度的。
          Binary[(n)] 是 n 位固定的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4 個字節(jié)。
          Varbinary[(n)] 是 n 位變長度的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4個字節(jié),不是n 個字節(jié)。
          在 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 中,傳統(tǒng)的非 Unicode 數據類型允許使用由特定字符集定義的字符。在 SQL Server安裝過程中,允許選擇一種字符集。使用 Unicode 數據類型,列中可以存儲任何由Unicode 標準定義的字符。在 Unicode 標準中,包括了以各種字符集定義的全部字符。使用Unicode數據類型,所戰(zhàn)勝的窨是使用非 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 個存儲字節(jié))。使用 Smalldatetime 數據類型時,所存儲的日期范圍是 1900年 1 月 1日 開始,到 2079 年 12 月 31 日結束(每一個值要求 4 個存儲字節(jié))。
          日期的格式可以設定。設置日期格式的命令如下:
          Set DateFormat {format | @format _var|
          其中,format | @format_var 是日期的順序。有效的參數包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認情況下,日期格式為MDY。
          例如,當執(zhí)行 Set DateFormat YMD 之后,日期的格式為年 月 日 形式;當執(zhí)行 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個字節(jié)存儲空間)。使用 Smallint 數據類型時,存儲數據的范圍從 -32 768 到 32 767(每一個值要求2個字節(jié)存儲空間)。使用Tinyint 數據類型時,存儲數據的范圍是從0 到255(每一個值要求1個字節(jié)存儲空間)。
          精確小婁數據在 SQL Server 中的數據類型是 Decimal 和 Numeric。這種數據所占的存儲空間根據該數據的位數后的位數來確定。
          在SQL Server 中,近似小數數據的數據類型是 Float 和 Real。例如,三分之一這個分數記作。3333333,當使用近似數據類型時能準確表示。因此,從系統(tǒng)中檢索到的數據可能與存儲在該列中數據不完全一樣。

        在這里說明一點,舉例說明:

        我們聲明一個變量,賦值并打印出來:

        1 declare @t char(10);
        2 set @t='hello';
        3 print @t;

        當我們繼續(xù)為@t變量進行字符串連接操作時,此時輸出的@t又是什么了?

        1 declare @t char(10);
        2 set @t='hello';
        3 print @t;
        4 
        5 set @t=@t+'world';
        6 print @t

        結果如圖:

        此時說明了一點,固定長度char類型,長度是固定的,不足時候用空格補齊,當繼續(xù)向hello后面添加world時候,由于已經達到最大長度,所以無法添加上

        去。此時我們看看使用varchar(10)的情況。

        1 declare @t varchar(10);
        2 set @t='hello';
        3 print @t;
        4 
        5 set @t=@t+'world';
        6 print @t

        結果如圖所示:

        所以對比char和varchar,前者是固定長度類型,后者雖然聲明了字符長度,但是是可變的。

        加入聲明變量后,我們不進行復制的話,那么這個變量就為null。null與任何字符或者變量做運算,其結果都為null。

        為了保證有結果顯示,在這里我們學習一個字符串表達式isnull用法。isnull(“變量1”,期望的賦值)。判斷變量如果為null,則此變量賦值為期望的賦值。

        上述變量未賦值,所以進行字符串連接沒有結果,此處我們可以這樣處理:

        1 declare @t varchar(10);
        2 print @t;
        3 
        4 set @t=isnull(@t,'')+'world';
        5 print @t
        6 

        結果為:

        四.字符串處理函數

        (1)求子串substring。

        舉例說明:對于商品的名稱太長,可能我們需要截取主要的信息來看。

        截取product后面一部分,即采用substring(“字符串”,起始位置,截取長度)。同時需要注意的是:sql下標是從1開始,跟C#里面不一樣。不是從0開始計數。

        1 select productname,substring( productname,9,10)
        2 from production.products

        結果如圖所示:

        (2)left表示從左邊截取(從左往右數),right表示從右邊截取(從右往左數)。

        1 select productname,left( productname,9)
        2 from production.products

        1 select productname,right( productname,9)
        2 from production.products

        (3)len返回字符串中的字符數,忽略空格。

        1 declare @t char(10);
        2 set @t='hello';
        3 print @t;
        4 print len(@t);
        5 set @t=isnull(@t,'')+'world';
        6 print @t
        7 print len(@t)

        結果:

        從結果可以看出,len返回的是字符串中的字符個數。

        (4)datalength,返回字符串的實際長度,包括空格。

        1 declare @t char(10);
        2 set @t='hello';
        3 print @t;
        4 print datalength(@t);
        5 set @t=isnull(@t,'')+'world';
        6 print @t
        7 print datalength(@t)

        (5)charIndex找出字符串中出現某個匹配字符的位置.

        1 
        2 select productname,charindex(' ',productname) as N'出現空格位置'
        3 from production.products

        (6)replace替代字符串中某部分內容。

        1 select productname,replace(productname,'Product','產品名')
        2 from production.products

        結果如圖所示:

        (7)stuff替代字符串中從第n個字符開始,數出m個字符,用什么相應字符串替代。

        例如:

        1 select productname,stuff(productname,8,1,'::::')
        2 from production.products

        (8)大小寫轉換。upper大寫,lower小寫。

        1 select productname,upper(productname),lower(productname)
        2 from production.products

        (9)去除空格rtrim,從右邊去除空格,ltrim從左邊去除空格。

        1 declare @s char(10);
        2 set @s='hello';
        3 select datalength(rtrim(@s));

        由于sql不存在trim,所以要去除字符串中全部空格在采用:

        select ltrim(rtrim(@s));

        希望各位大牛給出指導,不當之處虛心接受學習!謝謝!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        SQLServer學習筆記系列2

        SQLServer學習筆記系列2:一.寫在前面的話 繼上一次SQLServer學習筆記系列1 http://www.cnblogs.com/liupeng61624/p/4354983.html 以后,繼續(xù)學習Sqlserver,一步一步走下去,相信努力終會 有收獲!一直堅信這句話,這個世界上比你優(yōu)秀的人很多,他們在你休息的時候,勤勤懇懇的做著我
        推薦度:
        標簽: 學習 筆記 sql
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品亚洲成a人片在线观看| 亚洲αv久久久噜噜噜噜噜| 色偷偷女男人的天堂亚洲网| 暖暖在线视频免费视频| 亚洲精品无码久久久久| 国产一精品一AV一免费| 久久久亚洲精品无码| 一区二区三区观看免费中文视频在线播放 | 免费一级毛片在线播放放视频| 日韩中文字幕在线免费观看| 亚洲.国产.欧美一区二区三区| 国产一区二区免费在线| 日韩成人毛片高清视频免费看| 亚洲日本韩国在线| 成人性生交大片免费看中文| 亚洲国产天堂在线观看| 免费H网站在线观看的| 亚洲一区二区三区成人网站| 日产国产精品亚洲系列| 国产免费一区二区视频| 亚洲国产超清无码专区| 国产大片免费观看中文字幕| 国产成人无码免费网站| 亚洲综合一区二区精品导航| 国产va免费精品观看精品| 爱爱帝国亚洲一区二区三区| 亚洲午夜福利在线观看| 69式国产真人免费视频| 美女一级毛片免费观看| 国产国拍亚洲精品mv在线观看| 亚洲天堂免费在线| 免费看黄网站在线看| 久久亚洲熟女cc98cm| 拔擦拔擦8x华人免费久久| 两个人日本WWW免费版| 亚洲中文无码线在线观看| 日韩中文字幕免费| 日韩在线永久免费播放| 国产成人不卡亚洲精品91| 色播亚洲视频在线观看| 亚洲第一永久AV网站久久精品男人的天堂AV |