數(shù)據(jù)庫系統(tǒng)及應(yīng)用第5章-結(jié)構(gòu)化查詢語言SQL_第1頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用第5章-結(jié)構(gòu)化查詢語言SQL_第2頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用第5章-結(jié)構(gòu)化查詢語言SQL_第3頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用第5章-結(jié)構(gòu)化查詢語言SQL_第4頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用第5章-結(jié)構(gòu)化查詢語言SQL_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第5章結(jié)構(gòu)化查詢語言SQL第5章結(jié)構(gòu)化查詢語言SQL教學(xué)目標(biāo)結(jié)構(gòu)化查詢語言SQL是一種功能齊全的數(shù)據(jù)庫語言,包含數(shù)據(jù)定義功能、數(shù)據(jù)查詢功能、數(shù)據(jù)操縱功能和數(shù)據(jù)控制功能。其中最主要的功能就是查詢。通過本章學(xué)習(xí),學(xué)生應(yīng)掌握SQL語言的使用方法和技巧,提高知識綜合運(yùn)用能力,寫出高質(zhì)量的SQL查詢命令。第5章結(jié)構(gòu)化查詢語言SQL教學(xué)要求知識要點(diǎn)能力要求關(guān)聯(lián)知識SQL語言特點(diǎn)了解SQL語言的特點(diǎn),掌握在Visual FoxPro中使用SQL語句的方法SQL概述SQL的數(shù)據(jù)定義掌握CREATE TABLE、ALTER TABLET和DROP TABLE語句的格式,能使用這些語句創(chuàng)建、修改和刪除數(shù)據(jù)表數(shù)據(jù)表

2、的創(chuàng)建建立表間永久關(guān)系SQL的數(shù)據(jù)查詢掌握SELECT語句的格式,能使用該語句實(shí)現(xiàn)簡單查詢、嵌套查詢、連接查詢、分組與計(jì)算查詢查詢與統(tǒng)計(jì)SQL的數(shù)據(jù)操縱掌握INSERT、DELETE和UPDATE語句的格式,能使用這些語句實(shí)現(xiàn)數(shù)據(jù)表記錄的添加、刪除和更新表的基本操作5.1SQL概述SQL簡介1SQL語言具有以下特點(diǎn)。(1)SQL語言是一種介于關(guān)系代數(shù)和關(guān)系演算之間的語言,是一種一體化的語言。(2)SQL語言是一種高度非過程化的語言。(3)SQL語言的語法十分簡潔,實(shí)現(xiàn)核心功能,一般只要用到下面9個(gè)命令動詞,如表5-1所示,因此較容易學(xué)習(xí)和掌握。(4)SQL語言支持兩種不同的使用方式。一種是命令

3、交互方式,即用戶在終端直接輸入SQL命令對數(shù)據(jù)庫進(jìn)行操作;另一種是程序嵌入方式,即在程序設(shè)計(jì)時(shí)將SQL語句嵌入到高級語言程序中,運(yùn)行程序時(shí)自動執(zhí)行SQL語句序列。5.1SQL概述SQL簡介1SQL功能命令動詞數(shù)據(jù)定義CREATE、ALTER、DROP數(shù)據(jù)查詢SELECT數(shù)據(jù)操縱INSERT、DELETE、UPDATE數(shù)據(jù)控制GRANT、REVOKESQL命令動詞5.1SQL概述Visual FoxPro對SQL的支持2在Visual FoxPro中,用戶可以使用以下幾種方式執(zhí)行SQL語句或命令。(1)在命令窗口直接輸入SQL命令。(2)在程序中嵌入SQL語句。(3)在“視圖設(shè)計(jì)器”中使用入SQ

