




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言——SQL第五章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言——SQL本章教學(xué)目標(biāo)、重點(diǎn)和難點(diǎn)
本章教學(xué)目標(biāo):使學(xué)生了解SQL的功能和語(yǔ)言特點(diǎn);熟練掌握用SQL進(jìn)行表的定義、數(shù)據(jù)查詢和數(shù)據(jù)更新,掌握SQL的數(shù)據(jù)控制方法。2.教學(xué)重點(diǎn):SQL的數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)維護(hù)和數(shù)據(jù)控制表示方法3.教學(xué)難點(diǎn):用SQL實(shí)現(xiàn)嵌套查詢、組合查詢、使用分組和SQL函數(shù)查詢。本章教學(xué)目標(biāo)、重點(diǎn)和難點(diǎn)本章教學(xué)目標(biāo):使學(xué)生了解SQL的功本章內(nèi)容SQL的功能及特點(diǎn)數(shù)據(jù)定義語(yǔ)句數(shù)據(jù)查詢語(yǔ)句數(shù)據(jù)更新語(yǔ)句嵌入式SQL數(shù)據(jù)控制機(jī)制和語(yǔ)句本章內(nèi)容SQL的功能及特點(diǎn)SQL的功能及特點(diǎn)19741975-19791986-198719921999由Boyce和Chamberlin提出IBM公司研制了關(guān)系DBMS原型,并實(shí)現(xiàn)該語(yǔ)言美國(guó)批準(zhǔn)SQL作為美國(guó)標(biāo)準(zhǔn),隨后ISO也通過(guò)這一標(biāo)準(zhǔn)公布了SQL-92標(biāo)準(zhǔn)公布了SQL-99,也稱作SQL3SQL的功能及特點(diǎn)19741975-19791986-198SQL的功能及特點(diǎn)數(shù)據(jù)定義數(shù)據(jù)控制數(shù)據(jù)操縱SQL語(yǔ)句分類SQL的功能及特點(diǎn)數(shù)據(jù)定義數(shù)據(jù)控制數(shù)據(jù)操縱SQL語(yǔ)句分類SQL的功能及特點(diǎn)SQL語(yǔ)句分類數(shù)據(jù)定義數(shù)據(jù)操縱數(shù)據(jù)控制定義關(guān)系數(shù)據(jù)庫(kù)的模式、外模式和內(nèi)模式,以實(shí)現(xiàn)對(duì)基本表、視圖以及索引文件的定義、修改和刪除等操作。包括數(shù)據(jù)查詢和數(shù)據(jù)更新兩種數(shù)據(jù)操作語(yǔ)句:數(shù)據(jù)查詢指對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)查詢、統(tǒng)計(jì)、分組、排序操作;數(shù)據(jù)更新指數(shù)據(jù)的插入、刪除、修改等數(shù)據(jù)維護(hù)操作。通過(guò)對(duì)數(shù)據(jù)庫(kù)用戶的授權(quán)和收權(quán)命令來(lái)實(shí)現(xiàn)有關(guān)數(shù)據(jù)的存取控制,以保證數(shù)據(jù)庫(kù)的安全性。SQL的功能及特點(diǎn)SQL語(yǔ)句分類數(shù)據(jù)定義數(shù)據(jù)操縱數(shù)據(jù)控制定義SQL的功能及特點(diǎn)SQL的特點(diǎn)1)SQL具有自主式語(yǔ)言和嵌入式語(yǔ)言兩種使用方式;2)SQL具有語(yǔ)言簡(jiǎn)潔、易學(xué)易用的特點(diǎn);SQL功能命令動(dòng)詞數(shù)據(jù)定義(數(shù)據(jù)模式定義、刪除、修改)Create、Drop、Alter數(shù)據(jù)操縱(數(shù)據(jù)查詢和維護(hù))Select、Insert、Update、Delete數(shù)據(jù)控制(數(shù)據(jù)存取控制權(quán)和收權(quán))Grant、RemoveSQL的功能及特點(diǎn)SQL的特點(diǎn)SQL功能命令動(dòng)詞數(shù)據(jù)定義(數(shù)SQL的功能及特點(diǎn)SQL的特點(diǎn)3)SQL支持三級(jí)模式結(jié)構(gòu)存儲(chǔ)文件1存儲(chǔ)文件2基本表1基本表2基本表3基本表4視圖1視圖2SQL外模式模式內(nèi)模式SQL的功能及特點(diǎn)SQL的特點(diǎn)存儲(chǔ)文件1存儲(chǔ)文件2基本表1基數(shù)據(jù)定義語(yǔ)句操作對(duì)象創(chuàng)建語(yǔ)句刪除語(yǔ)句修改語(yǔ)句基本表CreatetableDroptableAltertable索引CreateindexDropindex視圖CreateviewDropview數(shù)據(jù)庫(kù)CreatedatabaseDropdatabaseAlterdatabase1.語(yǔ)句格式約定符號(hào)尖括號(hào)<>中括號(hào)[]大括號(hào){}或分隔符|[,…n]實(shí)際語(yǔ)義任選項(xiàng)必選項(xiàng),必選其中一項(xiàng)前面的項(xiàng)可重復(fù)多次數(shù)據(jù)定義語(yǔ)句操作對(duì)象創(chuàng)建語(yǔ)句刪除語(yǔ)句修改語(yǔ)句基本表Creat數(shù)據(jù)定義語(yǔ)句2.一般語(yǔ)法規(guī)定SQL中的數(shù)據(jù)項(xiàng)(包括列項(xiàng)、表和視圖)分隔符為“,”,其字符串常數(shù)的定界符用單引號(hào)“’”表示3.SQL特殊語(yǔ)法規(guī)定SQL的關(guān)鍵詞一般使用大寫字母表示;語(yǔ)句的結(jié)束符為“;”語(yǔ)句一般應(yīng)采用格式化書寫方式數(shù)據(jù)定義語(yǔ)句2.一般語(yǔ)法規(guī)定數(shù)據(jù)定義語(yǔ)句基本表的定義和維護(hù)1.基本表的定義定義基本表語(yǔ)句的一般格式為:CREATETABLE[〈庫(kù)名〉]〈表名〉(〈列名〉〈數(shù)據(jù)類型〉[〈列級(jí)完整性約束條件〉][,〈列名〉〈數(shù)據(jù)類型〉[〈列級(jí)完整性約束條件〉]][,…n]
[,〈表級(jí)完整性約束條件〉][,…n]);數(shù)據(jù)定義語(yǔ)句基本表的定義和維護(hù)定義基本表語(yǔ)句的一般格式為:數(shù)據(jù)定義語(yǔ)句建立基本表:學(xué)生(學(xué)號(hào),姓名,年齡,性別,所在系);
課程(課程號(hào),課程名,先行課);選課(學(xué)號(hào),課程號(hào),成績(jī)).CREATETABLE課程(課程號(hào)CHAR(5)PRIMARYKEY,
課程名CHAR(20),
先行課CHAR(5)
);數(shù)據(jù)定義語(yǔ)句建立基本表:CREATETABLE課程(課數(shù)據(jù)定義語(yǔ)句(1)SQL支持的數(shù)據(jù)類型類型表示類型說(shuō)明數(shù)值型數(shù)據(jù)SMALLINT半字長(zhǎng)二進(jìn)制證書,15bit數(shù)據(jù)INTEGER或INT全字長(zhǎng)(4字長(zhǎng))整數(shù),31bit數(shù)據(jù)DECIMAL(p[,q])十進(jìn)制數(shù),共p位,其中小數(shù)點(diǎn)后q位,0《q《p,q=0時(shí)可省略不寫FLOAT雙字長(zhǎng)浮點(diǎn)數(shù)字符型數(shù)據(jù)CHARTER(n)或CHAR(n)長(zhǎng)度為n的定長(zhǎng)圖形字符串VARCHAR(n)最大長(zhǎng)度為n的變長(zhǎng)字符串特殊數(shù)據(jù)類型GRAPHIC(n)長(zhǎng)度為n的定長(zhǎng)圖形字符串VARGRAPHIC(n)最大長(zhǎng)度為n的變長(zhǎng)圖形字符串日期時(shí)間型DATE日期型,格式為YYYY-MM-DDTIME時(shí)間型,格式為HH.MM.SSTIMESTAMP日期加時(shí)間數(shù)據(jù)定義語(yǔ)句(1)SQL支持的數(shù)據(jù)類型類型表示類型說(shuō)明數(shù)值型數(shù)據(jù)定義語(yǔ)句(2)列級(jí)完整性的約束條件1)NOTNULL或NULL約束NOTNULL約束不允許字段值為空而NULL約束允許字段值為空。2)UNIQUE約束UNIQUE約束是惟一性約束,即不允許列中出現(xiàn)重復(fù)的屬性值。3)DEFAULT約束DEFAULT為默認(rèn)值約束。DEFAULT〈約束名〉〈默認(rèn)值〉FOR〈列名〉4)CHECK約束CHECK為檢查約束。
CONSTRAINT〈約束名〉CHECK(〈約束條件表達(dá)式〉)數(shù)據(jù)定義語(yǔ)句(2)列級(jí)完整性的約束條件數(shù)據(jù)定義語(yǔ)句建立基本表:學(xué)生(學(xué)號(hào),姓名,年齡,性別,所在系);
課程(課程號(hào),課程名,先行課);選課(學(xué)號(hào),課程號(hào),成績(jī)).CREATETABLE學(xué)生(學(xué)號(hào)CHAR(5)NOTNULLUNIQUE,
姓名CHAR(8)NOTNULL,
年齡SMALLINT,
性別CHAR(2),
所在系CHAR(20),
DEFAULTC120FOR年齡,
CONSTRAINTC2CHECK(性別IN('男','女')));
數(shù)據(jù)定義語(yǔ)句建立基本表:CREATETABLE學(xué)生(學(xué)數(shù)據(jù)定義語(yǔ)句(3)表級(jí)完整性的約束條件1)UNIQUE約束UNIQUE約束是惟一性約束,當(dāng)要求列祖的值不能有重復(fù)值時(shí),使用UNIQUE約束定義。2)PRIMARYKEY約束定義主碼,保證惟一性和非空性。CONTRAINT〈約束名〉PRIMARYKEY[CLUSTERED](〈列組〉)3)FOREIGNKEY約束用于定義參照完整性。
CONTRAINT〈約束名〉FOREIGNKEY(〈外碼〉)
REFERENCES〈被參照表名〉(〈與外碼對(duì)應(yīng)的主碼名〉)數(shù)據(jù)定義語(yǔ)句(3)表級(jí)完整性的約束條件數(shù)據(jù)定義語(yǔ)句建立基本表:學(xué)生(學(xué)號(hào),姓名,年齡,性別,所在系);
課程(課程號(hào),課程名,先行課);選課(學(xué)號(hào),課程號(hào),成績(jī)).CREATETABLE選課(學(xué)號(hào)CHAR(5),
課程號(hào)CHAR(5),
成績(jī)SMALLINT,
CONSTRAINTC3CHECK(成績(jī)BETWEEN0AND100),
CONSTRAINTC4PRIMARYKEY(學(xué)號(hào),課程號(hào)),
CONSTRAINTC5FOREIGNKEY(學(xué)號(hào))REFERENCES學(xué)生(學(xué)號(hào)),
CONSTRAINTC6FOREIGNKEY(課程號(hào))REFERENCES課程(課程號(hào)));數(shù)據(jù)定義語(yǔ)句建立基本表:CREATETABLE選課(學(xué)數(shù)據(jù)定義語(yǔ)句2.修改基本表ALTERTABLE〈表名〉
[ADD(〈新列名〉〈數(shù)據(jù)類型〉[完整性約束][,…n])]
[DROP〈完整性約束名〉]
[MODIFY(〈列名〉〈數(shù)據(jù)類型〉[,…n])];使用ADD子句增加新列
【例5-2】向課程表中增加“學(xué)時(shí)”字段。
ALTERTABLE課程ADD學(xué)時(shí)SMALLINT;使用MODIFY子句修改列的原定義:MODIFY子句主要用于加寬原列的寬度使用DROP子句刪除指定的完整性約束條件
【例5-3】刪除學(xué)生表中對(duì)年齡的默認(rèn)值的定義。
ALTERTABLE學(xué)生DROPC1;數(shù)據(jù)定義語(yǔ)句2.修改基本表ALTERTABLE〈表名〉
數(shù)據(jù)定義語(yǔ)句3.刪除基本表刪除基本表的一般格式為:DROPTABLE〈表名〉;數(shù)據(jù)定義語(yǔ)句3.刪除基本表刪除基本表的一般格式為:DROP數(shù)據(jù)定義語(yǔ)句索引的定義和維護(hù)1.索引的作用使用索引可以明顯地加快數(shù)據(jù)查詢的速度;先將索引文件讀入內(nèi)存,根據(jù)索引項(xiàng)找到元組的地址,然后再根據(jù)地址將元組數(shù)據(jù)直接讀入計(jì)算機(jī)。由于索引文件中只含有索引項(xiàng)和元組地址,所以文件小,一般可一次讀入內(nèi)存索引文件中的索引項(xiàng)是經(jīng)過(guò)排序的,可以很快地找到索引項(xiàng)值和元組地址數(shù)據(jù)定義語(yǔ)句索引的定義和維護(hù)使用索引可以明顯地加快數(shù)據(jù)查詢的數(shù)據(jù)定義語(yǔ)句索引的定義和維護(hù)1.索引的作用使用索引可以明顯地加快數(shù)據(jù)查詢的速度;
使用索引可保證數(shù)據(jù)的惟一性;使用索引可以加快連接速度。2.建立索引的原則索引的建立和維護(hù)由DBA和DBMS完成;大表應(yīng)當(dāng)建索引,小表則不必建索引;對(duì)于一個(gè)基本表,不要建立過(guò)多的索引;根據(jù)查詢要求建索引。數(shù)據(jù)定義語(yǔ)句索引的定義和維護(hù)使用索引可以明顯地加快數(shù)據(jù)查詢的數(shù)據(jù)定義語(yǔ)句3.建立索引的格式建立格式為:
CREATE[UNIQUE][CLUSTER]INDEX〈索引名〉ON〈表名〉(〈列名〉[〈次序〉][,〈列名〉[〈次序〉]]…);<表名>是要建索引的基本表的名字;每個(gè)<列名>后面還可以用<次序>指定索引值的排列次序,次序可選ASC(升序)或DESC(降序),默認(rèn)值為ASC;UNIQUE表示該索引的每一個(gè)索引值只對(duì)應(yīng)唯一的數(shù)據(jù)記錄;CLUSTER表示要建立的索引是聚簇索引,使基本表中數(shù)據(jù)的物理順序與索引項(xiàng)的排列順序一致。數(shù)據(jù)定義語(yǔ)句3.建立索引的格式建立格式為:
CREATE[數(shù)據(jù)定義語(yǔ)句3.建立索引的格式【例5-4】為學(xué)生_課程數(shù)據(jù)庫(kù)中的學(xué)生、課程和選課三個(gè)表建立索引。其中,學(xué)生表按學(xué)號(hào)升序建立索引;課程表按課程號(hào)升序建惟一索引;選課表按學(xué)號(hào)升序和課程號(hào)降序建惟一索引。
CREATEUNIQUEINDEX學(xué)號(hào)ON學(xué)生(學(xué)號(hào));
CREATEUNIQUEINDEX課程號(hào)ON課程(課程號(hào));
CREATEUNIQUEINDEX選課號(hào)ON選課(學(xué)號(hào)ASC,課程號(hào)DESC);數(shù)據(jù)定義語(yǔ)句3.建立索引的格式【例5-4】為學(xué)生_課程數(shù)數(shù)據(jù)定義語(yǔ)句4.刪除索引刪除索引格式為:DROPINDEX〈索引名〉;例:刪除學(xué)生表的學(xué)生姓名索引DROPINDEX學(xué)生姓名數(shù)據(jù)定義語(yǔ)句4.刪除索引刪除索引格式為:DROPI數(shù)據(jù)定義語(yǔ)句視圖的定義和維護(hù)1.視圖的優(yōu)點(diǎn)視圖是根據(jù)子模式設(shè)計(jì)的關(guān)系,由一個(gè)或幾個(gè)基本表導(dǎo)出的虛表。視圖能夠簡(jiǎn)化用戶的操作;視圖機(jī)制可以減少用戶對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)結(jié)構(gòu)的調(diào)整操作,使用戶將注意力集中在所關(guān)心的數(shù)據(jù)上。2)視圖機(jī)制可以使用戶以不同的方式看待同一數(shù)據(jù);當(dāng)多用戶共享同一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)時(shí),通過(guò)視圖機(jī)制可以實(shí)現(xiàn)各個(gè)用戶對(duì)數(shù)據(jù)的不同使用要求。3)視圖可以對(duì)機(jī)密的數(shù)據(jù)提供安全保護(hù)數(shù)據(jù)定義語(yǔ)句視圖的定義和維護(hù)視圖能夠簡(jiǎn)化用戶的操作;數(shù)據(jù)定義語(yǔ)句1.視圖的優(yōu)點(diǎn)4)視圖對(duì)數(shù)據(jù)庫(kù)的重構(gòu)提供了一定程度的邏輯獨(dú)立性;在關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)的重構(gòu)往往是不可避免的。但由于視圖機(jī)制,將為應(yīng)用程序提供了原來(lái)使用的關(guān)系,保持外模式。原表:學(xué)生(學(xué)號(hào),姓名,性別,年齡,所在系)分成:SX(學(xué)號(hào),姓名,年齡)SY(學(xué)號(hào),性別,所在系)CREATEVIEW學(xué)生(學(xué)號(hào),姓名,性別,年齡,所在系)ASSELECTSX.學(xué)號(hào),SX.姓名,SX.性別,SY.年齡,SY.所在系FROMSX,SYWHERESX.學(xué)號(hào)=SY.學(xué)號(hào);數(shù)據(jù)定義語(yǔ)句1.視圖的優(yōu)點(diǎn)4)視圖對(duì)數(shù)據(jù)庫(kù)的重構(gòu)提供了一定程數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式一般格式為:CREATEVIEW〈視圖名〉[(列名組)]AS〈子查詢〉
[WITHCHECKOPTION];(1)WITHCHECKOPTION選項(xiàng)表示在對(duì)視圖進(jìn)行UPDATE、INSERT和DELETE操作時(shí),要保證操作的數(shù)據(jù)滿足視圖定義中的謂詞條件。該謂詞條件是視圖子查詢中的WHERE子句的條件。數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式一般格式為:(1)WITHC數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式一般格式為:CREATEVIEW〈視圖名〉[(列名組)]AS〈子查詢〉
[WITHCHECKOPTION];(2)組成視圖的屬性列名全部省略或者全部指定若省略了視圖的各個(gè)屬性列名,則由子查詢中的SELECT子句的目標(biāo)列代替必須明確指定列名的情況①某個(gè)目標(biāo)列是集函數(shù)或列表達(dá)式;②子查詢中使用多個(gè)表(或視圖),并且目標(biāo)列中含有相同的屬性名;③需要在視圖中改用新的、更合適的列名。數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式一般格式為:(2)組成視圖的屬數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式【例5-6】建立計(jì)算機(jī)系學(xué)生的視圖。
CREATEVIEW計(jì)算機(jī)系學(xué)生
ASSELECT學(xué)號(hào),姓名,年齡
FROM學(xué)生
WHERE所在系=‘計(jì)算機(jī)系’;數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式【例5-6】建立計(jì)算機(jī)系學(xué)生的數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式【例5-7】由學(xué)生、課程和選課三個(gè)表,定義一個(gè)計(jì)算機(jī)系的學(xué)生成績(jī)視圖,其屬性包括學(xué)號(hào)、姓名、課程名和成績(jī)CREATEVIEW學(xué)生成績(jī)(學(xué)號(hào),姓名,課程名,成績(jī))ASSELECT學(xué)生.學(xué)號(hào),學(xué)生.姓名,課程.課程名,選課.成績(jī)
FORM學(xué)生,課程,選課
WHERE學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)AND程.課程名=選課.課程號(hào)
AND學(xué)生.所在系=‘計(jì)算機(jī)系’;數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式【例5-7】由學(xué)生、課程和選課數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式【例5-8】將學(xué)生的學(xué)號(hào)、總成績(jī)、平均成績(jī)定義成一個(gè)視圖。CREATEVIEW學(xué)生成績(jī)統(tǒng)計(jì)(學(xué)號(hào),總成績(jī),平均成績(jī))ASSELECT學(xué)號(hào),SUM(成績(jī)),AVG(成績(jī))
FORM選課
GROUPBY學(xué)號(hào);3.視圖的刪除DROPVIEW<視圖名>數(shù)據(jù)定義語(yǔ)句2.視圖定義的格式【例5-8】將學(xué)生的學(xué)號(hào)、總成數(shù)據(jù)定義語(yǔ)句4.視圖的查詢和維護(hù)視圖可以和基本表一樣被查詢,其使用方法與基本表相同,但利用視圖進(jìn)行數(shù)據(jù)增、刪、改操作,會(huì)受到一定的限制。一般的數(shù)據(jù)庫(kù)系統(tǒng)不支持對(duì)下列幾種情況的視圖進(jìn)行數(shù)據(jù)更新操作。1)由兩個(gè)以上基本表導(dǎo)出的視圖2)視圖的字段來(lái)自字段表達(dá)式函數(shù)3)視圖中有分組子句或使用了DISTINCT短語(yǔ)4)視圖定義中有嵌套查詢,且內(nèi)層查詢中涉及了與外層一樣的導(dǎo)出該視圖的基本表5)在一個(gè)不允許更新的視圖上定義的視圖數(shù)據(jù)定義語(yǔ)句4.視圖的查詢和維護(hù)視圖可以和基本表一樣被查詢,數(shù)據(jù)查詢語(yǔ)句數(shù)據(jù)查詢的基本語(yǔ)法1.SELECT語(yǔ)句的語(yǔ)法SELECT〈目標(biāo)列組〉FROM〈數(shù)據(jù)源〉[WHERE〈元組選擇條件〉][GROUPBY〈分列組〉[HAVING〈組選擇條件〉]][ORDERBY〈排序列1〉〈排序要求1〉[,…n]];數(shù)據(jù)查詢語(yǔ)句數(shù)據(jù)查詢的基本語(yǔ)法SELECT〈目標(biāo)列組〉數(shù)據(jù)查詢語(yǔ)句1.SELECT語(yǔ)句的語(yǔ)法SELECT子句:指明目標(biāo)列(字段、表達(dá)式、函數(shù)表達(dá)式、常量)?;颈碇邢嗤牧忻硎緸椋骸幢砻?〈列名〉FROM子句:指明數(shù)據(jù)源。表間用“,”分割。數(shù)據(jù)源不在當(dāng)前數(shù)據(jù)庫(kù)中,使用“〈數(shù)據(jù)庫(kù)名〉.〈表名〉”表示。一表多用,用別名標(biāo)識(shí)。定義表別名:〈表名〉.〈別名〉WHERE子句:元組選擇條件。數(shù)據(jù)查詢語(yǔ)句1.SELECT語(yǔ)句的語(yǔ)法SELECT子句:指明數(shù)據(jù)查詢語(yǔ)句1.SELECT語(yǔ)句的語(yǔ)法學(xué)生課程庫(kù)結(jié)構(gòu)為:學(xué)生(學(xué)號(hào),姓名,年齡,所在系);
課程(課程號(hào),課程名,先行課);
選課(學(xué)號(hào),課程號(hào),成績(jī)).【例5-9】求數(shù)學(xué)系學(xué)生的學(xué)號(hào)和姓名。
SELECT學(xué)號(hào),姓名
FROM學(xué)生
WHERE所在系=‘?dāng)?shù)學(xué)系’;【例5-10】求選修了課程的學(xué)生學(xué)號(hào)。
SELECTDISTINCT學(xué)號(hào)
FROM選課;數(shù)據(jù)查詢語(yǔ)句1.SELECT語(yǔ)句的語(yǔ)法學(xué)生課程庫(kù)結(jié)構(gòu)為:學(xué)生數(shù)據(jù)查詢語(yǔ)句1.SELECT語(yǔ)句的語(yǔ)法(4)GROUPBY子句:結(jié)果集分組。當(dāng)目標(biāo)列中有統(tǒng)計(jì)函數(shù),則統(tǒng)計(jì)為分組統(tǒng)計(jì),否則為對(duì)整個(gè)結(jié)果集統(tǒng)計(jì)。子句后帶上HAVING子句表達(dá)組選擇條件(帶函數(shù)的表達(dá)式)。(5)ORDERBY子句:排序。當(dāng)排序要求為ASC時(shí)升序排序;排序要求為DESC時(shí)降序排列?!纠?-11】求選修C1課程的學(xué)生學(xué)號(hào)和成績(jī),并要求對(duì)查詢結(jié)果按成績(jī)的降序排列,如果成績(jī)相同則按學(xué)號(hào)的升序排列。
SELECT學(xué)號(hào),成績(jī)
FROM選課
WHERE課程號(hào)=‘C1’
ORDERBY成績(jī)DESC,學(xué)號(hào)ASC;數(shù)據(jù)查詢語(yǔ)句1.SELECT語(yǔ)句的語(yǔ)法(4)GROUPB數(shù)據(jù)查詢語(yǔ)句2.SELECT語(yǔ)句的操作符(1)算術(shù)操作符
+(加號(hào))、-(減號(hào))、*(乘號(hào))和/(除號(hào))。(2)比較操作符
=(等于)、>(大于)、<(小于)、<=(小于等于)、>=(大于等于)、!=(不等于)、<>(小于大于)、!>(不大于)和!<(不小于),共9種操作符。
數(shù)據(jù)查詢語(yǔ)句2.SELECT語(yǔ)句的操作符(1)算術(shù)操作符
數(shù)據(jù)查詢語(yǔ)句語(yǔ)義操作符使用格式或示例在[不在]其中[NOT]IN〈字段〉IN(〈數(shù)據(jù)表|子查詢〉)任何一個(gè)ANY〈字段〉〈比較符〉A(chǔ)NY(數(shù)據(jù)表|子查詢)例:〈字段〉>ANY(數(shù)據(jù)表|子查詢)全部(每個(gè))ALL〈字段〉〈比較符〉A(chǔ)LL(數(shù)據(jù)表|子查詢)例:〈字段〉>ALL(數(shù)據(jù)表|子查詢)[不]存在EXISTSEXISTS(〈子查詢〉)在[不在]范圍[NOT]BETWEEN…AND…〈字段〉[NOT]BETWEEN小值A(chǔ)ND大值是[不是]空值IS[NOT]NULL〈字段〉IS[NOT]NULL模式比較[NOT]LIKE〈字段〉[NOT]LIKE〈字符常數(shù)〉其中,“_”單字符通配符和“%”多字符通配符與運(yùn)算AND〈條件1〉A(chǔ)ND〈條件2〉或運(yùn)算OR〈條件1〉OR〈條件2〉非運(yùn)算NOTNOT〈條件〉數(shù)據(jù)查詢語(yǔ)句語(yǔ)義操作符使用格式或示例在[不在]其中[NOT]數(shù)據(jù)查詢語(yǔ)句(4)組合查詢操作符SQL的組合查詢操作符是針對(duì)傳統(tǒng)關(guān)系運(yùn)算的操作符,包括UNION(并查詢)、MINUS(差查詢)和INTERSECT(交查詢)其格式為:<查詢1><組合操作符><查詢2>1)UNION:并查詢,并在結(jié)果集中去掉重復(fù)行。2)MINUS:差查詢操作。
3)INTERSECT:交查詢操作。
4)*:取全部字段。格式為:*或〈表名〉.*
5)ALL:全部。保留重復(fù)值(有統(tǒng)計(jì)函數(shù)時(shí)要求計(jì)算重復(fù)值)。
格式為:ALL〈字段〉或
ALL〈字段組〉
6)DISTINCT:去掉重復(fù)值。在結(jié)果集中去掉重復(fù)值,或在統(tǒng)計(jì)函數(shù)中不計(jì)重復(fù)值。
格式為:DISTINCT〈字段〉或
DISTINCT〈字段組〉數(shù)據(jù)查詢語(yǔ)句(4)組合查詢操作符數(shù)據(jù)查詢語(yǔ)句【例5-12】求選修課程C1且成績(jī)?cè)?0~90之間的學(xué)生學(xué)號(hào)和成績(jī),并將成績(jī)乘以系數(shù)0.8輸出。
SELECT學(xué)號(hào),成績(jī)*0.8
FROM選課
WHERE課程號(hào)=‘C1’AND
成績(jī)BETWEEN80AND90;【例5-13】求數(shù)學(xué)系或計(jì)算機(jī)系姓張的學(xué)生的信息。
SELECT*
FROM學(xué)生
WHERE所在系IN(‘?dāng)?shù)學(xué)系’,‘計(jì)算機(jī)系’)AND姓名LIKE‘張%’;1.簡(jiǎn)單查詢實(shí)例數(shù)據(jù)查詢語(yǔ)句【例5-12】求選修課程C1且成績(jī)?cè)?0~90之?dāng)?shù)據(jù)查詢語(yǔ)句【例5-14】求缺少了成績(jī)的學(xué)生的學(xué)號(hào)和課程號(hào)。
SELECT學(xué)號(hào),課程號(hào)
FROM選課
WHERE成績(jī)ISNULL;數(shù)據(jù)查詢語(yǔ)句【例5-14】求缺少了成績(jī)的學(xué)生的學(xué)號(hào)和課程號(hào)。數(shù)據(jù)查詢語(yǔ)句2.連接查詢實(shí)例連接查詢中的連接條件通過(guò)WHERE子句表達(dá),連接條件和元組選擇條件之間用AND(與)操作符銜接(1)等值連接和非等值連接
[〈表名1〉.]〈列名1〉〈比較運(yùn)算符〉[〈表名2〉.]〈列名2〉
比較運(yùn)算符:=、>、<、>=、<=和!=;列名稱為連接字段?!纠?-15】查詢每個(gè)學(xué)生的情況以及他(她)所選修的課程。
SELECT學(xué)生.*,選課.*
FROM學(xué)生,選課
WHERE學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào);數(shù)據(jù)查詢語(yǔ)句2.連接查詢實(shí)例(1)等值連接和非等值連接
數(shù)據(jù)查詢語(yǔ)句【例5-16】求學(xué)生的學(xué)號(hào)、姓名、選修的課程名及成績(jī)。
SELECT學(xué)生.學(xué)號(hào),姓名,課程名,成績(jī)
FROM學(xué)生,課程,選課
WHERE學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)
AND課程.課程號(hào)=選課.課程號(hào);【例5-17】求選修C1課程且成績(jī)?yōu)?0分以上的學(xué)生學(xué)號(hào)、姓名及成績(jī)。
SELECT學(xué)生.學(xué)號(hào),姓名,成績(jī)
FROM學(xué)生,選課
WHERE學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)
AND課程號(hào)=‘C1’AND成績(jī)>90;數(shù)據(jù)查詢語(yǔ)句【例5-16】求學(xué)生的學(xué)號(hào)、姓名、選修的課程名及數(shù)據(jù)查詢語(yǔ)句(2)自身連接操作
例如,課程表中的先行課是在上學(xué)期應(yīng)開(kāi)設(shè)的,先行課的先行課,即間接先行課應(yīng)提前一學(xué)年開(kāi)設(shè)。如果求查詢某門課的間接先行課或全部課程的間接先行課,就需要對(duì)課程表進(jìn)行自身連接。課程號(hào)課程名先行課C1計(jì)算機(jī)引論—C2PASCAL語(yǔ)言C1C3數(shù)據(jù)結(jié)構(gòu)C2C4數(shù)據(jù)庫(kù)C3C5軟件工程C4課程的先行關(guān)系鏈為:C5→C4→C3→C2→C1,課程的間接關(guān)系鏈為:C5→C3→C1。數(shù)據(jù)查詢語(yǔ)句(2)自身連接操作
例如,課程表中的先行課是在數(shù)據(jù)查詢語(yǔ)句(2)自身連接操作【例5-18】查詢每一門課的間接先行課。
SELECTA.課程號(hào),A.課程名,B.先行課
FROM課程A,課程B
WHEREA.先行課=B.課程號(hào)
課程號(hào)課程名先行課
課程號(hào)課程名先行課C1計(jì)算機(jī)引論
C1計(jì)算機(jī)引論
C2Pascal語(yǔ)言C1C2Pascal語(yǔ)言C1C3數(shù)據(jù)結(jié)構(gòu)C2C3數(shù)據(jù)結(jié)構(gòu)C2C4數(shù)據(jù)庫(kù)C3C4數(shù)據(jù)庫(kù)C3C5軟件工程C4C5軟件工程C4數(shù)據(jù)查詢語(yǔ)句(2)自身連接操作【例5-18】查詢每一門課的數(shù)據(jù)查詢語(yǔ)句(2)自身連接操作【例5-18】查詢每一門課的間接先行課。
SELECTA.課程號(hào),A.課程名,B.先行課
FROM課程A,課程B
WHEREA.先行課=B.課程號(hào)
A.課程號(hào)A.課程名B.先行課C2Pascal語(yǔ)言
C3數(shù)據(jù)結(jié)構(gòu)C1C4數(shù)據(jù)庫(kù)C2C5軟件工程C3數(shù)據(jù)查詢語(yǔ)句(2)自身連接操作【例5-18】查詢每一門課的數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作左外部連接操作是在結(jié)果集中保留連接表達(dá)式左表中的非匹配記錄;右外部連接操作是在結(jié)果集中保留連接表達(dá)式右表中的非匹配記錄。外部連接符號(hào)為“*=”,右外部連接符號(hào)為“=*”。外部連接中不匹配的分量用NULL表示。職工號(hào)姓名性別年齡所在部門
部門號(hào)部門名稱電話1010李勇男201111生產(chǎn)科5661011劉晨女19
12計(jì)劃科5781012王敏女221213一車間4671014張立男211314科研所
數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作左外部連接操作是在結(jié)數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作職工號(hào)姓名性別年齡所在部門部門名稱電話1010李勇男2011生產(chǎn)科5661012王敏女2212計(jì)劃科5781014張立男2113一車間467內(nèi)連接的結(jié)果集數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作職工號(hào)姓名性別年齡所在部門部數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作左連接的結(jié)果集職工號(hào)姓名性別年齡所在部門部門名稱電話1010李勇男2011生產(chǎn)科5661011劉晨女19
1012王敏女2212計(jì)劃科5781014張立男2113一車間467數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作左連接的結(jié)果集職工號(hào)姓名性別數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作右連接的結(jié)果集職工號(hào)姓名性別年齡所在部門部門名稱電話1010李勇男2011生產(chǎn)科5661012王敏女2212計(jì)劃科5781014張立男2113一車間467科研所數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作右連接的結(jié)果集職工號(hào)姓名性別數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作【例5-19】用SQL表達(dá)職工和部門之間的內(nèi)連接、左外部連接和右外部連接的語(yǔ)句內(nèi)連接:
SELECT職工.*,部門名稱,電話
FROM職工,部門
WHERE職工.所在部門=部門.部門號(hào);左外部連接:
SELECT職工.*,部門名稱,電話
FROM職工,部門
WHERE職工.所在部門*=部門.部門號(hào);右外部連接:
SELECT職工.*,部門名稱,電話
FROM職工,部門
WHERE職工.所在部門=*部門.部門號(hào);數(shù)據(jù)查詢語(yǔ)句(3)外部連接操作【例5-19】用SQL表達(dá)職數(shù)據(jù)查詢語(yǔ)句3.嵌套查詢?cè)赟QL語(yǔ)言中,一個(gè)SELECT…FROM…WHERE語(yǔ)句稱為一個(gè)查詢塊。將一個(gè)查詢塊嵌套在另一個(gè)查詢塊的WHERE子句或HAVING短語(yǔ)的條件中的查詢稱為嵌套查詢。(1)使用IN操作符的嵌套查詢
【例5-20】求選修了高等數(shù)學(xué)的學(xué)生學(xué)號(hào)和姓名。
SELECT學(xué)號(hào),姓名
FROM學(xué)生
WHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)
FROM選課
WHERE課程號(hào)IN(SELECT課程號(hào)
FROM課程
WHERE課程名=‘高等數(shù)學(xué)’));數(shù)據(jù)查詢語(yǔ)句3.嵌套查詢?cè)赟QL語(yǔ)言中,一個(gè)SELECT…F數(shù)據(jù)查詢語(yǔ)句3.嵌套查詢?cè)赟QL語(yǔ)言中,一個(gè)SELECT…FROM…WHERE語(yǔ)句稱為一個(gè)查詢塊。將一個(gè)查詢塊嵌套在另一個(gè)查詢塊的WHERE子句或HAVING短語(yǔ)的條件中的查詢稱為嵌套查詢。(1)使用IN操作符的嵌套查詢
【例5-20】求選修了高等數(shù)學(xué)的學(xué)生學(xué)號(hào)和姓名。
該題也可以使用下面的連接查詢表達(dá)。
SELECT學(xué)生.學(xué)號(hào),姓名
FROM學(xué)生,課程,選課
WHERE學(xué)生.學(xué)號(hào)=課程.學(xué)號(hào)AND課程.課程號(hào)=選課.課程號(hào)
AND課程.課程名=‘高等數(shù)學(xué)’;數(shù)據(jù)查詢語(yǔ)句3.嵌套查詢?cè)赟QL語(yǔ)言中,一個(gè)SELECT…F數(shù)據(jù)查詢語(yǔ)句3.嵌套查詢(2)使用比較符的嵌套查詢【例5-21】求C1課程的成績(jī)高于張三的學(xué)生學(xué)號(hào)和成績(jī)。
SELECT學(xué)號(hào),成績(jī)
FROM選課
WHERE課程號(hào)=‘C1’AND成績(jī)>(SELEC成績(jī)
FROM選課
WHERE課程號(hào)=‘C1’AND學(xué)號(hào)=
(SELECT學(xué)號(hào)
FROM學(xué)生
WHERE姓名='張三'));數(shù)據(jù)查詢語(yǔ)句3.嵌套查詢(2)使用比較符的嵌套查詢數(shù)據(jù)查詢語(yǔ)句(3)使用ANY或ALL操作符的嵌套查詢其格式為:<字段><比較符>[ANY|ALL]<子查詢>操作符語(yǔ)意>ANY大于子查詢結(jié)果中的某個(gè)值,即表示大于查詢結(jié)果中最小值>ALL大于子查詢結(jié)果中的所有值,即表示大于查詢結(jié)果中最大值<ANY小于子查詢結(jié)果中的某個(gè)值,即表示小于查詢結(jié)果中最大值<ALL小于子查詢結(jié)果中的所有值,即表示小于查詢結(jié)果中最小值>=ANY大于等于子查詢結(jié)果中的某個(gè)值,即表示大于等于結(jié)果集中最小值>=ALL大于等于子查詢結(jié)果中的所有值,即表示大于等于結(jié)果集中最大值數(shù)據(jù)查詢語(yǔ)句(3)使用ANY或ALL操作符的嵌套查詢操作符數(shù)據(jù)查詢語(yǔ)句(3)使用ANY或ALL操作符的嵌套查詢其格式為:<字段><比較符>[ANY|ALL]<子查詢>操作符語(yǔ)意<=ANY小于等于子查詢結(jié)果中的某個(gè)值,即表示小于等于結(jié)果集中最大值<=ALL小于等于子查詢結(jié)果中的所有值,即表示小于等于結(jié)果集中最小值=ANY等于子查詢結(jié)果中的某個(gè)值,即相當(dāng)于IN=ALL等于子查詢結(jié)果中的所有值(通常沒(méi)有實(shí)際意義)!=(或<>)ANY不等于子查詢結(jié)果中的某個(gè)值,!=(或<>)ALL不等于子查詢結(jié)果中的任何一個(gè)值,即相當(dāng)于NOTIN數(shù)據(jù)查詢語(yǔ)句(3)使用ANY或ALL操作符的嵌套查詢操作符數(shù)據(jù)查詢語(yǔ)句(3)使用ANY或ALL操作符的嵌套查詢其格式為:<字段><比較符>[ANY|ALL]<子查詢>【例5-22】求其他系中比計(jì)算機(jī)系某一學(xué)生年齡小的學(xué)生。
SELECT*
FROM學(xué)生
WHERE年齡<ANY(SELECT年齡
FROM學(xué)生
WHERE所在系=‘計(jì)算機(jī)系’)AND所在系<>‘計(jì)算機(jī)系’;數(shù)據(jù)查詢語(yǔ)句(3)使用ANY或ALL操作符的嵌套查詢【例5數(shù)據(jù)查詢語(yǔ)句(3)使用ANY或ALL操作符的嵌套查詢其格式為:<字段><比較符>[ANY|ALL]<子查詢>【例5-23】求其他系中比計(jì)算機(jī)系學(xué)生年齡都小的學(xué)生。
SELECT*
FROM學(xué)生
WHERE年齡<ALL(SELECT年齡
FROM學(xué)生
WHERE所在系='計(jì)算機(jī)系')AND所在系<>'計(jì)算機(jī)系';數(shù)據(jù)查詢語(yǔ)句(3)使用ANY或ALL操作符的嵌套查詢【例5數(shù)據(jù)查詢語(yǔ)句(4)使用EXISTS操作符的嵌套查詢【例5-24】求選修了C2課程的學(xué)生姓名。
SELECT姓名
FROM學(xué)生
WHEREEXISTS(SELECT*
FROM選課
WHERE學(xué)生.學(xué)號(hào)=學(xué)號(hào)AND課程號(hào)='C2');Select姓名From學(xué)生,選課Where學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)and課程號(hào)=‘c2’數(shù)據(jù)查詢語(yǔ)句(4)使用EXISTS操作符的嵌套查詢【例5-數(shù)據(jù)查詢語(yǔ)句(4)使用EXISTS操作符的嵌套查詢【例5-25】求沒(méi)有選修C2課程的學(xué)生姓名。
SELECT姓名
FROM學(xué)生
WHERENOTEXISTS(SELECT*
FROM選課
WHERE學(xué)生.學(xué)號(hào)=學(xué)號(hào)AND課程號(hào)=‘C2’);不能寫成以下:Select姓名From學(xué)生,選課Where學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)and課程號(hào)<>‘c2’數(shù)據(jù)查詢語(yǔ)句(4)使用EXISTS操作符的嵌套查詢【例5-數(shù)據(jù)查詢語(yǔ)句(4)使用EXISTS操作符的嵌套查詢【例5-26】查詢選修了全部課程的學(xué)生的姓名。
SELECT姓名
FROM學(xué)生
WHERENOTEXISTS(SELECT*
FROM課程
WHERENOTEXISTS
(SELECT*
FROM選課
WHERE學(xué)生.學(xué)號(hào)=學(xué)號(hào)AND
課程.課程號(hào)=課程號(hào)));由于SQL沒(méi)有全稱量詞的操作符,該題轉(zhuǎn)換為查詢這樣的學(xué)生:沒(méi)有一門課他不選修。數(shù)據(jù)查詢語(yǔ)句(4)使用EXISTS操作符的嵌套查詢【例5-數(shù)據(jù)查詢語(yǔ)句(4)使用EXISTS操作符的嵌套查詢【例5-27】求至少選修了學(xué)號(hào)為“S2”的學(xué)生所選修的全部課程的學(xué)生學(xué)號(hào)和姓名。
SELECT學(xué)號(hào),姓名
FROM學(xué)生
WHERENOTEXISTS(SELECT*FROM選課選課1WHERE選課1.學(xué)號(hào)='S2'ANDNOTEXISTS(SELECT*FROM選課選課2WHERE學(xué)生.學(xué)號(hào)=選課2.學(xué)號(hào)
AND選課2.課程號(hào)=選課1.課程號(hào));數(shù)據(jù)查詢語(yǔ)句(4)使用EXISTS操作符的嵌套查詢【例5-數(shù)據(jù)查詢語(yǔ)句4.組合查詢Union并操作,Intersect交操作,MINUS差操作【例5-28】求選修了C1課程或選修了C2課程的學(xué)生學(xué)號(hào)。
SELECT學(xué)號(hào)
FROM選課
WHERE課程號(hào)=‘C1’
UNION
SELECT學(xué)號(hào)
FROM選課
WHERE課程號(hào)=‘C2’;Select學(xué)號(hào)From選課Where課程號(hào)=‘C1’or課程號(hào)=‘C2’數(shù)據(jù)查詢語(yǔ)句4.組合查詢【例5-28】求選修了C1課程或選修數(shù)據(jù)查詢語(yǔ)句4.組合查詢【例5-29】求選修C1課程,并且也選修C2課程的學(xué)生學(xué)號(hào)。
SELECT學(xué)號(hào)
FROM選課
WHERE課程號(hào)='C1'
INTERSECT
SELECT學(xué)號(hào)
FROM選課
WHERE課程號(hào)='C2';數(shù)據(jù)查詢語(yǔ)句4.組合查詢【例5-29】求選修C1課程,并且也數(shù)據(jù)查詢語(yǔ)句4.組合查詢【例5-30】求選修了C1課程但沒(méi)有選修C2課程的學(xué)生學(xué)號(hào)。SELECT學(xué)號(hào)
FROM選課
WHERE課程號(hào)='C1'
MINUS
SELECT學(xué)號(hào)
FROM選課
WHERE課程號(hào)='C2';數(shù)據(jù)查詢語(yǔ)句4.組合查詢【例5-30】求選修了C1課程但沒(méi)有數(shù)據(jù)查詢語(yǔ)句4.組合查詢【例5-30】求選修了C1課程但沒(méi)有選修C2課程的學(xué)生學(xué)號(hào)。本例也可以用下面的EXISTS嵌套查詢表示。
SELECT學(xué)號(hào)
FROM選課選課1
WHERE課程號(hào)='C1'ANDNOTEXISTS
(SELECT學(xué)號(hào)
FROM選課選課2
WHERE選課1.學(xué)號(hào)=選課2.學(xué)號(hào)AND選課2.課程號(hào)='C2');數(shù)據(jù)查詢語(yǔ)句4.組合查詢【例5-30】求選修了C1課程但沒(méi)有數(shù)據(jù)查詢語(yǔ)句5.使用分組和SQL函數(shù)查詢函數(shù)功能AVG(〈數(shù)值表達(dá)式〉)求與字段相關(guān)的數(shù)值表達(dá)式的平均值SUM(〈數(shù)值表達(dá)式〉)求與字段相關(guān)的數(shù)值表達(dá)式的和值MIN(〈字段表達(dá)式〉)求字段表達(dá)式的最小值MAX(〈字段表達(dá)式〉)求字段表達(dá)式的最大值COUNT(*|〈字段〉)求記錄行數(shù)(*),或求不是NULL的字段的行數(shù)數(shù)據(jù)查詢語(yǔ)句5.使用分組和SQL函數(shù)查詢函數(shù)功能AVG(〈數(shù)數(shù)據(jù)查詢語(yǔ)句5.使用分組和SQL函數(shù)查詢【例5-31】求學(xué)生的總?cè)藬?shù)。
SELECTCOUNT(*)FROM學(xué)生;【例5-32】求選修了課程的學(xué)生人數(shù)。
SELECTCOUNT(DISTINCT學(xué)號(hào))
FROM選課;數(shù)據(jù)查詢語(yǔ)句5.使用分組和SQL函數(shù)查詢【例5-31】求學(xué)生數(shù)據(jù)查詢語(yǔ)句5.使用分組和SQL函數(shù)查詢【例5-33】求課程和選修該課程的人數(shù)。
SELECT課程號(hào),COUNT(學(xué)號(hào))
FROM選課
GROUPBY課程號(hào);【例5-34】求選修課超過(guò)3門課的學(xué)生學(xué)號(hào)。
SELECT學(xué)號(hào)
FROM選課
GROUPBY學(xué)號(hào)HAVINGCOUNT(*)>3;數(shù)據(jù)查詢語(yǔ)句5.使用分組和SQL函數(shù)查詢【例5-33】求課程數(shù)據(jù)更新語(yǔ)句SQL的數(shù)據(jù)插入功能1.使用常量插入單個(gè)元組格式為:
INSERT
INTO〈表名〉[(〈屬性列1〉[,〈屬性列2〉…)]
VALUES(〈常量1〉[,〈常量2〉]…);數(shù)據(jù)更新語(yǔ)句SQL的數(shù)據(jù)插入功能格式為:
INSER數(shù)據(jù)更新語(yǔ)句SQL的數(shù)據(jù)插入功能1.使用常量插入單個(gè)元組【例5-35】將一個(gè)新學(xué)生記錄(學(xué)號(hào):‘98010’,姓名:‘張三’,年齡:20,所在系:‘計(jì)算機(jī)系’)插入到學(xué)生表中。
INSERT
INTO學(xué)生
VALUES(‘98010’,‘張三’,20,‘計(jì)算機(jī)系’);【例5-36】插入一條選課記錄(學(xué)號(hào):‘98011’,課程號(hào):‘C10’,成績(jī)不詳)。
INSERT
INTO選課(學(xué)號(hào),課程號(hào))
VALUES('98011','C10');數(shù)據(jù)更新語(yǔ)句SQL的數(shù)據(jù)插入功能【例5-35】將一個(gè)新學(xué)生記數(shù)據(jù)更新語(yǔ)句2.在表中插入子查詢的結(jié)果集INSERT
INTO〈表名〉[(〈屬性列1〉[,〈屬性列2〉]…)]
〈子查詢〉;【例5-37】求每個(gè)系學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫(kù)中。
CREATETABLE系平均年齡(系名稱CHAR(20),
平均年齡SMALLINT);
INSERT
INTO系平均年齡
SELECT所在系,AVG(ALL年齡)
FROM學(xué)生
GROUPBY所在系;數(shù)據(jù)更新語(yǔ)句2.在表中插入子查詢的結(jié)果集【例5-37】求每個(gè)數(shù)據(jù)更新語(yǔ)句3.SQL的數(shù)據(jù)修改功能UPDATE〈表名〉
SET〈列名〉=〈表達(dá)式〉[,〈列名〉=〈表達(dá)式〉][,…n]
[WHERE〈條件〉];【例5-38】將學(xué)生表中全部學(xué)生的年齡加上2歲。
UPDATE學(xué)生
SET年齡=年齡+2;
【例5-39】將選課表中的數(shù)據(jù)庫(kù)課程的成績(jī)乘以1.2。
UPDATE選課
SET成績(jī)=成績(jī)*1.2
WHERE課程號(hào)=(SELECT課程號(hào)
FROM課程
WHERE課程名='數(shù)據(jù)庫(kù)');數(shù)據(jù)更新語(yǔ)句3.SQL的數(shù)據(jù)修改功能【例5-38】將學(xué)生表中數(shù)據(jù)更新語(yǔ)句3.SQL的數(shù)據(jù)刪除功能DELETE
FROM〈表名〉
[WHERE〈條件〉];【例5-40】刪除藝術(shù)系的學(xué)生記錄及選課記錄。
DELETE
FROM選課
WHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)
FROM學(xué)生
WHERE所在系='藝術(shù)系');
DELETE
FROM學(xué)生
WHERE所在系='藝術(shù)系';數(shù)據(jù)更新語(yǔ)句3.SQL的數(shù)據(jù)刪除功能【例5-40】刪除藝術(shù)系嵌入式SQL嵌入式SQL的特點(diǎn)1.嵌入式SQL應(yīng)注意的問(wèn)題
1)SQL和主語(yǔ)言的配合問(wèn)題。
2)合理選擇主語(yǔ)言。
2.SQL嵌入主語(yǔ)言時(shí)必須解決的三個(gè)問(wèn)題
(1)如何區(qū)別SQL和主語(yǔ)言
在所有的SQL語(yǔ)句前面加上前綴EXECSQL;SQL語(yǔ)句的結(jié)束標(biāo)志隨主語(yǔ)言的不同而不同嵌入式SQL嵌入式SQL的特點(diǎn)1.嵌入式SQL應(yīng)注意的問(wèn)題嵌入式SQL嵌入式SQL的特點(diǎn)2.SQL嵌入主語(yǔ)言時(shí)必須解決的三個(gè)問(wèn)題
(2)使數(shù)據(jù)庫(kù)的工作單元與程序工作單元之間能夠通信
1)主語(yǔ)言通過(guò)主變量向SQL語(yǔ)句提供參數(shù)。
2)SQL語(yǔ)句的當(dāng)前工作狀態(tài)和運(yùn)行環(huán)境數(shù)據(jù)要返饋給應(yīng)用程序。
(3)使用游標(biāo)解決SQL一次一集合的操作與主語(yǔ)言一次一記錄操作的矛盾
游標(biāo)是系統(tǒng)為用戶開(kāi)設(shè)的一個(gè)數(shù)據(jù)緩沖區(qū),存放SQL語(yǔ)句的執(zhí)行結(jié)果。嵌入式SQL嵌入式SQL的特點(diǎn)2.SQL嵌入主語(yǔ)言時(shí)必須解嵌入式SQL不用游標(biāo)的SQL語(yǔ)句1.幾種不需要使用游標(biāo)的SQL語(yǔ)句
(1)用于說(shuō)明主變量的說(shuō)明性語(yǔ)句
SQL的說(shuō)明性語(yǔ)句主要有兩條:
EXECSQLBEGINDECLARESECTION;
EXECSQLENDDECLARESECTION;
(2)數(shù)據(jù)定義和數(shù)據(jù)控制語(yǔ)句
(3)查詢結(jié)果為單記錄的查詢語(yǔ)句
(4)數(shù)據(jù)的插入語(yǔ)句和某些數(shù)據(jù)刪除、修改語(yǔ)句
獨(dú)立的數(shù)據(jù)刪除和修改語(yǔ)句不需要使用游標(biāo);與查詢語(yǔ)句配合,刪除或修改查詢到的當(dāng)前記錄的操作,與游標(biāo)有關(guān)。
嵌入式SQL不用游標(biāo)的SQL語(yǔ)句1.幾種不需要使用游標(biāo)的S嵌入式SQL2.不用游標(biāo)的查詢語(yǔ)句
EXECSQLSELECT[ALL|DISTINCT]〈目標(biāo)列表達(dá)式〉[,…n]
INTO〈主變量〉[〈指示變量〉][,…n]
FROM〈表名或視圖名〉[,…n]
[WHERE〈條件表達(dá)式〉];
1)在語(yǔ)句開(kāi)始前要加EXECSQL前綴。
2)該查詢語(yǔ)句中又?jǐn)U充了INTO子句。
3)在WHERE子句的條件表達(dá)式中可以使用主變量。嵌入式SQL2.不用游標(biāo)的查詢語(yǔ)句
EXECSQLSE嵌入式SQL2.不用游標(biāo)的查詢語(yǔ)句
EXECSQLSELECT[ALL|DISTINCT]〈目標(biāo)列表達(dá)式〉[,…n]
INTO〈主變量〉[〈指示變量〉][,…n]
FROM〈表名或視圖名〉[,…n]
[WHERE〈條件表達(dá)式〉];
4)由于查詢的結(jié)果集中只有一條記錄,該語(yǔ)句中不必有排序和分組子句。
5)INTO子句中的主變量后面跟有指示變量時(shí)如果查詢結(jié)果列值為NULL,指示變量為負(fù)值,結(jié)果列不向該主變量賦值;如果傳遞正常,指示變量的值為0;如果主變量寬度不夠,則指示變量的值為數(shù)據(jù)截?cái)嗲暗膶挾取?/p>
6)如果查詢結(jié)果并不是單條記錄,則程序出錯(cuò)。嵌入式SQL2.不用游標(biāo)的查詢語(yǔ)句
EXECSQLSE嵌入式SQL2.不用游標(biāo)的查詢語(yǔ)句
EXECSQLSELECT[ALL|DISTINCT]〈目標(biāo)列表達(dá)式〉[,…n]
INTO〈主變量〉[〈指示變量〉][,…n]
FROM〈表名或視圖名〉[,…n]
[WHERE〈條件表達(dá)式〉];
【例5-41】查詢學(xué)號(hào)為主變量givesno、課號(hào)為主變量givecno的值的學(xué)生選課記錄。
EXECSQLSELECT學(xué)號(hào),課程號(hào),成績(jī)
INTO:Sno,:Cno,:grade:gradeid
FROM選課
WHERE學(xué)號(hào)=:givesnoAND課程號(hào)=:givecno;嵌入式SQL2.不用游標(biāo)的查詢語(yǔ)句
EXECSQLSE嵌入式SQL2.不用游標(biāo)的數(shù)據(jù)維護(hù)語(yǔ)句
(1)不用游標(biāo)的數(shù)據(jù)刪除語(yǔ)句
【例5-42】刪除學(xué)號(hào)由主變量Sno決定的學(xué)生記錄。
EXECSQLDELETE
FROM學(xué)生
WHERE學(xué)號(hào)=:Sno;嵌入式SQL2.不用游標(biāo)的數(shù)據(jù)維護(hù)語(yǔ)句
(1)不用游標(biāo)嵌入式SQL2.不用游標(biāo)的數(shù)據(jù)維護(hù)語(yǔ)句
(2)不用游標(biāo)的數(shù)據(jù)維護(hù)語(yǔ)句
【例5-43】將計(jì)算機(jī)系所有學(xué)生的年齡都加上主變量Raise。
EXECSQLUPDATE學(xué)生
SET年齡=年齡+:Raise
WHERE所在系=‘計(jì)算機(jī)系’;【例5-44】將計(jì)算機(jī)系學(xué)生的年齡置空。
Raiseid=-1EXECSQLUPDATE學(xué)生
SET年齡=年齡+:Raise:Raiseid;嵌入式SQL2.不用游標(biāo)的數(shù)據(jù)維護(hù)語(yǔ)句
(2)不用游標(biāo)嵌入式SQL2.不用游標(biāo)的數(shù)據(jù)維護(hù)語(yǔ)句
(3)不用游標(biāo)的數(shù)據(jù)插入語(yǔ)句
【例5-45】將學(xué)號(hào)為主變量Sno、課程號(hào)為Cno的選課記錄,插到庫(kù)中。
EXECSQLINSERTINTO選課
VALUES(:Sno,:Cno);嵌入式SQL2.不用游標(biāo)的數(shù)據(jù)維護(hù)語(yǔ)句
(3)不用游標(biāo)嵌入式SQL使用游標(biāo)的SQL游標(biāo)機(jī)制用于解決SQL查詢結(jié)果為集合而主語(yǔ)言處理方式為記錄方式的矛盾。在處理中,必須使用游標(biāo)的SQL語(yǔ)句有兩種:一種是查詢結(jié)果為多條記錄的SELECT語(yǔ)句,另一種是使用游標(biāo)的DELETE語(yǔ)句和UPDATE語(yǔ)句。嵌入式SQL使用游標(biāo)的SQL游標(biāo)機(jī)制用于解決SQL查嵌入式SQL1.游標(biāo)的4個(gè)命令(1)定義游標(biāo)命令
EXECSQLDECLARE〈游標(biāo)名〉CURSOR
FOR〈子查詢〉
[FORUPDATEOF〈字段名1〉[,…n]];
刪除和修改數(shù)據(jù)的語(yǔ)句中,WHERE為:
WHERECURRENTOF〈游標(biāo)名〉
【例5-46】定義按主變量DEPT查詢系里學(xué)生的游標(biāo)。
EXECSQLDECLARESXCURSORFOR
SELECT*
FROM學(xué)生
WHERE所在系=:DEPT;嵌入式SQL1.游標(biāo)的4個(gè)命令嵌入式SQL(2)打開(kāi)游標(biāo)命令
EXECSQLOPEN〈游標(biāo)名〉;
執(zhí)行對(duì)應(yīng)的查詢語(yǔ)句,并將游標(biāo)指向結(jié)果集的第一條記錄前。打開(kāi)的游標(biāo)處于活動(dòng)狀態(tài),可以被推進(jìn)?!纠?-47】打開(kāi)SX游標(biāo)。
DEPT='計(jì)算機(jī)系'
EXECSQLOPENSX;嵌入式SQL(2)打開(kāi)游標(biāo)命令
EXECSQLOPE嵌入式SQL(3)推進(jìn)游標(biāo)命令
EXECSQLFETCH〈游標(biāo)名〉INTO〈主變量組〉;
將游標(biāo)下移一行,讀出當(dāng)前的記錄,將當(dāng)前記錄的各數(shù)據(jù)項(xiàng)值放到INTO后的主變量組中?!纠?-48】將打開(kāi)的指向系的游標(biāo)向前推進(jìn)。
EXECSQLFETCHSX
INTO:Sno,:Sname,:Sage,:Sdept;(4)關(guān)閉游標(biāo)命令
EXECSQLCLOSE〈游標(biāo)名〉;嵌入式SQL(3)推進(jìn)游標(biāo)命令
EXECSQL數(shù)據(jù)控制機(jī)制和語(yǔ)句數(shù)據(jù)控制是系統(tǒng)通過(guò)對(duì)數(shù)據(jù)庫(kù)用戶的使用權(quán)限加以限制而保證數(shù)據(jù)安全的重要措施。授權(quán)拒絕訪問(wèn)收權(quán)數(shù)據(jù)控制機(jī)制和語(yǔ)句數(shù)據(jù)控制是系統(tǒng)通過(guò)對(duì)數(shù)據(jù)庫(kù)用戶的使用權(quán)限加數(shù)據(jù)控制機(jī)制和語(yǔ)句數(shù)據(jù)控制機(jī)制授權(quán)定義存權(quán)處理查權(quán)操作具有授權(quán)資格的用戶,如數(shù)據(jù)庫(kù)管理員DBA或建表戶DBO,通過(guò)數(shù)據(jù)控制語(yǔ)言DCL,將授權(quán)決定告知數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS把授權(quán)的結(jié)果編譯后存入數(shù)據(jù)字典中。當(dāng)用戶提出操作請(qǐng)求時(shí),系統(tǒng)要在數(shù)據(jù)字典中查找該用戶的數(shù)據(jù)操作權(quán)限,當(dāng)用戶擁有該操作權(quán)時(shí)才能執(zhí)行其操作,否則系統(tǒng)將拒絕其操作。數(shù)據(jù)控制機(jī)制和語(yǔ)句數(shù)據(jù)控制機(jī)制授權(quán)定義存權(quán)處理查權(quán)操作具有授數(shù)據(jù)控制機(jī)制和語(yǔ)句1.授權(quán)語(yǔ)句
系統(tǒng)授權(quán)的授權(quán)語(yǔ)句格式為:
GRANT〈系統(tǒng)特權(quán)組〉To〈用戶組〉|PUBLIC
[WITHGRANTOPTION];
1)PUBLIC指數(shù)據(jù)庫(kù)的所有用戶。
2)WITHGRANTOPTION:獲得權(quán)限的用戶可以把該權(quán)限再授予別的用戶。
對(duì)象特權(quán)的授權(quán)格式為:
GRANTALLPRIVILIGES|〈對(duì)象特權(quán)組〉ON〈對(duì)象名〉
TO〈用戶組〉|PUBLIC
[WITHGRANTOPTION];
1)ALLPRIVILIGES指所有的對(duì)象特權(quán)。
2)對(duì)象名指操作的對(duì)象標(biāo)識(shí),它包括表名、視圖名和過(guò)程名等。數(shù)據(jù)控制機(jī)制和語(yǔ)句1.授權(quán)語(yǔ)句
系統(tǒng)授權(quán)的授權(quán)語(yǔ)句格式為:數(shù)據(jù)控制機(jī)制和語(yǔ)句【例5-51】把修改學(xué)生學(xué)號(hào)和查詢學(xué)生表的權(quán)力授予用戶王平。
GRANTUPDATE(學(xué)號(hào)),SELECTON學(xué)生TO王平;【例5-52】把建立數(shù)據(jù)庫(kù)和備份數(shù)據(jù)庫(kù)的權(quán)力賦給用戶王平。
GRANTCREATEDATABASE,
BACKUPDATABASETO王平;數(shù)據(jù)控制機(jī)制和語(yǔ)句【例5-51】把修改學(xué)生學(xué)號(hào)和查詢學(xué)生表的數(shù)據(jù)控制機(jī)制和語(yǔ)句2.收權(quán)語(yǔ)句
REVOKE語(yǔ)句的一般格式為:
REVOKE〈權(quán)限組〉|ALLPRIVILIGES[ON〈對(duì)象名〉]
FROM〈用戶名組〉|PUBLIC;
其中:ON子句用于指定被收回特權(quán)的對(duì)象;ALLPRIVILIGES指收回所有特權(quán);PUBLIC指所有用戶。
【例5-53】將用戶王平的可以在學(xué)生表中修改學(xué)生學(xué)號(hào)的權(quán)利收回。
REVOKEUPDATE(學(xué)號(hào))ON學(xué)生FROM王平;數(shù)據(jù)控制機(jī)制和語(yǔ)句2.收權(quán)語(yǔ)句
REVOKE語(yǔ)句的一般格數(shù)據(jù)控制機(jī)制和語(yǔ)句3.拒絕訪問(wèn)語(yǔ)句
DENYALL[PRIVILIGES]|〈權(quán)限組〉[ON〈對(duì)象名〉]TO〈用戶組〉|PUBLIC;
其中:ON子句用于說(shuō)明對(duì)象特權(quán)的對(duì)象名;對(duì)象名指的是表名、視圖名、視圖和表的字段名或者過(guò)程名。數(shù)據(jù)控制機(jī)制和語(yǔ)句3.拒絕訪問(wèn)語(yǔ)句
DENYALL[第五章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言——SQL第五章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言——SQL本章教學(xué)目標(biāo)、重點(diǎn)和難點(diǎn)
本章教學(xué)目標(biāo):使學(xué)生了解SQL的功能和語(yǔ)言特點(diǎn);熟練掌握用SQL進(jìn)行表的定義、數(shù)據(jù)查詢和數(shù)據(jù)更新,掌握SQL的數(shù)據(jù)控制方法。2.教學(xué)重點(diǎn):SQL的數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)維護(hù)和數(shù)據(jù)控制表示方法3.教學(xué)難點(diǎn):用SQL實(shí)現(xiàn)嵌套查詢、組合查詢、使用分組和SQL函數(shù)查詢。本章教學(xué)目標(biāo)、重點(diǎn)和難點(diǎn)本章教學(xué)目標(biāo):使學(xué)生了解SQL的功本章內(nèi)容SQL的功能及特點(diǎn)數(shù)據(jù)定義語(yǔ)句數(shù)據(jù)查詢語(yǔ)句數(shù)據(jù)更新語(yǔ)句嵌入式SQL數(shù)據(jù)控制機(jī)制和語(yǔ)句本章內(nèi)容SQL的功能及特點(diǎn)SQL的功能及特點(diǎn)19741975-19791986-198719921999由Boyce和Chamberlin提出IBM公司研制了關(guān)系DBMS原型,并實(shí)現(xiàn)該語(yǔ)言美國(guó)批準(zhǔn)SQL作為美國(guó)標(biāo)準(zhǔn),隨后ISO也通過(guò)這一標(biāo)準(zhǔn)公布了SQL-92標(biāo)準(zhǔn)公布了SQL-99,也稱作SQL3SQL的功能及特點(diǎn)19741975-19791986-198SQL的功能及特點(diǎn)數(shù)據(jù)定義數(shù)據(jù)控制數(shù)據(jù)操縱SQL語(yǔ)句分類SQL的功能及特點(diǎn)數(shù)據(jù)定義數(shù)據(jù)控制數(shù)據(jù)操縱SQL語(yǔ)句分類SQL的功能及特點(diǎn)SQL語(yǔ)句分類數(shù)據(jù)定義數(shù)據(jù)操縱數(shù)據(jù)控制定義關(guān)系數(shù)據(jù)庫(kù)的模式、外模式和內(nèi)模式,以實(shí)現(xiàn)對(duì)基本表、視圖以及索引文件的定義、修改和刪除等操作。包括數(shù)據(jù)查詢和數(shù)據(jù)更新兩種數(shù)據(jù)操作語(yǔ)句:數(shù)據(jù)查詢指對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)查詢、統(tǒng)計(jì)、分組、排序操作;數(shù)據(jù)更新指數(shù)據(jù)的插入、刪除、修改等數(shù)據(jù)維護(hù)操作。通過(guò)對(duì)數(shù)據(jù)庫(kù)用戶的授權(quán)和收權(quán)命令來(lái)實(shí)現(xiàn)有關(guān)數(shù)據(jù)的存取控制,以保證數(shù)據(jù)庫(kù)的安全性。SQL的功能及特點(diǎn)SQL語(yǔ)句分類數(shù)據(jù)定義數(shù)據(jù)操縱數(shù)據(jù)控制定義SQL的功能及特點(diǎn)SQL的特點(diǎn)1)SQL具有自主式語(yǔ)言和嵌入式語(yǔ)言兩種使用方式;2)SQL具有語(yǔ)言簡(jiǎn)潔、易學(xué)易用的特點(diǎn);SQL功能命令動(dòng)詞數(shù)據(jù)定義(數(shù)據(jù)模式定義、刪除、修改)Create、Drop、Alter數(shù)據(jù)操縱(數(shù)據(jù)查詢和維護(hù))Select、Insert、Update、Delete數(shù)據(jù)控制(數(shù)據(jù)存取控制權(quán)和收權(quán))Grant、RemoveSQL的功能及特點(diǎn)SQL的特點(diǎn)SQL功能命令動(dòng)詞數(shù)據(jù)定義(數(shù)SQL的功能及特點(diǎn)SQL的特點(diǎn)3)SQL支持三級(jí)模式結(jié)構(gòu)存儲(chǔ)文件1存儲(chǔ)文件2基本表1基本表2基本表3基本表4視圖1視圖2SQL外模式模式內(nèi)模式SQL的功能及特點(diǎn)SQL的特點(diǎn)存儲(chǔ)文件1存儲(chǔ)文件2基本表1基數(shù)據(jù)定義語(yǔ)句操作對(duì)象創(chuàng)建語(yǔ)句刪除語(yǔ)句修改語(yǔ)句基本表CreatetableDroptableAltertable索引CreateindexDropindex視圖CreateviewDropview數(shù)據(jù)庫(kù)CreatedatabaseDropdatabaseAlterdatabase1.語(yǔ)句格式約定符號(hào)尖括號(hào)<>中括號(hào)[]大括號(hào){}或分隔符|[,…n]實(shí)際語(yǔ)義任選項(xiàng)必選項(xiàng),必選其中一項(xiàng)前面的項(xiàng)可重復(fù)多次數(shù)據(jù)定義語(yǔ)句操作對(duì)象創(chuàng)建語(yǔ)句刪除語(yǔ)句修改語(yǔ)句基本表Creat數(shù)據(jù)定義語(yǔ)句2.一般語(yǔ)法規(guī)定SQL中的數(shù)據(jù)項(xiàng)(包括列項(xiàng)、表和視圖)分隔符為“,”,其字符串常數(shù)的定界符用單引號(hào)“’”表示3.SQL特殊語(yǔ)法規(guī)定SQL的關(guān)鍵詞一般使用大寫字母表示;語(yǔ)句的結(jié)束符為“;”語(yǔ)句一般應(yīng)采用格式化書寫方式數(shù)據(jù)定義語(yǔ)句2.一般語(yǔ)法規(guī)定數(shù)據(jù)定義語(yǔ)句基本表的定義和維護(hù)1.基本表的定義定義基本表語(yǔ)句的一般格式為:CREATETABLE[〈庫(kù)名〉]〈表名〉(〈列名〉〈數(shù)據(jù)類型〉[〈列級(jí)完整性約束條件〉][,〈列名〉〈數(shù)據(jù)類型〉[〈列級(jí)完整性約束條件〉]][,…n]
[,〈表級(jí)完整性約束條件〉][,…n]);數(shù)據(jù)定義語(yǔ)句基本表的定義和維護(hù)定義基本表語(yǔ)句的一般格式為:數(shù)據(jù)定義語(yǔ)句建立基本表:學(xué)生(學(xué)號(hào),姓名,年齡,性別,所在系);
課程(課程號(hào),課程名,先行課);選課(學(xué)號(hào),課程號(hào),成績(jī)).CREATETABLE課程(課程號(hào)CHAR(5)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025【合同范本】財(cái)產(chǎn)分割協(xié)議
- 腳踝韌帶拉傷個(gè)案護(hù)理
- 2025年山東省棗莊市滕州市初中學(xué)業(yè)水平考試模擬試題(四)道德與法治試題
- 普通心理學(xué)(第2版)課件 第十四章 社會(huì)心理
- 2025年食品從業(yè)人員培訓(xùn)試題
- 關(guān)于初中物理2024
- 《艾滋病小斗士》教學(xué)設(shè)計(jì)
- 護(hù)理管理計(jì)劃活動(dòng)實(shí)施綱要
- 學(xué)校開(kāi)展實(shí)驗(yàn)室安全檢查工作總結(jié)模版
- 信用社新終總結(jié)模版
- 2024年四川西華師范大學(xué)招聘輔導(dǎo)員真題
- 2025年高考英語(yǔ)語(yǔ)法填空熱點(diǎn)語(yǔ)法填空熱點(diǎn)話題06(學(xué)生版+解析)
- 2025年春青島版數(shù)學(xué)九年級(jí)下冊(cè)課件 5.1 第3課時(shí) 簡(jiǎn)單的分段函數(shù)
- 兒童行為干預(yù)效果評(píng)估的機(jī)器學(xué)習(xí)方法-洞察闡釋
- 區(qū)塊鏈考試試題及答案
- 演講口才考試試題及答案
- 2025-2030中國(guó)氟化工行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- 2025年湖北省武漢市高考地理調(diào)研試卷(2月份)
- 2024年福建省長(zhǎng)樂(lè)市事業(yè)單位公開(kāi)招聘醫(yī)療衛(wèi)生崗筆試題帶答案
- 2024年呼和浩特市玉泉區(qū)消防救援大隊(duì)招聘真題
- 無(wú)人機(jī)安全操作試題及答案
評(píng)論
0/150
提交評(píng)論