第T SQL語言基礎(chǔ)學(xué)習(xí)教案_第1頁
第T SQL語言基礎(chǔ)學(xué)習(xí)教案_第2頁
第T SQL語言基礎(chǔ)學(xué)習(xí)教案_第3頁
第T SQL語言基礎(chǔ)學(xué)習(xí)教案_第4頁
第T SQL語言基礎(chǔ)學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、會(huì)計(jì)學(xué)1第第T SQL語言語言(yyn)基礎(chǔ)基礎(chǔ)第一頁,共63頁。第1頁/共63頁第二頁,共63頁。語法約定語法約定說說 明明大寫大寫 Transact-SQL 關(guān)鍵字。關(guān)鍵字。 斜體斜體用戶提供的用戶提供的 Transact-SQL 語法的參數(shù)。語法的參數(shù)。粗體粗體 數(shù)據(jù)庫名、表名、列名、索引名、存儲(chǔ)過數(shù)據(jù)庫名、表名、列名、索引名、存儲(chǔ)過程、實(shí)用工具程、實(shí)用工具、數(shù)據(jù)類、數(shù)據(jù)類型名以及必須按所顯示的原樣鍵入的文本。型名以及必須按所顯示的原樣鍵入的文本。下劃線下劃線當(dāng)語句中省略了包含帶下劃線的值的子句時(shí)應(yīng)用的默認(rèn)值。當(dāng)語句中省略了包含帶下劃線的值的子句時(shí)應(yīng)用的默認(rèn)值。|(豎線)(豎線)分隔括號(hào)

2、或大括號(hào)中的語法項(xiàng)。只能選擇其分隔括號(hào)或大括號(hào)中的語法項(xiàng)。只能選擇其中中一項(xiàng)。一項(xiàng)。 (方括號(hào))(方括號(hào)) 可選語法項(xiàng)。不要鍵入可選語法項(xiàng)。不要鍵入方方括號(hào)。括號(hào)。 (大括號(hào))(大括號(hào)) 必選語法項(xiàng)。不要鍵入大括號(hào)。必選語法項(xiàng)。不要鍵入大括號(hào)。,.n指示前面的項(xiàng)可以重復(fù)指示前面的項(xiàng)可以重復(fù) n 次。每一項(xiàng)由逗號(hào)分隔。次。每一項(xiàng)由逗號(hào)分隔。.n指示前面的項(xiàng)可以重復(fù)指示前面的項(xiàng)可以重復(fù) n 次。每一項(xiàng)由空格分隔。次。每一項(xiàng)由空格分隔。;可選可選的的 Transact-SQL 語句終止符。不要鍵入方括號(hào)。語句終止符。不要鍵入方括號(hào)。 :=語法塊的名稱。此約定用于對(duì)可在語句中的多個(gè)位置使用的過長語法塊

3、的名稱。此約定用于對(duì)可在語句中的多個(gè)位置使用的過長語法段或語法單元進(jìn)行分組和標(biāo)記。語法段或語法單元進(jìn)行分組和標(biāo)記。 第2頁/共63頁第三頁,共63頁。第3頁/共63頁第四頁,共63頁。對(duì)象引用格式對(duì)象引用格式說說 明明server.database.schema.object 四個(gè)部分的名稱。四個(gè)部分的名稱。server.database.object 省略架構(gòu)名稱。省略架構(gòu)名稱。server.schema.object 省略數(shù)據(jù)庫名稱。省略數(shù)據(jù)庫名稱。server.object 省略數(shù)據(jù)庫和架構(gòu)名稱。省略數(shù)據(jù)庫和架構(gòu)名稱。database.schema.object 省略服務(wù)器名。省略服務(wù)器

