小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

查詢精解

 悟靜 2009-06-18

5.1SQL語(yǔ)言

——只有9個(gè)動(dòng)詞(select , drop, alter, create, insert, update ,delete, grant, revoke )

5.2.1 基本查詢

【格式】SELECT [ALL | DISTINCT] <字段列表> FROM <表> [ORDER BY <字段名> [ASC/DESC] [,<字段> [ASC/DESC]],...]
【功能】無(wú)條件查詢,將記錄顯示在瀏覽窗口中。
【說(shuō)明】ALL: 顯示全部查詢記錄,包括重復(fù)記錄。
  DISTINCT: 顯示無(wú)重復(fù)結(jié)果的記錄,將重復(fù)記錄只保留一條。
字段列表:字段1,字段2 AS 別名,函數(shù)或表達(dá)式 AS 列名,......查詢結(jié)果的輸出列;如果將表中所有字段都選擇輸出,則用*代替;在函數(shù)或表達(dá)式中還可以用一些專用統(tǒng)計(jì)函數(shù)
FROM 表:設(shè)定查詢的來(lái)源數(shù)據(jù)
ORDER BY:按指定的字段值大小對(duì)結(jié)果記錄進(jìn)行排序
SQL命令中常用的統(tǒng)計(jì)函數(shù)

  • AVG(字段名)——平均值
  • MIN(字段名)——最小值
  • MAX(字段名)——最大值
  • SUM(字段名)——和
  • COUNT(*或字段名)——滿足條件的記錄總數(shù),字段名可以不寫(xiě)。


能進(jìn)行統(tǒng)計(jì)的字段必須是表示數(shù)值的數(shù)據(jù)類型。用了統(tǒng)計(jì)函數(shù)后,視情況會(huì)將統(tǒng)計(jì)的記錄壓縮成一條或多條。

學(xué)號(hào)

姓名

性別

系名

籍貫

出生年月

是否黨員

0207390101

劉中雨

信息管理系

北京

80/12/1

0207390103

林天力

信息管理系

南京

82/1/3

0207390104

王 平

信息管理系

北京

82/3/26

0207490101

章聞天

電子商務(wù)

無(wú)錫

81/6/4

0207390102

聞書(shū)敏

信息管理系

蘇州

81/7/28

0207490104

于小麗

電子商務(wù)

南京

80/8/10


【例1】顯示XS(學(xué)生信息數(shù)據(jù)表)中的所有記錄。
SELECT * FROM XS
命令中的*表示輸出顯示所有的字段,數(shù)據(jù)來(lái)源是XS表

【例2】顯示XS(學(xué)生信息數(shù)據(jù)表)中的所有同學(xué)的學(xué)號(hào)及與之對(duì)應(yīng)的姓名,同時(shí)能去除重名。
SELECT DISTINCT 學(xué)號(hào),姓名 FROM XS

【例3】按成績(jī)從大到小顯示CJ表中的所有記錄,并將成績(jī)一項(xiàng)乘以0.7。
SELECT XH,KCDH,CJ*0.7 AS 成績(jī) FROM CJ order by cj DESC

【例4】統(tǒng)計(jì)CJ表中所有同學(xué)的總成績(jī),平均成績(jī)和總?cè)藬?shù)。。
SELECT sum(cj.cj) as 總成績(jī),avg(cj.cj) as 平均成績(jī), COUNT(*) AS RS FROM CJ

課堂思考題

【題1】顯示XS表中所有的系名。
SELECT distinct ximing FROM XS

【題2】顯示XS表中所有的班級(jí)號(hào)。
SELECT distinct substr(xh,1,8) as 班級(jí)號(hào)
FROM XS ORDER BY 1

5.2.2 帶條件(WHERE)的查詢語(yǔ)句

【格式】SELECT [ALL|DISTINCT |TOP N] <字段列表>
FROM <表> [WHERE <條件表達(dá)式> ]
ORDER BY 字段列表


【功能】從一個(gè)表中查詢滿足條件的數(shù)據(jù)。


