一。概述:
SQL(Structure Query Language,結(jié)構(gòu)化查詢語(yǔ)言)是美國(guó)國(guó)家標(biāo)準(zhǔn)局ANSI確認(rèn)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的標(biāo)準(zhǔn),用于對(duì)關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行存儲(chǔ),查詢及更新等操作。正是由于SQL語(yǔ)言的標(biāo)準(zhǔn)化,所以大多數(shù)關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)都支持SQL語(yǔ)言,它已經(jīng)發(fā)展成為多種平臺(tái)進(jìn)行交互操作的底層會(huì)話語(yǔ)言。
SQL語(yǔ)言也可應(yīng)用于VFP中,VFP中的SQL命令采用Rushmore技術(shù)來(lái)優(yōu)化系統(tǒng)的性能。一個(gè)SQL命令可以用來(lái)代替多個(gè)VFP命令
前面用"查詢?cè)O(shè)計(jì)器"和"視圖設(shè)計(jì)器"所做的工作,本質(zhì)上都是生成一個(gè)select-sql命令。單擊"查詢?cè)O(shè)計(jì)器"中的SQL按鈕,即可隨時(shí)查看VFP在后臺(tái)建立的SQL命令。
二。SQL語(yǔ)言的功能:
SQL語(yǔ)言為用戶提供了以下功能:數(shù)據(jù)定義,數(shù)據(jù)檢索,數(shù)據(jù)操縱和數(shù)據(jù)控制。
SQL語(yǔ)言是一種交互式的計(jì)算機(jī)操作語(yǔ)言,也是一種數(shù)據(jù)庫(kù)編程語(yǔ)言,它不僅能夠在單機(jī)環(huán)境下提供對(duì)數(shù)據(jù)庫(kù)的各種訪問(wèn)操作,而且還可做為一種分布式數(shù)據(jù)庫(kù)語(yǔ)言用于客戶機(jī)/服務(wù)器模式(Client/Server)數(shù)據(jù)庫(kù)應(yīng)用程序的開發(fā)。我們這里主要介紹select-sql查詢語(yǔ)句。
三。select-sql查詢命令:
數(shù)據(jù)庫(kù)中的數(shù)據(jù)查詢最終總是通過(guò)select-sql命令進(jìn)行。select-sql命令主要格式為:
select [all|distinct]列名[,列名] from 表名[,表名][into array 數(shù)組名/cursor 臨時(shí)表名/dbf表名]
[where 條件表達(dá)式][group by 列名[,列名][having 條件]][order by 表達(dá)式[asc/desc]
說(shuō)明:
1.select查詢語(yǔ)句的格式主要有select子句,from子句,into子句和to子句,where子句,group by 子句和order by子句。
2.select 子句指明查詢輸出的項(xiàng)目(稱為列)也可以是表達(dá)式。利用表達(dá)式可以查詢表中未直接存儲(chǔ)但可以由表中數(shù)據(jù)計(jì)算出的結(jié)果。為了構(gòu)造表達(dá)式,SQL提供了加(+),減(-),乘(*),除(/)四種運(yùn)算符和一些函數(shù)。
3.在表達(dá)式中,若以*代替列名,則表示查詢表的所有列。
4.from子句指明被查詢的表名或視圖名
5.into子句指明查詢結(jié)果保存在何處,可以是數(shù)組,臨時(shí)表或表
6.select和from子句是每個(gè)SQL查詢語(yǔ)句所必須的,其他子句是任選的。
7.where子句說(shuō)明查詢的條件。滿足條件的查詢結(jié)果可能不止一個(gè),在select子句中有distinct選項(xiàng),加了這個(gè)選項(xiàng)后,則要求消除查詢結(jié)果中的重復(fù)項(xiàng)
8.group by子句將表按列值分組,列的值相同的分在一組,having后面的子句是選擇組的條件,符合條件的組才能輸出。
9.order by子句可對(duì)查詢結(jié)果按子句中指定的列的值排序,ASC表示長(zhǎng)序,DESC表示降序。
四。select-sql應(yīng)用舉例:
select-sql語(yǔ)句在操作表時(shí),不需要先打開表,即能從表中查詢出數(shù)據(jù)。以下的例子,既可在命令窗口中逐條輸入運(yùn)行,也可以將每個(gè)例子中的代碼存入一個(gè)命令文件中,然后運(yùn)行該命令文件。
1.查詢"職工檔案"表中的全部信息:
select * from 職工檔案 into cursor abc &&將查詢結(jié)果送入臨時(shí)表abc中,*表示全部的列
select abc
brow
2.查詢職工的姓名,對(duì)重名的職工只顯示1次
select distinct 姓名 from 職工檔案
說(shuō)明:使用distinct可以消除重復(fù)的值,這里表示去掉重復(fù)的姓名
3.查詢職工的編號(hào),姓名和年齡
select 編號(hào),姓名,year(date())-year(出生時(shí)間) as 年齡 from 職工檔案
說(shuō)明:select語(yǔ)句后面是列名。列可以是字段,字段組成的表達(dá)式或常數(shù),AS用來(lái)指定查詢結(jié)果中列的標(biāo)題。此處表達(dá)式y(tǒng)ear(date())-year(出生時(shí)間)以"年齡"作為列名顯示。
4. 查詢工資在800元以上的職工的編號(hào),姓名和工資,并按工資由高到低列出
select 編號(hào),姓名,工資 from 職工檔案 where 工資>800 order by 工資 desc
說(shuō)明:
(1)order by子句中的desc是用來(lái)指明顯示結(jié)果的順序,即工資由高到低輸出。缺省時(shí),以升序(ASC)排序。
(2)where子句用來(lái)指定篩選記錄的條件。有多個(gè)條件時(shí),可用AND或OR連接。
(3)SQL的查詢方式很豐富,它提供了三種謂詞,它們分別是between,in和like.下面幾個(gè)例子說(shuō)明這三種謂詞的使用。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間匯總全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF輔導(dǎo)筆記匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |