第6章SQL過程_第1頁
第6章SQL過程_第2頁
第6章SQL過程_第3頁
第6章SQL過程_第4頁
第6章SQL過程_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第5章章 SQL過程過程sql過程概述 vSql過程是SAS內(nèi)部的一個(gè)過程,實(shí)現(xiàn)對數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫的表進(jìn)行操作的過程。 通過sql過程可以實(shí)現(xiàn)對數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫的表進(jìn)行查詢、修改、創(chuàng)建表、刪除數(shù)據(jù)、插入數(shù)據(jù)和更新數(shù)據(jù)等功能。vSql過程是SAS內(nèi)部已經(jīng)編譯好的一個(gè)過程,它實(shí)現(xiàn)了關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)化查詢功能,體現(xiàn)了SAS對大型數(shù)據(jù)庫管理系統(tǒng)(如oracle,db2,sybase)通用的sql語言支持。Sql過程處理機(jī)制vSql過程可以對SAS系統(tǒng)的數(shù)據(jù)集、視圖、關(guān)系數(shù)據(jù)庫中的表進(jìn)行操作處理,輸出可以是數(shù)據(jù)集形式、視圖形式、關(guān)系數(shù)據(jù)庫中的表和報(bào)表等形式輸出結(jié)果。Sql過程處理流程見圖6-1.v

2、Sql 過程處理機(jī)制是對來自SAS數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫表的數(shù)據(jù)進(jìn)行操作處理,通過sql結(jié)構(gòu)查詢語句處理后可生成SAS數(shù)據(jù)集、SAS視圖、關(guān)系數(shù)據(jù)庫表、v報(bào)表或賦值給宏變量。比較sql關(guān)系數(shù)據(jù)庫表和SAS數(shù)據(jù)集 sql術(shù)語(關(guān)系數(shù)據(jù)庫)SAS系統(tǒng)說明表SAS數(shù)據(jù)集數(shù)據(jù)集和表的結(jié)構(gòu)相同,稱呼不同行觀測數(shù)據(jù)集一條記錄稱為觀測,表中稱為行列變量數(shù)據(jù)集稱列為變量,表稱為列SQL過程語法v語法格式: proc sql ;v 數(shù)據(jù)操作語句;v quit;Sql過程語法說明Sql過程操作語句 功能proc過程步開始關(guān)鍵字,調(diào)用過程語句sqlSAS內(nèi)部編譯好的過程名,執(zhí)行sql語言選項(xiàng)Sql過程具有的設(shè)置參數(shù),如

3、noprint數(shù)據(jù)操作語句關(guān)系數(shù)據(jù)庫結(jié)構(gòu)化語句或?qū)?shù)據(jù)集操作的語句,如查詢quit告訴SAS系統(tǒng)sql過程步結(jié)束SQL過程特點(diǎn)v【注意】sql過程的結(jié)束語句標(biāo)志為”quit”語句。vSql過程可以對SAS數(shù)據(jù)集操作,也可以對關(guān)系數(shù)據(jù)庫中的表操作,功能強(qiáng)大,繼承了關(guān)系數(shù)據(jù)庫中的sql語言。vSql過程中的過程中的“選項(xiàng)選項(xiàng)”vSql過程中的選項(xiàng)是控制sql過程輸出顯示設(shè)置的應(yīng)用,常用選項(xiàng)如下表所示:v表6-3 sql過程常用選項(xiàng)選項(xiàng)選項(xiàng)功功 能能print打印打印sql過程的輸出到輸出窗口,默認(rèn)選項(xiàng)過程的輸出到輸出窗口,默認(rèn)選項(xiàng)nonprint不打印不打印sql過程的輸出到輸出窗口過程的輸出到輸

