版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第6章 T-SQL語言概述主講教師:衛(wèi)琳6.1 T-SQL語言概述6.1.1 T-SQL語言的發(fā)展過程和特點(diǎn)6.1.2 T-SQL語言的分類數(shù)據(jù)定義語言(DDL)數(shù)據(jù)操縱語言(DML)數(shù)據(jù)控制語言(DCL)語句功能create創(chuàng)建數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象alter修改數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象drop刪除數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象語句功能select從表或視圖中檢索數(shù)據(jù)insert將數(shù)據(jù)插入到表或視圖中update修改表或視圖中的數(shù)據(jù)delete從表或視圖中刪除數(shù)據(jù)語句功能grant授予權(quán)限r(nóng)evoke收回權(quán)限drop禁止從其他角色中繼承許可權(quán)限D(zhuǎn)DLDMLDCL6.1.3 T-SQL法約定1.注釋“”:?jiǎn)涡凶⑨專?/p>
2、從雙連字符到行尾的內(nèi)容)/*/:多行注釋(對(duì)/*/ 之間所有內(nèi)容)2.系統(tǒng)保留字不要使用保留關(guān)鍵字作為對(duì)象名稱或標(biāo)識(shí)符/*創(chuàng)建名為example的數(shù)據(jù)庫(kù),并存放在“e:sql”目錄中*/CREATE DATABASE exampleON(name=example,-設(shè)置數(shù)據(jù)庫(kù)文件名稱 filename=e:sqlexample.mdf, -設(shè)置文件存放位置 size=10,-指定文件大小 maxsize=50)-指定文件的最大容量LOG ON-指定日志文件(name=examplog,-指定日志文件名稱 filename=e:sqlexample.ldf, -指定日志文件存放位置 size=5
3、mb, maxsize=25mb, filegrowth=5mb)go6.2 附加的語言元素6.1.2 標(biāo)識(shí)符1. 標(biāo)識(shí)符格式(1)標(biāo)識(shí)符的首字符必須是下列字符之一 。統(tǒng)一碼(Unicode)2.0標(biāo)準(zhǔn)中所定義的字母,包括拉丁字母a-z和A-Z,以及來自其他語言的字符。下劃線“_”、符號(hào)“”或者數(shù)字符號(hào)“#”。(2)標(biāo)識(shí)符的后續(xù)字符可以是以下3種。 統(tǒng)一碼(Unicode)2.0標(biāo)準(zhǔn)中所定義的字母。 來自拉丁字母或其他國(guó)家/地區(qū)腳本的十進(jìn)制數(shù)字。 “”符號(hào)、美元符號(hào)“$”、數(shù)字符號(hào)“#”或下劃線“_”。(3)標(biāo)識(shí)符不允許是Transact-SQL的保留字。(4)不允許嵌入空格或其他特殊字符。6
4、.1.2 標(biāo)識(shí)符2標(biāo)識(shí)符分類SQL Server將標(biāo)識(shí)符分為以下兩種類型: 常規(guī)標(biāo)識(shí)符:符合標(biāo)識(shí)符的格式規(guī)則。 分隔標(biāo)識(shí)符:包含在雙引號(hào)(“”)或者方括號(hào)( )內(nèi)的標(biāo)識(shí)符。該標(biāo)識(shí)符可以不符合標(biāo)識(shí)符的格式規(guī)則,如MR GZGLXT、MR和GZGLXT之間含有空格,但因?yàn)槭褂昧朔嚼ㄌ?hào),所以視為分隔標(biāo)識(shí)符。注意:常規(guī)標(biāo)識(shí)符和分隔標(biāo)識(shí)符包含的字符數(shù)必須在1128之間,對(duì)于本地臨時(shí)表,標(biāo)識(shí)符最多可以有116個(gè)字符。 6.2.2 常量(1)字符型常量ASCII字符串常量:用單引號(hào)括起來,由ASCII字符組成。 如果在字符常量中已經(jīng)包含了一個(gè)單引號(hào),那么可以使用兩個(gè)單引號(hào)表示這個(gè)帶單引號(hào)的字符。 Unico
5、de字符串常量的格式與ASCII字符串常量相似,但它前面有一個(gè)前綴N,而且N前綴必須是大寫的。 如:NSQL Server、N張三、N計(jì)算機(jī)科學(xué)與技術(shù)。6.2.2 常量(2) 數(shù)值型常量數(shù)值型常量包含整型常量和實(shí)數(shù)型常量。整型常量(Integer)用來表示整數(shù)??杉?xì)分為二進(jìn)制整型常量、十六進(jìn)制整型常量和十進(jìn)制整型常量。二進(jìn)制整型常量以數(shù)字0或1表示;十六進(jìn)制整型常量由前綴0 x后跟十六進(jìn)制數(shù)組成;十進(jìn)制整型常量即不帶小數(shù)點(diǎn)的十進(jìn)制數(shù);實(shí)數(shù)型常量用來表示帶小數(shù)部分的數(shù),有定點(diǎn)數(shù)和浮點(diǎn)數(shù)兩種表示方式,其中浮點(diǎn)數(shù)使用科學(xué)記數(shù)法來表示。如:0.3E-5。(3) 日期時(shí)間型常量(datetime)日期時(shí)
6、間型常量使用特定格式的字符日期值來表示,并且用單引號(hào)括起來。如2009年4月1日可以用以下方式表示:April 1,2009、04/01/2009或20090401。(4) 貨幣型常量(money)貨幣型常量以前綴“$”作為標(biāo)識(shí)。如$123.45。6.2.2 變量(1)變量名稱在SQL Server 2008系統(tǒng)中,變量的命名規(guī)則如下:第一個(gè)字符必須是字母、數(shù)字、下畫線或符號(hào)。需要注意的是,符號(hào)“”開頭的變量表示局部變量、符號(hào)“”開頭的變量表示全局變量。變量名不能是T-SQL語言的系統(tǒng)保留字(如IF、ELSE、CONTINUE等),包括大寫和小寫形式。變量名中不允許出現(xiàn)空格或其他特殊字符。根據(jù)
7、以上規(guī)則,下列變量名都是合法的:a2、abc、student_3和average。變量在使用中需要先聲明再使用,聲明變量用DECLARE語句,其語法格式如下:DECLARE 變量名稱 變量的數(shù)據(jù)類型 ,n說明:為表示局部變量,變量名稱的第一個(gè)字符必須是所有變量在聲明后均設(shè)置初值為NULL6.2.2 變量(2)變量賦值有兩種為變量賦值的方式:使用SET語句直接為變量賦值和使用SELECT語句選擇表中的值來為變量賦值。語法格式如下:格式1:使用SET語句賦值SET 變量名稱=表達(dá)式格式2:使用SELECT語句賦值SELECT 變量名稱=表達(dá)式 ,n說明:表達(dá)式可以是任何有效的SQL表達(dá)式;一個(gè)SE
8、LECT語句可以給多個(gè)變量賦值,而一個(gè)SET語句一次只能給一個(gè)變量賦值。例:用賦值語句分別定義兩個(gè)整型變量x和y。使x的值為20,y的值為5,計(jì)算并顯示x,y,3x +4y,xy,和x /y的值。declare x int,y intset x=20set y=5select x,y,3*x+4*y,x*y,x/y例:創(chuàng)建兩個(gè)局部變量,并賦值,然后輸出變量的值。declare var1 char(4),var2 char(20)set var1=中國(guó)set var2=var1+是一個(gè)偉大的國(guó)家select var1,var2go示例:創(chuàng)建一個(gè)名為sex的局部變量,并在select語句中使用該局
9、部變量查找表student中所有女同學(xué)的信息。use xscj2005declare xb char(2)set xb=女select * from studentwhere ssex=xb例:使用查詢給變量賦值。use XSCJ2005godeclare xm varchar(8)set xm =(select sname from student where sno=2008056103)select xmGouse XSCJ2005godeclare xm varchar(8)select xm =sname from studentselect xmGo說明:如果返回多個(gè)值,將返回的最
10、后一個(gè)值賦給變量例:use XSCJ2005godeclare xm varchar(8)select xm=劉豐select xm=sname from studentwhere sno=123456789select xm as namego說明:如果select語句沒有返回行,變量將保留當(dāng)前值6.3 運(yùn)算符和表達(dá)式SQL Server 2008提供以下幾類運(yùn)算符:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、字符運(yùn)算符和位運(yùn)算符。6.3.1 算術(shù)運(yùn)算符算術(shù)運(yùn)算符對(duì)兩個(gè)表達(dá)式執(zhí)行數(shù)學(xué)運(yùn)算。算術(shù)運(yùn)算符說 明+加法運(yùn)算-減法運(yùn)算*乘法運(yùn)算/除法運(yùn)算,如果兩個(gè)表達(dá)式都是整數(shù),則結(jié)果是整數(shù),小數(shù)部分被截?cái)?
11、(求模)求模(求余)運(yùn)算,返回兩數(shù)相除后的余數(shù)算術(shù)運(yùn)算符例【6-3】:計(jì)算6/5、6.0/5.0、5/6、5.0/6.0與6%5的值。select 6/5,6.0/5.0,0,5.0/6.0,6%5select 14/5,6.0/5.0,0,5.0/6.0,6%5select 6.0/5,6.0/5.0,0,5.0/6.0,6%5通過執(zhí)行語句我們注意到:6/5的結(jié)果為1,而6.0/5.0的結(jié)果為1.200000,兩者運(yùn)算結(jié)果并不相同。原因在于當(dāng)兩個(gè)具有相同數(shù)據(jù)類型的數(shù)進(jìn)行算術(shù)運(yùn)算時(shí),運(yùn)算結(jié)果依然是當(dāng)前的數(shù)據(jù)類型。但是,當(dāng)兩個(gè)不同數(shù)據(jù)類型的數(shù)進(jìn)行算術(shù)運(yùn)算時(shí),數(shù)據(jù)類型優(yōu)先級(jí)規(guī)則指定將優(yōu)先級(jí)較低的數(shù)
12、據(jù)類型轉(zhuǎn)換為優(yōu)先級(jí)較高的數(shù)據(jù)類型。這樣能夠在最大程度上保護(hù)運(yùn)算結(jié)果的正確性和合理性。同樣,5/6與5.0/6.0的運(yùn)算結(jié)果也不相同。6.3.2 關(guān)系運(yùn)算符關(guān)系運(yùn)算符說 明實(shí) 例=相等姓名=”王華”大于成績(jī)85小于年齡=大于等于成績(jī)=60=小于等于工資=2000、!=不等于所屬院系英語系!不小于學(xué)分!不大于成績(jī)!=100說明:兩個(gè)數(shù)值型數(shù)據(jù)比較時(shí),按照值的大小直接比較;兩個(gè)日期時(shí)間型數(shù)據(jù)比較時(shí),按照年、月、日的先后順序比較;兩個(gè)字符型數(shù)據(jù)比較時(shí),英文字母按照ASCII碼值大小比較,漢字按照拼音先后順序比較。use XSCJgodeclare student char(6)set student=
13、001111if(student0)select * from xs where 學(xué)號(hào)=student6.3.3 邏輯運(yùn)算符運(yùn) 算 符運(yùn) 算 規(guī) 則AND與運(yùn)算,兩個(gè)操作數(shù)均為TRUE時(shí),結(jié)果才為TRUEOR或運(yùn)算,若兩個(gè)操作數(shù)中任何一個(gè)為TRUE,則結(jié)果為TRUENOT非運(yùn)算,單目運(yùn)算,結(jié)果值取反ALL每個(gè)操作數(shù)值都為TRUE時(shí),結(jié)果為TRUEANY多個(gè)操作數(shù)中只要有一個(gè)為TRUE,結(jié)果為TRUEBETWEEN若操作數(shù)在指定的范圍內(nèi),則運(yùn)算結(jié)果為TRUEEXISTS若子查詢包含一些行,則運(yùn)算結(jié)果為TRUEIN若操作數(shù)值等于表達(dá)式列表中的一個(gè),則結(jié)果為TRUELIKE若操作數(shù)與某種模式相匹配,
14、則結(jié)果為TRUESOME若在一系列操作數(shù)中,有些值為TRUE,則結(jié)果為TRUE例:查詢成績(jī)高于李明最高成績(jī)的學(xué)生姓名、課程名和成績(jī)select sname,cname,gradefrom student join sc join courseon o=oon student.sno=sc.snoand gradeall(select grade from student join sc join course on o=o on student.sno=sc.sno and sname=李明 ) 1)any,all例:查詢成績(jī)高于李明最低成績(jī)的學(xué)生姓名、課程名和成績(jī)select sname,c
15、name,gradefrom student join sc join courseon o=oon student.sno=sc.snoand gradeany(select grade from student join sc join course on o=o on student.sno=sc.sno and sname=李明 ) 2).Between例:查詢91及92年出生的學(xué)生信息select * from studentwhere sbirth between 1991-1-1 and 1992-12-31例:查詢不是91、92年出生的學(xué)生信息select * from stu
16、dentwhere sbirth not between 1991-1-1 and 1992-12-31查詢姓王或姓劉的學(xué)生信息select * from studentwhere sname like 王劉%查詢不姓王也不姓劉的學(xué)生信息select * from studentwhere sname like 王劉%通配符說明%代表0個(gè)或多個(gè)字符_代表單個(gè)字符 指定范圍(如:a-f、0-9或集合abcdef中的任何單個(gè)字符指定不屬于范圍(如:a-f、0-9或集合abcdef中的任何單個(gè)字符3).Like查詢所有選課的學(xué)生信息select * from studentwhere exists(
17、select * from sc where sno=student.sno)查詢沒有選課的學(xué)生信息select * from studentwhere not exists(select * from sc where sno=student.sno)4. exists6.3.4 字符運(yùn)算符 字符運(yùn)算符只有一個(gè)“+”,又稱為字符串串聯(lián)運(yùn)算符。字符串之間通過“+”實(shí)現(xiàn)字符串的連接。select 8899+7788select 8899+7788select 8899+7788說明:當(dāng)數(shù)據(jù)類型不相同時(shí),轉(zhuǎn)換成優(yōu)先級(jí)別高的。6.3.5 位運(yùn)算符 位運(yùn)算符在兩個(gè)表達(dá)式之間實(shí)現(xiàn)按位操作,這兩個(gè)表達(dá)式應(yīng)
18、該為整型數(shù)據(jù)類型或與整型兼容的數(shù)據(jù)類型(如字符型等,但不能是image類型)運(yùn) 算 符運(yùn) 算 法 則&(位與運(yùn)算)兩個(gè)參與運(yùn)算的位值均為1時(shí),結(jié)果位為1,否則為0|(位或運(yùn)算)兩個(gè)參與運(yùn)算的位中只要有一位值為1,結(jié)果就為1,否則為0(位異或運(yùn)算)兩個(gè)參與運(yùn)算的位中只有一個(gè)的值為1時(shí)(不可以兩個(gè)值都為1),結(jié)果為1;只有當(dāng)兩個(gè)參與運(yùn)算的位值都為0或都為1時(shí),結(jié)果才為06.3.5 位運(yùn)算符示例:select 128&129,128|129,128129運(yùn) 算 符運(yùn) 算 法 則&(位與運(yùn)算)兩個(gè)參與運(yùn)算的位值均為1時(shí),結(jié)果位為1,否則為0|(位或運(yùn)算)兩個(gè)參與運(yùn)算的位中只要有一位值為1,結(jié)果就為1,
19、否則為0(位異或運(yùn)算)兩個(gè)參與運(yùn)算的位中只有一個(gè)的值為1時(shí)(不可以兩個(gè)值都為1),結(jié)果為1;只有當(dāng)兩個(gè)參與運(yùn)算的位值都為0或都為1時(shí),結(jié)果才為0128:129:1000 00001000 0001或|1000 0001128:129:1000 00001000 0001與&|1000 0000128:129:1000 00001000 0001異或0000 0001優(yōu) 先 級(jí)運(yùn) 算 符1一目運(yùn)算:+(正)、-(負(fù))、(按位取反)2*(乘)、/(除)、%(取模)3+(加)、+(字符串連接)、-(減)4=、=、=、!=、!、!yprint x大于yelseprint x小于或等于y6.4 流程控制
20、語句6.4.2 IF ELSE語句IF 條件表達(dá)式語句體1ELSE語句體2例:輸入一個(gè)坐標(biāo)值,判斷其在哪一個(gè)象限declare x int,y intset x=8set y=-3if x0if y0print xy位于第一象限elseprint xy位于第四象限elseif y0print xy位于第二象限elseprint xy位于第三象限IF.ELSE語句例【6-6】:設(shè)定變量score,根據(jù)score的值判斷成績(jī)是否合格,并輸出結(jié)論。declare score int,a nchar(10)set score=55if score=60set a=N成績(jī)合格elseset a=N成績(jī)不
21、合格select a1.簡(jiǎn)單case語句計(jì)算 input_expression,然后按指定順序?qū)γ總€(gè)when子句的input_expressionwhen_expression進(jìn)行計(jì)算。返回第一個(gè)取值為true的input_expression= when_expression的result_expression.如果沒有取值為true的input_expression= when_expression,則當(dāng)指定else子句時(shí),sql server將返回else_result_expression;若沒有指定else子句時(shí),則返回null值。2.Case 搜索語句按指定順序?yàn)槊總€(gè)when子句的
22、Boolean_expression求值。返回第一個(gè)取值為true的Boolean_expression的result_expression。如果沒有取值為true的Boolean_expression,則當(dāng)指定else子句時(shí),sql server將返回else_result_expression;若沒有指定else子句時(shí),則返回null值。6.4.3 case 語句-簡(jiǎn)單Case語句 CASE sex WHEN 1 THEN 男 WHEN 2 THEN 女 ELSE 其他 END -Case搜索語句 CASE WHEN sex = 1 THEN 男 WHEN sex = 2 THEN 女 E
23、LSE 其他 END 簡(jiǎn)單Case語句只返回第一個(gè)符合條件的值,剩下的Case部分將會(huì)被自動(dòng)忽略。 -比如說,下面這段SQL,你永遠(yuǎn)無法得到“第二類”這個(gè)結(jié)果 CASE WHEN col_1 IN ( a, b) THEN 第一類 WHEN col_1 IN (a) THEN 第二類 ELSE其他 END select sno,cno,grade,case when grade=90 then 優(yōu)秀when grade=80 then 良好when grade=70 then 中等when grade=60 then 及格when grade60 then 不及格end as 成績(jī)等級(jí)from
24、 sc1.簡(jiǎn)單Case 語句6.4.3 case 語句2.Case 搜索語句例6-7:create table temp(score int not null)insert into temp values(60)insert into temp values(30)insert into temp values(90)insert into temp values(106)insert into temp values(87)select score,等級(jí)=case when score=60 and score=80 and score=90 and score=0 and 成績(jī)=60 a
25、nd 成績(jī)=70 and 成績(jī)=80 and 成績(jī)=90 and 成績(jī)=100 then 優(yōu)秀endfrom scgoselect * from v6.4.4 goto語句無條件轉(zhuǎn)移語句,使用goto語句可以將執(zhí)行流程轉(zhuǎn)移到標(biāo)簽指定的位置。為了與前面的版本兼容,SQL SERVER 2008 支持goto語句,但由于該語句破壞了語句的結(jié)構(gòu),容易引發(fā)不易發(fā)現(xiàn)的問題,所以應(yīng)該盡量減少或避免使用。declare x intset x=1loving:print xselect x=x+1while x=3goto loving說明:標(biāo)號(hào)是GOTO目標(biāo),它不僅僅標(biāo)識(shí)了跳轉(zhuǎn)目標(biāo),標(biāo)號(hào)不隔離其前后語句。執(zhí)
26、行標(biāo)號(hào)前面語句的用戶跳過標(biāo)號(hào)并執(zhí)行標(biāo)號(hào)后的語句。除非標(biāo)號(hào)前面的語句本身是控制流語句(return),這種情況才發(fā)生。declare pjf floatif (select COUNT(*)from scwhere sno=2007056101)=0goto labelelsebeginselect pjf=AVG(grade)from scwhere sno=2007056101print pjfendlabel:print 無學(xué)生或此學(xué)生沒有選課!示例:輸出2007056101號(hào)學(xué)生平均成績(jī),若此學(xué)生沒有選課,則顯示相應(yīng)提示信息,用goto完成。說明:標(biāo)號(hào)是GOTO目標(biāo),它不僅僅標(biāo)識(shí)了跳轉(zhuǎn)目
27、標(biāo),標(biāo)號(hào)不隔離其前后語句。執(zhí)行標(biāo)號(hào)前面語句的用戶跳過標(biāo)號(hào)并執(zhí)行標(biāo)號(hào)后的語句。除非標(biāo)號(hào)前面的語句本身是控制流語句(return),這種情況才發(fā)生。6.4.5 whilebreak和continue 語句1.while 語句declare s int,num intselect s=0,num=1while num=100beginset s=s+numset num=num+1endprint 1+2+3+.+100=+convert(char,s)godeclare x intset x=1while x=3beginprint xselect x=x+1end6.4.5 whilebreak
28、和continue 語句2.break 語句 break 語句一般用在while循環(huán)或if .else語句中,用于退出本層循環(huán)。例:求1100之間的累加和,當(dāng)和超過1000時(shí)停止累加,顯示累加和以及累加到的位置。declare i int,s intset i=1set s=0while i=1000breakset i=i+1endselect s as s,i as i6.4.5 whilebreak和continue 語句3.continue 語句continue 命令可以讓程序跳過continue命令之后的語句,回到while循環(huán)的第一行命令。Break則讓程序完全跳出循環(huán),結(jié)束whi
29、le命令的執(zhí)行。例:求110之間的偶數(shù)和,并用continue控制語句的輸出。declare x int,sum intset x=1set sum=0while x0print 遇到return之前returnprint 遇到return之后SQL SERVER2005新增功能 try.catch語句Bgein try語句語句塊End tryBegin catch語句語句塊End catch 類似C+的異常處理,當(dāng)執(zhí)行try語句塊中的代碼出現(xiàn)錯(cuò)誤時(shí),系統(tǒng)將把控制傳遞到catch語句塊進(jìn)行處理。begin trycreate database testend trybegin catchpri
30、nt test數(shù)據(jù)庫(kù)已存在drop database testprint 原有的test數(shù)據(jù)庫(kù)已刪除create database testprint test數(shù)據(jù)庫(kù)再次成功創(chuàng)建end catch6.5 函數(shù)6.5.1 數(shù)學(xué)函數(shù)數(shù) 學(xué) 函 數(shù)功 能ABS(數(shù)值表達(dá)式)絕對(duì)值函數(shù),返回?cái)?shù)值表達(dá)式的絕對(duì)值A(chǔ)COS(實(shí)型表達(dá)式)反余弦函數(shù),返回一個(gè)余弦值對(duì)應(yīng)的角度。角度以弧度表示,實(shí)型表達(dá)式取值范圍從-11,若參數(shù)超過此范圍,函數(shù)返回NULL并報(bào)告錯(cuò)誤COS(數(shù)值表達(dá)式)正弦函數(shù),返回表達(dá)式中以弧度表示的指定角的余弦值EXP(數(shù)值表達(dá)式)指數(shù)函數(shù),返回表達(dá)式的指數(shù)值LOG(數(shù)值表達(dá)式)自然對(duì)數(shù)函數(shù),
31、返回表達(dá)式的自然對(duì)數(shù)值PI()圓周率函數(shù),返回14位小數(shù)的圓周率常量值RAND()隨機(jī)函數(shù),隨機(jī)返回01之間的float數(shù)值SIGN(數(shù)值表達(dá)式)符號(hào)函數(shù),返回表達(dá)式的正號(hào)、零或負(fù)號(hào)SIN(數(shù)值表達(dá)式)正弦函數(shù),返回表達(dá)式中以弧度表示的指定角的正弦值SQRT(數(shù)值表達(dá)式)平方根函數(shù),返回表達(dá)式的平方根TAN(數(shù)值表達(dá)式)正切函數(shù),返回指定表達(dá)式中以弧度表示的指定角的正切值例【6-8】:使用常用數(shù)學(xué)函數(shù)計(jì)算-1的絕對(duì)值,e的10次方,5的自然對(duì)數(shù),半徑為3的圓的面積和49的平方根。SELECT N-1絕對(duì)值=ABS(-1),Ne的10次方=EXP(10),N5的自然對(duì)數(shù)=LOG(5),N半徑為3
32、的圓的面積=PI()*3*3,N49的平方根=SQRT(49)6.5.2 字符串函數(shù)字符串函數(shù)功 能ASCII(字符表達(dá)式)ASCII函數(shù),返回字符串表達(dá)式中最左端字符的ASCII碼值CHAR(整型表達(dá)式)ASCII碼轉(zhuǎn)換函數(shù),參數(shù)為介于0255之間的整數(shù),返回整數(shù)的ASCII碼LEFT(字符表達(dá)式,n)左子串函數(shù),返回從字符串左邊開始的n個(gè)字符LEN(字符表達(dá)式)字符串長(zhǎng)度函數(shù),返回字符串表達(dá)式中字符的個(gè)數(shù)LOWER(字符表達(dá)式)小寫字母函數(shù),將大寫字母轉(zhuǎn)換為小寫字母,返回表達(dá)式的小寫字母表示LTRIM(字符表達(dá)式)刪除前導(dǎo)空格函數(shù),返回刪除了前導(dǎo)空格的字符表達(dá)式REPLACE(字符表達(dá)式1
33、,字符表達(dá)式2,字符表達(dá)式3)字符替換函數(shù),用第三個(gè)表達(dá)式替換第一個(gè)字符串表達(dá)式中包含的所有第二個(gè)字符表達(dá)式,并返回替換后的表達(dá)式RIGHT(字符表達(dá)式,n)右子串函數(shù),返回從字符串右邊開始的n個(gè)字符RTRIM(字符表達(dá)式)刪除尾隨空格函數(shù),返回刪除所有尾隨空格的字符表達(dá)式STR(數(shù)值表達(dá)式 ,長(zhǎng)度n ,小數(shù)位)數(shù)字向字符轉(zhuǎn)換函數(shù),返回由數(shù)字轉(zhuǎn)換過來的字符串,長(zhǎng)度用于指定總長(zhǎng)度,包括小數(shù)點(diǎn),小數(shù)位指小數(shù)點(diǎn)右邊的位數(shù)UPPER(字符表達(dá)式)大寫字母函數(shù),返回指定表達(dá)式的大寫字母表示例【6-9】:使用常用字符串函數(shù)計(jì)算A的ASCII碼,SQL Server的前3個(gè)字符,數(shù)據(jù)庫(kù)原理字符串的長(zhǎng)度,將C
34、hina轉(zhuǎn)換為大寫字母,將英語四級(jí)改為英語六級(jí)。T-SQL語句如下:SELECT NA的ASCII=ASCII(A), NSQL Server的前3個(gè)字符=LEFT(SQL Server,3), N數(shù)據(jù)庫(kù)原理的長(zhǎng)度=LEN(N數(shù)據(jù)庫(kù)原理), N將China轉(zhuǎn)換為大寫字母=UPPER(China), N將英語四級(jí)改為英語六級(jí)=REPLACE(N英語四級(jí),N四,N六)declare s varchar(50)set s=北京,歡迎您!select right(s,4)+left(s,2)將北京,歡迎您!變成歡迎您! 北京select ASCII(loving) /*返回最左端字符的ascii碼值L
35、en用于返回指定字符串的字符(而不是字節(jié))個(gè)數(shù)。select LEN(loving)select len(2011.10.01)select LEN (李小蔥生日快樂!)declare s varchar(50)set s=2001年月歡慶北京申奧成功-變成北京年月申奧成功select substring(s,11,2)+LEFT(s,8)+RIGHT(s,4)select replicate(loving,3)select REPLACE(SQL SERVER,ER,loving)Replace函數(shù)將字符串中的子字符串替換為指定字符串Replicate函數(shù)用于指定的次數(shù)重復(fù)字符串表達(dá)式sel
36、ect ASCII(loving)ascii函數(shù)返回最左端字符的ascii代碼值。純數(shù)字的字符串可以不用單引號(hào),而其他字符表達(dá)式必需用,否則出錯(cuò)。子串替換函數(shù)格式:STUFF(字符表達(dá)式1,起始位置,長(zhǎng)度,字符表達(dá)式2)功能:用“字符表達(dá)式2”的值替換“字符表達(dá)式1”中由“起始位置”和“長(zhǎng)度”指明的一個(gè)子串。select STUFF(計(jì)算機(jī)等級(jí)考試,4,2,專業(yè))select STUFF(計(jì)算機(jī)等級(jí)考試,6,0,二級(jí))select charindex(l,I like football) 搜索的起始位置是1select charindex(l,I like football,4) 搜索的起始位
37、置是4select charindex(l,I like football,15) 搜索的起始位置是15Charindex函數(shù)返回字符串指定表達(dá)式的起始位置。6.5.3 日期和時(shí)間函數(shù)日期和時(shí)間函數(shù)描 述DAY(日期時(shí)間型數(shù)據(jù))返回指定日期的“天”部分的整數(shù)GETDATE(日期時(shí)間型數(shù)據(jù))以標(biāo)準(zhǔn)格式返回本地服務(wù)器的DATETIME值DATEADD(時(shí)間間隔,數(shù)值表達(dá)式,日期)為DATETIME值添加間隔。時(shí)間間隔項(xiàng)決定時(shí)間間隔的單位,可取Year、Day of year(一年的日數(shù))、Quarter、Month、Day、Week、Weekday(一周的日數(shù))、Hour、Minute、Secon
38、d、Millisecond。數(shù)值表達(dá)式為加上或者減去的時(shí)間間隔DATEDIFF(時(shí)間間隔,日期1,日期2)計(jì)算兩個(gè)DATETIME值之間指定的日期部分的差,返回?cái)?shù)值型數(shù)據(jù)。時(shí)間間隔項(xiàng)決定時(shí)間間隔的單位,取值與DATEADD中的時(shí)間間隔項(xiàng)相同MONTH(日期時(shí)間型數(shù)據(jù))返回指定日期的“月”部分的整數(shù)YEAR(日期時(shí)間型數(shù)據(jù))返回指定日期的“年”部分的整數(shù)ConvertCONVERT() 函數(shù)是把日期轉(zhuǎn)換為新數(shù)據(jù)類型的通用函數(shù)。CONVERT() 函數(shù)可以用不同的格式顯示日期/時(shí)間數(shù)據(jù)。例如:convert(char(4),year(date1)例【6-10】:使用日期和時(shí)間函數(shù)顯示當(dāng)前日期,在當(dāng)前日期后10天的日期,當(dāng)前日期與2011年1月1日相隔的天數(shù)。T-SQL語句如下:SELECT N顯示當(dāng)前系統(tǒng)日期=GETDATE(),N在當(dāng)前日期后10天的日期=DATEADD(da
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年安慶醫(yī)藥高等??茖W(xué)校單招綜合素質(zhì)考試題庫(kù)及答案1套
- 2026年涉外會(huì)議保密員技能提升試題及完整答案1套
- 2026年新疆科技職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試模擬測(cè)試卷及答案1套
- 2026年江西省撫州市單招職業(yè)傾向性測(cè)試模擬測(cè)試卷附答案
- 2026年心理賬戶期末測(cè)試題及參考答案
- 2026年廣東松山職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬測(cè)試卷及答案1套
- 2026年山西鐵道單招試題附答案
- 2026上海浦東新區(qū)婦女聯(lián)合會(huì)文員公開招聘2人筆試備考題庫(kù)及答案解析
- 2026四川自貢醫(yī)元健康管理有限責(zé)任公司招聘工作人員11人筆試備考題庫(kù)及答案解析
- 2026貴州安順長(zhǎng)水實(shí)驗(yàn)學(xué)校招聘24人筆試備考題庫(kù)及答案解析
- 6.1.3化學(xué)反應(yīng)速率與反應(yīng)限度(第3課時(shí) 化學(xué)反應(yīng)的限度) 課件 高中化學(xué)新蘇教版必修第二冊(cè)(2022-2023學(xué)年)
- 北京市西城區(qū)第8中學(xué)2026屆生物高二上期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 2026年遼寧輕工職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試參考題庫(kù)帶答案解析
- 2026屆北京市清華大學(xué)附中數(shù)學(xué)高二上期末調(diào)研模擬試題含解析
- 2026年馬年德育實(shí)踐作業(yè)(圖文版)
- 醫(yī)院實(shí)習(xí)生安全培訓(xùn)課課件
- 四川省成都市武侯區(qū)西川中學(xué)2024-2025學(xué)年八上期末數(shù)學(xué)試卷(解析版)
- 2026年《必背60題》抖音本地生活BD經(jīng)理高頻面試題包含詳細(xì)解答
- 土方回填工程質(zhì)量控制施工方案
- 2025年湖南城建職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 2026貴州大數(shù)據(jù)產(chǎn)業(yè)集團(tuán)有限公司第一次社會(huì)招聘考試題庫(kù)新版
評(píng)論
0/150
提交評(píng)論