鸭子tv国产极品在线观看_成人69视频在线播放_91精品免费在线观看_亚洲AT永久偷窥无码精品_国产精品自产拍在线观看涩浪潮久

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
4.1 SQL概述

5.1  SQL概述

考點(diǎn)1 概述

  1概念
  SQL是結(jié)構(gòu)化查詢語(yǔ)言Structured Query Language的縮寫(xiě)。它包括數(shù)據(jù)查詢、數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制4部分。Visual FoxPro在SQL方面支持?jǐn)?shù)據(jù)定義、數(shù)據(jù)查詢和數(shù)據(jù)操縱功能。另外,由于Visual FoxPro自身在安全控制方面的缺陷,所以它沒(méi)有提供數(shù)據(jù)控制功能。
  2 SQL語(yǔ)言的特點(diǎn)
  (1)一種一體化的語(yǔ)言。
  (2)一種高度非過(guò)程化的語(yǔ)言。
  (3)語(yǔ)言非常簡(jiǎn)潔。
  (4)可以直接以命令方式交互使用,也可以以程序方式使用。

5.2 查詢功能

  SQL的核心是查詢,基本形式由SELECT-FROM-WHERE查詢塊組成,多個(gè)查詢塊可嵌套執(zhí)行,如表5-1所示。

        表5-1  SQL命令動(dòng)詞
 

考點(diǎn)2 簡(jiǎn)單查詢

  1簡(jiǎn)單查詢
  簡(jiǎn)單查詢是由SELECT和FROM短語(yǔ)構(gòu)成的無(wú)條件查詢,或由SELECT,F(xiàn)ROM和WHERE短語(yǔ)構(gòu)成的條件查詢。
  2簡(jiǎn)單的連接查詢
  連接是關(guān)系的基本操作之一,連接查詢是一種基于多個(gè)關(guān)系的查詢。
  3嵌套查詢
  嵌套查詢所要求的結(jié)果出自一個(gè)關(guān)系,但關(guān)系的條件卻涉及多個(gè)關(guān)系。其內(nèi)層基本上也是一個(gè)SELECT-FROM-WHERE查詢語(yǔ)句。這種簡(jiǎn)單嵌套查詢,可使用謂詞IN或NOT IN來(lái)判斷在外層的查詢條件中是否包含內(nèi)層查詢的結(jié)果。

考點(diǎn)3 特殊運(yùn)算符號(hào)

  1 BETWEEN…AND…
  含義:該查詢的條件是在……范圍之內(nèi),相當(dāng)于用AND連接的一個(gè)邏輯表達(dá)式。
  2 LIKE
  含義:它是一個(gè)字符串匹配運(yùn)算符,與之搭配使用的通配符包括“*”和“?”。

考點(diǎn)4 排序

  使用SQL SELECT可以將查詢結(jié)果進(jìn)行排序,排序的短語(yǔ)是ORDER BY。
  格式:ORDER BY Order_Item[ASCIDESC][,Order_Item[ASC|DESC]…]
  說(shuō)明:可以按升序(ASC)或降序(DESC)排序,允許按一列或多列排序。

考點(diǎn)5 計(jì)算查詢

  1簡(jiǎn)單的計(jì)算查詢
  SQL不僅具有一般的檢索能力,而且還有計(jì)算方式的檢索,用于計(jì)算檢索的函數(shù)有:COUNT(計(jì)數(shù))、SUM(求和)、AVG(計(jì)算平均值)、MAX(求最大值)及MIN(求最小值)。
  2分組與計(jì)算查詢
  在SQL SELECT中可以利用GROUP BY子句進(jìn)行分組計(jì)算查詢。
  格式:GROUP BY GroupColumn[,GroupColumn…][HAVING FilterCondition]
  說(shuō)明:可以按一列或多列分組,還可以用HAVING子句進(jìn)一步限定分組的條件。它必須跟在GROUP BY子句之后,不可單獨(dú)使用,與WHERE子句并不矛盾。

考點(diǎn)6 別名和自連接查詢

  (1)SQL語(yǔ)句允許在二OM短語(yǔ)中為關(guān)系定義別名,格式為:一
        <關(guān)系名><別名>
  (2) SQL不僅可以對(duì)多個(gè)關(guān)系進(jìn)行連接操作,也可以將同一關(guān)系與其自身進(jìn)行連接,這種連接就稱為自連接。在關(guān)系的自連接操作中,別名是必不可少的。

