Transact-SQL語(yǔ)言基礎(chǔ).ppt_第1頁(yè)
Transact-SQL語(yǔ)言基礎(chǔ).ppt_第2頁(yè)
Transact-SQL語(yǔ)言基礎(chǔ).ppt_第3頁(yè)
Transact-SQL語(yǔ)言基礎(chǔ).ppt_第4頁(yè)
Transact-SQL語(yǔ)言基礎(chǔ).ppt_第5頁(yè)
已閱讀5頁(yè),還剩105頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第三章 Transact-SQL語(yǔ)言基礎(chǔ),本章的學(xué)習(xí)目標(biāo):,了解Transact-SQL語(yǔ)言的發(fā)展過(guò)程 理解Transact-SQL語(yǔ)言附加的語(yǔ)言元素 掌握常量、變量、運(yùn)算符和表達(dá)式 掌握流程控制語(yǔ)句 掌握常用函數(shù),任務(wù)3.1 工作場(chǎng)景導(dǎo)入,軟件測(cè)試員小李要測(cè)試數(shù)據(jù)庫(kù)的性能,當(dāng)學(xué)生選課表的數(shù)據(jù)達(dá)到10萬(wàn)行,系統(tǒng)是否反應(yīng)還會(huì)很快?如何才可以快速方便的為學(xué)生選課表添加10萬(wàn)行數(shù)據(jù)? 引導(dǎo)問(wèn)題: 為學(xué)生選課表添加10萬(wàn)行數(shù)據(jù)時(shí), (1)如何產(chǎn)生10萬(wàn)行不同的隨機(jī)數(shù)據(jù)? (2)為考慮系統(tǒng)性能,應(yīng)考慮多少行數(shù)據(jù)提交1次? (3)如何使用WHILE循環(huán)?,任務(wù)3.2 Transact-SQL概述,SQL的

2、全稱(chēng)為Structured Query Language(結(jié)構(gòu)化查詢(xún)語(yǔ)言),SQL最早是在20世紀(jì)70年代由IBM公司開(kāi)發(fā)出來(lái)的,作為IBM關(guān)系數(shù)據(jù)庫(kù)原型System R的原形關(guān)系語(yǔ)言,主要用于關(guān)系數(shù)據(jù)庫(kù)中的信息檢索。由于SQL簡(jiǎn)單易學(xué),目前它已經(jīng)成為關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中使用最廣泛的語(yǔ)言。 SQL有3個(gè)主要標(biāo)準(zhǔn):ANSI SQL;SQL92;SQL99。,3.2.1 Transact-SQL語(yǔ)法約定,3.2.2 多部分名稱(chēng),所有對(duì)數(shù)據(jù)庫(kù)對(duì)象名的Transact-SQL引用將是由四部分組成的多部分名稱(chēng),格式如下: server_name.database_name.schema_name.objec

3、t_name | database_name .schema_name.object_name | schema_name . object_name | object_name,各個(gè)參數(shù)的含義如下所示:,(1)server_name server_name指定鏈接的服務(wù)器名稱(chēng)或遠(yuǎn)程服務(wù)器名稱(chēng)。 (2)database_name 如果對(duì)象駐留在SQL Server的本地實(shí)例中,則database_name指定SQL Server數(shù)據(jù)庫(kù)的名稱(chēng)。如果對(duì)象在鏈接服務(wù)器中,則database_name將指定OLE DB目錄。 (3)schema_name 如果對(duì)象在SQL Server數(shù)據(jù)庫(kù)中,則sc

4、hema_name指定包含對(duì)象的架構(gòu)的名稱(chēng)。如果對(duì)象在鏈接服務(wù)器中,則schema_name將指定OLE DB架構(gòu)名稱(chēng)。 (4)object_name object_name表示對(duì)象的名稱(chēng)。,3.2.3 如何給標(biāo)識(shí)符起名,3.2.3.1 標(biāo)識(shí)符 1. 標(biāo)識(shí)符格式 (1)標(biāo)識(shí)符的首字符必須是下列字符之一 。 統(tǒng)一碼(Unicode)2.0標(biāo)準(zhǔn)中所定義的字母,包括拉丁字母a-z和A-Z,以及來(lái)自其他語(yǔ)言的字符。 下劃線“_”、符號(hào)“”或者數(shù)字符號(hào)“#”。 (2)標(biāo)識(shí)符的后續(xù)字符可以是以下3種。 統(tǒng)一碼(Unicode)2.0標(biāo)準(zhǔn)中所定義的字母。 來(lái)自拉丁字母或其他國(guó)家/地區(qū)腳本的十進(jìn)制數(shù)字。 “”

