數(shù)據(jù)庫原理及應(yīng)用課件2005版第07章t sql語言基礎(chǔ)_第1頁
數(shù)據(jù)庫原理及應(yīng)用課件2005版第07章t sql語言基礎(chǔ)_第2頁
數(shù)據(jù)庫原理及應(yīng)用課件2005版第07章t sql語言基礎(chǔ)_第3頁
數(shù)據(jù)庫原理及應(yīng)用課件2005版第07章t sql語言基礎(chǔ)_第4頁
數(shù)據(jù)庫原理及應(yīng)用課件2005版第07章t sql語言基礎(chǔ)_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

教學(xué)內(nèi)容1、T-SQL語言基本概念2、T-SQL編程基礎(chǔ)教學(xué)目的與要求掌握T-SQL語言的基本概念掌握T-SQL語言的編程方法教學(xué)重點(diǎn)T-SQL語言語法難點(diǎn)T-SQL語言語法2SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)語言是集數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制功能于一體的語言,具有功能豐富、使用靈活、語言簡捷易學(xué)等特點(diǎn)。Transact-SQL(簡稱T-SQL)語言是對按照國際標(biāo)準(zhǔn)化組織(ISO)和美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)發(fā)布的SQL標(biāo)準(zhǔn)定義的語言的擴(kuò)展,是用于應(yīng)用程序和SQLServer之間通信的主要語言。對用戶來說,T-SQL是可以與SQLServer數(shù)據(jù)庫管理系統(tǒng)進(jìn)行交互的唯一語言。37.1T-SQL語言基本概念任何應(yīng)用程序,不管它是用什么形式的高級語言編寫,只要目的是向SQLServer的數(shù)據(jù)庫管理系統(tǒng)發(fā)出命令以獲得數(shù)據(jù)庫管理系統(tǒng)的響應(yīng),最終都必須體現(xiàn)為以Transact-SQL語句為表現(xiàn)形式的指令。4任何人,無論是數(shù)據(jù)庫管理員,還是數(shù)據(jù)庫應(yīng)用程序的開發(fā)人員,要想深入掌握SQLServer,認(rèn)真學(xué)習(xí)T-SQL是必經(jīng)的路徑。T-SQL語言是SQLServer對標(biāo)準(zhǔn)SQL語言的擴(kuò)充,它支持所有的標(biāo)準(zhǔn)SQL語言操作,同時(shí)它又有許多功能上的擴(kuò)展,主要擴(kuò)展內(nèi)容包括變量和流程控制語句等。57.1.1T-SQL語言簡介SQL是二十世紀(jì)七十年代末由IBM公司開發(fā)的一套程序語言,當(dāng)時(shí)是用在DB2關(guān)系數(shù)據(jù)庫系統(tǒng)中。1986年10月美國國家標(biāo)準(zhǔn)局(AmericanNationalStandardInstitute,簡稱ANSI)的數(shù)據(jù)庫委員會(huì)批準(zhǔn)了SQL作為關(guān)系數(shù)據(jù)庫語言的美國標(biāo)準(zhǔn)。由于SQL簡單易學(xué),是目前關(guān)系數(shù)據(jù)庫系統(tǒng)中使用最廣泛的語言。6由于T-SQL語言直接來源于SQL語言,因此它也具有SQL語言的幾個(gè)特點(diǎn):1.綜合統(tǒng)一T-SQL語言集數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言、數(shù)據(jù)控制語言和附加語言元素為一體。其中附加語言元素不是標(biāo)準(zhǔn)SQL語言的內(nèi)容,是對標(biāo)準(zhǔn)SQL語言的擴(kuò)展內(nèi)容,但是它增強(qiáng)了用戶對數(shù)據(jù)庫操作的靈活性和簡便性,從而增強(qiáng)了程序的功能。2.兩種使用方式,統(tǒng)一的語法結(jié)構(gòu)兩種使用方式,即聯(lián)機(jī)交互式和嵌入高級語言的使用方式。統(tǒng)一的語法結(jié)構(gòu)使T-SQL語言可用于所有用戶的數(shù)據(jù)庫活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、應(yīng)用程序員、決策支持系統(tǒng)管理人員以及許多其他類型的終端用戶。73.高度非過程化T-SQL語言一次處理一個(gè)記錄,對數(shù)據(jù)提供自動(dòng)導(dǎo)航;允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,可操作記錄集,而不是對單個(gè)記錄進(jìn)行操作;所有的SQL語句接受集合作為輸入,返回集合作為輸出,并允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。4.類似于人的思維習(xí)慣,容易理解和掌握SQL語言的易學(xué)易用性,而T-SQL語言是對SQL語言的擴(kuò)展,因此也是非常容易理解和掌握的。如果對SQL語言比較了解,在學(xué)習(xí)和掌握T-SQL語言及其高級特性時(shí)就更游刃有余了。87.1.2T-SQL語言的分類在SQLServer數(shù)據(jù)庫中,T-SQL語言主要由數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言、數(shù)據(jù)控制語言和數(shù)據(jù)查詢語言組成。91、數(shù)據(jù)定義語言(DDL)。用于執(zhí)行數(shù)據(jù)庫的任務(wù),對數(shù)據(jù)庫以及數(shù)據(jù)庫中的各種對象進(jìn)行創(chuàng)建、刪除、修改等操作。如表所示。語句功能說明CREATE創(chuàng)建數(shù)據(jù)庫或數(shù)據(jù)庫對象不同數(shù)據(jù)庫對象,其CREATE語句的語法形式不同ALTER對數(shù)據(jù)庫或數(shù)據(jù)庫對象進(jìn)行修改不同數(shù)據(jù)庫對象,其ALTER語句的語法形式不同DROP刪除數(shù)據(jù)庫或數(shù)據(jù)庫對象不同數(shù)據(jù)庫對象,其DROP語句的語法形式不同102、數(shù)據(jù)操縱語言(DML)。用于操縱數(shù)據(jù)庫中各種對象,檢索和修改數(shù)據(jù)。如表所示。語句功能說明INSERT將數(shù)據(jù)插入到表或視圖中插入一行或多行數(shù)據(jù)到表或視圖末尾

