SQL語言查詢技術(shù)_第1頁
SQL語言查詢技術(shù)_第2頁
SQL語言查詢技術(shù)_第3頁
SQL語言查詢技術(shù)_第4頁
SQL語言查詢技術(shù)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

SQL語言查詢技術(shù)5.1.1SQL語言概述1、概念SQL是結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)的簡稱,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng);同時(shí)也是數(shù)據(jù)庫腳本文件的擴(kuò)展名。

2、發(fā)展歷史1974年,在IBM公司圣約瑟研究實(shí)驗(yàn)室研制的大型關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR中,使用SEQUEL語言(由BOYCE和CHAMBERLIN提出),后來在SEQUEL的基礎(chǔ)上發(fā)展了SQL語言。3、語言特點(diǎn)一體化:SQL集數(shù)據(jù)定義DDL、數(shù)據(jù)操縱DML和數(shù)據(jù)控制DCL于一體,可以完成數(shù)據(jù)庫中的全部工作。使用方式靈活:它具有兩種使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主語言中使用。非過程化:只提操作要求,不必描述操作步驟,也不需要導(dǎo)航。使用時(shí)只需要告訴計(jì)算機(jī)“做什么”,而不需要告訴它“怎么做”。語言簡潔,語法簡單,好學(xué)好用:在ANSI標(biāo)準(zhǔn)中,只包含了94個(gè)英文單詞,核心功能只用6個(gè)動(dòng)詞,語法接近英語口語。5.1.2SELECT-SQL查詢命令

SQL語句主要內(nèi)容SELECT列表項(xiàng)FROM子句INTO和TO子句WHERE子句GROUPBY子句ORDERBY子句UNION子句SELECT列表項(xiàng)FROM子句用于指明查詢輸出的項(xiàng)目,可以是字段、表達(dá)式。利用表達(dá)式可以查詢表中未直接存儲(chǔ)但可以通過計(jì)算出來的結(jié)果表達(dá)式可以為變量、常量、函數(shù)及它們的組合,特別是字段函數(shù)及其組合可以實(shí)現(xiàn)功能十分強(qiáng)大的查詢和統(tǒng)計(jì)操作指明被查詢的自由表、數(shù)據(jù)庫表或試圖名,及其之間的聯(lián)接狀況SELECT列表項(xiàng)和FROM子句是每個(gè)每個(gè)SQL查詢語句所必須的,其他子句則是根據(jù)需要可選SELECT*

FROM*WHERE子句指明查詢的連接條件或篩選條件jsjh,jsxm,glFROMjs;WHERE

gl>=10andgl<=15;(查詢工齡在10~15之間的教師的工號(hào)、姓名、年齡)滿足條件的查詢結(jié)果不止一個(gè)時(shí),在SELSCT列表項(xiàng)中若有DISTINCT可選項(xiàng),則可消除查詢結(jié)果中的重復(fù)項(xiàng)SELECTDISTINCTzydhFROMxs

(查詢學(xué)生中所有的專業(yè)代號(hào),重名的專業(yè)代號(hào)只顯示一次)TOPn[PERCENT]為輸出的最前面的n條記錄,若有PERCENT可選項(xiàng),則可指定輸出百分之幾的記錄,但TOP語句必須與ORDERBY子句結(jié)合INTO和TO子句INTO子句指明查詢結(jié)果保存何處,可以是數(shù)組、臨時(shí)表或表TO子句指明查詢結(jié)果輸出到何處,可以是文本文件、打印機(jī)或VFP窗口若同一個(gè)查詢語句中同時(shí)包括INTO和TO子句,則TO子句不起作用,若卻INTO和TO子句,則默認(rèn)輸出到瀏覽窗口5.1.3SELECT-SQL應(yīng)用舉例一、單表查詢二、多表查詢?nèi)⒔y(tǒng)計(jì)處理四、嵌套查詢五、聯(lián)合查詢六、別名與自連接查詢單表查詢查詢?nèi)啃畔?/p>

例:查詢xs表中的全部信息命令:

SELECT

*FROM

xs

符號(hào)*表示選定表的全部字段不包括重復(fù)信息例:查詢學(xué)生中所有的專業(yè)代號(hào),對于重名的專業(yè)代號(hào)只顯示1次。命令:SELECTDISTINCTzydhFROMxs

使用DISTINCT可消除重復(fù)的值。輸出字段表達(dá)式例:查詢學(xué)生的學(xué)號(hào)、姓名和年齡命令:SELECTxsxhas學(xué)號(hào),xsxmas姓名,YEAR(DATE())YEAR(csrq)as年齡;FROMxs

表達(dá)式as列名,表達(dá)式可以是常量、變量、函數(shù)及它們的組合,列表名用來指定查詢結(jié)果中列表項(xiàng)的標(biāo)題。記錄的篩選處理例:查詢工齡在10~15年之間(包括10年和15年的)教師的工號(hào)、姓名和工齡。命令:SELECTjsgh,jsxm,glFROMjs;WHEREgl>=10andgl<=15WHERE子句用來指定篩選記錄的條件,有多個(gè)條件時(shí),可用AND或OR連接也可用下列語句實(shí)現(xiàn)

SELECTjsgh,jsxm,glFROMjs;

WHEREglBETWEEN10AND15;

ORDERBYDESC

在查詢中,若要求某列的數(shù)值在某個(gè)區(qū)間內(nèi),可用BETWEEN...AND...表示;反之不在區(qū)間內(nèi)則用NOTBETWEEN...AND...查詢結(jié)果的排序例:查詢工齡在10~15年之間(包括10年和15年的)教師的工號(hào)、姓名和工齡,并按工齡由高到低列出。命令:SELECTjsgh,jsxm,glFROMjs;WHEREglIN(10,11,12,13,14,15);ORDERBYglDESC選項(xiàng)DESC表示由大到小輸出。缺省情況下,以升序排序輸出查詢結(jié)果。在查詢中,經(jīng)常會(huì)遇到要求表的列表是某幾個(gè)值中的一個(gè),這時(shí)可用IN表示。同時(shí)使用NOTIN表示與之相反的含義。多表查詢在日常中,往往要涉及多個(gè)表之間的關(guān)聯(lián)查詢。SQL語言提供了連接多個(gè)表的操作,可以在兩個(gè)表之間按指定列的值將一個(gè)表中的行與另一個(gè)表中的行連接起來,從而大大增強(qiáng)其查詢能力。例:查詢學(xué)生的學(xué)號(hào)、姓名、課程、成績、并按學(xué)號(hào)排升序。使用WHERE子句的篩選條件如下:

SELECTXs,xsxh,Xs,xsxh,Kc,kcmc,Cj.cj;

FROM

xs,cj,kc;

WHEREXS,xsxh=cj.xsxh

AND

Cj.kcdh=kc.kcdh

ORDERBY

Xs.xsxh使用FROM子句的鏈接條件實(shí)現(xiàn)如下:

SELECTXs,xsxh,Xs.xsxm,Kc,kcmc,Cj.cj;

FROMxsINNERJOINcjINNERJOINkc;

ONCj.kcdh=Kc.kcdhONXs.xsxh;

ORDERBYXs.xsxh對于上述查詢,按學(xué)號(hào)相等聯(lián)接學(xué)生表和成績表,按課程號(hào)相

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論