【學(xué)習(xí)課件】第8章關(guān)系數(shù)據(jù)庫標準語言SQLvisualfoxpro全套資料(計算機國家二級課件)_第1頁
【學(xué)習(xí)課件】第8章關(guān)系數(shù)據(jù)庫標準語言SQLvisualfoxpro全套資料(計算機國家二級課件)_第2頁
【學(xué)習(xí)課件】第8章關(guān)系數(shù)據(jù)庫標準語言SQLvisualfoxpro全套資料(計算機國家二級課件)_第3頁
【學(xué)習(xí)課件】第8章關(guān)系數(shù)據(jù)庫標準語言SQLvisualfoxpro全套資料(計算機國家二級課件)_第4頁
【學(xué)習(xí)課件】第8章關(guān)系數(shù)據(jù)庫標準語言SQLvisualfoxpro全套資料(計算機國家二級課件)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第8章 結(jié)構(gòu)化查詢語言SQL 8.1 SQL語言概述 SQL語言是數(shù)據(jù)庫的標準語言,幾乎所有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL標準。SQL語言的主要特點是:(1)高度集成化 SQL語言集數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢和數(shù)據(jù)控制功能于一體。(2)非過程化 SQL是一種非過程化的語言。(3)簡潔易學(xué) SQL語言完成數(shù)據(jù)定義(CREATE、DROP、ALTER)數(shù)據(jù)操縱(INSERT、UPDATE、DELETE)、數(shù)據(jù)控制(GRANT、REVOKE)和數(shù)據(jù)查詢(SELECT)等核心功能只用了9個命令動詞;而且語法也接近英語自然語法。(4)用法靈活 SQL語言既能夠以人機交互方式來使用,也可以嵌入到程序

2、設(shè)計語言中以程序方式使用。8.2 數(shù)據(jù)定義 標準SQL的數(shù)據(jù)定義功能非常廣泛,包括數(shù)據(jù)庫、表、視圖、存儲過程、規(guī)則及索引的定義等。數(shù)據(jù)定義語言由3個命令組成。(1)定義表:CREATE Table(2)修改表結(jié)構(gòu): ALTER Table(3)刪除表:DROP Table8.2.1 表的定義格式:CREATE TABLE|DBF (字段名 類型(寬度,小數(shù)位數(shù))NULL CHECK ERROR DEFAULT PRIMARY KEY|UNIQUE & 主索引|候選索引例如,定義一個名為“學(xué)生1.DBF”的數(shù)據(jù)庫表: CREATE TABLE 學(xué)生1(學(xué)號 C(8) PRIMARY,; & 學(xué)號

3、為主索引 姓名 C(8),性別 C(2) DEFUALT “男”,; & 性別的默認值為“男” 出生日期 D,系別 C(10),貸款否 L,簡歷 M,照片 G NULL)8.2.2 表結(jié)構(gòu)的修改(1)格式1:添加或修改字段 ALTER TABLE ADD|ALTER (寬度,小數(shù)位數(shù)) CHECK ERROR PRIMARY KEY | UNIQUE例如, 在“成績1”表中添加一個字段:平時成績 N(5) ALTER TABLE 成績1 ADD 平時成績 N(5) 將平時成績字段修改為 N(5,1) ALTER TABLE 成績1 ALTER 平時成績 N(5,1)8.2.2 表結(jié)構(gòu)的修改(2

4、) 格式2:修改或刪除默認值、字段有效性規(guī)則ALTER TABLE ALTER SET DEFAULT DROP DEFAULT SET CHECK DROP CHECK例如, 刪除“成績1”表中平時成績字段的有效性規(guī)則: ALTER TABLE 成績1 ALTER 平時成績 DROP CHECK 將平時成績字段的默認值設(shè)置為80: ALTER TABLE 成績1 ALTER 平時成績 SET DEFAULT 808.2.2 表結(jié)構(gòu)的修改(3)格式3:刪除字段、更改字段名、設(shè)置記錄有效性規(guī)則等ALTER TABLE DROP & 刪除字段ENAME COLUMN TO & 更改字段名SET C

5、HECK ERROR DROP CHECK & 設(shè)置或刪除記錄有效性規(guī)則ADD PRIMARY KEY TAG DROP PRIMARY KEY & 設(shè)置或刪除主復(fù)合索引表達式 ADD UNIQUE TAG DROP UNIQUE & 設(shè)置或刪除候選復(fù)合索引表達式 例:將“學(xué)生1”表中的“學(xué)號”字段更名為“學(xué)生證編號“ ALTER TABLE 學(xué)生1 RENAME COLUMN 學(xué)號 TO 學(xué)生證編號 對“學(xué)生1”表中的“姓名”和“出生日期”字段建立主索引 ALTER TABLE 學(xué)生1 ADD PRIMARY KEY 姓名+DTOC(出生日期) TAG 姓名_生日 8.2.3 表的刪除(3)

6、刪除表: DROP TABLE 例如,刪除“學(xué)生1”表 DROP TABLE 學(xué)生18.3 數(shù)據(jù)操縱 (1)插入記錄 格式1:在表的尾部尾添加一條新記錄 INSERT INTO (字段1,字段2,) VALUES (值1,值2,) 說明:插入所有字段值時,可省略 例如,向“學(xué)生1”表中添加兩條記錄: INSERT INTO 學(xué)生1 VALUES(“01020314”,”張紅”,“男”,; 1982/07/01,”計算機”,.T.,”張紅是北京人”,null) INSERT INTO 學(xué)生1(學(xué)號,姓名) VALUES(“01020315”,”李蘭”) 格式2:記錄值來自數(shù)組或同名的內(nèi)存變量 I

7、NSERT INTO FROM ARRAY |FROM MEMVAR8.3 數(shù)據(jù)操縱(2)刪除記錄 格式:DELETE FROM WHERE 說明:該命令執(zhí)行的是邏輯刪除操作。 例如,將“學(xué)生1”表中所有男生的記錄邏輯刪除: DELETE FOR 學(xué)生1 WHERE 性別 = “男”(3) 更新記錄 格式:UPDATE SET = WHERE 例如,將“學(xué)生1”表中所有男生的“貸款否”字段改為“.T.” UPDATE 學(xué)生1 SET 貸款否 = .T. WHERE 性別 = “男” 8.4 數(shù)據(jù)查詢 數(shù)據(jù)查詢是SQL語言的核心,也稱作SQL-SELECT命令。使用SQL-SELECT命令,可以

8、對數(shù)據(jù)源進行各種組合,有效地篩選記錄、管理數(shù)據(jù)、并對結(jié)果排序及指定輸出去向等,無論查詢多么復(fù)雜,其內(nèi)容只有一條SELECT語句。 SQL-SELECT 命令可以進行多個查詢塊的嵌套查詢,以完成更復(fù)雜的查詢?nèi)蝿?wù)。8.4 數(shù)據(jù)查詢格式:SELECT DISTINCT TOP PERCENT . AS , . AS , FROM AS ,AS , INNER|LEFT|RIGHT|FULL JOIN ON INTO |TO FILE |TO PRINT WHERE AND GROUP BY HAVING ORDER BY , UNION SELECT 8.4 數(shù)據(jù)查詢1. 基本查詢:SELECTFR