UPDATE修改表或視圖中的數(shù)據(jù)既可修改表或視圖的一行數(shù)據(jù),也可修改一組或全部數(shù)據(jù)DELETE從表或視圖中刪除數(shù)據(jù)可根據(jù)條件刪除指定的數(shù)據(jù)113、數(shù)據(jù)控制語言(DCL)用于安全管理,確定哪些用戶可以查看或修改數(shù)據(jù)庫中的數(shù)據(jù),DCL包括的主要語句及功能如表所示。語句功能說明GRANT授予權(quán)限可把語句許可或?qū)ο笤S可的權(quán)限授予其他用戶和角色REVOKE收回權(quán)限與GRANT的功能相反,但不影響該用戶或角色從其他角色中作為成員繼承許可權(quán)限D(zhuǎn)ENY收回權(quán)限,并禁止從其他角色繼承許可權(quán)限功能與REVOKE相似,不同之處:除收回權(quán)限外,還禁止從其他角色繼承許可權(quán)限124、數(shù)據(jù)查詢語言(DQL)。對數(shù)據(jù)庫進(jìn)行查詢操作。是使用最頻繁的SQL語句之一。如表所示。語句功能說明SELECT從表或視圖中檢索數(shù)據(jù)是使用最頻繁的SQL語句之一137.1.3T-SQL語言的語法約定142、數(shù)據(jù)庫對象名的多部分名稱表示除非另外指定,否則,所有對數(shù)據(jù)庫對象名的T-SQL引用可以是由四部分組成的名稱,格式如下:[server_name.[database_name].[schema_name]|database_name.[schema_name]|schema_name.]object_name15其中:server_name:指定鏈接的服務(wù)器名稱或遠(yuǎn)程服務(wù)器名稱;database_name:如果對象駐留在SQLServer的本地實(shí)例中,則指定SQLServer數(shù)據(jù)庫的名稱。如果對象在鏈接服務(wù)器中,則database_name將指定OLEDB目錄;schema_name:如果對象在SQLServer數(shù)據(jù)庫中,則指定包含對象的架構(gòu)的名稱。如果對象在鏈接服務(wù)器中,則schema_name將指定OLEDB架構(gòu)名稱;object_name:對象的名稱。16若要省略中間節(jié)點(diǎn),請使用句點(diǎn)來指示這些位置。下表顯示了對象名的有效格式。對象名的有效格式對象引用格式說明server.database.schema.object四個(gè)部分的名稱server.database..object省略架構(gòu)名稱server..schema.object省略數(shù)據(jù)庫名稱server...object省略數(shù)據(jù)庫和架構(gòu)名稱database.schema.object省略服務(wù)器名database..object省略服務(wù)器和架構(gòu)名稱schema.object省略服務(wù)器和數(shù)據(jù)庫名稱object省略服務(wù)器、數(shù)據(jù)庫和架構(gòu)名稱177.2T-SQL編程基礎(chǔ)7.2.1標(biāo)識符標(biāo)識符是用來標(biāo)識事物的符號,其作用類似于給事物起的名稱。標(biāo)識符分為兩類:常規(guī)標(biāo)識符和限定性標(biāo)識符181、常規(guī)標(biāo)識符常規(guī)標(biāo)識符格式的規(guī)則如下:①常規(guī)標(biāo)識符的第一個(gè)字符必須是下列字符之一:Unicode標(biāo)準(zhǔn)2.0定義的字母,包括從a到z和從A到Z的拉丁字符以及其他語言的字母字符;下劃線(_)。19②后續(xù)字符可以是:Unicode標(biāo)準(zhǔn)2.0定義的字母;基本拉丁字符或其他國家/地區(qū)字符中的十進(jìn)制數(shù)字;下劃線(_)。標(biāo)識符必須不能是DMX(數(shù)據(jù)挖掘擴(kuò)展插件)保留字。DMX中的保留字不區(qū)分大小寫。③標(biāo)識符不能包含嵌入的空格或特殊字符。在DMX語句中使用不符合上述規(guī)則的標(biāo)識符時(shí),必須使用方括號分隔這些標(biāo)識符。202、分割標(biāo)識符符合所有標(biāo)識符格式規(guī)則的標(biāo)識符可以使用分隔符,也可以不使用分隔符。不符合標(biāo)識符格式規(guī)則的標(biāo)識符必須使用分隔符。21分隔標(biāo)識符括在方括號([])中。分隔標(biāo)識符的格式規(guī)則如下:①分隔標(biāo)識符可以包含與常規(guī)標(biāo)識符相同的字符數(shù)(1到100個(gè),不包括分隔符本身)。②標(biāo)識符的主體可以包含當(dāng)前代碼頁內(nèi)所用字符(包括分隔符本身)的任意組合。如果標(biāo)識符的主體本身包含分隔符,則需進(jìn)行特殊處理:A、如果標(biāo)識符的主體包含左方括號([),則無需進(jìn)行額外處理。B、如果標(biāo)識符的主體包含一個(gè)右方括號(]),則必須指定兩個(gè)右方括號(]]),以在代碼頁中對其進(jìn)行表示。22分隔標(biāo)識符使用情況:①使用保留關(guān)鍵字作為對象名或?qū)ο竺囊徊糠謺r(shí)。②標(biāo)識符的命名不符合常規(guī)標(biāo)識符格式的規(guī)則時(shí)。237.2.2數(shù)據(jù)類型我們定義數(shù)據(jù)表的字段、聲明程序中的變量時(shí),都需要為它們設(shè)置一個(gè)數(shù)據(jù)類型,目的是指定該字段或變量所存放的數(shù)據(jù)是整數(shù)、字符串、貨幣、或是其他類型的數(shù)據(jù),以及會(huì)用多少空間來存儲(chǔ)數(shù)據(jù)。SQLServer中的數(shù)據(jù)類型可分為系統(tǒng)內(nèi)置數(shù)據(jù)類型和用戶自定義數(shù)據(jù)類型兩種。241、字符型數(shù)據(jù)類型字符數(shù)據(jù)的類型包括Char,Varchar和Text。字符數(shù)據(jù)是由任何字母、符號和數(shù)字任意組合而成的數(shù)據(jù)。①char(n)按固定長度存儲(chǔ)字符串,n必須從1到8000。25②varchar[(n)]按變長存儲(chǔ)字符串,存儲(chǔ)大小為輸入數(shù)據(jù)的字節(jié)的實(shí)際長度,若輸入的數(shù)據(jù)超過n個(gè)字節(jié),則截?cái)嗪蟠鎯?chǔ)。所輸入的數(shù)據(jù)字符長度可以為零。char類型的字符串查詢速度快,當(dāng)有空值或字符串?dāng)?shù)據(jù)長度不固定時(shí)可以使用varchar數(shù)據(jù)類型。③text數(shù)據(jù)類型可以存儲(chǔ)最大長度為231-1個(gè)字節(jié)的字符數(shù)據(jù)。超過8KB的ASCII數(shù)據(jù)可以使用Text數(shù)據(jù)類型存儲(chǔ)。262、整數(shù)型數(shù)據(jù)①bigint(大整數(shù)):從-263