4、出窗口number對輸出觀測記錄指定行號對輸出觀測記錄指定行號(row)nonnumber對輸出觀測記錄不指定行號對輸出觀測記錄不指定行號(row),默認(rèn)選項(xiàng),默認(rèn)選項(xiàng)Inobs=指定輸入的觀測記錄行數(shù),取正整數(shù)指定輸入的觀測記錄行數(shù),取正整數(shù)Outobs=指定輸出的觀測記錄行數(shù),取正整數(shù)指定輸出的觀測記錄行數(shù),取正整數(shù)Loops=指定指定sql過程內(nèi)循環(huán)的最大次數(shù)過程內(nèi)循環(huán)的最大次數(shù)double指定在各行插入一個(gè)空行指定在各行插入一個(gè)空行nodouble指定在各行不插入空行,默認(rèn)選項(xiàng)指定在各行不插入空行,默認(rèn)選項(xiàng)dquote對雙引號中的內(nèi)容而言,取對雙引號中的內(nèi)容而言,取ANSI表示為變量,

5、取表示為變量,取SAS表示為字表示為字符,默認(rèn)值取符,默認(rèn)值取SAS數(shù)據(jù)操作語句vSql過程數(shù)據(jù)操作語句是對數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫中的表進(jìn)行操作的語句,可以實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)集或表、創(chuàng)建索引、更新數(shù)據(jù)集或表等功能。v表6-4 常用數(shù)據(jù)操縱語句數(shù)據(jù)操作語句數(shù)據(jù)操作語句功功 能能create table創(chuàng)建關(guān)系數(shù)據(jù)庫中的表或創(chuàng)建關(guān)系數(shù)據(jù)庫中的表或SAS數(shù)據(jù)集數(shù)據(jù)集create index創(chuàng)建索引,對大表可以提高查詢速度創(chuàng)建索引,對大表可以提高查詢速度create view創(chuàng)建視圖創(chuàng)建視圖select查詢關(guān)系數(shù)據(jù)庫中的表或查詢關(guān)系數(shù)據(jù)庫中的表或SAS數(shù)據(jù)集的信息數(shù)據(jù)集的信息delete刪除關(guān)系數(shù)據(jù)庫中的表或刪

6、除關(guān)系數(shù)據(jù)庫中的表或SAS數(shù)據(jù)集中的行記錄數(shù)據(jù)集中的行記錄alter table對表或數(shù)據(jù)集的列變量進(jìn)行修改、加入列或刪除列對表或數(shù)據(jù)集的列變量進(jìn)行修改、加入列或刪除列drop刪除表、視圖或索引刪除表、視圖或索引Insert into插入觀測記錄插入觀測記錄update更新表或數(shù)據(jù)集中的對應(yīng)列值更新表或數(shù)據(jù)集中的對應(yīng)列值describe顯示表或視圖的定義信息顯示表或視圖的定義信息connect to建立與關(guān)系數(shù)據(jù)庫的連接建立與關(guān)系數(shù)據(jù)庫的連接disconnect from斷開與關(guān)系數(shù)據(jù)庫的連接斷開與關(guān)系數(shù)據(jù)庫的連接創(chuàng)建表語句與應(yīng)用實(shí)例vSql過程可以通過create語句創(chuàng)建新數(shù)據(jù)集或連接數(shù)據(jù)庫

7、在數(shù)據(jù)庫里創(chuàng)建表,通過以下三種方式創(chuàng)建表。v1.基本語句創(chuàng)建表v基本語句創(chuàng)建表是根據(jù)數(shù)據(jù)屬性定義表名、列名和列具有的屬性。v語法格式: create table 表名 (column_1 屬性,column_2 屬性,column_3 屬性n)v表6-5 基本語句創(chuàng)建表說明語句項(xiàng)語句項(xiàng)說說 明明 create table告訴告訴SAS系統(tǒng)創(chuàng)建表系統(tǒng)創(chuàng)建表表表 名名給創(chuàng)建的表起名字給創(chuàng)建的表起名字Column_1 至至column_n定義表中的列名定義表中的列名屬性屬性定義列名具有的數(shù)據(jù)類型,可取的屬性如定義列名具有的數(shù)據(jù)類型,可取的屬性如char、character、date、dec、deci