9、OMWHERE 例如,從“學(xué)生”表中查詢所有男生的學(xué)號、姓名和出生日期: SELECT 學(xué)號,姓名,出生日期 FROM 學(xué)生 WHERE 性別=“男”2. 帶特殊運算符的條件查詢:在 WHERE 子句所帶的篩選條件表達式中可以使用一些特殊運算符,如 IN、BETWEENAND、LIKE 。 例如,查詢成績良好(7585分)的學(xué)生和課程信息: SELECT * FROM 成績 WHERE 成績 BETWEEN 75 AND 85 3. 排序查詢:使用 ORDER BY 子句,可以對查詢結(jié)果按升序(ASC)或降序(DESC)排列。 例如,按課程號輸出學(xué)生的各科成績,同一門課按成績降序排列: SEL

10、ECT * FROM 成績 ORDER BY 課程號, 成績 DESC8.4 數(shù)據(jù)查詢4.計算與分組查詢:使用 GROUP BY 子句可以實現(xiàn)分組查詢,通常與計算查詢(如計數(shù)、求和、求平均值等)結(jié)合使用,先按指定的數(shù)據(jù)項分組,再對各組匯總計算。 例如,查詢各門課程的平均成績: SELECT 課程號,AVG(成績) AS 平均成績 FROM 成績 GROUP BY 課程號5. 多表查詢:多表查詢時,表和表之間必須有聯(lián)接關(guān)系,在WHERE子句中可以指定表間的聯(lián)接關(guān)系。其格式為: . = . 或 . = .例如,查詢各門課程的平均成績,要求輸出課程名和成績信息: SELECT 課程名,AVG(成績)

11、 AS 平均成績 FROM 課程 KC,成績 CJ; WHERE KC.課程號 = CJ.課程號 GROUP BY CJ.課程號8.4 數(shù)據(jù)查詢6. 聯(lián)接查詢:利用 FROMON 子句建立兩表之間的聯(lián)接。 格式:FROM INNER | LEFT | RIGHT | FULL JION ON 說明:INNER JOIN(內(nèi)部聯(lián)接)、LEFT JOIN(左聯(lián)接)、RIGHT JOIN(右聯(lián)接)、FULL JOIN(全聯(lián)接)的含義與 4.1.2 節(jié)中相同。 例如, 查詢各門課程的平均成績,要求輸出課程名和成績信息: SELECT 課程名,AVG(成績) AS 平均成績 FROM 課程 KC ; I

12、NNER JOIN 成績 CJ; ON KC.課程號 = CJ.課程號 ; GROUP BY CJ.課程號8.4 數(shù)據(jù)查詢7. 嵌套查詢:在一個 SELECT 命令的 WHERE 子句中出現(xiàn)另一個 SELECT 命令(即子查詢)。 子查詢的結(jié)果必須是確定的值。 例如,查詢李華同學(xué)所學(xué)課程的課程名和成績: SELECT 課程名, 成績 FROM 課程 KC, 成績 CJ; WHERE KC.課程號 = CJ.課程號 ; AND CJ.學(xué)號 = (SELECT 學(xué)號 FROM 學(xué)生 WHERE 姓名 =“李華”) 子查詢WHERE 子句中同時包含聯(lián)接條件和篩選條件8.4 數(shù)據(jù)查詢8. 查詢輸出:查詢結(jié)果默認顯示在瀏覽窗口中,通過 INTO 子句或TO 子

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論