sql 數(shù)據(jù)庫 第十章 SQL Server 2008T-SQL編程基礎.ppt_第1頁
sql 數(shù)據(jù)庫 第十章 SQL Server 2008T-SQL編程基礎.ppt_第2頁
sql 數(shù)據(jù)庫 第十章 SQL Server 2008T-SQL編程基礎.ppt_第3頁
sql 數(shù)據(jù)庫 第十章 SQL Server 2008T-SQL編程基礎.ppt_第4頁
sql 數(shù)據(jù)庫 第十章 SQL Server 2008T-SQL編程基礎.ppt_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、SQL Server 數(shù)據(jù)庫程序設計,授課教師:姜 姍,第10章 Transact-SQL編程基礎,掌握常量和變量的使用方法 掌握運算符和表達式的使用 掌握函數(shù)的定義和使用方法 掌握流程控制語句的使用,SQL是結(jié)構(gòu)化查詢語言(Structured Query Language)的縮寫,是一種數(shù)據(jù)庫查詢和程序設計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。 SQL最早是IBM的圣約瑟研究實驗室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng)System R開發(fā)的一種查詢語言,由于其結(jié)構(gòu)簡潔,功能強大,簡單易學,所以得到了廣泛的應用,目前大多數(shù)數(shù)據(jù)庫供應商都支持SQL語言作為查詢語言。,概述,Transact-S

2、QL即事務SQL,也簡稱為T-SQL,它是微軟公司對SQL語言的擴充,是SQL語言的超集,是應用程序與SQL- Server數(shù)據(jù)庫引擎溝通的主要語言。 Transact-SQL語言包括以下四個部分: 數(shù)據(jù)定義語言(DDL):定義和管理數(shù)據(jù)庫及其對象 數(shù)據(jù)操作語言(DML):操作數(shù)據(jù)庫中各對象 數(shù)據(jù)控制語言(DCL):進行安全管理和權(quán)限管理等 一些附加的語言元素,數(shù)據(jù)定義語言是指用來定義和管理數(shù)據(jù)庫以及數(shù)據(jù)庫中的各種對象的語句。在SQL Server 中,數(shù)據(jù)庫對象包括表、視圖、觸發(fā)器、存儲過程、規(guī)則、缺省、用戶自定義的數(shù)據(jù)類型等。,數(shù)據(jù)定義語言(DDL),DDL的主要語句及功能,數(shù)據(jù)操縱語言(

3、DML),DML的主要語句及功能,DML是一般開發(fā)人員俗稱的 CRUD (Create/Retrieve/Update/Delete) 功能,意指數(shù)據(jù)的新增提取修改刪除四個數(shù)據(jù)操縱功能。,DCL語言用于安全管理,確定哪些用戶可以查看或修改數(shù)據(jù)庫中的數(shù)據(jù)。,數(shù)據(jù)控制語言(DCL),DCL的主要語句及功能,附加語言元素,這部分是微軟為了用戶編程方便增加的語言元素,這些語言元素包括運算符、變量、函數(shù)和流程控制語句以及程序中的批處理、腳本、注釋等。 例如有些任務不能由單獨的T-SQL語句來完成,就需要使用SQL Server的批處理、腳本、存儲過程、觸發(fā)器等組織多條T-SQL語句來完成。,表達式是指將