【說(shuō)明】TOP N :顯示滿足條件的前幾項(xiàng)

  • <條件表達(dá)式>由一系列用AND 或 OR 連接的條件表達(dá)式組成,
  • 條件表達(dá)式可以為字段(表達(dá)式) 運(yùn)算符 表達(dá)式(字段)的形式,其中可以使用以下常用的運(yùn)算符

SQL 命令中常用的 運(yùn)算符

操作符 比較關(guān)系 舉例
= 相等 Xs.ximing= " 金融 "
= = 完全相等 Xs.ximing = = " 金融 "
LIKE 不精確匹配 Xs.xh LIKE " 03073901% "
> 、 >= 大于(等于) 分?jǐn)?shù) . 成績(jī) >60
<= 、 < 小于(等于) 分?jǐn)?shù) . 成績(jī) <=60
betwee n 指定字段在兩實(shí) 例之間 Cj between 45 and 80
in 指定字段必須與 用逗號(hào)隔開(kāi)的實(shí) 例集合中的一個(gè) 相匹配 cj in (50,60,70)

示例

【例1】顯示XS表中所有男生記錄的學(xué)號(hào),姓名和性別
SELECT XH,XM,XB FROM XS WHERE XB="男"

【例2】顯示XS表中出生日期在85年之間的學(xué)生的學(xué)號(hào),姓名,出生日期。
SELECT XH,XM,CSRQ FROM XS ;
WHERE CSRQ BETWEEN {01/01/85} AND {12/31/85}

SELECT XH,XM,CSRQ FROM XS; *//另一種方法
WHERE year(CSRQ)=85

【例3】顯示XS表中姓李的女學(xué)生的學(xué)號(hào),姓名,出生日期。
SELECT XH,XM,CSRQ FROM XS;
WHERE XM LIKE "李%" AND XB="女"

【例4】查詢CJ表中成績(jī)名列前5名的學(xué)生的學(xué)號(hào),成績(jī)。
SELECT TOP 5 XH,CJ FROM CJ ;
ORDER BY CJ DESC