5、符號(hào)、美元符號(hào)“$”、數(shù)字符號(hào)“#”或下劃線“_”。 (3)標(biāo)識(shí)符不允許是Transact-SQL的保留字。 (4)不允許嵌入空格或其他特殊字符。,3.2.3.1 標(biāo)識(shí)符 2標(biāo)識(shí)符分類(lèi) SQL Server將標(biāo)識(shí)符分為以下兩種類(lèi)型: 常規(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è)字符。,/*創(chuàng)建名為example的

6、數(shù)據(jù)庫(kù),并存放在“e:sql”目錄中*/ CREATE DATABASE example ON (name=example,-設(shè)置數(shù)據(jù)庫(kù)文件名稱(chēng) filename=e:sqlexample.mdf, -設(shè)置文件存放位置 size=10,-指定文件大小 maxsize=50)-指定文件的最大容量 LOG ON-指定日志文件 (name=examplog,-指定日志文件名稱(chēng) filename=e:sqlexample.ldf, -指定日志文件存放位置 size=5mb, maxsize=25mb, filegrowth=5mb) go,3.2.4 系統(tǒng)保留字,與其他許多語(yǔ)言類(lèi)似,SQL Serve

7、r 2012使用了180多個(gè)保留關(guān)鍵字(Reserved Keyword)來(lái)定義、操作或訪問(wèn)數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象,這些關(guān)鍵字包括DATABASE、CURSOR、CREATE、INSERT、BEGIN等。這些保留關(guān)鍵字是T-SQL語(yǔ)法的一部分,用于分析和理解T-SQL語(yǔ)言。在編寫(xiě)T-SQL語(yǔ)句時(shí),這些系統(tǒng)保留字會(huì)以不同的顏色標(biāo)記,方便用戶(hù)區(qū)分。一般地,不要使用這些保留關(guān)鍵字作為對(duì)象名稱(chēng)或標(biāo)識(shí)符。,任務(wù)3.3 常量 (1)字符型常量 ASCII字符串常量:用單引號(hào)括起來(lái),由ASCII字符組成。 如果在字符常量中已經(jīng)包含了一個(gè)單引號(hào),那么可以使用兩個(gè)單引號(hào)表示這個(gè)帶單引號(hào)的字符,例如“數(shù)據(jù)庫(kù)原理”表示

8、數(shù)據(jù)庫(kù)原理。 Unicode字符串常量的格式與ASCII字符串常量相似,但它前面有一個(gè)前綴N,而且N前綴必須是大寫(xiě)的。 如:NSQL Server、N張三、N計(jì)算機(jī)科學(xué)與技術(shù)。,任務(wù)3.3 常量 (2) 數(shù)值型常量 數(shù)值型常量包含整型常量和實(shí)數(shù)型常量。 整型常量(Integer)用來(lái)表示整數(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ù)型常量用來(lái)表示帶小數(shù)部分的數(shù),有定點(diǎn)數(shù)和浮點(diǎn)數(shù)兩種表示方式,其中浮點(diǎn)數(shù)使用科學(xué)記數(shù)法來(lái)表示。如:0.3E-5。,(3) 日期

9、時(shí)間型常量(datetime) 日期時(shí)間型常量使用特定格式的字符日期值來(lái)表示,并且用單引號(hào)括起來(lái)。如2009年4月1日可以用以下方式表示:April 1,2009、04/01/2009或20090401。 (4) 貨幣型常量(money) 貨幣型常量以前綴“$”作為標(biāo)識(shí)。如$123.45。,任務(wù)3.4 變量,(1)變量名稱(chēng) 在SQL Server 2012系統(tǒng)中,變量的命名規(guī)則如下: 第一個(gè)字符必須是字母、數(shù)字、下畫(huà)線或符號(hào)。需要注意的是,符號(hào)“”開(kāi)頭的變量表示局部變量、符號(hào)“”開(kāi)頭的變量表示全局變量。 變量名不能是T-SQL語(yǔ)言的系統(tǒng)保留字(如IF、ELSE、CONTINUE等),包括大寫(xiě)和