4、L語句。(4)在控件的屬性設(shè)置中使用SQL語句。(5)在控件的事件過程代碼中嵌入SQL語句。5.2數(shù)據(jù)定義建立表結(jié)構(gòu) 1建立一個(gè)數(shù)據(jù)表結(jié)構(gòu)完整的SQL命令格式如下:CREATE TABLE | DBF NAME FREE( (字段寬度 , ) NULL NOTNULL CHECK ERROR DEFAULT PRIMARY KEY | UNIQUE REFERENCES TAG NOCPTRANS , , PRIMARY KEY TAG | ,UNIQUE TAG , FORREIGN KEY TAG NODUP REFERENCES TAG ,CHECK ERROR ) | FROM ARR

5、AY 5.2數(shù)據(jù)定義建立表結(jié)構(gòu) 1功能:執(zhí)行該命令后建立一個(gè)數(shù)據(jù)表文件結(jié)構(gòu)。除了建立數(shù)據(jù)表的基本結(jié)構(gòu)外,還可以設(shè)置滿足實(shí)體完整性的主關(guān)鍵字PRIMARY KEY (主索引)、定義域完整性的CHECK約束及出錯(cuò)提示信息ERROR、定義默認(rèn)值DEFAULT等,另外還有描述表間聯(lián)系的FORREIGN KEY和REFERENCES等選項(xiàng)。5.2數(shù)據(jù)定義建立表結(jié)構(gòu) 1說明:(1)表示要建立的數(shù)據(jù)表名稱,選項(xiàng)TABLE和DBF是等價(jià)的。(2) NAME 表示為建立的數(shù)據(jù)表指定一個(gè)長表名。(3)在數(shù)據(jù)庫打開的情況下,默認(rèn)創(chuàng)建的是數(shù)據(jù)庫表。若使用FREE選項(xiàng),則指定創(chuàng)建一個(gè)自由表。(4) (字段寬度 , )

6、定義表中的第一個(gè)字段。(5)NULL或者NOTNULL表示是否允許該字段為空值。(6)CHECK 用來為字段值指定約束條件。ERROR 用來指定不滿足約束條件時(shí)顯示的出錯(cuò)提示信息。DEFAULT 用來指定字段默認(rèn)值。5.2數(shù)據(jù)定義建立表結(jié)構(gòu) 1(7)PRIMARY KEY用來指定當(dāng)前字段為主索引關(guān)鍵字,非數(shù)據(jù)庫表不能使用該參數(shù)。UNIQUE用來指定當(dāng)前字段為候選索引關(guān)鍵字。(8)REFERENCES 表示新建表與建立關(guān)聯(lián)。(9)NOCPTRANS用來禁止轉(zhuǎn)換為其他代碼頁,僅用于字符型或備注型字段。(10)FORREIGN KEYREFERENCES 用于指定當(dāng)前字段為外碼,建立普通索引,并與建

7、立關(guān)聯(lián)。(11)FROM ARRAY 表示根據(jù)數(shù)組的內(nèi)容建立表結(jié)構(gòu),數(shù)組的元素依次是字段名、類型等,一般不提倡使用此方法。5.2數(shù)據(jù)定義修改表結(jié)構(gòu)2格式1:ALTER TABLE ADD | ALTER COLUMN (字段寬度 , ) NULL NOTNULL CHECK ERROR DEFAULT PRIMARY KEY | UNIQUE REFERENCES TAG 功能:用于添加一個(gè)新的字段或者修改一個(gè)已有的字段。說明:(1)ADD子命令用于添加一個(gè)新的字段,ALTER子命令用于修改一個(gè)已有的字段。(2)使用該命令可以修改字段的類型、寬度、有效性規(guī)則、出錯(cuò)信息、默認(rèn)值,定義主關(guān)鍵字和關(guān)

8、系等,但不能修改字段名,其選擇項(xiàng)的功能及用法與CREATE TABLE命令相似。5.2數(shù)據(jù)定義修改表結(jié)構(gòu)2格式2:ALTER TABLE ALTER COLUMN NULL | NOTNULL SET DEFAULT SET CHECK ERROR DROP DEFAULT DROP CHECK 功能:用于修改和刪除字段的有效性規(guī)則及默認(rèn)值。5.2數(shù)據(jù)定義修改表結(jié)構(gòu)2格式3:ALTER TABLE DROP COLUMN SET CHECK ERROR DROP CHECK ADD PRIMARY KEY TAG FOR DROP PRIMARY KEY ADD UNIQUE TAG FOR