8、mal、float、int、integer、num、numeric、real等等vSAS系統(tǒng)通過基本語句創(chuàng)建表,實(shí)際是創(chuàng)建了一個(gè)新數(shù)據(jù)集,叫法不同意義相同,這個(gè)數(shù)據(jù)集只有數(shù)據(jù)集結(jié)構(gòu),也可以稱為表結(jié)構(gòu),沒有數(shù)據(jù)記錄。查詢語句創(chuàng)建表v通過查詢語句創(chuàng)建表實(shí)際上是復(fù)制查詢語句指定列的列名和對應(yīng)列的數(shù)據(jù)到新表中,相當(dāng)于數(shù)據(jù)集的復(fù)制,這與數(shù)據(jù)步中復(fù)制數(shù)據(jù)集相比更靈活,可以選擇任意列。查詢語句創(chuàng)建表的語法格式vCreate table 表名 as select column 1, column 2, column n from 表名 ;vas: 關(guān)鍵字,必選項(xiàng)。vselect column 1, colum

9、n 2, column n from 表名:v查詢語句,建立的新表取查詢語句中的字段。v:根據(jù)某條件查詢符合要求的數(shù)據(jù)復(fù)制到v所創(chuàng)建的新表中。注意v如果只需要查詢表的表結(jié)構(gòu),則只需在查詢語句中加入“where 1=2”條件語句,告訴SAS系統(tǒng)只復(fù)制表結(jié)構(gòu)。v語法:create table 表名 as select column 1,vColumn 2,column n from 表名 where 1=2;Like 語句創(chuàng)建新表結(jié)構(gòu)v語法格式: create table 表名 like 已存在表名;vLike:關(guān)鍵字,表示只復(fù)制表結(jié)構(gòu)。v已存在表名: 已經(jīng)建立的表名。v【注意】like語句只是創(chuàng)

10、建表結(jié)構(gòu),不復(fù)制數(shù)據(jù)集數(shù)據(jù)。創(chuàng)建索引語句與應(yīng)用實(shí)例v對于數(shù)據(jù)量比較大的表,為提高查詢速度,sql過程中可以通過創(chuàng)建索引語句對大數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫中的表創(chuàng)建索引。v【注意】創(chuàng)建的索引是要占用存儲空間的,需要定期維護(hù)成本,對于數(shù)據(jù)量比較小的表和經(jīng)常對表進(jìn)行插入、更新或刪除操作的表,盡量不要?jiǎng)?chuàng)建索引。創(chuàng)建索引要具體情況具體分析,并不是什么表度適合創(chuàng)建索引。對于與外部關(guān)系數(shù)據(jù)庫結(jié)合的,要先建立邏輯庫或連接語句建立SAS與關(guān)系數(shù)據(jù)庫的連接通道,才能對關(guān)系數(shù)據(jù)庫中的表創(chuàng)建索引。創(chuàng)建簡單索引v對表創(chuàng)建簡單索引,是指只對表中的一個(gè)列創(chuàng)建索引,此索引的索引名必須與列名相同。v語法格式:create index

11、索引名 on 表名(列名);v【注意】索引名必須以列名命名,只取表中的一個(gè)列。建立復(fù)合索引v所謂復(fù)合索引是指對一個(gè)表中的多個(gè)列建立索引,此索引的索引名不依賴單個(gè)列,可以自己定義索引名。v語法格式: create index 索引名 on 表名 (column 1,);v【注意】創(chuàng)建復(fù)合索引時(shí)對所要建立索引的v表至少取兩個(gè)列。創(chuàng)建視圖語句與應(yīng)用實(shí)例v對于一些機(jī)密數(shù)據(jù)有些語句可以給用戶看,有些不需要用戶看到,可以通過視圖訪問,將用戶需要的查詢信息封裝到視圖表中。視圖其實(shí)是一張?zhí)摫?,不占用存儲空間,具有表的特性。語法格式vCreate view 視圖名 AS 查詢語句 ;vCreate view:

12、創(chuàng)建視圖的關(guān)鍵語句。v視圖名:認(rèn)為定義的視圖名稱,遵守變量命名規(guī)范。vAs: 關(guān)鍵字。v查詢語句:select語句的應(yīng)用。v: 查詢的語句是外部關(guān)系數(shù)據(jù)庫中的表,需要通過此邏輯庫語句建立SASv與關(guān)系數(shù)據(jù)庫的連接。1.對查詢數(shù)據(jù)集信息建立視圖v為節(jié)省存儲,可以對大數(shù)據(jù)量的查詢建立視圖形式的訪問形式。v語法格式: create view 視圖名 as select column 1, column 2,column n from 數(shù)據(jù)集名 ;v【注意】where語句的過濾條件遵守where條件的語法。2.訪問外部關(guān)系數(shù)據(jù)庫創(chuàng)建視圖v對于訪問外部關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)信息,需要先通過SAS邏輯庫這座橋