到263-1的整型數(shù)據(jù)即所有數(shù)字。存儲(chǔ)大小為8個(gè)字節(jié)。②int(整型):從-231

到231-1的整型數(shù)據(jù)所有數(shù)字。存儲(chǔ)大小為4個(gè)字節(jié)。③smallint(短整型):從-215到215-1的整型數(shù)據(jù)。存儲(chǔ)大小為2個(gè)字節(jié)。④tinyint(微短整型):從0到255的整型數(shù)據(jù)。存儲(chǔ)大小為1字節(jié)。273、精確數(shù)值型數(shù)據(jù)精確數(shù)值型數(shù)據(jù)由整數(shù)部分和小數(shù)部分構(gòu)成,其所有的數(shù)字都是有效位,能夠以完整的精度存儲(chǔ)十進(jìn)制數(shù)。在SQL

Server中精確數(shù)值型是decimal和numeric,兩者唯一的區(qū)別在于decinal不能用于帶有identity關(guān)鍵字的列。28表達(dá)方式:decimal[(p[,s])]numeric[(p[,s])]其中p:指定精度或?qū)ο竽軌蚩刂频臄?shù)字個(gè)數(shù);s:指定可放到小數(shù)點(diǎn)右邊的小數(shù)位數(shù)或數(shù)字個(gè)數(shù),p可指定的范圍為1~38,s可指定的范圍最少為0,最多不可超過p。decimal(8,6)取值范圍是-99.999999~99.999999。294、近似數(shù)值類型①float(n):存放-1.79E+308~1.79E+308數(shù)值范圍內(nèi)的浮點(diǎn)數(shù),其中n為精度(尾數(shù)的位數(shù)),n是從1到53的整數(shù)。②real:從-3.40E+38到3.40E+38之間的浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)。存儲(chǔ)大小為4字節(jié)。305、日期時(shí)間型數(shù)據(jù)①datetime數(shù)據(jù)可以存儲(chǔ)從1753年1月1日到9999年12月31日的日期和時(shí)間數(shù)據(jù),精確度為百分之三秒。②smalldatetime數(shù)據(jù)可以存儲(chǔ)從1900年1月1日到2079年6月6日的日期和時(shí)間數(shù)據(jù),精確度為分。31日期的格式可以設(shè)定。設(shè)置日期格式的命令如下:Set