4、常量、變量、函數(shù)等,用運算符按一定的規(guī)則連接起來的有意義的式子。 運算符是一些符號,它們能夠用來執(zhí)行算術(shù)運算、字符串連接、賦值以及在字段、常量和變量之間進行比較。,10.2表達式,常量是指使用字符或數(shù)字表示出來的字符串、數(shù)值或日期等數(shù)據(jù),表示一個特定數(shù)據(jù)值的符號。根據(jù)數(shù)據(jù)類型,可將常量分為各種不同類型。 字符串常量 Unicode字符串 二進制常量 bit常量 datetime常量,整型常量 decimal常量 float和real常量 貨幣常量 空值,一、常量,字符串常量是指使用單引號作為定界符,由字母(a-z、A-Z和漢字等)、數(shù)字(0-9)以及特殊字符(如感嘆號!、at符和數(shù)字號#)等組

5、成的字符序列,不包含任何字符的字符串,稱為空字符串,表示為。在字符串中,可使用兩個單引號來插入一個單引號。 下面是字符串的示例: abcdef 123 數(shù)據(jù)類型 abcdef,1.字符串常量,2. Unicode字符串,Unicode字符串的格式與普通字符串相似,但每個字符用兩個字節(jié)存儲,需在字符串前面加一個N進行區(qū)別,N前綴必須大寫。 下面是Unicode字符串的示例。 Nabcdef N123 N數(shù)據(jù)類型,3 二進制常量,使用數(shù)字0或1表示,并且不使用引號。如果使用一個大于1的數(shù)字,它將被轉(zhuǎn)換為1。 十六進制整型常量用0 x作前輟,例如:0 x123、0 xABC,單獨的0 x視為一個空十

6、六進制常量。,4. bit常量,bit常量使用數(shù)字0或1表示,并且不使用引號。如果使用一個大于1的數(shù)字,它將被轉(zhuǎn)換為1。,5.日期時間型常量,datetime常量是用單引號括起來的日期和時間數(shù)據(jù),如下所示。 2004-3-12 1 may,2003 2004年3月12日 04/03/12 12:00:00 4/6/09 6:35:52 PM,整型常量是指不帶小數(shù)點的整數(shù),例如,123,+123,-100。,7 decimal常量,decimal常量是指帶小數(shù)點的數(shù),例如,123.56,+45.67,-10.005。,8 float和real常量,float是指使用科學記數(shù)法表示的數(shù),例如,1.

7、2E5,+0.45e-9,+5.7E12;real常量如153.98、156.231,6 整型常量,貨幣常量是指以$符號開頭的數(shù)字,如下所示。$12,$542023.14。,10 空值,是一個特殊的量,表示值未知,不同于空白或零值,用Null來表示,9 貨幣常量,變量是可以對其賦值并參與運算的一個實體,其值在運行過程中可以發(fā)生改變。 變量用于臨時存放數(shù)據(jù),變量中的數(shù)據(jù)隨著程序的運行而變化,是SQL Server用來在語句之間傳遞數(shù)據(jù)的方式之一。T-SQL中的變量可以分為局部變量和全局變量兩種,局部變量是以開頭命名的變量,全局變量是以開頭命名的變量。,二、變量,1. 全局變量 全局變量是由系統(tǒng)提

8、供的,用于存儲一些系統(tǒng)信息。只可以使用全局變量,不可以自定義全局變量。 通常用來跟蹤服務器范圍和特定會話期間的信息,不能被用戶顯式地定義和賦值,但是我們可以通過訪問全局變量來了解系統(tǒng)目前的一些狀態(tài)信息,表10.1 SQL Server中較常用的全局變量,例如:查看Select后的記錄集里的記錄數(shù) SELECT * FROM stu_info.dbo.student PRINT 一共查詢了+CAST(ROWCOUNT AS varchar(5)+條記錄,2.局部變量聲明,局部變量是由用戶自定義的變量,這些變量可以用來存儲數(shù)值型、字符串型等數(shù)據(jù),也可以存儲函數(shù)或存儲過程返回的值。使用Declare

9、語句可以聲明局部變量,其語法代碼如下: DECLARE local_variable AS data_type ,.n 其中的參數(shù)說明如下。 local_variable:局部變量名稱 data_type:局部變量的數(shù)據(jù)類型,但不能是text,ntext或image類型,用Set語句和Select語句可以為變量賦值,其語法代碼如下: SET local_variable = value SELECT local_variable = value 用Select語句和Print語句可以顯示變量內(nèi)容,其語法代碼如下: SELECT local_variable PEINT local_variab

10、le,2.局部變量的賦值,例1:創(chuàng)建局部變量var1、var2并賦值,然后輸出變量的值。 DECLARE var1 char(10),var2 char(30) Set var1=中國 Select var2=是一個國家 select var1+var2 Go,例2:創(chuàng)建局部變量jszh并賦值,然后輸出所有等于該值的記錄。并顯示變量的值 DECLARE jszh char(9) Set jszh=200515001 Select sname,ssex,sdept from student where sno= jszh SELECT jszh PRINT jszh,例3:創(chuàng)建局部變量sex、z

11、ym并賦值,然后輸出數(shù)據(jù)表中等于變量的值的所有記錄。 DECLARE sex char(2),zym varchar(8) Set sex=男 Set zym=CS Selectsno,sname from student where sdept=zym and ssex= sex Go,例4:將學號為200515001的記錄的姓名賦值給變量name。 DECLARE name char(8) Set name= (Select sname from student where sno=200515001) select name as 姓名 Go,例5:將學號為200515001的記錄的姓名

12、賦值給變量name。 DECLARE name char(8) Set name= 張三 Select name= sname from student where sno=200515001 select name as 姓名 Go 結(jié)果是什么?,若學號200515000 ,結(jié)果應為什么?,運算符是一種用來指定要在一個或多個表達式中執(zhí)行某種操作的符號。例如,“+”表示兩個表達式進行相加操作,“*”表示兩個表達式進行相乘操作。 T-SQL所使用的運算符可以分為算術(shù)運算符、賦值運算符、位運算符、比較運算符、邏輯運算符、字符串串聯(lián)運算符和一元運算符7種。,運算符,算術(shù)運算符可以在兩個表達式上執(zhí)行數(shù)

13、學運算,這兩個表達式可以是數(shù)字數(shù)據(jù)類型分類的任何數(shù)據(jù)類型。 算術(shù)運算符包括加(+)、減()、乘(*)、除(/)和取模(%)。,1.算術(shù)運算符,例2:求模。 declare a float(5) set a=15%2 select a go,例1:計算sc表中最高分和最低分之差。 declare num float(5) select num=max(grade)-min (grade) from sc select num go,2. 賦值運算符 等號 (=) 是唯一的 Transact-SQL 賦值運算符。例如,在下面的例子中使用賦值運算符對變量進行賦值: 3. 字符串串聯(lián)運算符 加號 (+

14、) 是字符串串聯(lián)運算符,可以用它將字符串串聯(lián)起來。其他所有字符串操作都使用字符串函數(shù)進行處理。例如good + + luck的結(jié)果是good luck。,例1:顯示student表中記錄,其中姓名和專業(yè)名顯示在一列。 select sno,sname+sdept,sage,ssex from student,例2:顯示student表中記錄,其中姓名和專業(yè)名顯示在一列,以逗號隔開。 select sno,sname+,+sdept,ssex,sage from student,例3:顯示student表中年齡記錄,其中學號、姓名和專業(yè)名顯示在一列,中間以空格隔開。 select sno+ +s

15、name+ +sdept as 學生信息,sage from student,4. 比較運算符 比較運算符用于比較兩個表達式的大小或是否相同,其比較的結(jié)果是布爾值,即TRUE、FALSE以及UNKNOWN。除了 text、ntext 或 image 數(shù)據(jù)類型的表達式外,比較運算符可以用于所有的表達式。,5. 邏輯運算符 邏輯運算符可以把多個邏輯表達式連接起來。邏輯運算符包括AND、OR和NOT等運算符。邏輯運算符和比較運算符一樣,返回帶有 TRUE 或 FALSE 值的布爾數(shù)據(jù)類型。 見表10.4,6.按位運算符 位運算符使我們能夠在整型數(shù)據(jù)或者二進制數(shù)據(jù)(image 數(shù)據(jù)類型除外)之間執(zhí)行位

16、操作。此外,在位運算符左右兩側(cè)的操作數(shù)不能同時是二進制數(shù)據(jù)。,a&b 1001 0011 0001,a|b 1001 0011 1011,ab 1001 0011 1010,7. 一元運算符 一元運算符只對一個表達式進行運算,SQL Server 2008提供的一元運算符如表10.6所示。,()括號 (按位取反) *(乘)、/(除)、%(取余) +(正)、-(負)、+(加)、(+字符串串聯(lián))、-(減)、&(按位與)、(按位異或)、|(按位或) =、= 、 、!=, ! 、!(比較運算符) Not And All、Any、Between、In、Like、Or、Some =(賦值),運算符的優(yōu)先級

17、,函數(shù)是能夠完成特定功能并返回處理結(jié)果的一組Transact-SQL語句,處理結(jié)果稱為“返回值”,處理過程稱為“函數(shù)體”。函數(shù)可以用來構(gòu)造表達式,可以出現(xiàn)在Select語句的選擇列表中,也可以出現(xiàn)在Where子句的條件中。SQL Server提供了許多系統(tǒng)內(nèi)置函數(shù),同時也允許用戶根據(jù)需要自己定義函數(shù)。 SQL Serve提供的常用的內(nèi)置函數(shù)主要有以下幾類:數(shù)學函數(shù)、字符串函數(shù)、日期函數(shù)、convert函數(shù)、聚合函數(shù)等 。,內(nèi)置函數(shù),Transact-SQL語言中提供的常用的有: Abs ( numeric_expression ):返回指定數(shù)值表達式的絕對值 Round ( numeric_e

18、xpression , length ,function ):返回一個舍入到指定的長度或精度的數(shù)值 Floor ( numeric_expression ):返回小于或等于指定數(shù)值表達式的最大整數(shù) Ceiling ( numeric_expression ):返回大于或等于指定數(shù)值表達式的最小整數(shù) Power ( float_expression , y ):返回指定表達式的指定冪的值 Sqrt ( float_expression ):返回指定表達式的平方根 Square ( float_expression ):返回指定表達式的平方 Exp ( float_expression ):返回指

19、定的表達式的指數(shù)值 Log ( float_expression ):返回指定表達式的自然對數(shù) Log10 ( float_expression ):返回指定表達式的以10為底的對數(shù) Sin ( float_expression ):返回指定角度(以弧度為單位)的三角正弦值 Cos ( float_expression ):返回指定角度(以弧度為單位)的三角余弦值 PI():返回的值,數(shù)學函數(shù),ROUND(x,n,f)函數(shù)按由n指定的精度和由f指定格式對x四舍五入,如果省略參數(shù)f,其默認值為0,則按由n指定的精度四舍五入,如果f為其他值,則執(zhí)行截斷。參數(shù)n如果為負數(shù),并且n的絕對值大于x整數(shù)部

20、分的數(shù)字個數(shù),則結(jié)果為0。 ROUND(x,n,f)函數(shù)舉例如下。 ROUND(534.56, 1) -結(jié)果為534.60 ROUND(534.56, 0) -結(jié)果為535.00 ROUND(534.56, -1)-結(jié)果為530.00 ROUND(534.56, -2)-結(jié)果為500.00 ROUND(534.56, -3) -結(jié)果為1000.00 ROUND(534.56, -4) -結(jié)果為0.00,例1:數(shù)學函數(shù)綜合應用:求絕對值。 Select abs(8.9),abs(-5.0) ,abs(0.0),abs(0),例2:數(shù)學函數(shù)綜合應用:返回半徑為1英寸、高為5英寸的圓柱面積。 dec

21、lare h float,r float Select h=5,r=2 Select pi()*square(r)*h as 圓柱面積,SQL Server提供的常用的字符串函數(shù)有: Ascii ( character_expression ):返回字符表達式中最左側(cè)的字符的 ASCII 代碼值 Char ( integer_expression ):將 int ASCII 代碼轉(zhuǎn)換為字符 Suubstring ( value_expression ,start_expression , length_expression ):返回字符表達式的從start_expression位置開始的長度為

22、length_expression的子串 Left ( character_expression , integer_expression ):返回字符串中從左邊開始指定個數(shù)的字符 Right ( character_expression , integer_expression ):返回字符串中從右邊開始指定個數(shù)的字符 Len ( string_expression ):返回指定字符串表達式的字符數(shù),其中不包含尾隨空格 Ltrim( character_expression ):返回刪除了前導空格之后的字符表達式 Rtrim ( character_expression ):截斷所有尾隨空格

23、后返回一個字符串 Str ( float_expression , length , decimal ):返回由數(shù)字數(shù)據(jù)轉(zhuǎn)換來的字符數(shù)據(jù),字符串函數(shù),LEFT函數(shù) 函數(shù)格式: LEFT(expression1,n) 功能:返回字符串expression1從左邊開始n個字符組成的字符串。如果n=0,則返回一個空字符串。 返回值數(shù)據(jù)類型:varchar 例:LEFT(abcde, 3)結(jié)果為abc。,RIGHT函數(shù) 函數(shù)格式: RIGHT(expression1,n) 功能:返回字符串expression1從右邊開始n個字符組成的字符串。如果n=0,則返回一個空字符串。 返回值數(shù)據(jù)類型:varch

24、ar 例如:RIGHT(abcde, 3)結(jié)果為cde,LEN函數(shù) 函數(shù)格式: LEN(expression1) 功能:返回字符串expression1中的字符個數(shù),不包括字符串末尾的空格。 返回值數(shù)據(jù)類型:int 例:LEN(abcde )結(jié)果為5,SUBSTRING函數(shù) 函數(shù)格式: SUBSTRING(expression1,start,length) 功能:返回expression1(數(shù)據(jù)類型為字符串、binary、text或image)中從start開始長度為length個字符或字節(jié)的子串。 返回值數(shù)據(jù)類型:與expression1數(shù)據(jù)類型相同,但text類型返回值為varchar,i

25、mage類型返回值為varbinary,next類型返回值為nvarchar。 例:SUBSTRING(abcde123,3,2)結(jié)果為cd。,LTRIM函數(shù) 函數(shù)格式: LTRIM(expression1) 功能:刪除字符串expression1左端的空格。 返回值數(shù)據(jù)類型:varchar 例:LTRIM( 12AB)結(jié)果為12AB。 RTRIM( 12AB )結(jié)果為 12AB。,RTRIM函數(shù):刪除右空格,REPLACE函數(shù) 函數(shù)格式: REPLACE(expression1, expression2, express ion3) 功能:將字符串expression1中所有的子字符串ex

26、pression2替換為expression3。 返回值數(shù)據(jù)類型:varchar 例如:REPLACe(abcdeabcdeabcde,de,12)結(jié)果為abc12abc12abc12。,STR函數(shù) 函數(shù)格式: STR(expression1,length,decimal) 功能:將數(shù)字數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)。length為轉(zhuǎn)換得到的字符串總長度,包括符號、小數(shù)點、數(shù)字或空格,如果數(shù)字不夠,則在左端加入空格補足長度,如果小數(shù)部分超過總長度,則進行四舍五入,length的默認值為10,decimal為小數(shù)位位數(shù)。 返回值數(shù)據(jù)類型:char 例如: str(123,6)-結(jié)果為 123 str(123

27、.456,5)-結(jié)果為 123 str(123.456,5,2)-結(jié)果為123.5 str(123.456,8,2)-結(jié)果為 123.46,Transact-SQL語言中提供下列日期時間函數(shù): Getdate ( ):返回系統(tǒng)當前的日期和時間 Year ( date ):返回表示指定 date 的“年”部分的整數(shù) Month ( date ):返回表示指定 date 的“月”部分的整數(shù) Day ( date ):返回表示指定 date 的“日”部分的整數(shù) Datename ( datepart , date ):返回表示指定date的指定 datepart 的字符串 Datepart ( da

28、tepart , date ):返回表示指定 date 的指定 datepart 的整數(shù) Datediff ( datepart , startdate , enddate ):根據(jù)指定datepart返回兩個指定日期之間的差值 Dateadd (datepart , number , date ):根據(jù)datepart將一個時間間隔與指定 date 的相加,返回一個新的 datetime 值,日期時間函數(shù),DATENAME函數(shù) 函數(shù)格式: DATENAME(datepart,date) 功能:返回日期date中由datepart指定的日期部分的字符串。 返回值數(shù)據(jù)類型:nvarchar 例如

29、: datename(yy,1993-3-4) -結(jié)果為1993 datename (m,1993-3-4) -結(jié)果為03 datename (d,1993-3-4) -結(jié)果為4,DATEPART函數(shù)(參數(shù)表見表10.7) 函數(shù)格式: DATEPART(datepart,date) 功能:與DATENAME類似,只是返回值為整數(shù)。 返回值數(shù)據(jù)類型:int 例如: datepart(yy,1993-3-4) -結(jié)果為1993 datepart (m,1993-3-4) -結(jié)果為3 datepart (d,1993-3-4) -結(jié)果為4,DATEDIFF函數(shù) 函數(shù)格式: DATEDIFF(date

30、part,startdate, enddate) 功能:按照datepart指定的內(nèi)容,返回startdate和enddate 之間的差值。 例如: datediff(yy,1981-3-4, 2006-3-4 ) -結(jié)果為25 datediff(m,1981-3-4, 2006-3-4 ) -結(jié)果為300 datediff(d,1981-3-4, 2006-3-4 ) -結(jié)果為9131,Convert函數(shù)可以將一種數(shù)據(jù)類型的表達式強制轉(zhuǎn)換為另一種數(shù)據(jù)類型的表達式。兩種數(shù)據(jù)類型必須能夠進行轉(zhuǎn)換,例如,Char值可以轉(zhuǎn)換為Binary,但是不能轉(zhuǎn)換為Image。Convert函數(shù)的語法格式為:

31、Convert ( data_type ( length ) , expression , style ) 參數(shù)說明: expression :任何有效的表達式。 data_type :目標數(shù)據(jù)類型。 length :指定目標數(shù)據(jù)類型長度的可選整數(shù)。 style :用于日期時間型數(shù)據(jù)類型和字符數(shù)據(jù)類型的轉(zhuǎn)換。,Convert函數(shù),內(nèi)置函數(shù)大大方便了用戶進行程序設計,但用戶編程時常常需要將一個或多個TSQL語句組成子程序,以便反復調(diào)用。 SQL SERVER 允許用戶根據(jù)需要自己定義函數(shù)。,數(shù)值函數(shù)返回結(jié)果為單個數(shù)據(jù)值;表值函數(shù)返回結(jié)果集(table數(shù)據(jù)類型),創(chuàng)建定義函數(shù),1.創(chuàng)建標量值函數(shù),

32、例1:定義一函數(shù),按性別統(tǒng)計當前所有學生的平均年齡。 CREATE FUNCTION aver_age(sex char(2) RETURNS int AS BEGIN declare aver int select aver =(select avg(sage) from student where ssex=sex) Return aver END,例2:調(diào)用函數(shù)aver_age。 declare sex char(2) Set sex = 女 select dbo.aver_age(sex),內(nèi)嵌表值函數(shù)是返回記錄集的用戶自定義函數(shù),可用于實現(xiàn)參數(shù)化視圖的功能。,例1:定義一函數(shù),按根據(jù)

33、專業(yè)名查詢該專業(yè)學生的基本信息。 CREATE FUNCTION student_info(zym varchar(8) RETURNS table AS RETURN(select sno,sname,ssex,sdept,sage from student where sdept= zym ),例2:調(diào)用函數(shù)student_info。 select * from student_info(CS),創(chuàng)建內(nèi)嵌表值函數(shù),多語句表值函數(shù)和內(nèi)嵌表值函數(shù)都返回表記錄,二者不同之處在于: 內(nèi)嵌表值函數(shù)返回的是單個select 語句的結(jié)果集。 多語句表值函數(shù)在beginend 中定義的函數(shù)主體由TSQL語

34、句序列構(gòu)成,這些語句可生成記錄行并將行插入表中,最后返回表記錄。,多語句表值函數(shù),例1:定義一函數(shù),通過學號查詢該學生的姓名,課程名及成績 CREATE FUNCTION student_cj(xh char(9) RETURNS table AS RETURN(select a.sno, sname,ame, c.grade from student a , course b, sc c where a.sno= xh and a.sno= c.sno and o =o),例2:調(diào)用函數(shù)student_cj。 select * from student_cj(200515001),具體的步驟

35、為: 1)在選定的數(shù)據(jù)庫下打開【可編程性】節(jié)點。 2)找到【函數(shù)】節(jié)點,可以看到【標量值函數(shù)】和【表值函數(shù)】節(jié)點。 3)在相應的節(jié)點上單擊鼠標右鍵,在彈出的快捷菜單中選擇【新建函數(shù)】。 4)在新建的查詢窗口中可以看到關(guān)于自定義函數(shù)的語句模板。在其中添上相應的內(nèi)容,單擊工具欄上的【執(zhí)行】按鈕即可。,使用對象資源管理器創(chuàng)建表值函數(shù),10.5.1 修改自定義函數(shù) 1.利用對象資源管理器修改 在【對象資源管理器】中,找到需要修改的函數(shù)節(jié)點,在其上單擊鼠標右鍵,修改完成后,單擊工具欄上的【執(zhí)行】按鈕,即可完成函數(shù)的修改.,2.利用Alter Function語句修改 Alter Function fun