13、,建立SAS與關(guān)系數(shù)據(jù)庫的連接。v語法格式:create view 視圖名 asvSelect column 1,column 2,column n fromv邏輯庫名.表名 vUsing libname 邏輯庫名 oracle user=登錄數(shù)據(jù)庫用戶名 pass=登錄數(shù)據(jù)庫密碼 path=數(shù)據(jù)庫實(shí)例;v【語法解讀】通過using語句中指明的邏輯庫信息,建立與oracle數(shù)據(jù)庫的連接,通過二級連接方式讀取所登錄的數(shù)據(jù)庫中的表,以此查詢信息建立視圖。查詢語句與應(yīng)用實(shí)例v查詢語句是sql語言中使用頻率最高的,也是最靈活、最具有發(fā)揮思維的語言。Select語句可以實(shí)現(xiàn)對數(shù)據(jù)集和關(guān)系數(shù)據(jù)庫中的表進(jìn)行

14、數(shù)據(jù)查詢,查詢語句中可以使用函數(shù),可以對單表和多表進(jìn)行組合查詢,同時(shí)查詢語句中還可以使用子查詢。v語法格式:Select object-itme into macro_variablefrom from_list ;語法解讀v查詢語句查詢表或視圖的所有信息,語法格式為:vSelect * from from_list v查詢語句查詢表或視圖指定列消息,若去掉重復(fù)記錄可在列名前加“distinct”關(guān)鍵字,語法格式為:vSelect column 1 from_list ;v表 6-6 from_list 可取選項(xiàng)From_list可取選項(xiàng)可取選項(xiàng) 說說 明明表名表名 表表別名別名指定查詢表名,

15、可以通過指定查詢表名,可以通過as語句給表指語句給表指定別名定別名視圖名視圖名視圖別名視圖別名指定查詢視圖名,可以通過指定查詢視圖名,可以通過as語句給視語句給視圖指定別名圖指定別名Join_table指定表與表的關(guān)聯(lián),如內(nèi)連接、左連接和指定表與表的關(guān)聯(lián),如內(nèi)連接、左連接和自連接自連接Connectionto指定與關(guān)系數(shù)據(jù)庫表的連接指定與關(guān)系數(shù)據(jù)庫表的連接v表 6-7 查詢條件可取選項(xiàng)v【注意】查詢條件有嚴(yán)格的順序,如果有多個(gè)條件,按上面所列順序執(zhí)行。查詢語句只在最后語句結(jié)束時(shí)加一個(gè)分號“;”,表示查詢語句結(jié)束。查詢條件可取選項(xiàng)查詢條件可取選項(xiàng) 說說 明明where指定查詢語句的過濾條件指定查

16、詢語句的過濾條件Group by指定查詢表或視圖的分組列指定查詢表或視圖的分組列having根據(jù)指定條件對數(shù)據(jù)分組,與根據(jù)指定條件對數(shù)據(jù)分組,與group by一起使用一起使用Order by指定排序列,可以降序也可以升序,默認(rèn)升序指定排序列,可以降序也可以升序,默認(rèn)升序單表查詢v只對一個(gè)表通過查詢語句查詢表或視圖的信息.v語法格式:select | from 表名|視圖名;v【注意】|:只能取其一,查詢整個(gè)表或視圖取 “*”,按指定列名查詢時(shí)去掉“*”,為互斥項(xiàng)。Where語句vWhere語句屬于過濾語句,對查詢語句根據(jù)where語句指定的條件過濾數(shù)據(jù),選擇符合條件的數(shù)據(jù)輸出。v語句語法格式