9、DROP UNIQUE ADD FORREIGN KEY TAG FOR REFERENCES TAG DROP FORREIGN KEY TAG SAVE RENAME COLUMN TO 功能:該命令用于刪除字段、修改字段名,定義、修改和刪除表一級的有效性規(guī)則。5.2數(shù)據(jù)定義刪除數(shù)據(jù)表 3DROP TABLE語句用于刪除數(shù)據(jù)表結(jié)構(gòu)及表中的記錄。格式: DROP TABLE /? RECYCLE功能:刪除指定的表。說明:/?選項(xiàng)將顯示“移去”對話框,從中可刪除指定的表。RECYCLE選項(xiàng)表示將刪除的表文件放入回收站,用戶以后還可以恢復(fù)。5.2數(shù)據(jù)定義創(chuàng)建和刪除視圖 4(1)創(chuàng)建視圖格式:CR

10、EATE VIEW ( , ) ) AS 功能:創(chuàng)建一個(gè)由視圖名指定的視圖。說明:命令中的 ,是視圖中的列名表,其數(shù)目應(yīng)與SELECT查詢語句中給出的列名一致。如果列名表省略,則以SELECT語句為準(zhǔn)。5.2數(shù)據(jù)定義創(chuàng)建和刪除視圖 4(2)刪除視圖格式:DROP VIEW 視圖刪除后,其定義的以及在它基礎(chǔ)上再建立的其他視圖將自動刪除。由于視圖是從基本表中衍生出來的,所以不能進(jìn)行結(jié)構(gòu)修改。若要改變視圖結(jié)構(gòu),則只能刪除后重新定義視圖。5.3數(shù)據(jù)查詢SQL查詢命令 1SELECT命令的一般格式如下:SELECT ALL | DISTINCT TOP PERCENT . AS , . AS FROM

11、AS INTO | TO FILE ADDITIVE | TO PRINTER PROMPT | TO SCREEN WHERE AND AND | OR AND | OR GROUP BY , HAVING UNION ALL ORDER BY ASC | DESC , ASC | DESC 功能:從FROM子句指定的數(shù)據(jù)表中,根據(jù)WHERE子句的條件表達(dá)式,找出滿足條件的數(shù)據(jù)并按指定的要求輸出。 5.3數(shù)據(jù)查詢SQL查詢命令 1說明:(1)ALL | DISTINCT:ALL(默認(rèn)值)表示顯示全部查詢結(jié)果;DISTINCT表示查詢結(jié)果相同的只顯示一行。(2)TOP PERCENT 用來指定

12、輸出(記錄)的行數(shù)或者行數(shù)的百分比。(3) . AS :每個(gè)在查詢結(jié)果中生成一列,為該列規(guī)定了列名??梢允潜淼淖侄?,也可以是常量或表達(dá)式。(4)FROM AS 用來指定需要查詢的數(shù)據(jù)表文件。如果來自多個(gè)表,則表名之間要用逗號分開。如果給數(shù)據(jù)表定義了一個(gè)局部別名,則在整個(gè)SELECT語句中,須用局部別名代替數(shù)據(jù)表名。(5)INTO :指定查詢的輸出目的地。例如INTO ARRAY表示輸出到數(shù)組,INTO CURSOR表示輸出到臨時(shí)表,INTO DBF或INTO TABLE表示輸出到數(shù)據(jù)表。若該項(xiàng)省略,則默認(rèn)輸出到名為“查詢”的瀏覽窗口。5.3數(shù)據(jù)查詢SQL查詢命令 1(6)TO FILE ADD