36、ction_name ( parameter_name As parameter_data_type = default Readonly ,.n ) Returns return_data_type With Encryption As Begin function_body Return scalar_expression End,1.利用對象資源管理器刪除函數(shù) 1)在【對象資源管理器】中,找到需要刪除的函數(shù)節(jié)點,在其上單擊鼠標右鍵,彈出快捷菜單。 2)在快捷菜單中,單擊【刪除】菜單,彈出確認刪除窗口,選擇【確定】即可刪除。,刪除自定義函數(shù),2.使用Drop Function語句刪除函數(shù)

37、使用Drop Function語句可以從當前數(shù)據(jù)庫中刪除一個或多個用戶自定義函數(shù),具體的語法形式如下。 Drop Function function_name ,n 例如: Drop Function student_cj,1. 批處理 在SQL Server 2008中,可以一次執(zhí)行多個T-SQL語句,這樣多個T-SQL語句稱為“批”。SQL Server 2008會將一批T-SQL語句當成一個執(zhí)行單元,將其編譯后一次執(zhí)行,而不是將一個個T-SQL語句編譯后再一個個執(zhí)行。 SQL Server中使用GO語句作為批處理的結(jié)束標記,即SQL Server把兩個GO語句之間的一條或多條語句當作一個

38、批處理。當編譯器讀取到GO語句時,它會把GO語句前的所有語句當作一個批處理,并將這些語句打包發(fā)送給服務器。,批處理和流程控制語句,例 GO語句本身不是T-SQL語句的組成部分,它只是一個用于表示批處理結(jié)束的指令。如果在一個批處理中包含語法錯誤,如引用了一個不存在的對象等,則整個批處理就不能被成功地編譯和執(zhí)行。,SELECT * FROM stu_info.dbo.course WHERE cname=數(shù)據(jù)結(jié)構(gòu) UPDATE stu_info.dbo.course SET cp_id=1 WHERE cname=日語 GO SELECT * FROM stu_info.dbo.course GO