17、:where 條件語句Group by語句vGroup by 語句指定分組列,對數(shù)據(jù)集及表中的記錄按某一列分組,同時(shí)可以使用匯總函數(shù)對分組匯總,多個(gè)分組列以空格分隔。v語法格式: group by 列名 1Having語句vHaving語句和where語句很相似,having語句可以實(shí)現(xiàn)對分組的數(shù)據(jù)按條件過濾,一般和group by 語句一起使用,放在group by 語句后面。如果沒有g(shù)roup by 語句, 此處having語句就相當(dāng)于where語句的功能。Having語句和where語句區(qū)別Having語句Where語句對所分組設(shè)置條件對數(shù)據(jù)集或表中數(shù)據(jù)設(shè)置過濾條件與group by語句

18、連用時(shí)放其后面與group by語句連用時(shí)放其前面無group by語句時(shí)與where語句功能相同Group by語句對where語句沒有限制Order by 語句vOrder by 語句對查詢數(shù)據(jù)集或視圖信息按order by 語句指定列降序或升序輸出查詢信息。v語法格式:order by 列名 1vv【注意】默認(rèn)是“asc”升序,降序把列指定為“desc”,每個(gè)order by語句中指定的列可以設(shè)置升/v 降序,只取其中一個(gè)排序方式。多表查詢v多表查詢實(shí)際是查詢語句一次對多個(gè)表或數(shù)據(jù)集進(jìn)行查詢操作,可以根據(jù)需求實(shí)現(xiàn)表關(guān)聯(lián)的查詢,表與表的自連接、左連接、右連接和內(nèi)連接等方式。常用連接方式連接

19、方式連接方式 說說 明明自連接表或數(shù)據(jù)集自身和自身連接,通過起別名方式內(nèi)連接表或數(shù)據(jù)集根據(jù)條件實(shí)現(xiàn)內(nèi)部關(guān)聯(lián)連接,自連接屬于此類外連接包括左外連接、右外連接和全外連接其他連接如cross連接、union連接和natural連接多個(gè)查詢的合并v對于多個(gè)查詢語句查詢輸出的信息,可以通過合并語句對查詢信息進(jìn)行合并,生成一個(gè)數(shù)據(jù)集或表。v多個(gè)查詢的結(jié)果可以合并生成新的查詢結(jié)果輸出。多個(gè)查詢輸出合并語句語句語句 功功 能能union多個(gè)查詢輸出結(jié)果通過union合并查詢,去掉重復(fù)數(shù)據(jù)intersect求多個(gè)查詢結(jié)果的交集,即公共部分except取查詢結(jié)果的差集,輸出結(jié)果為第一個(gè)查詢?nèi)サ舻诙€(gè)查詢的結(jié)果,可

20、以把公共部分過濾掉Outer union對多個(gè)查詢輸出結(jié)果橫向合并,橫向合并查詢輸出。刪除語句vSql結(jié)構(gòu)化查詢語言通過delete 語句可以刪除數(shù)據(jù)集或表中的數(shù)據(jù),通過drop 語句可以刪除表、索引或視圖.v【注意】delete 語句只是刪除表或數(shù)據(jù)集中的數(shù)據(jù),表結(jié)構(gòu)是存在的,而drop語句刪除表、視圖或索引時(shí)是全刪除,數(shù)據(jù)和表結(jié)構(gòu)都被刪除,不能恢復(fù)。deleteDelete語句只是刪除數(shù)據(jù)集或表中的記錄語句只是刪除數(shù)據(jù)集或表中的記錄dropDrop語句刪除表、視圖或索引,是全刪除,不能恢復(fù)Delete語句vDelete語句一般后面跟where語句,根據(jù)where語句中的條件刪除觀測記錄。v

21、語法格式: delete from 表名 ;vDelete from: 刪除語句的關(guān)鍵字,必選項(xiàng)。v表名:要?jiǎng)h除的表名稱。v: 根據(jù)條件刪除表中的記錄,可選項(xiàng),不加時(shí)刪除表中所有的記錄。Drop語句vDrop語句刪除表、視圖或索引時(shí)是全刪除,數(shù)據(jù)和表結(jié)構(gòu)都被刪除,刪除后無法恢復(fù),用詞語句時(shí)一定要慎重。v語法格式: drop table 表名|視圖名|索引;vDrop table: 刪除語句的關(guān)鍵字。v表名|視圖名|索引:這三個(gè)選項(xiàng)根據(jù)需求選擇。修改表語句vSql結(jié)構(gòu)化查詢語言中修改表語句可以更靈活地修改表中字段的屬性,實(shí)現(xiàn)給列改名稱、加約束、刪除列、刪除外鍵、刪除主鍵等功能。v語法格式:alt

