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的處理能力,已經成為編程中不可缺少的部分。

主站蜘蛛池模板: 久久精品中文无码资源站| 亚洲欧美极品| 久久夜色精品国产嚕嚕亚洲av| 国产在线精品网址你懂的| 久久五月天综合| 国产精品欧美亚洲韩国日本不卡| 99热在线只有精品| 亚洲天堂网在线播放| 日韩在线欧美在线| 亚洲综合色婷婷| 亚洲高清中文字幕| 亚洲swag精品自拍一区| 午夜小视频在线| 亚洲电影天堂在线国语对白| 免费三A级毛片视频| 亚洲国产成人久久精品软件| 国产美女丝袜高潮| 精品少妇人妻av无码久久| 日本人妻丰满熟妇区| 91亚洲精选| 女人毛片a级大学毛片免费| 99re这里只有国产中文精品国产精品| 国产欧美日韩在线一区| 宅男噜噜噜66国产在线观看| 国产99免费视频| 日本欧美成人免费| 欧美激情二区三区| 一级爆乳无码av| 国产成人夜色91| 好久久免费视频高清| 韩日无码在线不卡| 亚洲欧美自拍视频| 自拍偷拍欧美| 国产夜色视频| 国产成人免费手机在线观看视频| 天天爽免费视频| 亚洲欧洲自拍拍偷午夜色| 91福利免费| 国产精品美女免费视频大全| 国产精品丝袜视频| 丁香五月激情图片| 免费a级毛片18以上观看精品| 国产特级毛片aaaaaaa高清| 欧美曰批视频免费播放免费| 欧美午夜理伦三级在线观看| 国产精品手机在线播放| 天天摸夜夜操| 少妇精品在线| 久热re国产手机在线观看| 色老二精品视频在线观看| 中文字幕在线不卡视频| 国产日韩欧美中文| 精品黑人一区二区三区| 搞黄网站免费观看| 欧美精品另类| 亚洲欧美日韩中文字幕在线一区| 青青操国产视频| 欧美一区二区啪啪| 国产aⅴ无码专区亚洲av综合网| 999国产精品| 婷婷亚洲视频| 久久精品国产精品青草app| 69综合网| 狼友视频国产精品首页| 亚洲欧美精品日韩欧美| 综合成人国产| 国产sm重味一区二区三区| 中文一区二区视频| 青青草欧美| 欧美一级在线| 亚洲精品爱草草视频在线| 亚洲AⅤ永久无码精品毛片| 欧美在线中文字幕| av午夜福利一片免费看| 亚洲AⅤ永久无码精品毛片| 日韩欧美中文| 欧美亚洲激情| 色婷婷视频在线| 女人一级毛片| 91成人免费观看在线观看| 国产成人亚洲毛片| 88av在线|