4、名。database.object省略服務(wù)器和架構(gòu)名稱省略服務(wù)器和架構(gòu)名稱。schema.object省略服務(wù)器和數(shù)據(jù)省略服務(wù)器和數(shù)據(jù)庫庫名稱。名稱。object省略服務(wù)器、數(shù)據(jù)庫和架構(gòu)名稱。省略服務(wù)器、數(shù)據(jù)庫和架構(gòu)名稱。第4頁/共63頁第五頁,共63頁。利用CREATE TABLE語句(yj)在數(shù)據(jù)庫teaching建立課程信息表course的程序代碼如下:CREATE TABLE teaching.dbo.course(courseno nchar(6) NOT NULL,cname nchar(20) NULL,type nchar(8) NULL,period tinyint NULL

5、,credit numeric(4, 1) NULL, CONSTRAINT PK_course PRIMARY KEY CLUSTERED (Courseno ASC ) ON PRIMARY第5頁/共63頁第六頁,共63頁。(4)控制流語句)控制流語句:用于控制用于控制SQL語語句、語句塊或者存儲(chǔ)過程的執(zhí)行句、語句塊或者存儲(chǔ)過程的執(zhí)行流程。流程。第6頁/共63頁第七頁,共63頁。第7頁/共63頁第八頁,共63頁。)_后續(xù)字符可以是字母、數(shù)字和下劃線。標(biāo)識(shí)符不能是Transact-SQL的保留字。標(biāo)識(shí)符中不允許嵌入空格或特殊字符。例如,下面給出的示例都是合法(hf)的常規(guī)標(biāo)識(shí)符。-聲明了一個(gè)

6、名為Ex_Local的局部變量。DECLARE Ex_Local NCHAR(10)-聲明了一個(gè)名為Ex_Table的表變量。DECLARE Ex_Table TABLE(col1,CHAR)-定義了一個(gè)名為sp_User1的存儲(chǔ)過程標(biāo)識(shí)符。CREATE PROCEDURE sp_User1 ASBEGIN END第8頁/共63頁第九頁,共63頁。例如,可以創(chuàng)建名為 Employee 的表,其中右方括號(hào)是名稱的一部分。若要執(zhí)行(zhxng)此操作,必須再使用兩個(gè)方括號(hào)以避免因使用右方括號(hào)而出現(xiàn)問題,如下所示: CREATE TABLE Employee (EmployeeID int NOT

7、NULL,FirstName varchar(30),LastName varchar(30)-第9頁/共63頁第十頁,共63頁。第10頁/共63頁第十一頁,共63頁。以下(yxi)是字符串的示例: CA123OBrienProcess X is 50%.The level for job_id: %d should be between %d and %d.OBrien對(duì)于Unicode 字符串,其前面必須有一個(gè)大寫字母N 前綴。例如,ABCD 是字符串常量而 NABDC 則是 Unicode 常量。第11頁/共63頁第十二頁,共63頁。數(shù)值型常量(包括integer 、decimal、 f

8、loat 、money等類型)若要指示一個(gè)數(shù)是正數(shù)還是負(fù)數(shù),可以對(duì)數(shù)值常量應(yīng)用 + 或 - 一元運(yùn)算符,成為一個(gè)表示有符號(hào)數(shù)字值的表達(dá)式。如果沒有(mi yu)應(yīng)用+或-一元運(yùn)算符,則數(shù)值常量為正數(shù)。例如,各數(shù)值類型的正負(fù)數(shù)示例如下: +3356 918 -2277 +3.1426 7.3789 -2.71828 +123E-3 -12E5-$45.56 +$423456.99 $423455第12頁/共63頁第十三頁,共63頁。第13頁/共63頁第十四頁,共63頁。例4.1聲明一個(gè)myvar 變量,然后將一個(gè)字符串值放在變量中,再輸出(shch)myvar 變量的值。程序代碼如下:DECLA

9、RE myvar nchar(20)set myvar = This is a testSELECT myvar GO第14頁/共63頁第十五頁,共63頁。第15頁/共63頁第十六頁,共63頁。例4.2顯示到當(dāng)前日期和時(shí)間(shjin)為止試圖登錄SQL Server 2005的次數(shù)。程序代碼如下:SELECT GETDATE() AS 當(dāng)前的時(shí)期和時(shí)間(shjin), CONNECTIONS AS 試圖登錄的次數(shù)第16頁/共63頁第十七頁,共63頁。例4.3 為前面(qin mian)的例子添加注釋。程序代碼如下:DECLARE myvar nchar(20) -定義變量myvar/* 下面

10、第一行給變量賦值 第2行輸出變量值 */set myvar = This is a testSELECT myvar GO 第17頁/共63頁第十八頁,共63頁。優(yōu)先級(jí)優(yōu)先級(jí)運(yùn)算符運(yùn)算符1()(圓括號(hào))()(圓括號(hào))2+(正)、(正)、-(負(fù))、(負(fù))、(位非)(位非)3*(乘)、(乘)、/(除)、(除)、%(取模)(取模)4+(加)、(加)、(+ 連接)、連接)、-(減)、(減)、 &(位與)(位與)5=, 、=、=、!=、!、! (大于)(大于)大于大于=(大于等于)(大于等于) 大于或等于大于或等于=(小于等于)(小于等于) 小于或等于小于或等于 (不等于)(不等于)不等于不等于

