999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在VFP中利用SQL快速實現信息處理

2007-12-31 00:00:00劉蘭芳
計算機時代 2007年8期

摘要:基于Visual FoxPro(VFP)和Structured Query Language(SQL)編程的應用實踐,文章闡述了SQL的工作原理,并從數據查詢、數據表聯接、數據更新、數據統計等方面介紹了SQL語言在VFP中的應用,給出了具體應用實例,以便于VFP使用者利用SQL實現數據庫內的復雜信息的快速存儲、自然聯接和統計。以及信息的便捷查詢。

關鍵詞:Structured Query Language語言;Visual FoxPro;數據庫;信息處理

0 引言

結構化查詢語言SQL是英文Structured Query Language的縮寫。按照美國國家標準協會(ANSI)的規定,SQL被作為關系型數據庫管理系統的標準語言,SQL語句可以用來執行各種操作。目前,絕大多數流行的關系數據管理系統(DBMS),例如Oracle,Sybase,SQL Server,Visual FoxPro等都采用了SQL標準語言。

如圖1所示,數據庫管理系統是一個存放信息的數據庫及管理、控制數據庫的軟件系統,當用戶需要檢索數據庫中的數據時,可以通過SQL語言發出請求,數據庫管理系統對SQL請求進行處理,將按要求所檢索到的數據返給用戶。

盡管查詢數據是SQL的最重要的功能之一,但它絕不僅僅是一個查詢工具,它還為用戶提供了用于控制數據庫管理系統的所有功能,包括數據定義、數據操縱、數據控制等功能。筆者在多年的教學中深深體會到,在VFP中使用SQL語句來處理數據,不僅方便了編程,而且還可以大大提高數據處理的速度。

以下從打開數據表、表間的聯接、數據查詢等幾方面敘述SQL在VFP中實現快速信息處理的具體應用。

1 數據查詢內容豐富、使用簡單

SQL的核心是查詢,其基本語句形式是:

SELECT * ROM…WHERE…

SQL數據查詢有:“簡單查詢”、“多表聯接查詢”、“嵌套查詢”、“特殊運算符查詢”“通配符查詢”、“排序查詢”等多種形式,程序語句簡單,使用起來方便快捷。

例如:在“成績DBF”表中求出選修111101號課程學生中成績比選修141203號課程的任何學生的成績都要高的學生的學號和成績。

語句形式為:

SELECT學號.成績FROM成績WHERE課程號=“111101”

and成績>all;

(SELECT成績FROM成績WHERE課程號=“141203”)

2 數據表的聯接

在進行數據庫結構設計時,為了消除冗余數據,會將數據分配在不同的表中存儲,這樣我們就不可避免地需要同時從不同的表中檢索數據。要想使用一個查詢從多個表中返回數據,就需要清楚這些表中的數據之間的關系,進而建立聯接,只有這樣才能保證從來源于多表的檢索結果是正確的。

在Visual FoxPro中,數據表的聯接是一種等值聯接,即只有滿足聯接條件,相應的結果才會出現在結果表中,并且是采用了“視圖”和“查詢”的方法來解決,這兩種方法也是只有視窗形式,而沒有語句,更不能進行復雜聯接。而SQL語句采用的是自然聯接,大大提升了聯接的功能。其聯接的運算方法是:首先保證一個表中滿足條件的記錄都在結果中,然后將滿足聯接條件的記錄與另一個表的記錄進行聯接,不滿足聯接條件的則應將來自另一個表的屬性值置為空值。SQL語句有四種聯接方式:內部聯接(Inner Join)、左聯接(Left join)、右聯接(RightJoin)、完全聯接(Full Join)。

例如:現有數據表A和數據表B,兩表的結構和記錄已知。請用SQL語句對它們進行四種聯接。

內部聯接(Inner Join):

Select A.Key,B.K from A Inner Join B On A.Key=B.key

左聯接(Left Join):

Select A.Key,B.K from A Left Join B On A.Key=B.key

右聯接(Right Join):

Select A.Key,B.K from A Ringht Join B On A.Key=B.key

完全聯接(Full Join):

Select A.Key,B.K from A Full Join B On A.Key=B.key

3 數據存儲規范及數據更新方便簡捷

在數據庫編程中,常常需要將大量的數據存儲。SQL語句有下列五種形式的數據存儲語句:

INTO ARRAY;INTO CURSOR;INTO TABLEIDBF;TO FILE;

TO PRINTER

INTO ARRAY語句可以將一個查詢結果存放到一個二維數組中;INTO CURSOR語句可以將一個查詢結果存放到臨時數據表文件中,可以像數據表一樣瀏覽其中的記錄。當關閉表時將自動刪除;INTO TABLEIDBF將查詢結果存放到永久表中;TO FILE將查詢結果存放到文本文件中;TO PRINTER將查詢結果直接輸出到打印機。

