亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        在VFP中利用SQL快速實(shí)現(xiàn)信息處理

        2007-12-31 00:00:00劉蘭芳
        計(jì)算機(jī)時(shí)代 2007年8期

        摘要:基于Visual FoxPro(VFP)和Structured Query Language(SQL)編程的應(yīng)用實(shí)踐,文章闡述了SQL的工作原理,并從數(shù)據(jù)查詢、數(shù)據(jù)表聯(lián)接、數(shù)據(jù)更新、數(shù)據(jù)統(tǒng)計(jì)等方面介紹了SQL語(yǔ)言在VFP中的應(yīng)用,給出了具體應(yīng)用實(shí)例,以便于VFP使用者利用SQL實(shí)現(xiàn)數(shù)據(jù)庫(kù)內(nèi)的復(fù)雜信息的快速存儲(chǔ)、自然聯(lián)接和統(tǒng)計(jì)。以及信息的便捷查詢。

        關(guān)鍵詞:Structured Query Language語(yǔ)言;Visual FoxPro;數(shù)據(jù)庫(kù);信息處理

        0 引言

        結(jié)構(gòu)化查詢語(yǔ)言SQL是英文Structured Query Language的縮寫(xiě)。按照美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言,SQL語(yǔ)句可以用來(lái)執(zhí)行各種操作。目前,絕大多數(shù)流行的關(guān)系數(shù)據(jù)管理系統(tǒng)(DBMS),例如Oracle,Sybase,SQL Server,Visual FoxPro等都采用了SQL標(biāo)準(zhǔn)語(yǔ)言。

        如圖1所示,數(shù)據(jù)庫(kù)管理系統(tǒng)是一個(gè)存放信息的數(shù)據(jù)庫(kù)及管理、控制數(shù)據(jù)庫(kù)的軟件系統(tǒng),當(dāng)用戶需要檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),可以通過(guò)SQL語(yǔ)言發(fā)出請(qǐng)求,數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)SQL請(qǐng)求進(jìn)行處理,將按要求所檢索到的數(shù)據(jù)返給用戶。

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

        以下從打開(kāi)數(shù)據(jù)表、表間的聯(lián)接、數(shù)據(jù)查詢等幾方面敘述SQL在VFP中實(shí)現(xiàn)快速信息處理的具體應(yīng)用。

        1 數(shù)據(jù)查詢內(nèi)容豐富、使用簡(jiǎn)單

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

        SELECT * ROM…WHERE…

        SQL數(shù)據(jù)查詢有:“簡(jiǎn)單查詢”、“多表聯(lián)接查詢”、“嵌套查詢”、“特殊運(yùn)算符查詢”“通配符查詢”、“排序查詢”等多種形式,程序語(yǔ)句簡(jiǎn)單,使用起來(lái)方便快捷。

        例如:在“成績(jī)DBF”表中求出選修111101號(hào)課程學(xué)生中成績(jī)比選修141203號(hào)課程的任何學(xué)生的成績(jī)都要高的學(xué)生的學(xué)號(hào)和成績(jī)。

        語(yǔ)句形式為:

        SELECT學(xué)號(hào).成績(jī)FROM成績(jī)WHERE課程號(hào)=“111101”

        and成績(jī)>all;

        (SELECT成績(jī)FROM成績(jī)WHERE課程號(hào)=“141203”)

        2 數(shù)據(jù)表的聯(lián)接

        在進(jìn)行數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)時(shí),為了消除冗余數(shù)據(jù),會(huì)將數(shù)據(jù)分配在不同的表中存儲(chǔ),這樣我們就不可避免地需要同時(shí)從不同的表中檢索數(shù)據(jù)。要想使用一個(gè)查詢從多個(gè)表中返回?cái)?shù)據(jù),就需要清楚這些表中的數(shù)據(jù)之間的關(guān)系,進(jìn)而建立聯(lián)接,只有這樣才能保證從來(lái)源于多表的檢索結(jié)果是正確的。

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

        例如:現(xiàn)有數(shù)據(jù)表A和數(shù)據(jù)表B,兩表的結(jié)構(gòu)和記錄已知。請(qǐng)用SQL語(yǔ)句對(duì)它們進(jìn)行四種聯(lián)接。

        內(nèi)部聯(lián)接(Inner Join):

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

        左聯(lián)接(Left Join):

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

        右聯(lián)接(Right Join):

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

        完全聯(lián)接(Full Join):

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

        3 數(shù)據(jù)存儲(chǔ)規(guī)范及數(shù)據(jù)更新方便簡(jiǎn)捷

        在數(shù)據(jù)庫(kù)編程中,常常需要將大量的數(shù)據(jù)存儲(chǔ)。SQL語(yǔ)句有下列五種形式的數(shù)據(jù)存儲(chǔ)語(yǔ)句:

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

        TO PRINTER

        INTO ARRAY語(yǔ)句可以將一個(gè)查詢結(jié)果存放到一個(gè)二維數(shù)組中;INTO CURSOR語(yǔ)句可以將一個(gè)查詢結(jié)果存放到臨時(shí)數(shù)據(jù)表文件中,可以像數(shù)據(jù)表一樣瀏覽其中的記錄。當(dāng)關(guān)閉表時(shí)將自動(dòng)刪除;INTO TABLEIDBF將查詢結(jié)果存放到永久表中;TO FILE將查詢結(jié)果存放到文本文件中;TO PRINTER將查詢結(jié)果直接輸出到打印機(jī)。

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

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

        UPDATE(SELECT成績(jī).學(xué)號(hào),成績(jī).總分,英語(yǔ).姓名,英語(yǔ).考分,英語(yǔ).標(biāo)記From成績(jī)Inner Join英語(yǔ)On成績(jī).學(xué)號(hào)=英語(yǔ).學(xué)號(hào))SET成績(jī).總分=成績(jī).總分+英語(yǔ).考分,成績(jī)。標(biāo)記=1,英語(yǔ).標(biāo)記=1

        4 數(shù)據(jù)統(tǒng)計(jì)多功能融為一體

        統(tǒng)計(jì)同樣是數(shù)據(jù)庫(kù)編程中常用的功能之一。在VisualFoxPro中對(duì)數(shù)據(jù)表的統(tǒng)計(jì)工作用到了三條語(yǔ)句(COUNT、SUM、AVERAGE)和兩個(gè)函數(shù)MAX( )、MIN( ),功能分散。在SQL語(yǔ)句中不再將它們作為語(yǔ)句和函數(shù)分開(kāi),而是作為參數(shù)使用。這樣一來(lái)就可以把數(shù)據(jù)統(tǒng)計(jì)放在一條語(yǔ)句中來(lái)完成,使數(shù)據(jù)統(tǒng)計(jì)工作實(shí)現(xiàn)了融合。

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

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

        FROM英語(yǔ)

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

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

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

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

        亚洲人成在线播放网站| 无码av一区在线观看| 国产高清精品在线二区| 亚洲日本一区二区在线| 国产亚洲一区二区在线观看| 亚洲欧美日韩国产精品专区| 久久久久久久一线毛片| 男女猛烈xx00免费视频试看| 免费看久久妇女高潮a| 久久99中文字幕久久| 女主播国产专区在线观看| 小雪好紧好滑好湿好爽视频| 日本不卡在线视频二区三区| 久久精品国产屋| 中文字幕文字幕视频在线| 中文字幕精品一区二区精品| 中文字幕亚洲乱码熟女在线萌芽| 久久99亚洲综合精品首页| 日韩精品免费视频久久| 午夜免费福利小电影| 国产精品 视频一区 二区三区 | 美女污污网站| 在线观看高清视频一区二区三区| 日韩人妻熟女中文字幕a美景之屋 国产suv精品一区二区四 | 女人体免费一区二区| 91九色精品日韩内射无| 国产在线精品观看一区二区三区| 国产精品成熟老女人| 乱子伦视频在线看| 午夜av内射一区二区三区红桃视 | 久久久久国产精品熟女影院| 午夜亚洲国产精品福利| 中文字幕乱码亚洲三区| 久久国产亚洲高清观看| 欧美日韩国产专区| 日本一二三区在线视频观看| 亚洲人成自拍网站在线观看| 人人妻人人玩人人澡人人爽| 亚洲av午夜福利精品一区二区| 亚洲成人av在线第一页| 免费观看又色又爽又黄的|