39、,流程控制語句是指那些用來控制程序執(zhí)行和流程分支的命令,在SQL Server 中,流程控制語句主要用來控制SQL語句、語句塊或者存儲過程的執(zhí)行流程。,流程控制語句,BEGINEND語句能夠?qū)⒍鄠€Transact-SQL語句組合成一個語句塊,并將它們視為一個單元處理。在條件語句和循環(huán)等控制流程語句中,當符合特定條件便要執(zhí)行兩個或者多個語句時,就需要使用BEGINEND語句。 其語法形式為: BEGIN END,1. BEGINEND語句,BEGIN PRINT 年齡大于20歲的學生 PRINT 齡為: PRINT age END,IFELSE語法格式: IF ELSE ,例1:判斷數(shù)值大小,打

40、印運算結(jié)果。 Declare a int, b int ,c int Select a =4, b =5 ,c =6 If a b print ab Else if bc print bc else print cb 輸出結(jié)果為:cb,2. IFELSE語句,Case函數(shù)是特殊的Transact-SQL表達式,它允許按列顯示可選值,用于計算多個條件并為每個條件返回單個值,通常用于將含有多重嵌套的IfElse語句替換為可讀性更強的代碼。Case表達式有兩種形式:簡單Case表達式和搜索Case表達式。 例: SELECT Sno,Cno,Grade=case when Grade=60 and Grade=80 then 優(yōu)秀 end FROM S

溫馨提示

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

最新文檔

評論

0/150

提交評論