11、!=(不等于)(不等于)不等于(非不等于(非SQL-92標(biāo)準(zhǔn))標(biāo)準(zhǔn))!(不大于)(不大于)不大于(非不大于(非SQL-92標(biāo)準(zhǔn))標(biāo)準(zhǔn))第21頁/共63頁第二十二頁,共63頁。運(yùn)算符運(yùn)算符含含 義義ALL如果一組的比較都為如果一組的比較都為 TRUE,那么就為,那么就為 TRUE。AND如果兩個(gè)布爾表達(dá)式都為如果兩個(gè)布爾表達(dá)式都為 TRUE,那么就為,那么就為 TRUE。ANY如果一組的比較中任何一個(gè)為如果一組的比較中任何一個(gè)為 TRUE,那么就為,那么就為 TRUE。BETWEEN如果操作數(shù)在某個(gè)范圍之內(nèi),那么就為如果操作數(shù)在某個(gè)范圍之內(nèi),那么就為 TRUE。EXISTS如果子查詢包含一些行,

12、那么就為如果子查詢包含一些行,那么就為 TRUE。IN如果操作數(shù)等于表達(dá)式列表中的一個(gè),那么就為如果操作數(shù)等于表達(dá)式列表中的一個(gè),那么就為 TRUE。LIKE如果操作數(shù)與一種模式相匹配,那么就為如果操作數(shù)與一種模式相匹配,那么就為 TRUE。NOT對(duì)任何其他布爾運(yùn)算符的值取反。對(duì)任何其他布爾運(yùn)算符的值取反。OR如果兩個(gè)布爾表達(dá)式中的一個(gè)為如果兩個(gè)布爾表達(dá)式中的一個(gè)為 TRUE,那么就為,那么就為 TRUE。SOME如果在一組比較中,有些為如果在一組比較中,有些為 TRUE,那么就為,那么就為 TRUE。第22頁/共63頁第二十三頁,共63頁。第23頁/共63頁第二十四頁,共63頁。第24頁/共

13、63頁第二十五頁,共63頁。第25頁/共63頁第二十六頁,共63頁。運(yùn)算符運(yùn)算符含含 義義+(正)(正) 數(shù)值為正。數(shù)值為正。-(負(fù))(負(fù)) 數(shù)值為負(fù)。數(shù)值為負(fù)。(位非)(位非) 返回?cái)?shù)字的非。返回?cái)?shù)字的非。(非運(yùn)非運(yùn)算就是算就是0取取1,1取取0.)第26頁/共63頁第二十七頁,共63頁。第27頁/共63頁第二十八頁,共63頁。第28頁/共63頁第二十九頁,共63頁。例4.12 用BEGIN END 語句可使IF 語句在計(jì)算結(jié)果為FALSE時(shí)跳過語句塊。程序代碼如下(rxi):DECLARE MyVar floatSet MyVar=5.7If MyVar10.8 BEGIN SET MyV