22、er table 表名 選項(xiàng)語句;v修改表語句根據(jù)需求可以在“alter table 表名”v語句后選擇下表所列選項(xiàng)語句。v表6-14 選項(xiàng)語句選項(xiàng)語句選項(xiàng)語句 功功 能能Add constraint 約束名 條件為表加入約束,如主鍵約束、外鍵約束Add 新列名 定義類型 其他條件 為表加入一個(gè)新列,新列要定義列類型Drop constraint 約束名刪除表中的約束,多個(gè)約束以逗號分隔Drop 列名刪除表中指定的列,多個(gè)列用逗號分隔Drop foreign key 外鍵約束名刪除表中具有的外鍵約束Drop primary key cascade刪除表中具有的主鍵Modify 列名 修改類型定

23、義對表中的列可以修改輸入格式和輸出格式,可以加入標(biāo)簽,不能改列名插入語句vSql過程可以通過insert into 語句向數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫中的表插入數(shù)據(jù)。v語法格式: insert into 數(shù)據(jù)集名| 數(shù)據(jù)庫中表名v(對應(yīng)變量名) values (插入的對應(yīng)變量數(shù)據(jù));vInsert into:插入語句關(guān)鍵字。v數(shù)據(jù)集名|數(shù)據(jù)庫中表名:任選其一,如果是數(shù)據(jù)庫中表名,要建立數(shù)據(jù)庫連接邏輯庫。vValues:插入語句值關(guān)鍵字。v插入的對應(yīng)變量數(shù)據(jù):指定插入的數(shù)據(jù)值。更新語句vSql過程可以通過update語句根據(jù)條件更新符合條件的數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫中表的記錄。v語法格式: update 表名

24、set clomn_1= 或;vUpdate: 關(guān)鍵字,必選項(xiàng)。v表名:要更新的表名稱。vSet: 關(guān)鍵字,必選項(xiàng)。vClomn_1= 或:更新列名或?qū)?yīng)的值,如果同一個(gè)條件更新多個(gè)列,列與列之間用逗號分隔就可以。v: 可選項(xiàng),根據(jù)條件更新時(shí)需要加條件語句.顯示表定義信息語句v對創(chuàng)建好的表、數(shù)據(jù)集或視圖,可以通過describe語句顯示表的定義信息。v語法:describe table 表名|數(shù)據(jù)集名|視圖名;vdescribe table:顯示表、數(shù)據(jù)集或視圖定義信息的關(guān)鍵字語句。v表名|數(shù)據(jù)集名|視圖名:顯示對象,任取一類。SAS與關(guān)系數(shù)據(jù)庫的連接和斷開語句vSAS除了通過邏輯庫方式連接o

25、racle數(shù)據(jù)庫外,還有另一種方式,通過connect to語句連接數(shù)據(jù)庫,即通過disconnect from語句斷開與關(guān)系數(shù)據(jù)庫的連接。v連接語法格式:Connect to oracle (連接數(shù)據(jù)庫定義語句)v斷開數(shù)據(jù)庫連接語法格式:disconnect from oracle;語法解讀vConnect to: 連接數(shù)據(jù)語句關(guān)鍵字,后面的oracle是告訴SAS系統(tǒng)連接的是oracle庫引擎。v連接數(shù)據(jù)庫定義語句:指登錄數(shù)據(jù)庫的信息,如用戶名、密碼、數(shù)據(jù)庫實(shí)例。vDisconnect from oracle:指明與當(dāng)前oracle數(shù)據(jù)庫斷開交互。Sql過程與oracle數(shù)據(jù)庫連接vSql

