第4章 結(jié)構(gòu)化查詢語言—SQL_第1頁
第4章 結(jié)構(gòu)化查詢語言—SQL_第2頁
第4章 結(jié)構(gòu)化查詢語言—SQL_第3頁
第4章 結(jié)構(gòu)化查詢語言—SQL_第4頁
第4章 結(jié)構(gòu)化查詢語言—SQL_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第 4 4 章章 結(jié)構(gòu)化查詢語言結(jié)構(gòu)化查詢語言SQLSQLSQL 語言之所以能夠?yàn)橛脩艉蜆I(yè)界所接受,并成為國際標(biāo)準(zhǔn),是因?yàn)樗且粋€綜合的、功能極強(qiáng)同時又簡捷易學(xué)的語言。SQL 語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,主要特點(diǎn)包括:1.綜合統(tǒng)一2.高度非過程化3.面向集合的操作方式4.以同一種語法結(jié)構(gòu)提供兩種使用方式SQL 語言既是自含式語言,又是嵌入式語言。自含和嵌入的含義。4.14.1 數(shù)據(jù)庫模式的建立和刪除數(shù)據(jù)庫模式的建立和刪除.1 建立數(shù)據(jù)庫模式建立數(shù)據(jù)庫模式建立一個新數(shù)據(jù)庫create database 數(shù)據(jù)庫名.2 刪除數(shù)據(jù)庫模式刪除

2、數(shù)據(jù)庫模式撤消一個數(shù)據(jù)庫drop database 數(shù)據(jù)庫名4.24.2 表結(jié)構(gòu)的建立、修改和刪除表結(jié)構(gòu)的建立、修改和刪除4.14.1 建立表結(jié)構(gòu)建立表結(jié)構(gòu)SQL 語言使用 CREATE TABLE 語句定義基本表,其一般格式如下:CREATE TABLE (列級完整性約束,列級完整性約束,);如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級。注意:定義表時每一個定義語句之間用逗號分隔,最后一條語句不用逗號。每個 SQL 語句以分號結(jié)束。例:CREATE TABLE C(cno char(4) not null,cname char(10) n

3、ot null,PRIMARY KEY(CNO) );CREATE TABLE SC(SNO CHAR(4) NOT NULL,CNO CHAR(4) NOT NULL,GRADE SMALLINT,PRIMARY KEY(SNO,CNO) ,F(xiàn)OREIGN KEY(SNO) REFERENCES S(SNO) ,F(xiàn)OREIGN KEY(CNO) REFERENCES C(CNO) ) ;.2 修改表結(jié)構(gòu)修改表結(jié)構(gòu)修改基本表SQL 語言用 ALTER TABLE 語句修改基本表,其一般格式為:ALTER TABLE ADD 完整性約束DROP MODIFY ;ADD 子句用于增