13、ITIVE :指定查詢結(jié)果輸出到一個(gè)ASCII文本文件,若使用 ADDITIVE 選項(xiàng)則表示將輸出結(jié)果追加到文件尾部。(7)TO PRINTER PROMPT :指定查詢結(jié)果輸出到打印機(jī),若使用 PROMPT 選項(xiàng)則將彈出對話框設(shè)置打印機(jī)。(8)TO SCREEN:表示查詢結(jié)果輸出到屏幕。(9)WHERE AND AND | OR :從多個(gè)數(shù)據(jù)表中查詢數(shù)據(jù)時(shí),指出查詢應(yīng)滿足的連接條件和篩選條件。(10)GROUP BY :表示分組查詢,將結(jié)果按分組列名的值進(jìn)行分組,該屬性列值相等的記錄為一個(gè)組。(11)HAVING :如果GROUP BY子句還帶有HAVING選項(xiàng),則只有滿足指定篩選條件的組才

14、能輸出。(12)ORDER BY ASC | DESC :表示將輸出結(jié)果按排序字段的值進(jìn)行升序或降序排列,默認(rèn)為升序。5.3數(shù)據(jù)查詢基本查詢 2基本查詢是基于單表的無條件查詢,由SELECT和FROM短語構(gòu)成。查詢輸出可以是數(shù)據(jù)表中的若干列,也可以是表的所有列。查詢命令中可以結(jié)合使用部分短語或選擇項(xiàng)。例如,使用 ALL | DISTINCT 選項(xiàng)可以指定輸出行是否具有重復(fù)字段值,使用ORDER BY短語可以對輸出進(jìn)行排序。5.3數(shù)據(jù)查詢條件查詢 35.3數(shù)據(jù)查詢連接查詢 4在兩個(gè)或兩個(gè)以上的表中進(jìn)行的查詢稱為連接查詢。由于SQL的高度非過程化,用戶只需要在FROM子句中指出要用到的表名,在WH

15、ERE中指出連接條件,連接過程由系統(tǒng)自動完成。5.3數(shù)據(jù)查詢嵌套查詢 5在SQL語言中,一個(gè)SELECT語句稱為一個(gè)查詢塊。有時(shí)候一個(gè)SELECT語句無法完成查詢?nèi)蝿?wù),需要將另一個(gè)查詢塊的結(jié)果作為條件語句的條件,即需要在一個(gè)SELECT語句的WHERE子句中出現(xiàn)另一個(gè)SELECT語句,這種查詢稱為嵌套查詢。嵌套查詢使得用戶能用多個(gè)簡單查詢構(gòu)造復(fù)雜的查詢,從而增強(qiáng)SQL語言的查詢能力。下面舉例說明嵌套查詢的用法。5.3數(shù)據(jù)查詢統(tǒng)計(jì)查詢 65.3數(shù)據(jù)查詢查詢結(jié)果輸出 7(1)輸出部分結(jié)果在SELECT語句中常使用TOP PERCENT 短語來顯示滿足條件的前幾條記錄。不帶PERCENT參數(shù)時(shí),n是132767之間的整數(shù),說明顯示前n條記錄;使用PERCENT參數(shù)時(shí),n是0.0199.99之間的實(shí)數(shù),說明顯示查詢結(jié)果中前百分之多少的記錄。5.3數(shù)據(jù)查詢查詢結(jié)果輸出 7(2)輸出去向SELECT語句中INTO或TO短語用于指定查詢結(jié)果的輸出去向。5.4 數(shù)據(jù)操縱插入數(shù)據(jù) 1(1)命令格式1:INSERT INTO ( , ) VALUES (, )功能:在表尾追加一條新紀(jì)錄,并將指定的值賦給對應(yīng)的字段。(2)命令格式2:INSERT INTO FROM ARRAY | FROM 功能:在表尾追加一條新紀(jì)錄,字段的內(nèi)容為數(shù)組或內(nèi)存變量的值。5.4 數(shù)據(jù)操縱刪除數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論