DateFormat

{format

|

@format

_var}其中,format

|

@format_var

是日期的順序。有效的參數(shù)包括:MDY、DMY、YMD、YDM、MYD

DYM。在默認(rèn)情況下,日期格式為MDY。注:該設(shè)置僅用在將字符串轉(zhuǎn)換為日期值時(shí)的解釋中。它對日期的顯示沒有影響32SQLServer中常用的日期和時(shí)間表示格式分隔符可用’/’、’-’或’.’,例如:’4/15/2005’、’4-15-05’或’4.15.2005’字母日期格式:’April15,2005’不用分隔符:’20050501’時(shí):分:秒:毫秒:08:05:25:28時(shí):分AM|PM:05:08AM、08:05PM336、貨幣數(shù)據(jù)①money:貨幣數(shù)據(jù)值介于-263與263-1之間,精確到貨幣單位的千分之十。存儲(chǔ)大小為8個(gè)字節(jié)。②smallmoney:貨幣數(shù)據(jù)值介于-214,748.3648與+214.748,3647之間,精確到貨幣單位的千分之十。存儲(chǔ)大小為4個(gè)字節(jié)。347、二進(jìn)制數(shù)據(jù)①binary[(n)]為存儲(chǔ)空間固定的數(shù)據(jù)類型,存儲(chǔ)空間大小為n+4字節(jié)。n

