自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

T-SQL查詢進(jìn)階--變量

數(shù)據(jù)庫(kù)
變量對(duì)于一種語(yǔ)言是必不可少的一部分,當(dāng)然,對(duì)于T-SQL來(lái)講也是一樣。在簡(jiǎn)單查詢中,往往很少用到變量,但無(wú)論對(duì)于復(fù)雜的查詢或存儲(chǔ)過(guò)程中,變量都是必不可少的一部分.

概述

變量對(duì)于一種語(yǔ)言是必不可少的一部分,當(dāng)然,對(duì)于T-SQL來(lái)講也是一樣。在簡(jiǎn)單查詢中,往往很少用到變量,但無(wú)論對(duì)于復(fù)雜的查詢或存儲(chǔ)過(guò)程中,變量都是必不可少的一部分.

變量的種類

在T-SQL中,變量按生存范圍可以分為全局變量(Global Variable)和局部變量(Local Variable).

1.全局變量是由系統(tǒng)定義的,在整個(gè)SQL SERVER實(shí)例內(nèi)都能訪問(wèn)到的變量.全局變量以@@作為***個(gè)字符,用戶只能訪問(wèn),不能賦值。

2.局部變量由用戶定義,生命周期只在一個(gè)批處理內(nèi)有效。局部變量以@作為***個(gè)字符,由用戶自己定義和賦值。

一個(gè)簡(jiǎn)單的例子如下

因?yàn)槿肿兞績(jī)H僅是用于讀取系統(tǒng)的一些參數(shù),具體每個(gè)全局變量所代表的含義請(qǐng)Google之…本文主要介紹局部變量(也就是用戶自定義變量).

局部變量的用途

在T-SQL中,局部變量是一個(gè)存儲(chǔ)指定數(shù)據(jù)類型單個(gè)值的對(duì)象.T-SQL中對(duì)變量的定義實(shí)際上和大多數(shù)高級(jí)語(yǔ)言一樣.

局部變量在使用中常常用于以下三種用途:

1.在循環(huán)語(yǔ)句中記錄循環(huán)的次數(shù)或者用于控制循環(huán)的次數(shù).

2.用于存儲(chǔ)流程語(yǔ)句來(lái)控制流程走向

3.儲(chǔ)存存儲(chǔ)過(guò)程或者函數(shù)的返回值

實(shí)際上,存儲(chǔ)任何業(yè)務(wù)數(shù)據(jù)的局部變量都屬于這一類應(yīng)用.

#p#

局部變量的聲明

局部變量的聲明必須以"DECLEAR"作為關(guān)鍵字,變量的命名必須以"@"作為變量名的***個(gè)字符.必須為所聲明的變量提供一個(gè)數(shù)據(jù)類型和數(shù)據(jù)長(zhǎng)度.如:

局部變量的數(shù)據(jù)類型不能為Text,ntext,和Image類型,當(dāng)對(duì)于字符型變量只提供數(shù)據(jù)類型沒(méi)有提供數(shù)據(jù)長(zhǎng)度時(shí),數(shù)據(jù)長(zhǎng)度默認(rèn)為1.

一切只聲明沒(méi)有賦值的局部變量的初始值都為”NULL”.

局部變量的賦值

在T-SQL中,局部變量的賦值是通過(guò)”Set”關(guān)鍵字和”Select”關(guān)鍵字實(shí)現(xiàn)的.

實(shí)際上,使用Set或者是Select取決于下面幾個(gè)因素

1.當(dāng)對(duì)多個(gè)變量賦值時(shí)

SELECT關(guān)鍵字支持多個(gè)變量賦值,而SET關(guān)鍵字只支持一次對(duì)一個(gè)值賦值

2.當(dāng)賦值時(shí)表達(dá)式返回值的個(gè)數(shù)

使用SET進(jìn)行賦值時(shí),當(dāng)表達(dá)式返回多個(gè)值時(shí),報(bào)錯(cuò).而SELECT關(guān)鍵字在賦值表達(dá)式返回多個(gè)值時(shí),取***一個(gè).