10、小寫(xiě)形式。 變量名中不允許出現(xiàn)空格或其他特殊字符。 根據(jù)以上規(guī)則,下列變量名都是合法的:a2、abc、student_3和average。 變量在使用中需要先聲明再使用,聲明變量用DECLARE語(yǔ)句,其語(yǔ)法格式如下: DECLARE 變量名稱(chēng) 變量的數(shù)據(jù)類(lèi)型 ,n 說(shuō)明: 為表示局部變量,變量名稱(chēng)的第一個(gè)字符必須是 所有變量在聲明后均設(shè)置初值為NULL,任務(wù)3.4 變量,(2)變量賦值 有兩種為變量賦值的方式:使用SET語(yǔ)句直接為變量賦值和使用SELECT語(yǔ)句選擇表中的值來(lái)為變量賦值。 語(yǔ)法格式如下: 格式1:使用SET語(yǔ)句賦值 SET 變量名稱(chēng)=表達(dá)式 格式2:使用SELECT語(yǔ)句賦值 SE

11、LECT 變量名稱(chēng)=表達(dá)式 ,n 說(shuō)明: 表達(dá)式可以是任何有效的SQL表達(dá)式; 一個(gè)SELECT語(yǔ)句可以給多個(gè)變量賦值,而一個(gè)SET語(yǔ)句一次只能給一個(gè)變量賦值。,例:用賦值語(yǔ)句分別定義兩個(gè)整型變量x和y。使x的值為20,y的值為5,計(jì)算并顯示x,y,3x +4y,xy,和x /y的值。 declare x int,y int set x=20 set y=5 select x,y,3*x+4*y,x*y,x/y 例:創(chuàng)建兩個(gè)局部變量,并賦值,然后輸出變量的值。 declare var1 char(10),var2 char(20) set var1=鄭州大學(xué) set var2=var1+是一所

12、綜合性大學(xué) select var1,var2 go,示例:創(chuàng)建一個(gè)名為sex的局部變量,并在select語(yǔ)句中使用該局部變量查找表student中所有女同學(xué)的信息。 use xscj2005 declare sex char(2) set sex =女 select * from student where ssex= sex,例:使用查詢(xún)給變量賦值。 use XSCJ2005 go declare xm varchar(8) set xm =(select sname from student where sno=2008056103) select xm Go use XSCJ2005 g

13、o declare xm varchar(8) select xm =sname from student select xm Go 說(shuō)明:如果返回多個(gè)值,將返回的最后一個(gè)值賦給變量,例: use XSCJ2005 go declare xm varchar(8) select xm=劉豐 select xm=sname from student where sno=123456789 select xm as name go,說(shuō)明:如果select語(yǔ)句沒(méi)有返回行,變量將保留當(dāng)前值,任務(wù)3.5 運(yùn)算符和表達(dá)式,SQL Server 2012提供以下幾類(lèi)運(yùn)算符:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符

14、、字符運(yùn)算符和位運(yùn)算符。,3.5.1 算術(shù)運(yùn)算符 算術(shù)運(yùn)算符對(duì)兩個(gè)表達(dá)式執(zhí)行數(shù)學(xué)運(yùn)算。,算術(shù)運(yùn)算符,例:計(jì)算6/5、6.0/5.0、5/6、5.0/6.0與6%5的值。 select 6/5,6.0/5.0,5/6,5.0/6.0,6%5 11.20000000.8333331,通過(guò)執(zhí)行語(yǔ)句我們注意到:6/5的結(jié)果為1,而6.0/5.0的結(jié)果為1.200000,兩者運(yùn)算結(jié)果并不相同。原因在于當(dāng)兩個(gè)具有相同數(shù)據(jù)類(lèi)型的數(shù)進(jìn)行算術(shù)運(yùn)算時(shí),運(yùn)算結(jié)果依然是當(dāng)前的數(shù)據(jù)類(lèi)型。但是,當(dāng)兩個(gè)不同數(shù)據(jù)類(lèi)型的數(shù)進(jìn)行算術(shù)運(yùn)算時(shí),數(shù)據(jù)類(lèi)型優(yōu)先級(jí)規(guī)則指定將優(yōu)先級(jí)較低的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為優(yōu)先級(jí)較高的數(shù)據(jù)類(lèi)型。這樣能夠在最大程度