26、過程無論連接哪個(gè)類型的數(shù)據(jù)庫,都需要v通過定義邏輯庫或定義連接數(shù)據(jù)庫的宏變量作為橋梁,實(shí)現(xiàn)sql過程與數(shù)據(jù)庫的溝通。vSAS建立與oracle 數(shù)據(jù)庫的連接接口可以通過創(chuàng)建邏輯庫或定義宏變量兩種方式。此處v建立的邏輯庫或定義的宏變量實(shí)現(xiàn)了SAS與oracle 數(shù)據(jù)庫連接的通道。SAS建立與oracle數(shù)據(jù)庫連接方式v1.建立邏輯庫連接數(shù)據(jù)庫語法vLibname 邏輯庫名 oracle user=登錄數(shù)據(jù)庫用戶名 password=登錄數(shù)據(jù)庫密碼 path=數(shù)據(jù)庫實(shí)例;v2.定義宏變量連接數(shù)據(jù)庫語法v%let 宏變量=user=登錄數(shù)據(jù)庫用戶名 password=登錄數(shù)據(jù)庫密碼 path=數(shù)據(jù)庫

27、實(shí)例;SAS建立與oracle數(shù)據(jù)庫連接方式v創(chuàng)建SAS邏輯庫連接oracle數(shù)據(jù)庫接口:vLibname dz oracle user=chiran password=chiran path=orcl;v/*建立與數(shù)據(jù)庫連接的邏輯庫*/v定義宏變量創(chuàng)建SAS與oracle數(shù)據(jù)庫連接的接口:v% let dz_cnt=user=chiran password=chiran path=orcl;v/*定義宏變量建立與數(shù)據(jù)庫連接的變量*/Select語句綜合應(yīng)用vSAS系統(tǒng)中sql過程中select語句查詢關(guān)系數(shù)據(jù)庫oracle中的表信息,是先通過邏輯庫或數(shù)據(jù)庫連接宏變量建立與關(guān)系數(shù)據(jù)庫oracl

28、e的連接,然后SAS系統(tǒng)的select語句交給關(guān)系數(shù)據(jù)庫執(zhí)行,實(shí)現(xiàn)對數(shù)據(jù)庫中表的信息查詢??梢愿鶕?jù)條件實(shí)現(xiàn)查詢,滿足業(yè)務(wù)需求。在關(guān)系數(shù)據(jù)庫中,select語句是必須掌握ide,通過select語句的靈活運(yùn)用可以實(shí)現(xiàn)對復(fù)雜業(yè)務(wù)的處理。數(shù)據(jù)庫表中的字段值賦值給定義的宏變量vSAS語言中定義宏變量可以把從數(shù)據(jù)庫中取出的數(shù)據(jù)存儲到宏變量中,通過宏變量可以利用數(shù)據(jù)庫中的數(shù)據(jù)。v宏變量定義:%let 宏變量名;v查詢語句中引用宏變量語句: :宏變量名v【注意】查詢語句中引用宏變量名要加冒號“:”數(shù)據(jù)庫查詢出來的值賦值給數(shù)據(jù)集中的變量數(shù)據(jù)庫查詢出來的值賦值給數(shù)據(jù)集中的變量v數(shù)據(jù)集中的變量引用數(shù)據(jù)庫中變量數(shù)據(jù)的具體方法如下:v(1)通過sql過程中的select語句把數(shù)據(jù)庫中查詢出來的變量數(shù)據(jù)賦值給宏變量。v(2)在數(shù)據(jù)集中通過length語句定義新的變量,v語法格式為:length 變量名 定義變量類型;v(3)通過“&”符號引用宏變量,賦值給length語句中定義的宏變量,語法格式為:v變量名=&宏變量名;注意v數(shù)據(jù)如果為日期類型,引用宏變量值要加雙引號“,”同時(shí)加字母d(d取date的第一個(gè)字母),dt表示日期時(shí)間。v變量名=“&宏變量名”Sql過程索引應(yīng)用v在關(guān)系數(shù)據(jù)庫中查詢大表需要建立索引提高查詢速度,對于關(guān)系數(shù)據(jù)庫中的分區(qū)表可以根據(jù)分區(qū)建立索引,實(shí)現(xiàn)按分區(qū)

溫馨提示

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

評論

0/150

提交評論