比如,假設(shè)XXX表只有以下幾條數(shù)據(jù):

當(dāng)使用SELECT關(guān)鍵字進(jìn)行時(shí),可以取返回值的***一個(gè)。

3.當(dāng)表達(dá)式未返回值時(shí)

使用SET對(duì)局部變量賦值時(shí),如果賦值表達(dá)式未返回值,則局部變量變?yōu)镹ULL,而SELECT對(duì)表達(dá)式賦值時(shí),如果表達(dá)式未返回值,則局部變量保持原值.

4.當(dāng)…你是一個(gè)標(biāo)準(zhǔn)愛(ài)好者時(shí)

堅(jiān)決使用SET關(guān)鍵字對(duì)局部變量賦值吧,因?yàn)镾ET是ANSI標(biāo)準(zhǔn)……

5.當(dāng)…你懶得記上述何時(shí)使用SET或是何時(shí)使用SELECT時(shí)

好吧,我承認(rèn)我也很懶.那你按照一個(gè)簡(jiǎn)單的方式區(qū)別:當(dāng)你的賦值語(yǔ)句需要引用一個(gè)數(shù)據(jù)源(表)時(shí),使用SELECT.除此之外,使用SET.

#p#

局部表變量

局部表變量是一個(gè)特殊的局部變量.和臨時(shí)表不同,局部表變量具有一切局部變量的特點(diǎn).在查詢中,因?yàn)榫植勘碜兞渴谴嬖趦?nèi)存中,而不是硬盤中,所以速度會(huì)遠(yuǎn)遠(yuǎn)快于臨時(shí)表或是實(shí)際表,局部表變量最多的使用時(shí)在查詢中充當(dāng)多個(gè)表做連接時(shí)的中間表,比如:

這樣會(huì)大大提高多表連接的查詢速度.

總結(jié)

本文介紹了變量種類以及局部變量的使用范圍,定義以及賦值方法.還簡(jiǎn)單介紹了表變量。在復(fù)雜查詢中,系統(tǒng)的了解T-SQL的變量是寫(xiě)出好的查詢語(yǔ)句必不可少的一部分。

 

原文鏈接:http://www.cnblogs.com/CareySon/archive/2011/10/11/2207330.html

【編輯推薦】

  1. 數(shù)據(jù)庫(kù)點(diǎn)滴之SQL級(jí)聯(lián)刪除
  2. 數(shù)據(jù)庫(kù)點(diǎn)滴之精妙SQL語(yǔ)句
  3. SQL點(diǎn)滴之性能優(yōu)化其實(shí)沒(méi)有那么神秘
  4. SQL點(diǎn)滴之幾個(gè)有點(diǎn)偏的語(yǔ)句
  5. SQL點(diǎn)滴之如何編輯數(shù)據(jù)

 

 

責(zé)任編輯:艾婧 來(lái)源: CareySon的博客
相關(guān)推薦

2011-08-24 16:36:00

T-SQL

2011-07-18 14:38:44

子查詢外部查詢

2011-08-23 13:36:11

T-SQL查詢流程控制語(yǔ)句

2010-07-20 13:52:27

SQL Server

2010-10-19 16:06:26

SQL Server索

2010-07-06 10:36:35

SQL Server

2023-08-15 08:26:34

SQL Server查找死鎖

2011-08-12 10:31:01

T-SQL查詢基于列的邏輯表達(dá)式

2017-04-21 11:24:13

數(shù)據(jù)庫(kù)Azure T-SQL編輯器

2010-12-06 09:26:23

SQL Server

2009-05-06 17:31:17

SQL EnlightT-SQL分析器

2011-04-01 16:30:26

T-SQLDateTime

2011-02-25 14:42:10

SQLwith關(guān)鍵字

2010-07-19 13:22:45

SQL Server

2011-03-31 09:30:27

SQL Server數(shù)管理SQL

2010-07-13 10:35:20

SQL Server2

2011-07-08 13:40:18

2013-01-05 13:49:00

2011-04-01 15:53:20

T-SQLDateTime

2010-06-30 14:54:42

SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)