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