14、ar = 123.456 PRINT 變量MyVar的值為: PRINT CAST(MyVar AS varchar(12 ) ENDELSE PRINT CAST(MyVar AS varchar(12 )第29頁/共63頁第三十頁,共63頁。第30頁/共63頁第三十一頁,共63頁。第31頁/共63頁第三十二頁,共63頁。第32頁/共63頁第三十三頁,共63頁。例4.11在Transact-SQL中使用(shyng)IF語句。程序代碼如下:DECLARE point AS intSet point =87IF point =60PRINT pass ,very good !ELSEPRINT

15、 no pass , try again!第33頁/共63頁第三十四頁,共63頁。WHILE 邏輯表達(dá)式邏輯表達(dá)式 BEGIN語句塊語句塊1 CONTINUE BREAK 語句塊語句塊2 END 第34頁/共63頁第三十五頁,共63頁。例4.13 循環(huán)控制語句WHILE的使用方法(fngf)。程序代碼如下:declare r int ,s int ,t intselect r=2,s=3 print rwhile r 5 begin select t=100*r+s print t select r=r+2 Select s=1end第35頁/共63頁第三十六頁,共63頁。第36頁/共63頁第

16、三十七頁,共63頁。例4.16 利用(lyng)GOTO語句求出從1加到7的總和。程序代碼如下:declare sum int,count int select sum=0,count=0label_1:select count=count+1select sum=sum+countif count=6goto label_1select count as 數(shù)值,sum as 17累加和將執(zhí)行流變更(bingng)到標(biāo)簽處。跳過 GOTO 之后的 Transact-SQL 語句,在標(biāo)簽處繼續(xù)處理。第37頁/共63頁第三十八頁,共63頁。 ELSE else_result_expression

17、END例4.14 CASE語句舉例。程序代碼如下。USE teachingGOSELECT tname AS 姓名 , department AS 院系, CASE prof WHEN 教授 THEN高級(jí) WHEN 副教授 THEN 高級(jí) WHEN 講師 THEN 中級(jí) WHEN 助教 THEN 初級(jí) END AS 職稱(zhchng)類別FROM teacherwhere department=計(jì)算機(jī)學(xué)院GO程序執(zhí)行結(jié)果如下:姓名 院系 職稱類別- - -韓晉升 計(jì)算機(jī)學(xué)院 高級(jí)劉元朝 計(jì)算機(jī)學(xué)院 高級(jí)海封 計(jì)算機(jī)學(xué)院 高級(jí)盧明欣 計(jì)算機(jī)學(xué)院 中級(jí)(4 行受影響)第38頁/共63頁第三十九頁

18、,共63頁。如下。如下。WAITFOR DELAY time | TIME time 第39頁/共63頁第四十頁,共63頁。第40頁/共63頁第四十一頁,共63頁。RETURN語句用于無條件地終止語句用于無條件地終止(zhngzh)一個(gè)查詢、存儲(chǔ)過程或者批處理,一個(gè)查詢、存儲(chǔ)過程或者批處理,此時(shí)位于此時(shí)位于RETURN語句之后的程序?qū)⒉粫?huì)被執(zhí)行。語句之后的程序?qū)⒉粫?huì)被執(zhí)行。第41頁/共63頁第四十二頁,共63頁。第42頁/共63頁第四十三頁,共63頁。程序代碼如下:USE teachingGOBEGIN TRY declare er int set er=0 -1.產(chǎn)生(chnshng)除數(shù)為

19、0的錯(cuò)誤 SELECT 3/er;END TRYBEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_PROCEDURE() AS ErrorProcedure, ERROR_STATE() AS ErrorState, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage;END CATCH;GO第43頁/共63頁第四十四頁,共63頁。第44頁/共63頁第四十五頁,共63頁。例4.17使用WAITFOR

20、 TIME語句,以便在晚上(wn shang)10:20:17執(zhí)行存儲(chǔ)過程 sp_help。程序代碼如下:BEGIN WAITFOR TIME 22:20:17 EXECUTE sp_helpEND 第45頁/共63頁第四十六頁,共63頁。第46頁/共63頁第四十七頁,共63頁。函 數(shù)功能描述ABS返回表達(dá)式的絕對(duì)值CEILING返回大于或等于指定數(shù)值表達(dá)式的最小整數(shù)EXP返回給定表達(dá)式為指數(shù)的e值FLOOR返回小于或等于指定數(shù)值表達(dá)式的最大整數(shù)LOG返回給定表達(dá)式的自然對(duì)數(shù)LOG10返回給定表達(dá)式的以10 為底的對(duì)數(shù)PI常量,圓周率POWER返回給定表達(dá)式的指定次方的值RADIANS角度值轉(zhuǎn)

21、換為弧度值RAND返回01之間的隨機(jī)float數(shù)ROUND返回指定小數(shù)的位數(shù)的表達(dá)式的值SQUARE返回給定表達(dá)式的平方SQRT返回給定表達(dá)式的平方根例4.7 輸出(shch)下列函數(shù)的值CEILING(),F(xiàn)LOOR(),ROUND()。程序代碼如下:select ceiling(13.6), floor(13.7), round(13.45767,3) 第47頁/共63頁第四十八頁,共63頁。 函數(shù)名函數(shù)名功功 能能AVG 返回一組值的平均值。返回一組值的平均值。COUNT返回一組值中項(xiàng)目的數(shù)量。(返回值為返回一組值中項(xiàng)目的數(shù)量。(返回值為int類型)。類型)。COUNT_BIG返回一組值

22、中項(xiàng)目的數(shù)量。返回值為返回一組值中項(xiàng)目的數(shù)量。返回值為bigint類型)。類型)。MAX返回表達(dá)式或者項(xiàng)目中的最大值。返回表達(dá)式或者項(xiàng)目中的最大值。MIN返回表達(dá)式或者項(xiàng)目中的最小值。返回表達(dá)式或者項(xiàng)目中的最小值。SUM返回表達(dá)式中所有項(xiàng)的和,或者只返回返回表達(dá)式中所有項(xiàng)的和,或者只返回DISTINCT值。值。SUM只能用于數(shù)字列。只能用于數(shù)字列。STDEV返回表達(dá)式中所有值的統(tǒng)計(jì)標(biāo)準(zhǔn)偏差。返回表達(dá)式中所有值的統(tǒng)計(jì)標(biāo)準(zhǔn)偏差。STDEVP返回表達(dá)式中所有值的統(tǒng)計(jì)標(biāo)準(zhǔn)偏差。返回表達(dá)式中所有值的統(tǒng)計(jì)標(biāo)準(zhǔn)偏差。VAR返回表達(dá)式中所有值的統(tǒng)計(jì)標(biāo)準(zhǔn)方差。返回表達(dá)式中所有值的統(tǒng)計(jì)標(biāo)準(zhǔn)方差。第48頁/共63頁

23、第四十九頁,共63頁。函數(shù)函數(shù)功能功能ASCII(字符表達(dá)式字符表達(dá)式)返字最左側(cè)的字符的返字最左側(cè)的字符的 ASCII 碼值碼值CHAR(整型表達(dá)式)(整型表達(dá)式)將將 int ASCII 代碼轉(zhuǎn)換為字符代碼轉(zhuǎn)換為字符LEFT(字符表達(dá)式字符表達(dá)式,整數(shù)整數(shù))返回從左邊開始指定個(gè)數(shù)的字符串返回從左邊開始指定個(gè)數(shù)的字符串RIGHT(字符表達(dá)式字符表達(dá)式,整數(shù)整數(shù))截取從右邊開始指定個(gè)數(shù)字符串截取從右邊開始指定個(gè)數(shù)字符串SUBSTRING(字符表達(dá)式字符表達(dá)式,起始點(diǎn)起始點(diǎn),n)截取從起始點(diǎn)開始截取從起始點(diǎn)開始n個(gè)個(gè)CHARINDEX(字符表達(dá)式字符表達(dá)式1,字符表達(dá)字符表達(dá)式式2,開始位置開始

24、位置)求子串位置求子串位置LTRIM(字符表達(dá)式字符表達(dá)式)剪去左空格剪去左空格RTRIM(字符表達(dá)式字符表達(dá)式)剪去右空格剪去右空格REPLICATE(字符表達(dá)式字符表達(dá)式,n)重復(fù)字串重復(fù)字串REVERSE(字符表達(dá)式字符表達(dá)式)倒置字串倒置字串STR(數(shù)字表達(dá)式數(shù)字表達(dá)式)數(shù)值轉(zhuǎn)字串?dāng)?shù)值轉(zhuǎn)字串第49頁/共63頁第五十頁,共63頁。第50頁/共63頁第五十一頁,共63頁。函數(shù)函數(shù)功功 能能DATEADD(datepart, 數(shù)值數(shù)值,日日期期)返回增加一個(gè)時(shí)間間隔后的日期結(jié)果返回增加一個(gè)時(shí)間間隔后的日期結(jié)果DATEDIFF(datepart,日期日期1,日日期期2)返回兩個(gè)日期之間的時(shí)間間隔,格式為返回兩個(gè)日期之間的時(shí)間間隔,格式為datepart參數(shù)指定的格式參數(shù)指定的格式DATENAME(datepart,日期日期)返回日期的文本表示,格式為返回日期的文本表示,格式為datepart指定指定格式格式DATEPART(datepart,日期日期)返回某日期的返回某日期的datepart代表的整數(shù)值代表的整數(shù)值GETDATE()()返回當(dāng)前系統(tǒng)日期和時(shí)間返回當(dāng)前系統(tǒng)日期和時(shí)間DAY(日期)(日期)返回某日期的日返回某日期的日datepart所代表的整數(shù)值所代表的整數(shù)值MONTH(日期)(日期)返回某日期的月返回某日期的月datepart所代表的整數(shù)值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論