15、上保護(hù)運(yùn)算結(jié)果的正確性和合理性。同樣,5/6與5.0/6.0的運(yùn)算結(jié)果也不相同。,3.5.2 關(guān)系運(yùn)算符,說(shuō)明: 兩個(gè)數(shù)值型數(shù)據(jù)比較時(shí),按照值的大小直接比較; 兩個(gè)日期時(shí)間型數(shù)據(jù)比較時(shí),按照年、月、日的先后順序比較; 兩個(gè)字符型數(shù)據(jù)比較時(shí),英文字母按照ASCII碼值大小比較,漢字按照拼音先后順序比較。,use XSCJ go declare student char(6) set student=001111 if(student0) select * from xs where 學(xué)號(hào)=student,3.5.3 邏輯運(yùn)算符,例:查詢(xún)成績(jī)高于李明最高成績(jī)的學(xué)生姓名、課程名和成績(jī) select

16、sname,cname,grade from student join sc join course on o=o on student.sno=sc.sno and gradeall (select grade from student join sc join course on o=o on student.sno=sc.sno and sname=李明 ),1)any,all,例:查詢(xún)成績(jī)高于李明最低成績(jī)的學(xué)生姓名、課程名和成績(jī) select sname,cname,grade from student join sc join course on o=o on student.sno

17、=sc.sno and gradeany (select grade from student join sc join course on o=o on student.sno=sc.sno and sname=李明 ),2).Between 例:查詢(xún)91及92年出生的學(xué)生信息 select * from student where sbirth between 1991-1-1 and 1992-12-31 例:查詢(xún)不是91、92年出生的學(xué)生信息 select * from student where sbirth not between 1991-1-1 and 1992-12-31,查

18、詢(xún)姓王或姓劉的學(xué)生信息 select * from student where sname like 王劉% 查詢(xún)不姓王也不姓劉的學(xué)生信息 select * from student where sname like 王劉%,3).Like,查詢(xún)所有選課的學(xué)生信息 select * from student where exists (select * from sc where sno=student.sno) 查詢(xún)沒(méi)有選課的學(xué)生信息 select * from student where not exists (select * from sc where sno=student.sno)

19、,4. exists,3.5.4 字符運(yùn)算符,字符運(yùn)算符只有一個(gè)“+”,又稱(chēng)為字符串串聯(lián)運(yùn)算符。字符串之間通過(guò)“+”實(shí)現(xiàn)字符串的連接。,select 8899+7788 select 8899+7788 select 8899+7788,說(shuō)明:當(dāng)數(shù)據(jù)類(lèi)型不相同時(shí),轉(zhuǎn)換成優(yōu)先級(jí)別高的。,3.5.5 位運(yùn)算符,位運(yùn)算符在兩個(gè)表達(dá)式之間實(shí)現(xiàn)按位操作,這兩個(gè)表達(dá)式應(yīng)該為整型數(shù)據(jù)類(lèi)型或與整型兼容的數(shù)據(jù)類(lèi)型(如字符型等,但不能是image類(lèi)型),3.5.5 位運(yùn)算符,示例: select 128 GO CREATE DATABASE tempTest GO USE tempTest GO CREATE T

20、ABLE TestTable ( col1 int, col2 int ) INSERT INTO TestTable(col1,col2) VALUES(1,1) INSERT INTO TestTable(col1,col2) VALUES(2,2) SELECT * FROM TestTable,2. 運(yùn)行腳本文件 (1)打開(kāi)命令提示符窗口。 (2)在命令提示符窗口中,如圖3-10所示,鍵入如下格式的命令: sqlcmd -S myServerinstanceName -i C: mysql.sql 注意,請(qǐng)將myServer和instanceName替換成自己所用的服務(wù)器名和數(shù)據(jù)庫(kù)實(shí)例

21、名。 (3)按Enter鍵。TestTable表的信息便會(huì)輸出到命令提示符窗口。如圖3-10所示。,3. 將此輸出保存到文本文件中 (1)打開(kāi)命令提示符窗口。 (2)在命令提示符窗口中,如圖3-11鍵入,(3)按 Enter 鍵。,4. 另外,也可使用EXEC來(lái)執(zhí)行相應(yīng)的批處理 EXEC (字符串變量)|(字面值命令字符串) EXECUTE (字符串變量)|(字面值命令字符串) DECLARE InVar varchar(50) -DECLARE OutVar varchar(50) - Set up our string to feed into the EXEC command -SET