考點(diǎn)7 使用量詞和謂詞的查詢

  與嵌套查詢或子查詢有關(guān)的運(yùn)算符,除了IN和NOT IN運(yùn)算符外,還有兩類與子查詢有關(guān)的運(yùn)算符,它們有以下兩種格式。
  (1)<表達(dá)式><比較運(yùn)算符>[ANY I ALL | SOME](子查詢)
  (2)[NOT]EXISTS(子查詢)
  EXISTS是謂詞,EXISTS或NOT EXISTS是用來(lái)檢查在子查詢中是否有結(jié)果返回,即存在元組或不存在元組。其本身并沒(méi)有進(jìn)行任何運(yùn)算或比較,只用來(lái)返回子查詢結(jié)果。

考點(diǎn)8 超鏈接查詢

  (1)在新的SQL標(biāo)準(zhǔn)中支持兩個(gè)新的關(guān)系連接運(yùn)算符,這兩個(gè)新的連接運(yùn)算是左連接(*=)和右連接=*):首先保證一個(gè)表中滿足條件的元組都在結(jié)果表中,然后將滿足連接條件的元組與另一個(gè)表的元組進(jìn)行連接,不滿足連接條件的則應(yīng)將來(lái)自另一個(gè)表的屬性值置為空值。在一般SQL中超鏈接運(yùn)算符是“*=”(左連接)和“=*”(右連接)。
  (2)在Visual FoxPro中不支持超鏈接運(yùn)算符“*=”和“=*”,Visual FoxPro有專門(mén)的連接運(yùn)算。下面拼出SQL中超鏈接的部分語(yǔ)句格式:
          SELECT…
          FROM Table INNER|LEFT|RIGHT|FULL JOIN Table
          ON JoinCondition
          WHERE…

考點(diǎn)9  Visual FoxPro中SQL SELECT的幾個(gè)特殊選項(xiàng)

  (l)顯示部分結(jié)果,格式為:
        TOP nExpr[PERCENT]
  (2)將查詢結(jié)果存放到數(shù)組中,格式為:
        INTO ARRAY ArrayName
  (3)將查詢結(jié)果存放到臨時(shí)文件中,格式為:
        INTO CURSOR CursorName
  (4)將查詢結(jié)果存放到永久表中,格式為:
        INTO DBF|TABLE TableName
  (5)將查詢結(jié)果存放到文本文件中,格式為:
        TO FILE FileName[ADDITIVE]
  (6)將查詢結(jié)果直接輸出到打印機(jī),格式為:
        TO PRINTER[PROMPT]

5.3 操作功能

考點(diǎn)10 插入

  Visual FoxPro支持兩種SQL插入命令的格式,一種是標(biāo)準(zhǔn)格式,另一種是特殊格式。
  1標(biāo)準(zhǔn)格式
        INSERT INTO dbf name[(frame 1[,fname2,…])]
        VALUES(eExpressionl[,eExpression2,…])
  2特殊格式
        INSERT INTO dbf _name FROM ARRAY ArrayName|FROM MEMVAR

考點(diǎn)11 更新

  SQL的數(shù)據(jù)更新命令格式如下:
            UPDATE TableName
  SET Column_Namel=eEpressionl[,Column_Name2=eExpression2…]
            WHERE Condition
  說(shuō)明:利用WHERE字句指定條件,以更新滿足條件的一些記錄的字段值,并巨一次可更新多個(gè)字段;如果不使用WHERE子句,則更新全部記錄。

考點(diǎn)12 刪除

  SQL從表中刪除數(shù)據(jù)的命令格式如下:
        DELETE FROM TableName[WHERE Condition]
  說(shuō)明:FROM指定從哪個(gè)表中刪除記錄,WHERE指定被刪除的記錄所滿足的條件,如果不使用WHERE子句,則刪除該表中的全部記錄。

小提示:
  當(dāng)一個(gè)表定義一個(gè)主索引或候選索引后,由于相應(yīng)的字段具有關(guān)鍵字的特性,即不能為空,所以只能用此命令插入記錄、)APPEND和INSERT都是插入一條空白記錄再輸入各字段的值,故不能用它們來(lái)插入記錄。

5.4 定義功能

考點(diǎn)13 表的定義

  利用SQL命令建立的數(shù)據(jù)表同樣可以完成在表設(shè)計(jì)器中設(shè)計(jì)表的所有功能。
  格式:CREATE TABLE I DBF TableNamel[NAME LongTableName][FREE]
          (FieldNarnel FieldType[(nFieldWidth[,nPrecision])][NULL |NOT NULL]
          [CHECK IExpressionl [ERROR cMessageTextl]]
          [DEFAULT eExpressionl]
          [PRIMARY KEY I UNIQUE]
          [PEFERENCES TableName2[AG TagName1]]
          [NOCPTRANS]
          [,F(xiàn)ieldName2…]
          [,PRIMARY KEY eEpression2 TAG TagName2|,
          UNIQUE eExpression3 TAG TagName3]
          [,F(xiàn)OREIGN KEY eExpression4 TagName4[NODUP]
          REFERENCES TableName3 [TAG TagName5]]
          [,CHECK lExpression2[ERROR cMessageText2]])
          |FROM ARRAY ArravNasne
  說(shuō)明:此命令除了建立表的基本功能外,還包括滿足實(shí)體完整性的主關(guān)鍵字(主索引)PRIMARY KEY、定義域完整性的CHECK約束及出錯(cuò)提示信息ERROR、定義默認(rèn)值DEFAULT等,另外還有描述表之間聯(lián)系的FOREIGN KEY和REFERENCES等。