必須從1到8000。若輸入的數(shù)據(jù)不足n+4個(gè)字節(jié),則補(bǔ)足后存儲(chǔ)。若輸入的數(shù)據(jù)超過n+4個(gè)字節(jié),則截?cái)嗪蟠鎯?chǔ)。35②varbinary[(n)]按變長存儲(chǔ)二進(jìn)制數(shù)據(jù)。n

必須從1到8000。若輸入的數(shù)據(jù)不足n+4字節(jié)時(shí),則按實(shí)際數(shù)據(jù)長度存儲(chǔ)。若輸入的數(shù)據(jù)超過n+4個(gè)字節(jié),則截?cái)嗪蟠鎯?chǔ)。binary數(shù)據(jù)比varbinary數(shù)據(jù)存取速度快,但是浪費(fèi)存儲(chǔ)空間,用戶在建立表時(shí),選擇那種二進(jìn)制數(shù)據(jù)類型可根據(jù)具體的使用環(huán)境來決定。若不指定n的值,則默認(rèn)為1。③image數(shù)據(jù)類型可以存儲(chǔ)最大長度為231-1個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)。368、Unicode字符數(shù)據(jù)①nchar存放固定長度的n個(gè)Unicode字符數(shù)據(jù),n必須是一個(gè)介于1和4000之間的數(shù)值。②nvarchar存放長度可變的n個(gè)Unicode字符數(shù)據(jù),n必須是一個(gè)介于1和4000之間的數(shù)值。③ntext存儲(chǔ)最大長度為230-1個(gè)字節(jié)的Unicode字符數(shù)據(jù)數(shù)據(jù)。379、其它數(shù)據(jù)類型除了前面介紹的數(shù)據(jù)類型之外,MicrosoftSQLServer2005系統(tǒng)還提供了CURSOR、SQL_VARIANT、TABLE、TIMESTAMP、UNIQUEIDENTIFIER及XML等數(shù)據(jù)類型。38數(shù)據(jù)類型符號標(biāo)識整型bigint、int、smallint、tinyint精確數(shù)值型decimal、numeric浮點(diǎn)型float、real貨幣型money、smallmoney字符型char、varcharUnicode字符型nchar、nvarchar文本、圖像型text、ntext、image二進(jìn)制型binary、varbinary日期時(shí)間型datetime、smalldatetime特殊數(shù)據(jù)類型bit、cursor、timestamp、sql_variant、table、uniqueidentifier397.2.3變量1、變量的分類①全局變量全局變量由系統(tǒng)提供且預(yù)先聲明,通過在名稱前加兩個(gè)“@”符號區(qū)別于局部變量。用戶只能使用全局變量,不能對它們進(jìn)行修改。全局變量的作用范圍是整個(gè)SQLServer系統(tǒng),任何程序都可以隨時(shí)調(diào)用它們。40②局部變量變量是一種程序設(shè)計(jì)語言中必不可少的組成部分,可以用它保存程序運(yùn)行過程中的中間值,也可以在語句之間傳遞數(shù)據(jù)。T-SQL語言中的變量是可以保存單個(gè)特定類型的數(shù)據(jù)值的對象,也稱為局部變量,只在定義它們的批處理或過程中可見。412、局部變量定義T-SQL語言中的變量在定義和引用時(shí)要在其名稱前加上標(biāo)志“@”,而且必須先用DECLARE命令定義后才可以使用。其定義的一般格式如下:DECLAER{@local_variabledata_type}[…n]42各個(gè)參數(shù)的含義如下:①@local_variable:用于指定變量的名稱,變量名必須以符號@開頭,并且變量名必須符合SQLServer的命名規(guī)則。②data_type:用于設(shè)置變量的數(shù)據(jù)類型及其大小。data_type可以是任何由系統(tǒng)提供的或用戶定義的數(shù)據(jù)類型。但是,變量不能是text,ntext或image數(shù)據(jù)類型。433、局部變量的賦值方法使用DECLARE命令聲明并創(chuàng)建變量之后,系統(tǒng)會(huì)將其初始值設(shè)為NULL,如果想要設(shè)定變量的值,必須使用SET命令或者SELECT命令。SET{{@local_variable=expression}或者SELECT{@local_variable=expression}[,...n]其中:參數(shù)@local_variable是給其賦值并聲明的變量,expression是有效的SQLServer表達(dá)式。444、局部變量的作用域一個(gè)變量的作用域就是可以引用該變量的Transact-SQL語句范圍。局部變量的作用域從聲明它們的地方開始到聲明它們的批處理或存儲(chǔ)過程的結(jié)尾。換言之,局部變量只能在聲明它們的批處理或存儲(chǔ)過程中使用,一旦這些批處理或存儲(chǔ)過程結(jié)束,局部變量將自行清除。455、變量使用舉例例:創(chuàng)建了一個(gè)變量@CurrentDateTime,然后將GETDATE()函數(shù)的值放在變量中,最后輸出@CurrentDateTime變量的值。46實(shí)現(xiàn)的步驟如下:①打開SQLServerManagementStudio,在窗口上部的工具欄的左側(cè)找到“新建查詢”按鈕。②單擊“新建查詢”,在SQLServerManagementStudio的窗口右側(cè)會(huì)建立一個(gè)新的查詢頁面,默認(rèn)的名稱為“SQLQuery1.sql”,在這個(gè)頁面中可以輸入要讓SQLServer執(zhí)行的T-SQL語句。③這里輸入下面列出的T-SQL語句。47DECLARE@CurrentDateTimechar(30)SELECT@CurrentDateTime=GETDATE()SELECT@CurrentDateTimeAS'當(dāng)前的日期和時(shí)間'GO④單擊工具欄中的“執(zhí)行”按鈕,當(dāng)系統(tǒng)給出的提示信息為“命令已成功完成。”時(shí),說明成功。注意:變量只在定義它的批處理中有效,因此,在上例中的程序中間不能寫入GO語句。48497.2.4運(yùn)算符運(yùn)算符是一種符號,用來指定要在一個(gè)或多個(gè)表達(dá)式中執(zhí)行的操作。在MicrosoftSQLServer2005系統(tǒng)中,可以使用的運(yùn)算符可以分為算術(shù)運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、字符串串聯(lián)運(yùn)算符、按位運(yùn)算符、一元運(yùn)算符及比較運(yùn)算符等。501、算術(shù)運(yùn)算符①算術(shù)運(yùn)算符包括加(+)、減(-)、乘(*)、除(/)和取模(%)。②對于加、減、乘、除這四種算術(shù)運(yùn)算符,計(jì)算的兩個(gè)表達(dá)式可以是數(shù)字?jǐn)?shù)據(jù)類型分類的任何數(shù)據(jù)類型;③對于取模運(yùn)算符,要求進(jìn)行計(jì)算的數(shù)據(jù)的數(shù)據(jù)類型為int、smallint和tinyint,完成的功能是返回一個(gè)除法運(yùn)算的整數(shù)余數(shù)。51例:計(jì)算表達(dá)式的值,并將結(jié)果賦給變量@ExpResult。程序清單如下:DECLARE@ExpResultnumericSET@ExpResult=67%31SELECT@ExpResultAS'表達(dá)式計(jì)算結(jié)果'52運(yùn)行結(jié)果如圖7-2所示:圖7-2532、賦值運(yùn)算符Transact-SQL中只有一個(gè)賦值運(yùn)算符,即等號(=)。賦值運(yùn)算符使我們能夠?qū)?shù)據(jù)值指派給特定的對象。另外,還可以使用賦值運(yùn)算符在列標(biāo)題和為列定義值的表達(dá)式之間建立關(guān)系。543、位運(yùn)算符運(yùn)算符包括按位與(&)、按位或(|)、按位異或(^)。位運(yùn)算符用來在整型數(shù)據(jù)或者二進(jìn)制數(shù)據(jù)(image數(shù)據(jù)類型除外)之間執(zhí)行位操作。要求在位運(yùn)算符左右兩側(cè)的操作數(shù)不能同時(shí)是二進(jìn)制數(shù)據(jù)。位運(yùn)算的運(yùn)算規(guī)則如表7-8所示。55運(yùn)算符運(yùn)算規(guī)則&兩個(gè)位均為1時(shí),結(jié)果為1,否則為0|只要一個(gè)位為1,結(jié)果為1,否則為0^兩個(gè)位值不同時(shí),結(jié)果為1,否則為0

