第13講T-SQL編程.ppt_第1頁
第13講T-SQL編程.ppt_第2頁
第13講T-SQL編程.ppt_第3頁
第13講T-SQL編程.ppt_第4頁
第13講T-SQL編程.ppt_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1,SQL SERVER,主講人:孟憲穎,SQL SERVER,2,第13講 T-SQL編程,13.1 Transact-SQL簡介 13.2 T-SQL中的批處理 13.3 T-SQL中的注釋 13.4 T-SQL數據類型及轉換 13.5 T-SQL運算符 13.6 T-SQL中的常量和變量 13.7 T-SQL的流程控制 13.8 T-SQL中常用函數,3,13.1 Transact-SQL簡介,結構化查詢語言(SQL)是由美國國家標準協會(American National Standards Institute,ANSI)和國際標準化組織(International Standards

2、 Organization,ISO)定義的標準,而T-SQL是Microsoft公司對此標準的一個實現。 T-SQL是在SQL上發(fā)展而來的, T-SQL在SQL的基礎上添加了流程控制,是SQL語言的擴展。因此,SQL是幾乎所有的關系型數據庫都支持的語言,而T-SQL是Microsoft SQL server支持的語言。,4,13.1 Transact-SQL簡介,在Microsoft SQL server 2005系統(tǒng)中,T-SQL可以創(chuàng)建、維護、保護數據庫對象,并且可以操作對象中的數據,所以Transact-SQL語言是一種完整的語言。根據T-SQL語言的執(zhí)行功能特點,可以將T-SQL語言分

3、為三種類型: 數據定義語言 數據操縱語言 數據控制語言,5,13.1 Transact-SQL簡介,數據定義語言(Data Definition Language,DDL)是T-SQL中最基本的語言類型,它用于創(chuàng)建數據庫和各種數據庫對象。創(chuàng)建了數據庫對象后,才可能為其他語言的操作提供所要使用的對象。 數據操縱語言( Data Manipulation Language,DML)是用來操縱數據庫中的數據的語句。當使用數據定義語言創(chuàng)建了數據庫及表后,使用數據操縱語言可以實現在表中查詢、插入、更新、刪除數據等操作。 數據控制語言( Data Control Language,DCL)是用來確保數據庫

4、安全的一系列語句,6,13.2 T-SQL中的批處理,在SQL Server2005中,可以一次執(zhí)行多個T-SQL語句,這些多個T-SQL語句稱為“批”。 SQL Server2005會將一批T-SQL語句當成一個執(zhí)行單元,將其編譯后一次執(zhí)行,而不是將一個個T-SQL語句編譯后再一個個執(zhí)行。 在SQL Server2005中同樣允許一次使用多個批,不同的批之間用“GO”來分隔。查詢編輯器會自動根據GO指令來將T-SQL語句分為多個批來編譯執(zhí)行。,7,13.2 T-SQL中的批處理,注意: 1、go并不是T-SQL語句,只有查詢編輯器才能識別 并處理,編寫其他應用程序就不能使用go指令。 2、由

5、于批與批之間是獨立的,所以,當其中一個批出現錯誤時,不會影響其他批的運行。,8,13.3 T-SQL中的注釋,在T-SQL程序里加入注釋語句,可以增加程序的可讀性。SQL Server不會對注釋的內容進行編輯和執(zhí)行,在T-SQL中支持兩種注釋方式。 1、-注釋 -注釋的有效范圍只能到該行結束的地方,也就是說,從開始,到本行結束為止,都可以是注釋的內容,如果有多行注釋內容的話,每一行的最前面都必須加上-。 2、/*/注釋 當要進行比較長的注釋時,可以使用/*/注釋, /*/可以對多行語句進行注釋,其有效范圍是從“/*”開始,到“*/”結束,中間可以跨越多行。,9,13.4 T-SQL數據類型及轉

6、換,在SQL Server中,無論是數據表的字段、常量、變量、表達式還是參數,都具有一個相對應的數據類型。數據類型是一種屬性,用于指定對象可保存的數據的類型。 1、使用CAST轉換數據類型 當要對不同類型的數據進行運算時,就必須將其轉換成相同的數據類型才能進行運算。在SQL Server里提供了兩個函數可以進行數據類型的轉換,其中一個就是CAST。,10,13.4 T-SQL數據類型及轉換,語法格式如下: CAST(expression AS data_type(length)) 其中expression為任何有效的表達式, data_type為要轉換的數據類型, length為數據類型的長度