在數據庫操作中,數據記錄的更新是常有的事。在VisualFoxPro中數據記錄更新是通過自動替換(REPLACE)語句和表間記錄更新(UPDATE)語句實現的。自動替換主要用于單表。其中表間記錄更新的使用形式非常復雜,牽扯到多語句的相互制約,操作中思路很難理頓,必須要考慮到每個表的指針移動情況。SQL語句就省事多了,單表和多表可以一起考慮,其操作非常簡捷。

例如:將“英語DBF”表中的“考分”字段的記錄值加到“成績.DBF”表中的“總分”字段記錄中,同時將這兩個表中涉及到的記錄做標記,用于意外情況的處理(判斷這兩個表在操作中有可能被漏掉的記錄)。SQL語句為:

UPDATE(SELECT成績.學號,成績.總分,英語.姓名,英語.考分,英語.標記From成績Inner Join英語On成績.學號=英語.學號)SET成績.總分=成績.總分+英語.考分,成績。標記=1,英語.標記=1

4 數據統計多功能融為一體

統計同樣是數據庫編程中常用的功能之一。在VisualFoxPro中對數據表的統計工作用到了三條語句(COUNT、SUM、AVERAGE)和兩個函數MAX( )、MIN( ),功能分散。在SQL語句中不再將它們作為語句和函數分開,而是作為參數使用。這樣一來就可以把數據統計放在一條語句中來完成,使數據統計工作實現了融合。

例如:求“英語DBF”表中全班人數、“考分”字段的總分、平均分、最高分、最低分。

SELECT COUNT(*),SUM(考分),AVG(考分),MAX(考分),MIN(考分)

FROM英語

如果要把求得的分值分別保存到變量A、B、C、D、E中的話,可以將上面的語句改寫成:

SELECT COUNT(*)AS A,SUM(考分)AS B,AVG(考分)AS C,

MAX(考分)AS D,MIN(考分)AS E FROM英語5結束語

SQL語言可以直接在Visual FoxPro的命令窗口以人機交互的方式使用,也可以嵌入到程序中。Visual FoxPro應用開發工具已將SQL語言直接嵌入到自身的語言之中,使用起來更加方便。由于SQL中的強大處理功能,極大地豐富了Visual FoxPro的處理能力,已經成為編程中不可缺少的部分。

主站蜘蛛池模板: 国产自在自线午夜精品视频| 在线a网站| 五月婷婷精品| 日韩精品亚洲人旧成在线| 色欲不卡无码一区二区| 亚洲日韩精品伊甸| 麻豆精品国产自产在线| 久久精品人妻中文系列| 91国内视频在线观看| 99九九成人免费视频精品| 四虎亚洲国产成人久久精品| 亚洲综合色婷婷中文字幕| 国产麻豆精品在线观看| 日韩福利在线观看| 国产精品妖精视频| 精品国产免费观看一区| 亚洲色图欧美| 精久久久久无码区中文字幕| 女人av社区男人的天堂| 免费无码网站| 精品无码国产一区二区三区AV| 91久久青青草原精品国产| 一本色道久久88| 精品一區二區久久久久久久網站| 亚洲人成色在线观看| 国产AV无码专区亚洲A∨毛片| 亚洲香蕉伊综合在人在线| a级毛片网| 欧美高清国产| 国产精品午夜电影| 女人天堂av免费| 又猛又黄又爽无遮挡的视频网站 | 播五月综合| 中文字幕av无码不卡免费| 精品少妇三级亚洲| 国产高清国内精品福利| 欧美亚洲欧美| 福利片91| 色哟哟国产精品| 国产精品自在线拍国产电影| 婷婷色一区二区三区| 亚洲精品动漫| 午夜毛片免费观看视频 | 婷婷丁香在线观看| 久久精品91麻豆| 18禁黄无遮挡免费动漫网站| 特级精品毛片免费观看| 国产在线视频导航| 制服丝袜在线视频香蕉| 国内熟女少妇一线天| 99视频精品全国免费品| 国产玖玖视频| 成人亚洲天堂| 亚洲欧美日韩精品专区| 久久九九热视频| 日韩黄色大片免费看| 精品亚洲国产成人AV| 91亚洲国产视频| 91啪在线| 九九热精品在线视频| 亚洲自偷自拍另类小说| 国产成人毛片| 在线看片中文字幕| 国产精品成人第一区| 黄色网站不卡无码| 黄色网在线免费观看| 在线观看欧美国产| 国产午夜福利亚洲第一| 国产精品福利导航| 国产毛片基地| 亚洲欧美日韩中文字幕在线一区| 露脸国产精品自产在线播| 成人免费午间影院在线观看| 婷婷色中文网| 国产精品私拍99pans大尺度| 亚洲永久色| yjizz国产在线视频网| 成人福利在线视频免费观看| 91麻豆国产在线| 无码专区国产精品第一页| 国产凹凸一区在线观看视频| 成AV人片一区二区三区久久|