22、InVar = SELECT OutVar=col1 FROM dbo.TestTable WHERE col1 = 1 -消息 137,級(jí)別 15,狀態(tài) 1,第 1 行 -必須聲明標(biāo)量變量 OutVar。 SET InVar = SELECT col1 FROM dbo.TestTable WHERE col1 = 1 EXEC (Invar),3.13.6 批處理中的錯(cuò)誤,批處理中的錯(cuò)誤分為以下兩類(lèi) 語(yǔ)法錯(cuò)誤 運(yùn)行時(shí)錯(cuò)誤,3.13.7 GO不是T-SQL命令,一個(gè)常見(jiàn)的錯(cuò)誤是認(rèn)為GO是T-SQL命令。其實(shí)GO是一個(gè)只能被編輯工具(Management Studio、sqlcmd)識(shí)別的命令

23、。如果使用了第三方工具,那么它可能支持也可能不支持GO命令,但是大多數(shù)聲稱(chēng)支持SQL Server的工具是支持GO命令的。,任務(wù)3.14 SQL Server 2012函數(shù)簡(jiǎn)介,3.14.1 數(shù)學(xué)函數(shù),例:使用常用數(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的圓的面積=PI()*3*3, N49的平方根=SQRT(49),3.14.2 字符串函數(shù),例:使用常用字符串函數(shù)計(jì)算A的ASCII碼,SQL Server的前3個(gè)字符,數(shù)據(jù)

24、庫(kù)原理字符串的長(zhǎng)度,將China轉(zhuǎn)換為大寫(xiě)字母,將英語(yǔ)四級(jí)改為英語(yǔ)六級(jí)。 T-SQL語(yǔ)句如下: 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)換為大寫(xiě)字母=UPPER(China), N將英語(yǔ)四級(jí)改為英語(yǔ)六級(jí)=REPLACE(N英語(yǔ)四級(jí),N四,N六),declare s varchar(50) set s=北京,歡迎您! select right(s,4)+left(s,2),將北京,歡迎您!變成歡迎您! 北京,select ASCII(loving)

