日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > FoxPro > VFP基礎教程 9.1 sql語言概述

VFP基礎教程 9.1 sql語言概述

來源:程序員人生   發布時間:2014-04-11 00:59:15 閱讀次數:4738次

    一。概述:

    SQL(Structure Query Language,結構化查詢語言)是美國國家標準局ANSI確認的關系數據庫語言的標準,用于對關系型數據庫中的數據進行存儲,查詢及更新等操作。正是由于SQL語言的標準化,所以大多數關系型數據庫系統都支持SQL語言,它已經發展成為多種平臺進行交互操作的底層會話語言。

    SQL語言也可應用于VFP中,VFP中的SQL命令采用Rushmore技術來優化系統的性能。一個SQL命令可以用來代替多個VFP命令

    前面用"查詢設計器"和"視圖設計器"所做的工作,本質上都是生成一個select-sql命令。單擊"查詢設計器"中的SQL按鈕,即可隨時查看VFP在后臺建立的SQL命令。

    二。SQL語言的功能:

    SQL語言為用戶提供了以下功能:數據定義,數據檢索,數據操縱和數據控制。

    SQL語言是一種交互式的計算機操作語言,也是一種數據庫編程語言,它不僅能夠在單機環境下提供對數據庫的各種訪問操作,而且還可做為一種分布式數據庫語言用于客戶機/服務器模式(Client/Server)數據庫應用程序的開發。我們這里主要介紹select-sql查詢語句。

    三。select-sql查詢命令:

    數據庫中的數據查詢最終總是通過select-sql命令進行。select-sql命令主要格式為:
    select [all|distinct]列名[,列名] from 表名[,表名][into array 數組名/cursor 臨時表名/dbf表名]
    [where 條件表達式][group by 列名[,列名][having 條件]][order by 表達式[asc/desc]

    說明:

    1.select查詢語句的格式主要有select子句,from子句,into子句和to子句,where子句,group by 子句和order by子句。
    2.select 子句指明查詢輸出的項目(稱為列)也可以是表達式。利用表達式可以查詢表中未直接存儲但可以由表中數據計算出的結果。為了構造表達式,SQL提供了加(+),減(-),乘(*),除(/)四種運算符和一些函數。
    3.在表達式中,若以*代替列名,則表示查詢表的所有列。
    4.from子句指明被查詢的表名或視圖名
    5.into子句指明查詢結果保存在何處,可以是數組,臨時表或表
    6.select和from子句是每個SQL查詢語句所必須的,其他子句是任選的。
    7.where子句說明查詢的條件。滿足條件的查詢結果可能不止一個,在select子句中有distinct選項,加了這個選項后,則要求消除查詢結果中的重復項
    8.group by子句將表按列值分組,列的值相同的分在一組,having后面的子句是選擇組的條件,符合條件的組才能輸出。
    9.order by子句可對查詢結果按子句中指定的列的值排序,ASC表示長序,DESC表示降序。

Visual FoxPro基礎教程完整版 

    四。select-sql應用舉例:

    select-sql語句在操作表時,不需要先打開表,即能從表中查詢出數據。以下的例子,既可在命令窗口中逐條輸入運行,也可以將每個例子中的代碼存入一個命令文件中,然后運行該命令文件。

    1.查詢"職工檔案"表中的全部信息:
    select * from 職工檔案 into cursor abc &&將查詢結果送入臨時表abc中,*表示全部的列
    select abc
    brow

    2.查詢職工的姓名,對重名的職工只顯示1次
    select distinct 姓名 from 職工檔案
    說明:使用distinct可以消除重復的值,這里表示去掉重復的姓名

    3.查詢職工的編號,姓名和年齡
    select 編號,姓名,year(date())-year(出生時間) as 年齡 from 職工檔案

    說明:select語句后面是列名。列可以是字段,字段組成的表達式或常數,AS用來指定查詢結果中列的標題。此處表達式year(date())-year(出生時間)以"年齡"作為列名顯示。

    4. 查詢工資在800元以上的職工的編號,姓名和工資,并按工資由高到低列出
    select 編號,姓名,工資 from 職工檔案 where 工資>800 order by 工資 desc

    說明:

    (1)order by子句中的desc是用來指明顯示結果的順序,即工資由高到低輸出。缺省時,以升序(ASC)排序。
    (2)where子句用來指定篩選記錄的條件。有多個條件時,可用AND或OR連接。
    (3)SQL的查詢方式很豐富,它提供了三種謂詞,它們分別是between,in和like.下面幾個例子說明這三種謂詞的使用。

    5.查詢工資在1000~1500之間的職工的編號,姓名,職稱和工資
    select 編號,姓名,職稱,工資 from 職工檔案 where 工資 between 1000 and 1500

    說明:在查找中,如果要求某列的數值在某個區間內,可用between…and,而如果要查找不在某個區間的數據,可用not between…and
    思考一下:要查詢工資不在1000~1500之間的職工的編號,姓名,職稱和工資,應該怎樣編寫SQL語句?

    答案:select 編號,姓名,職稱,工資 from 職工檔案 where 工資 not between 1000 and 1500

    6.數據包含查詢:使用in的查詢,查詢具有本科和大專文化程度的職工的編號和姓名
    select 編號,姓名 from 職工檔案 where 文化程度 in('本科','大專')

    說明:如果要查的值是已知的某幾個值中的一個,此時可用IN.同樣,可以用not in來表示相反的含義。

    7.數據匹配查詢:

    利用like的查詢。查詢部門編號為"01"的職工的工資情況
    select * from 職工檔案 where 編號 like '01_'(或者like '01%')

    說明:在查找時,有時需要對字符串比較。like提供兩種字符串匹配方式,一種是使用下劃線"_"匹配任意一個符,另一種是使用百分號"%"匹配0個或多個字符的字符串。同樣可以使用not like來表示相反的含義。

    8.聯接查詢:

    實際應用于中常常涉及到多表之間的關聯查詢,SQL語言提供了連接多個表的操作,可在兩個或多個表間按指定的列的相同的值將一個表中的行與另一個表中的行連接起來。從而大增強了其查詢能力。

    為了防止多表中同名字段的二義性,查詢語句中的字段名前最好加上表名作為前綴,為了減少輸入時的麻煩,還可在from子句中給表起一個別名。
    例:查詢職工的編號,姓名,職稱與工資
    select 職工檔案。編號,職工檔案。職稱,工資情況。姓名,工資情況。工資 from 職工檔案,工資情況 where
    職工檔案。編號=工資情況。編號

    9.聯合查詢:

    在SQL語言中可將兩個或多個查詢結果進行并操作(union),需要注意的是,兩個查詢結果進行并操作時,它們必須具有相同的列數,并且對應的列有著相同的數據類型和長度(對應的列名可以不同).union運算自動去掉重復記錄。

    例:查詢具有工程師和政工師職稱的職工的編號和姓名
    SElect 編號,姓名 from 職工檔案 where 職稱='工程師' union select 編號,姓名 from 職工檔案
    where 職稱='政工師'

    例:查詢具有工程師職稱和工資高于1000元的職工的編號
    select 編號 from 職工檔案 where 職稱='工程師' union select 編號 from 工資情況 where 工資>1000

    10.嵌套查詢:

    在一個select命令的where子句中出現另一個select 命令,則稱為嵌套查詢或稱為子查詢,必須用花括號括起來。在where子句中最多可以有兩個同級(不是嵌套的)子查詢。

    例:查詢工資高于1000的職工的編號,姓名和職稱。
    select 編號,姓名,職稱 from 職工檔案 where 編號 in(select 編號 from 工資情況 where 工資>1000)

    上述SQL語句執行的是兩個過程,首先在"工資情況"表中找出工資高于1000的職工的編號,然后再根據此編號在"職工檔案"表中查出姓名和職稱。

    11.庫函數:

    select語句不僅可以通過where子句查找滿足條件的數據,還可以通過函數對滿足條件的數據進行統計,計數等運算。下列五種函數可以在from子句中與選定的列一起使用:
    Min    求(字符,日期,數值)列的最小值
    Max    求(字符,日期,數值)列的最大值
    Count(*)    計算記錄的個數
    Sum    計算數值列的總和
    AVG    計算數值列的平均值

    這些函數是從一組值中計算出一個匯總信息,group by 子句用來定義或劃分進行統計或求和的組。

    例:查詢男女職工人數,最高工資,最低工資,工資總額和平均工資
    select 性別,count(*),Max(工資),Min(工資),sum(工資),avg(工資) from 職工檔案 group by 性別

    例:查出有三個人以上具有相同職稱的職稱名稱。
    select 職稱 from 職工檔案 group by 職稱 having count(*)>3

    注意:having子句和where子句的區別。where子句用來指定表中元組所應滿足的條件,而having子句用來指定每一分組所應滿足的條件,只有滿足having子句的條件的那些組才能在結果中被顯示。即having用于去掉不符合條件的分組,如同where子句用于去掉不符合條件的若干行一樣。

    在此例中,在表中按職稱進行分組,然后在每個分組中檢測其記錄個數是否大于等于3,如果滿足條件,則該組的職稱才被輸出。

Visual FoxPro基礎教程完整版
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久影视网 | 99精品一区二区 | 日韩视频在线一区二区 | 成人免费在线电影 | 精品啪啪一区 | 91精品久久久久久久久 | 久久久精 | 欧美一区二区三区爱爱 | 亚洲免费a | 在线观看免费av网 | 国产伦精品一区二区三区在线 | 日韩不卡| 91国自产精品中文字幕亚洲 | 免费日韩 | 久久免费视频网站 | 成人在线观看免费 | 二区在线视频 | 日韩精品一区二区三区四区 | 国产综合精品一区二区三区 | 午夜久久精品 | 日韩一区二区精品 | 国产精品一二三区 | 国产精品热久久久久夜色精品三区 | 国产精品久久久久久久久久久免费看 | 国内精品久久久久久久97牛牛 | 欧美a一级片 | 天天看夜夜 | 国产 日韩 欧美 在线 | 亚洲一区二区日韩 | 欧美日韩亚洲精品一区二区三区 | 91精品入口蜜桃 | 欧美日产国产成人免费图片 | 久久成人综合 | 亚洲精品在线免费 | 91网站在线看 | 亚洲电影一区二区 | 久久99视频这里只有精品 | 精品久久久久久久久久久 | 国产成人高清视频 | 成人不卡一区二区 | 色在线播放 |