【例5】統(tǒng)計(jì)XS表中03073901班的人數(shù)。
Select count(*) as 03073901班人數(shù) from xs; (*//SUBSTR(XH,1,8)=" 03073901")
where xh like ‘03073901%‘

SQL 命令中的分組與計(jì)算查詢

【格式】SELECT [ALL | DISTINCT |TOP N] <字段列表>
FROM <表> [WHERE <條件>
[GROUP BY <分組字段列表>...]
[HAVING <過(guò)濾條件>]
[ORDER BY <排序項(xiàng)> [ASC | DESC]

  • 分組就是將一組類似(根據(jù)分組字段的值)的記錄壓縮成一個(gè)結(jié)果記錄,這樣就可以完成基于一組記錄的計(jì)算。其結(jié)果可以類比于唯一索引。
  • [過(guò)濾條件] 對(duì)分組的結(jié)果根據(jù)條件(可以是來(lái)自于字段列表項(xiàng)中的選項(xiàng),也可以是一個(gè)統(tǒng)計(jì)函數(shù))進(jìn)行記錄組的過(guò)濾。
  • 注意:用于分組的可用字段不一定是已選定輸出的字段列表中的一個(gè)字段,但分組字段不能是一個(gè)計(jì)算過(guò)的字段,如統(tǒng)計(jì)函數(shù)。 排序項(xiàng)必須是已選定輸出的字段列表中的字段


    Group by ximing

    學(xué)號(hào)

    姓名

    性別

    系名

    籍貫

    出生年月

    是否黨員

    0207390101

    劉中雨

    信息管理系

    北京

    80/12/1

    0207390103

    林天力

    信息管理系

    南京

    82/1/3

    0207390104

    王 平

    信息管理系

    北京

    82/3/26

    0207490101

    章聞天

    電子商務(wù)

    無(wú)錫

    81/6/4

    0207390102

    聞書(shū)敏

    信息管理系

    蘇州

    81/7/28

    0207490104

    于小麗

    電子商務(wù)

    南京

    80/8/10

    根據(jù)系名的值該學(xué)生表分為兩種類型的記錄,一個(gè)是系名為 " 信息 管理系 " 的記錄,一個(gè)是系名為 " 電子商務(wù) " 的記錄,分組的結(jié)果是 兩條記錄:第 2 條和 4 條記錄

    示例

    【例 1 】顯示 XS 表中各班的總?cè)藬?shù)。

    SELECT XIMING ,

    COUNT(*) AS 總?cè)藬?shù) ;

    FROM XS GROUP BY XIMING

    【例2】顯示CJ表中平均分>80的同學(xué)


    SELECT CJ.XH FROM CJ GROUP BY XH;
    HAVING AVG(CJ)>80
    ORDER BY 1


    【例3】按學(xué)號(hào)從低到高,顯示CJ表中每個(gè)學(xué)生所學(xué)課程數(shù)目,成績(jī)總分,平均分


    Select cj.xh,count(*) as 課程數(shù)目,
    sum(cj.cj) as 成績(jī)總分,avg(cj.cj) as 平均分
    from cj
    group by cj.xh
    Order by xh


    【例4】查詢JS表中各系科教師的人數(shù)、工資總額和平均工資,并按平均工資降序排列。


    SELECT XIMING,COUNT(*) AS 人數(shù),SUM(ZGZ) AS 工資總額,AVG(zgz) as 平均工資 from js;
    Group by ximing order by 4
    *//?查詢信息管理系教師的人數(shù)、工資總額和平均工資
    SELECT XIMING,COUNT(*) AS 人數(shù),SUM(ZGZ) AS 工資總額,AVG(zgz) as 平均工資 from js;
    where ximing="信息管理系";
    Group by ximing having ximing="信息管理系" order by 4


    【例5】查詢JS表中系平均工資>500元的各系科教師的人數(shù)、工資總額和平均工資,并按平均工資降序排列,查詢結(jié)果中必須包括系名、系人數(shù)、工資總額和平均工資四列。


    SELECT XIMING,COUNT(*) AS 人數(shù),SUM(ZGZ) AS 工資總額,AVG(zgz) as 平均工資 from js;
    Group by ximing having 平均工資>500;
    order by 4 ????

    5.2.3 SQL的復(fù)雜查詢

    1.連接查詢


    【說(shuō)明】在一個(gè)數(shù)據(jù)庫(kù)中的多個(gè)表之間一般都存在著某些聯(lián)系,在一個(gè)查詢語(yǔ)句中同時(shí)涉及到兩個(gè)或兩個(gè)以上的表時(shí),這種查詢稱之為連接查詢(也稱為多表查詢)。在多表之間查詢必須處理表與表之間的連接關(guān)系。

    【例1】查詢并顯示各個(gè)學(xué)生的學(xué)號(hào),姓名,各科成績(jī)。
    SELECT xs.xh,xs.xm,cj.kcdh,cj.cj ;
    FROM xs,cj ;
    WHERE xs.xh=cj.xh

    【例2】顯示成績(jī)?cè)?0至90之間的學(xué)號(hào),課程名和成績(jī)。
    SELECT cj.xh,kc.kcm,cj.cj
    FROM cj,kc
    WHERE cj.kcdh=kc.kcdh and
    cj.cj BETWEEN 80 AND 90

    2.示例

    例1】查詢并顯示各個(gè)學(xué)生的學(xué)號(hào),所學(xué)課程及課程成績(jī)。
    SELECT CJ.XH,KC.KCM,CJ.CJ ;
    FROM KC,CJ ;
    WHERE KC.KCDH=CJ.KCDH

    內(nèi)連接方式

    SELECT CJ.XH,KC.KCM,CJ.CJ ;
    FROM KC INNER JOIN CJ ON KC.KCDH=CJ.KCDH


    【例2】顯示計(jì)算機(jī)系學(xué)生的課程代號(hào)為"A001"的考試成績(jī)。
    SELECT XS.XH,XS.XIMING,XS.XM,cJ.KCDH,CJ.CJ;
    FROM XS INNER JOIN CJ ON XS.XH=CJ.XH;
    wHERE XS.XIMING="計(jì)算機(jī)系" AND CJ.KCDH="A001"


    【例3】查詢王林同學(xué)所選課程的課程數(shù)
    Select xs.xm,count(*) from xs inner join cj on xs.xh=cj.xh where xs.xm=‘王林'?


    【例4】顯示CJ表中每門(mén)課程的課程名,學(xué)時(shí),必修課情況和該門(mén)課程的最高分,最低分和平均分
    Select kc.kcm,kc.kss,max(cj.cj),min(cj.cj),avg(cj.cj)
    from kc inner join cj on kc.kcdh=cj.kcdh
    group by kc.kcdh

    【例5】查詢有不及格課程成績(jī)的同學(xué)的學(xué)號(hào)和姓名,有多門(mén)課程不及格的學(xué)生只顯示一次
    Select distinct cj.xh,xs.xm ;
    from xs inner join cj on xs.xh=cj.xh;
    where cj.cj<60;
    order by xs.xh
    或 Select distinct cj.xh,xs.xm from xs.cj;
    where xs.xh=cj.xh and cj.cj<60 order by xs.xh
      
    【例6】查詢信息管理系中所有成績(jī)總分在480分以上,并且各門(mén)課程的成績(jī)不低于70分的學(xué)生。要求在查詢結(jié)果中包含學(xué)生的學(xué)號(hào)、姓名、總分、平均分和最低分,并按總分從高到低排列。
    Select xs.xh,xs.xm,xum(cj.cj) as 總分,avg(cj.cj) as 平均成績(jī),min(cj.cj) as 最低分;
    from xs inner join cj on xs.xh=cj.xh ;
    where xs.ximing=‘信息管理系' ;
    group by xs.xh;
    having 總分>=480 and 最低分>=70;
    order by 3 desc????

    課堂思考題
    • 查詢選修人數(shù)超過(guò)40人的課程名,學(xué)分,必修課情況和該門(mén)課程的最高分和最低分,并按最高分從低到高排序。

    Select kc.kcm,kc.xf,kc.bxk,max(cj.cj),min(cj.cj);
    from kc inner join cj on kc.kcdh=cj.kcdh;
    group by kc.kcdh having count(*)>40 order by 4
     

    • 列出所有選修學(xué)分超過(guò)21個(gè)學(xué)分(考試成績(jī)超過(guò)65分的該門(mén)課程就可以獲得學(xué)分)的學(xué)生的學(xué)號(hào)以及所選修的總學(xué)分。

    Select cj.xh,sum(kc.xf);
    from kc inner join cj on kc.kcdh=cj.kcdh where cj.cj>=65;
    group by cj.xh having sum(kc.xf)>21 order by 2

     

    • 查詢選修人數(shù)超過(guò)40人的課程名,學(xué)分,必修課情況和該門(mén)課程的最高分和最低分,并按最高分從低到高排序。

    Select kc.kcm,kc.xf,kc.bxk,max(cj.cj),min(cj.cj);
    from kc inner join cj on kc.kcdh=cj.kcdh;
    group by kc.kcdh having count(*)>40 order by 4
     

    • 列出所有選修學(xué)分超過(guò)21個(gè)學(xué)分(考試成績(jī)超過(guò)65分的該門(mén)課程就可以獲得學(xué)分)的學(xué)生的學(xué)號(hào)以及所選修的總學(xué)分。

    Select cj.xh,sum(kc.xf);
    from kc inner join cj on kc.kcdh=cj.kcdh where cj.cj>=65;
    group by cj.xh having sum(kc.xf)>21 order by 2

    3.查詢?nèi)ハ?/p>

    • 默認(rèn)情況下,查詢輸出到一個(gè)瀏覽窗口
    • INTO ARRAY 數(shù)組名:將查詢結(jié)果保存到一個(gè)數(shù)組中。
    • INTO CURSOR < 臨時(shí)表名>:將查詢結(jié)果保存到一個(gè)臨時(shí)表中。
    • TO SCREEN:將查詢結(jié)果保在屏幕上顯示。

    SELECT-SQL 命令主要組成部分

    定義數(shù)據(jù)源 指定數(shù)據(jù)源表 FROM 子句
    確定源表間的聯(lián) 接 INNER JOIN ... ON ... 子句
    定義結(jié)果 篩選源表記錄 WHERE 子句
    指定輸出字段 字段、函數(shù)和表達(dá)式的列 表或 *
    指定輸出類型 INTO 子句和 TO 子句
    定義記錄的分組 GROUP BY 子句
    指定結(jié)果順序 ORDER BY 子句
    篩選結(jié)果記錄 HAVING 子句
    指定有無(wú)重復(fù)記 錄 ALL/DISTINCT
    指定結(jié)果的范圍 TOP nExpr[PERCENT]

    習(xí)題:

    針對(duì)于教學(xué)管理信息系統(tǒng),進(jìn)行以下查詢:


    1.查詢男教師和女教師的工資總和以及平均工資??


    2.統(tǒng)計(jì)9501班的男同學(xué)的人數(shù)??


    3.查詢65年以前出生的女教師的姓名、工齡??


    4.顯示JS表中每個(gè)教師的工號(hào)、姓名、出生日期和開(kāi)始工作年份(提示:開(kāi)始工作年份=當(dāng)前年份-工齡);


    5.顯示CJ表中,課程代號(hào)為"02"的學(xué)生成績(jī)的前三名;


    6.顯示JS表中各系科教師的人數(shù),工資總額和平均工資。


    7.統(tǒng)計(jì)選修'VFP5'的學(xué)生總數(shù)?


    8.查詢課程名為'VFP5'的學(xué)時(shí),必修課情況和該門(mén)課程的最高分、最低分和平均分


    9.查詢每個(gè)教師所任課程的課程代號(hào)、課程名和學(xué)分?jǐn)?shù)以及工號(hào)和專業(yè)代號(hào)??

    答案:
    1.Select js.xh,sum(js.jbgz) as 總工資,avg(js.jbgz) as 平均工資 from jxsj!js group by js.xb


    2.Select count(*) as 男同學(xué)人數(shù) from xs where xs.xh like ‘9501%' and xs.xb=‘男'


    3.Select js.xm,js.gl,js.csrq from jxsj!js where year(js.csrq)<1965


    4.Select kc.kcm,count(*) as 選修人數(shù) from kc inner join cj on kc.kcdh=cj.kcdh where kc.kcm='VFP5'
    或Select kc.kcm,count(*) from kc,cj where kc.kcdh=cj.kcdh .and. kc.kcm='VFP5'

    5.Select kc.kcm,kc.kss,max(cj.cj),min(cj.cj),avg(cj.cj)
    from kc inner join cj on kc.kcdh=cj.kcdh
    group by kc.kcdh having kc.kcm='VFP5'

    或Select kc.kcm,kc.kss,max(cj.cj),min(cj.cj),avg(cj.cj)from kc inner join cj on kc.kcdh=cj.kcdh where kc.kcm='VFP5' group by kc.kcdh
    6.Select rk.gh,rk.zydh,kc.kcm,kc.kss,kc.bxk from rk inner join kc on kc.kcdh=rk.kcdh


     

    3.查詢?nèi)ハ?/p>

  • 默認(rèn)情況下,查詢輸出到一個(gè)瀏覽窗口
  • INTO ARRAY 數(shù)組名:將查詢結(jié)果保存到一個(gè)數(shù)組中。
  • INTO CURSOR < 臨時(shí)表名>:將查詢結(jié)果保存到一個(gè)臨時(shí)表中。
  • TO SCREEN:將查詢結(jié)果保在屏幕上顯示。

    SELECT-SQL 命令主要組成部分

    定義數(shù)據(jù)源 指定數(shù)據(jù)源表 FROM 子句
    確定源表間的聯(lián) 接 INNER JOIN ... ON ... 子句
    定義結(jié)果 篩選源表記錄 WHERE 子句
    指定輸出字段 字段、函數(shù)和表達(dá)式的列 表或 *
    指定輸出類型 INTO 子句和 TO 子句
    定義記錄的分組 GROUP BY 子句
    指定結(jié)果順序 ORDER BY 子句
    篩選結(jié)果記錄 HAVING 子句
    指定有無(wú)重復(fù)記 錄 ALL/DISTINCT
    指定結(jié)果的范圍 TOP nExpr[PERCENT]

    習(xí)題:

    針對(duì)于教學(xué)管理信息系統(tǒng),進(jìn)行以下查詢:


    1.查詢男教師和女教師的工資總和以及平均工資??


    2.統(tǒng)計(jì)9501班的男同學(xué)的人數(shù)??


    3.查詢65年以前出生的女教師的姓名、工齡??


    4.顯示JS表中每個(gè)教師的工號(hào)、姓名、出生日期和開(kāi)始工作年份(提示:開(kāi)始工作年份=當(dāng)前年份-工齡);


    5.顯示CJ表中,課程代號(hào)為"02"的學(xué)生成績(jī)的前三名;


    6.顯示JS表中各系科教師的人數(shù),工資總額和平均工資。


    7.統(tǒng)計(jì)選修'VFP5'的學(xué)生總數(shù)?


    8.查詢課程名為'VFP5'的學(xué)時(shí),必修課情況和該門(mén)課程的最高分、最低分和平均分


    9.查詢每個(gè)教師所任課程的課程代號(hào)、課程名和學(xué)分?jǐn)?shù)以及工號(hào)和專業(yè)代號(hào)??

    答案:
    1.Select js.xh,sum(js.jbgz) as 總工資,avg(js.jbgz) as 平均工資 from jxsj!js group by js.xb


    2.Select count(*) as 男同學(xué)人數(shù) from xs where xs.xh like ‘9501%' and xs.xb=‘男'


    3.Select js.xm,js.gl,js.csrq from jxsj!js where year(js.csrq)<1965


    7.Select kc.kcm,count(*) as 選修人數(shù) from kc inner join cj on kc.kcdh=cj.kcdh where kc.kcm='VFP5'
    或Select kc.kcm,count(*) from kc,cj where kc.kcdh=cj.kcdh .and. kc.kcm='VFP5'

    8.Select kc.kcm,kc.kss,max(cj.cj),min(cj.cj),avg(cj.cj)
    from kc inner join cj on kc.kcdh=cj.kcdh
    group by kc.kcdh having kc.kcm='VFP5'

    或Select kc.kcm,kc.kss,max(cj.cj),min(cj.cj),avg(cj.cj)from kc inner join cj on kc.kcdh=cj.kcdh where kc.kcm='VFP5' group by kc.kcdh
    9. Select rk.gh,rk.zydh,kc.kcm,kc.xfs,kc.kcdh from rk inner join kc on kc.kcdh=rk.kcdh


    5.3 查詢?cè)O(shè)計(jì)器及查詢文件

     ——一個(gè)用來(lái)保存SQL語(yǔ)句的文件(*。QPR),查詢文件的運(yùn)行結(jié)果是一個(gè)基于表和視圖的動(dòng)態(tài)的數(shù)據(jù)集合。

    5.3.1 查詢文件的設(shè)計(jì)過(guò)程

    在創(chuàng)建查詢文件時(shí),通??梢宰裱韵铝鶄€(gè)步驟來(lái)創(chuàng)建查詢。


    (1)用"查詢向?qū)?或"查詢?cè)O(shè)計(jì)器"創(chuàng)建查詢。
    (2)選擇在查詢結(jié)果中需要的字段。
    (3)設(shè)置查詢記錄的條件。
    (4)設(shè)置排序及分組條件來(lái)組織查詢結(jié)果。
    (5)選擇查詢輸出類別,可以是報(bào)表、表文件、圖表、瀏覽窗口和表文件等。
    (6)運(yùn)行此查詢。
    5.3.2 利用"查詢向?qū)?創(chuàng)建查詢

    利用"查詢向?qū)?創(chuàng)建查詢的步驟如下:


    (1)進(jìn)入"查詢向?qū)?


    ① 選擇【工具】|【向?qū)А縷【查詢】命令。


    ② 選擇【文件】|【新建】命令,進(jìn)入"新建"對(duì)話框,選擇"查詢"單選按鈕,單擊"向?qū)?按鈕。


    ③ 在"項(xiàng)目管理器"窗口中,選擇"數(shù)據(jù)"選項(xiàng)卡,選中"查詢",單擊"新建"按鈕,出現(xiàn)"新建查詢"對(duì)話框,單擊"查詢向?qū)? 。


    (2)選擇查詢結(jié)果中需要的字段


    (3)設(shè)置查詢條件


    (4)設(shè)置排序字段


    (5)設(shè)置記錄輸出范圍


    (6)保存查詢

    5.3.3 利用"查詢?cè)O(shè)計(jì)器"創(chuàng)建查詢

    進(jìn)入"查詢?cè)O(shè)計(jì)器"窗口


    (1) 選擇【文件】│【新建】命令,進(jìn)入"新建"對(duì)話框,選擇"查詢"單選按鈕,單擊"新建"按鈕;


    (2) 在"項(xiàng)目管理器"窗口中,選擇"數(shù)據(jù)"選項(xiàng)卡,選中"查詢"文件類型,單擊"新建"按鈕,出現(xiàn)"新建查詢"對(duì)話框,單擊"新建查詢"按鈕

    "查詢?cè)O(shè)計(jì)器工具欄"各按鈕的功能如下:

      添加數(shù)據(jù)庫(kù)表。
    移去數(shù)據(jù)庫(kù)表。
    添加數(shù)據(jù)庫(kù)表間的聯(lián)接。
    顯示SQL窗口。
    最大化上部分窗口。
    確定查詢?nèi)ハ?/td>


    使用查詢?cè)O(shè)計(jì)器創(chuàng)建查詢

    使用 " 查詢?cè)O(shè)計(jì)器 " 創(chuàng)建前面 " 查詢向?qū)?" 創(chuàng)建查詢例子,具體步驟如下:

    ( 1 )進(jìn)入 " 查詢?cè)O(shè)計(jì)器 " 窗口,添加 stud 表 ,如圖所示。

    (2 )選擇查詢需要的字段

    ( 3 )設(shè)置查詢條件

    ( 4 )保存查詢

    5.3.4 查詢的運(yùn)行與修改

    1.查詢的運(yùn)行

    運(yùn)行查詢的方法有以下5種:


    ① 在"查詢?cè)O(shè)計(jì)器"窗口中,選擇【查詢】|【運(yùn)行查詢】命令。
    ② 在"查詢?cè)O(shè)計(jì)器"窗口中,右擊"查詢?cè)O(shè)計(jì)器"窗口,選擇快捷菜單中的【運(yùn)行查詢】命令。
    ③ 選擇【程序】|【運(yùn)行】命令。彈出"運(yùn)行"對(duì)話框,在對(duì)話框中,選擇所要運(yùn)行的查詢文件,單擊"運(yùn)行"按鈕。
    ④ 在"項(xiàng)目管理器"窗口中,選擇要運(yùn)行的查詢文件,單擊右邊的"運(yùn)行"按鈕。
    ⑤ 在"命令"窗口中,鍵入 DO <查詢文件名> 。例如,DO 查詢1.qpr。


    2.查詢的修改


    修改可以用以下3種方法:


    ① 在"項(xiàng)目管理器"窗口中,選擇要修改的查詢文件,單擊右邊的"修改"按鈕,進(jìn)入"查詢?cè)O(shè)計(jì)器"窗口中修改。
    ② 選擇【文件】|【打開(kāi)】命令,在"打開(kāi)"對(duì)話框中,選擇所要修改的查詢文件,單擊"確定"按鈕,進(jìn)入"查詢?cè)O(shè)計(jì)器"窗口中修改。
    ③ 在命令窗口中,鍵入 MODIFY QUERY <查詢文件名>。


    3.查詢?nèi)ハ虻脑O(shè)置


    單擊"查詢?cè)O(shè)計(jì)器"工具欄中的"查詢?nèi)ハ?按鈕或在系統(tǒng)菜單中單擊【查詢】|【查詢?nèi)ハ颉棵睿瑥棾?查詢?nèi)ハ?對(duì)話框,如圖5-15 所示。其中共包含7個(gè)查詢?nèi)ハ?,各?xiàng)的含義見(jiàn)表5-1

    5.4.1 視圖簡(jiǎn)介


    視圖是一個(gè)定制的虛擬邏輯表,視圖中只存放相應(yīng)的數(shù)據(jù)邏輯關(guān)系,并不保存表的記錄內(nèi)容,但可以在視圖中改變記錄的值,然后將更新記錄返回到源表。


    視圖與查詢?cè)诠δ苌嫌性S多相似之處,但又有各自特點(diǎn),主要區(qū)別如下:

    • 功能不同:視圖可以更新字段內(nèi)容并返回源表,而查詢文件中的記錄數(shù)據(jù)不能被修改。
    • 從屬不同:視圖不是一個(gè)獨(dú)立的文件而從屬于某一個(gè)數(shù)據(jù)庫(kù)。查詢是一個(gè)獨(dú)立的文件,它不從屬于某一個(gè)數(shù)據(jù)庫(kù)。
    • 訪問(wèn)范圍不同:視圖可以訪問(wèn)本地?cái)?shù)據(jù)源和遠(yuǎn)程數(shù)據(jù)源,而查詢只能訪問(wèn)本地?cái)?shù)據(jù)源。
    • 輸出去向不同:視圖只能輸出到表中,而查詢可以選擇多種去向,如表、圖表、報(bào)表、標(biāo)簽、窗口等形式。
    • 使用方式不同:視圖只有所屬的數(shù)據(jù)庫(kù)被打開(kāi)時(shí),才能使用。而查詢文件可在命令窗口中執(zhí)行。

    5.4.2 本地視圖的創(chuàng)建

    1)視圖向?qū)?/strong>


    2)視圖設(shè)計(jì)器


    3)命令方式:
    CREATE SQL VIEW <視圖名> [REMOTE] AS


    示例:CREATE SQL VIEW ST1 AS SELECT * FROM 教學(xué)管理!學(xué)生表

    5.4.3 視圖的打開(kāi)、關(guān)閉及顯示


    1)命令方式:
    USE [<視圖名>]


    BROWSE
    說(shuō)明:使用USE命令前,應(yīng)先打開(kāi)包含此視圖的數(shù)據(jù)庫(kù)。
    示例:OPEN DATABASE 教學(xué)管理
    USE 視圖2
    BROWSE
    USE


    2)菜單方式:"數(shù)據(jù)庫(kù)"菜單的"瀏覽"選項(xiàng)

     

    程序設(shè)計(jì):

    命令方式 MODIFY COMMAND 〈程序文件名〉

    菜單方式 打開(kāi) " 文件 " 菜單,選擇 " 新建 " ;在 " 新建 " 窗口,選擇 " 程序 " ,再選擇 " 新建文件 "

    程序文件的保存 程序文件的默認(rèn)擴(kuò)展名是 .PRG 。

    程序文件的執(zhí)行 Do 程序文件名 [ 運(yùn)行 ] 按鈕 或 !

    例 1 建立程序 CX ,功能為:查找 f:\jxgl 目錄下的 XS 學(xué)生表中有無(wú)姓名為 " 王林 " 的同學(xué),有,則將其姓名、學(xué)號(hào)顯示在 VFP 的主屏幕上。

    clear

    Set talk off

    Set defaut to f:\jxgl Sele 1

    Use xs

    Locate for xm= " 王林 "

    found()

    xm,xh

    Use

    Set talk on

    return


    • 本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多