25、 /*返回最左端字符的ascii碼值,Len用于返回指定字符串的字符(而不是字節(jié))個(gè)數(shù)。,select LEN(loving) select len(2011.10.01) select LEN (李小蔥生日快樂(lè)!),declare s varchar(50) set s=2001年07月歡慶北京申奧成功 select substring(s,11,2)+LEFT(s,8)+RIGHT(s,4),substring(intbeginIndex,intendIndex)返回一個(gè)新字符串,它是此字符串的一個(gè)子字符串。,select replicate(loving,3),select REPLAC

26、E(SQL SERVER,ER,loving),Replace函數(shù)將字符串中的子字符串替換為指定字符串,Replicate函數(shù)用于指定的次數(shù)重復(fù)字符串表達(dá)式,select 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,專(zhuān)業(yè)) select STUFF(計(jì)算機(jī)等級(jí)考試,6,0,二級(jí))

27、,select charindex(l,I like football) 搜索的起始位置是1 select charindex(l,I like football,4) 搜索的起始位置是4 select charindex(l,I like football,15) 搜索的起始位置是15,Charindex函數(shù)返回字符串指定表達(dá)式的起始位置。,3.14.3 日期和時(shí)間函數(shù),Convert CONVERT() 函數(shù)是把日期轉(zhuǎn)換為新數(shù)據(jù)類(lèi)型的通用函數(shù)。 CONVERT() 函數(shù)可以用不同的格式顯示日期/時(shí)間數(shù)據(jù)。 例如:convert(char(4),year(date1),例:使用日期和時(shí)間函數(shù)

28、顯示當(dāng)前日期,在當(dāng)前日期后10天的日期,當(dāng)前日期與2011年1月1日相隔的天數(shù)。 T-SQL語(yǔ)句如下: SELECT N顯示當(dāng)前系統(tǒng)日期=GETDATE(), N在當(dāng)前日期后10天的日期=DATEADD(day,10,GETDATE(), N當(dāng)前日期與2011年1月1日相隔的天數(shù)=DATEDIFF(DAY,GETDATE(),2011-01-01),3.14.4 數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù) 數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)可以將某一種類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成另一種類(lèi)型的數(shù)據(jù)。 1)數(shù)值轉(zhuǎn)換為字符函數(shù) 格式:STR(數(shù)值表達(dá)式 ,長(zhǎng)度 ,小數(shù)位數(shù)) 功能:將數(shù)值表達(dá)式的值轉(zhuǎn)換為字符串,轉(zhuǎn)換時(shí)自動(dòng)四舍五入。默認(rèn)長(zhǎng)度為10,若不指定

29、小數(shù)位則保留到整數(shù)位,如果長(zhǎng)度小于數(shù)值表達(dá)式值的整數(shù)位數(shù),則返回一串*號(hào)。 理想長(zhǎng)度=整數(shù)+小數(shù)點(diǎn)+小數(shù) 要求長(zhǎng)度理想長(zhǎng)度:加前導(dǎo)符 整數(shù)長(zhǎng)度要求長(zhǎng)度理想長(zhǎng)度:保留整數(shù)部分,調(diào)整小數(shù)部分。 要求長(zhǎng)度整數(shù)長(zhǎng)度:*,【例】將數(shù)值型數(shù)據(jù)123.456轉(zhuǎn)換為字符型數(shù)據(jù),并顯示其結(jié)果。 解:? STR(123.456) 主屏幕顯示結(jié)果為: 凵凵凵凵凵凵凵123 ? STR(123.456,7,2), STR(123.456,5,2), STR(123.456,2) 主屏幕顯示結(jié)果分別為: 凵123.46 123.5 *,select str(123.456),str(123.456,5,2),STR(1

30、23.456,2),SQL Server會(huì)自動(dòng)完成數(shù)據(jù)類(lèi)型的轉(zhuǎn)換,這種轉(zhuǎn)換稱(chēng)隱式轉(zhuǎn)換。但有些類(lèi)型就不能自動(dòng)轉(zhuǎn)換,如int整型與char型,這時(shí)就要顯式轉(zhuǎn)換函數(shù)。(cast,convert) 示例 select cast(123 as int)+10 說(shuō)明:as之后是系統(tǒng)提供的數(shù)據(jù)類(lèi)型,包括bigint select CONVERT(nvarchar(30),getdate(),102) +轉(zhuǎn)換成字符型,說(shuō)明:102是日期樣式,3.14.5 系統(tǒng)函數(shù),用戶(hù)可以在需要時(shí)通過(guò)系統(tǒng)函數(shù)獲取當(dāng)前主機(jī)名稱(chēng)、用戶(hù)名稱(chēng)、數(shù)據(jù)庫(kù)名稱(chēng)及系統(tǒng)錯(cuò)誤信息。 1. 函數(shù)HOST_NAME()返回服務(wù)器端計(jì)算機(jī)的名稱(chēng)。 2

31、. 函數(shù)OBJECT_NAME()返回?cái)?shù)據(jù)庫(kù)對(duì)象的名稱(chēng)。 3. 函數(shù)USER_NAME()返回?cái)?shù)據(jù)庫(kù)用戶(hù)名。 【例-30】系統(tǒng)函數(shù)。 SELECT SUSER_NAME (),DB_NAME () ,USER_NAME (),HOST_NAME () 執(zhí)行結(jié)果,如圖3-25所示。,3.15 為學(xué)生選課表增加10行測(cè)試數(shù)據(jù),1. 創(chuàng)建選課表selectedCourses -先手工創(chuàng)建目錄E:application USE master GO IF EXISTS (SELECT name FROM sys.databases WHERE name = NStuInfo) DROP DATABASE

32、 StuInfo GO -創(chuàng)建數(shù)據(jù)庫(kù) CREATE DATABASE StuInfo ON PRIMARY ( NAME = NStuInfo, FILENAME = NE:applicationStuInfo.mdf , SIZE = 6848KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%) LOG ON ( NAME = NStuInfo_log, FILENAME = NE:applicationStuInfo_log.ldf , SIZE = 1024KB , MAXSIZE = 102400KB , FILEGROWTH = 10%) GO,2. 創(chuàng)建表,USE stuInfo selectedCourses GO IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_I

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論