7、,一般只有在nchar、nvarchar、char、varchar、binary和varbinary這幾種數據類型才需要使用,是可選參數。,11,13.4 T-SQL數據類型及轉換,例:查看northwind數據庫product表中產品及單價,并在一列中顯示出來 select productname+的單價為:+CAST(unitprice as varchar(10)+元 as 產品介紹 from products 例:查看northwind數據庫orders表中訂單號和訂單時間,并在一列中顯示出來 select CAST(orderid as varchar(10)+的時間為:+CAST(

8、orderdate as varchar(20) as 訂單時間 from orders,12,13.4 T-SQL數據類型及轉換,2、使用CONVERT轉換數據類型 CONVERT函數與CAST函數類似,作用也是轉換數據類型,其語法格式如下: CONVERT ( data_type(length) ,expression,style) 其中data_type為要轉換的數據類型, length為數據類型的長度, expression為任何有效的表達式, style是樣式,一般用于將datetime或smalldatetime數據轉換為字符數據(nchar、nvarchar、char、varch

9、ar數據類型)的日期格式的樣式;或者用于將float、real、money或smallmoney數據轉換為字符數據的字符串格式。如果style為NULL,則返回的結果也為NULL。,13,13.4 T-SQL數據類型及轉換,例:查看northwind數據庫orders表中訂單號、 訂購日期、 到貨日期、 發(fā)貨日期。 select orderid as 訂單號, convert(varchar(20),orderdate,1)as 訂購日期, convert(varchar(20),requireddate,102)as 到貨日期, convert(varchar(20),shippeddate

10、,103)as 發(fā)貨日期 from orders 例:查看northwind數據庫products表中單價,14,13.4 T-SQL數據類型及轉換,隱式數據類型轉換 在進行不同類型的數據運算時,不一定都必須要使用CAST或CONVERT來進行數據類型轉換,在SQL Server里,系統(tǒng)會自動將一些數據類型進行轉換,這種轉換稱為“隱式轉換”。而用CAST或CONVERT轉換數據類型稱為“顯式轉換”。,15,13.4 T-SQL數據類型及轉換,例:查看northwind數據庫product表中產品庫存量所值的資金 select productname,unitprice*unitsinstock

11、 as jiyazijin from products 例:查看northwind數據庫orders表中每個訂單的總金額 select orderid,sum(unitprice*quantity) as jine from order details group by orderid,16,13.5 T-SQL運算符,算術運算符 邏輯運算符 賦值運算符 字符串連接運算符 位運算符 一元運算符 比較運算符,17,13.6 T-SQL中的常量和變量,1、常量 常量,也稱為文字值或標量值,是一個代表特定值的符號,是一個不變的值。常量的格式取決于它所表示的值的數據類型。 字符串常量 a,Im bac

12、k, Unicode常量 N a,N 二進制常量 0 x12A,0 x Bit常量 1,0 Datetime常量 August 3,2006,2006-8-3,06/08/06 Integer常量,decimal常量,float和real常量,money常量,18,13.6 T-SQL中的常量和變量,2、變量 T-SQL中的變量可以分為全局變量和局部變量兩種,全局變量是以開頭命名的變量,局部變量是以開頭命名的變量。 全局變量是SQL SERVER 系統(tǒng)提供并賦值的變量。用戶不能建立及修改全局變量。全局變量是一組特殊的函數,它們的名稱是以開始,且不需要任何參數。SQL SERVER提供33個全局

13、變量。,19,13.6 T-SQL中的常量和變量,ERROR返回最后執(zhí)行的一條T-SQL語句的錯誤代碼 Identity返回最后插入的標識值 ROWCOUNT返回受到上一語句影響的行數 VERSION返回當前的SQL Server安裝的版本信息 例:查看版本信息 print version 例:查看select后的記錄集里的記錄數 select * from employees print 一共查詢了+CAST(rowcount as varchar(5)+條記錄,20,13.6 T-SQL中的常量和變量,局部變量:指在批處理或腳本中用來保存數據值的對象,局部變量名總是以符號開始,必須符合標識

14、符命名規(guī)則。在使用一個局部變量前,必須使用DECLARE語句來聲明這個局部變量,指定其變量名和數據類型, 其語法格式為:局部變量聲明 DECLARE 局部變量名 數據類型,n,21,13.6 T-SQL中的常量和變量,局部變量賦值 SET 局部變量名=表達式 也可以使用select語句 select 局部變量名=表達式,n 局部變量的作用域 局部變量的作用域從聲明它們的地方開始到聲明它們的批處理或存儲過程的結尾。,22,13.6 T-SQL中的常量和變量,注意: 聲明的變量名,其第一個字符必須是 必須指定變量的數據類型及長度 默認情況下,系統(tǒng)將聲明后的變量設置為NULL,23,13.7 T-S

15、QL的流程控制,1)BEGINEND語句塊 用于將多個T-SQL語句組合在一個語句塊中,其語法格式為: BEGIN 語句1 語句n END 相當于一個;,24,13.7 T-SQL的流程控制,例:查看northwind數據庫product表中產品名為Chang的單價是否低于20元,如果低于20元的話,查看其訂購量,25,13.7 T-SQL的流程控制,declare price money declare productid int declare count int select price=unitprice,productid=productid from products where

16、productname=Chang if price20 begin print Chang的單價低于元 select count=sum(order details.quantity) from orders join order details on orders.orderid=order details.orderid where order ductid=productid print 其訂購數量為:+CAST(count as varchar(5) end,26,13.7 T-SQL的流程控制,declare price money declare produ

17、ctid int select price=unitprice,productid=productid from products where productname=Chang if price20 select sum(order details.quantity) from orders join order details on orders.orderid=order details.orderid where order ductid=productid,27,13.7 T-SQL的流程控制,2) IFELSE語句 語法格式為: IF條件表達式 語句 ELSE

18、 語句,28,13.7 T-SQL的流程控制,例:查看northwind數據庫product表中產品名為Chang的單價是否低于8元,如果低于8元的話,查看其訂購量,否則查看其庫存量,29,13.7 T-SQL的流程控制,declare price money declare productid int declare count int select price=unitprice,productid=productid from products where productname=Chang if price8 begin print Chang的單價低于元 select count=s

19、um(order details.quantity) from orders join order details on orders.orderid=order details.orderid where order ductid=productid print 其訂購數量為:+CAST(count as varchar(5) end else begin print Chang的單價高于元 select count=sum(unitsinstock) from products where productid=productid print 其庫存量為:+CAST(count as varchar(5) end,30,13.7 T-SQL的流程控制,3) WHILE語句 語法格式為: WHILE 條件表達式 BEGIN 語句序列1 BREAK 語句序列2 CONTINUE 語句序列3 END,31,13.7 T-SQL的流程控制,例:輸出 northwind數據庫product表中產品編號為10以內的產品名 declare id int declare productname varchar(40) set id=1 while id10 begin select productname=

溫馨提示

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

評論

0/150

提交評論