考點(diǎn)14 表的刪除

  利用SQL命令刪除表,可直接使用語(yǔ)句,格式為:
        DROP TABLE Table_name
  說(shuō)明:如果刪除的是自由表,則應(yīng)該將當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù)先關(guān)閉,才能進(jìn)行刪除。如果刪除數(shù)據(jù)庫(kù)表,則要先打開(kāi)數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)中進(jìn)行操作二否則,即使刪除了數(shù)據(jù)庫(kù)表,但記錄在數(shù)據(jù)庫(kù)中的信息并沒(méi)有被刪除,此后會(huì)出現(xiàn)錯(cuò)誤提示。

考點(diǎn)15 表結(jié)構(gòu)的修改

  修改表結(jié)構(gòu)的命令是ALTER TABLE,該命令有3種格式。
  (1)ALTER TABLE TableNamel ADD| ALTER[COLUMN]FieldNamel
        FieldTvpe[(nFieldWidth[,nPrecision])][NULL |NOT NULL]
        [CHECK lExpressionl[ERROR cMessageTextl ]][DEFAULT eExpressionl]
        [PRIMARY KEY |UNIQUE]
        [REFERENCES TableName2[TAG TagNamel〕]
  (2)ALTER TABLE TableNamel ALTER[COLUMN]FieldName2[NULL|NOT NULL]
        [SET EFAULTeExpression2][SET CHECK lExpression2[ERROR cMessageText2]
  [DROP DEFAULT][DROP CHECK]
  (3)ALTER TABLE TableName1[DROP [COLUMN]FieldName3]
        [SET CHECK lExpression3[ERROR cMessageText3]
        [DROP CHECK]
        [ADD PRIMARY KEY eExpression3 TAG TagName2[FOR lExpression4]]
        [DROP PRIMARY KEY〕
        [ADD UNIQUE eExpression4[TAG TagName3[FOR lExpression5]]]
        [DROP UNIQUE TAG TagName4]
        [ADD FOREIGN KEY[eExpression5] TAG TagName4[FOR lExpression6]
        REFERENCES TableName2[TAG TagName5]]
        [DROP FOREIGN KEY TAG TagName6[SAVE]]
        [RENAME COLUMN FieldName4 TO FieldName5]

考點(diǎn)16 視圖的定義

  1視圖的概念及其定義
  (l)視圖的概念。
  Visual FoxPro中視圖是一個(gè)虛擬的表,可以是本地的、遠(yuǎn)程的或帶參數(shù)的。
  (2)視圖的定義,格式為:
        CREATE VIEW view name[(column_name[,column_name]…)]
                    AS select_statement
  2從單個(gè)表派生出來(lái)的視圖
  視圖一經(jīng)定義,就可以和基本表一樣進(jìn)行各種查詢,也可以進(jìn)行一些修改操作。對(duì)于最終用戶來(lái)說(shuō),有時(shí)并不需要知道操作的是基本表還是視圖。
  3從多個(gè)表派生出來(lái)的視圖
  視圖一方面可以限定對(duì)數(shù)據(jù)的訪問(wèn),另一方面又可以簡(jiǎn)化對(duì)數(shù)據(jù)的訪問(wèn)。
  4視圖的刪除
  視圖由于是從表派生出來(lái)的,所以不存在修改結(jié)構(gòu)的問(wèn)題,但是視圖可以刪除。
  格式:DROP VIEW<視圖名>
  5關(guān)于視圖的說(shuō)明
  在關(guān)系數(shù)據(jù)庫(kù)中,視圖始終不真正含有數(shù)據(jù),它總是原有表的一個(gè)窗口。所以,雖然視圖可以像表一樣進(jìn)行各種查詢,但是插入、更新和刪除操作在視圖上卻有一定限制。在一般情況下,當(dāng)一個(gè)視圖是由單個(gè)表導(dǎo)出時(shí)可以進(jìn)行插入和更新操作,但不能進(jìn)行刪除操作;當(dāng)視圖是從多個(gè)表導(dǎo)出時(shí),插入、更新和刪除操作都不允許進(jìn)行。這種限制是很有必要的,它可以避免一些潛在問(wèn)題的發(fā)生。