表7-8位運(yùn)算的運(yùn)算規(guī)則56例:定義變量@a1,@a2,給變量賦值,然后求兩個(gè)變量與、或、異或的結(jié)果。DECLARE@a1int,@a2intset@a1=3set@a2=8select@a1&@a2as與,@a1|@a2as或,@a1^@a2as異或57584、比較運(yùn)算符比較運(yùn)算符(又稱關(guān)系運(yùn)算符),用于測試兩個(gè)表達(dá)式的值是否相同,其運(yùn)算結(jié)果為邏輯值,可以為三種之一:TRUE、FALSE及UNKNOWN。59運(yùn)算符含義運(yùn)算符含義=相等<=小于等于>大于<>、!=不等于<小于!<不小于>=大于等于!>不大于表7-9關(guān)系運(yùn)算符及含義60例:使用比較運(yùn)算符計(jì)算表達(dá)式的值。DECLARE@Exp1int,@Exp2intSET@Exp1=30SET@Exp2=50IF@Exp1>@Exp2SELECT@Exp1AS小數(shù)據(jù)615.邏輯運(yùn)算符邏輯運(yùn)算符對某些條件進(jìn)行測試,以獲得其真實(shí)情況。邏輯運(yùn)算符和比較運(yùn)算符一樣,返回帶有TRUE或FALSE值的Boolean數(shù)據(jù)類型,或UNKNOWN值。626.字符串連接運(yùn)算符連接運(yùn)算符(+)用于兩個(gè)字符串?dāng)?shù)據(jù)的連接,通常也稱為字符串運(yùn)算符。在SQLServer中,對字符串的其他操作通過字符串函數(shù)進(jìn)行。字符串連接運(yùn)算符的操作數(shù)類型有char、varchar和text等。例:使用字符串連接運(yùn)算符計(jì)算表達(dá)式的值。DECLARE@ExpResultchar(60)SELECT@ExpResult='河北省石家莊市'+'河北師范大學(xué)'+'網(wǎng)絡(luò)工程'SELECT@ExpResultAS'字符串的連接結(jié)果'637.一元運(yùn)算符一元運(yùn)算符只對一個(gè)表達(dá)式執(zhí)行操作,該表達(dá)式可以是numeric數(shù)據(jù)類型類別中的任何一種數(shù)據(jù)類型。具體為:+(正):數(shù)值為正;-(負(fù)):數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論