4、加新列和新的完整性約束條件,DROP 子句用于刪除制定的完整性約束條件,MODIFY 子句用于修改原有的列定義,包括修改列名和數(shù)據(jù)類型。簡單介紹教材上的例子。.3 刪除表結(jié)構(gòu)刪除表結(jié)構(gòu)當(dāng)某個基本表不再需要時,可以用 DROP TABLE 刪除,其格式為:DROP TABLE 基本表一旦刪除,表中的數(shù)據(jù)、此表上建立的索引和視圖都將自動被刪除掉。因此執(zhí)行刪除基本表的操作一定要格外小心。4.34.3 表內(nèi)容的插入、修改和刪除表內(nèi)容的插入、修改和刪除.1 插入記錄插入記錄命令insert into 表名 (列名,列名values (值 ,值)插入一條指定好值的元組ins

5、ert into 表名 (列名,列名(子查詢)插入子查詢結(jié)果中的若干條元組示例 insert into PROF values ( P123, “王明”, 35, D08, 498 ) insert into PROF (PNO, PNAME, DNO)values ( P123, “王明”, D08 ).2 修改操作修改操作命令update 表名 set 列名 = 表達(dá)式 | 子查詢 列名 = ,表達(dá)式 | 子查詢where 條件表達(dá)式指定對哪些列進(jìn)行更新,以及更新后的值是什么示例 老師工資上調(diào) 5%update PROFset SAL = SAL * 1.054.3.34.

6、3.3 刪除記錄刪除記錄命令delete from 表名 where 條件表達(dá)式從表中刪除符合條件的元組,如果沒有 where 語句,則刪除所有元組示例 清除所有選課記錄delete from SC 刪除王明老師所有的任課記錄delete from PCwhere PNO in (select PNO from PROF where PNAME = “王明”) 4.44.4 視圖的建立、修改和刪除視圖的建立、修改和刪除.1 建立視圖建立視圖定義視圖create view view_name(列名,列名 ) as (查詢表達(dá)式)with check option 視圖的屬性名缺省

7、為子查詢結(jié)果中的屬性名,也可以顯式指明 with check option 指明當(dāng)對視圖進(jìn)行 insert,update 時,要檢查是否滿足視圖定義中的條件.2 修改視圖內(nèi)容修改視圖內(nèi)容UPDATE .SET=,.FROM,.WHERE.2 修改視圖定義修改視圖定義 ALTER VIEW (,.)AS .4 刪除視圖刪除視圖撤消視圖drop view view_name4.54.5查詢查詢.1 SELECTSELECT 語句格式語句格式 SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAV

8、ING ORDER BY ASC|DESC;整個 SELECT 語句的含義是,根據(jù) WHERE 子句的條件表達(dá)式,從FROM 子句指定的基本表或視圖中找出滿足條件的元組,再按 SELECT子句中的目標(biāo)列表達(dá)式,選出元組中的屬性值形成結(jié)果表。如果有GROUP 子句,則將結(jié)果按的值進(jìn)行分組,該屬性列值相等的元組為一組。通常會在每組中作用集函數(shù)。如果 GROUP 子句帶HAVING 短語,則只有滿足指定條件的組才予輸出。如果有 ORDER BY子句,則結(jié)果表還要按的值的升序或降序排序。.2 SELECTSELECT 選項(xiàng)選項(xiàng)目標(biāo)列形式 可以為列名,* ,算術(shù)表達(dá)式,聚集函數(shù) “* *”

9、:表示“所有的屬性”給出所有老師的信息SELECTSELECT *FROMFROMPROF 帶, , 的算術(shù)表達(dá)式給出所有老師的姓名及稅后工資額SELECTSELECT PNAME,SAL 0.95FROMFROM PROF語法約束 缺省為保留重復(fù)元組,也可用關(guān)鍵字 ALLALL 顯式指明。若要去掉重復(fù)元組,可用關(guān)鍵字 DISTINCTDISTINCT 或 UNIQUEUNIQUE 指明示例 找出所有選修課程的學(xué)生 SELECTSELECT DISTINCTDISTINCT SNO FROMFROM SC.3FROMFROM 選項(xiàng)選項(xiàng)說明 FROM 子句列出查詢的對象表 當(dāng)目標(biāo)

10、列取自多個表時,在不混淆的情況下可以不用顯式指明來自哪個關(guān)系示例 例:找出工資低于 500 的職工的姓名、工資、系別 SELECTPNAME , SAL , DNAME FROM PROF , DEPT WHERE SAL 500 AND PROF.DNO = DEPT.DNO 例:列出教授“哲學(xué)”課程的老師的教工號及姓名 SELECT PROF. PNO , PNAME FROM PROF , PC , COURSE WHERE PROF.PNO = PC.PNOAND PC.CNO = COURSE.CNOAND COURSE.CNAME = “哲學(xué)”.4 選項(xiàng)選項(xiàng)語法成分

11、比較運(yùn)算符、 、=、 邏輯運(yùn)算符AND,OR,NOTBETWEEN 條件判斷表達(dá)式的值是否在某范圍內(nèi)示例 列出工資在 500800 之間的老師姓名 SELECT PNAME FROM PROF WHERE SAL BETWEEN 500 AND 800.5 BROUPBROUP BYBY 選項(xiàng)選項(xiàng)命令ORDER BY 列名 ASC | DESC示例 按系名升序列出老師姓名,所在系名,同一系中老師按姓名降序排列 SELECT DNAME,PNAME FROM PROF,DEPT WHERE PROF.DNO = DEPT.DNO ORDER BY DNAME ASC,PNAME

12、DESC.6 HAVINGHAVING 選項(xiàng)選項(xiàng)分組命令GROUP BY 列名 HAVING 條件表達(dá)式 GROUP BY 將表中的元組按指定列上值相等的原則分組,然后在每一分組上使用聚集函數(shù),得到單一值HAVING 則對分組進(jìn)行選擇,只將聚集函數(shù)作用到滿足條件的分組上.7 ORDERORDER BYBY 選項(xiàng)選項(xiàng)ORDER BY ASC|DESC;.8 INTOINTO 選項(xiàng)選項(xiàng)SELECT 語句中使用 INTO 選項(xiàng)可以將查詢結(jié)果寫進(jìn)新表,新表結(jié)構(gòu)與 SELECT 語句選擇列表中的字段相同。例如:SELECT FIELDS AS KEYSTRING, COUNT(FIELDS) AS HITCOUNTINTO #TEMP/*INTO*/FROM ENGLISHBOOKS.KEYS WHERE( KEYS LIKE %魯迅% )ANDFRM LIKE 24_*AAND (

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論