




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第3章 SQL語言1本章概要 SQL是結(jié)構(gòu)化查詢語言(Structured Query Language)的縮寫,其功能包括數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制四個部分。SQL 語言簡潔、方便實用、功能齊全,已成為目前應用最廣的關(guān)系數(shù)據(jù)庫語言。本章要求了解 SQL語言的特點,掌握SQL語言的四大功能及使用方法,重點掌握其數(shù)據(jù)查詢功能及其使用。 23.1 SQL語言的基本概念與特點 實例1:大一新生報到時需要經(jīng)歷一系列的報到流程,其中包括建立學生信息數(shù)據(jù)庫,以下是學生信息數(shù)據(jù)庫建立的過程, 教務處從招生就業(yè)處獲得新生錄取數(shù)據(jù)教務處按專業(yè)整理新生名單,并根據(jù)專業(yè)設置及錄取人數(shù)制訂分班計劃教務處向
2、各系(院)發(fā)送新生名單,系(院)根據(jù)分班計劃進行分班。教務處根據(jù)系(院)報送的分班名單整理新生數(shù)據(jù),分派學號,編制初步的新生名冊并導入教學管理系統(tǒng)。新生報到后,系(院)核對報到的新生名單教務處根據(jù)報到名單整理新生數(shù)據(jù),建立數(shù)據(jù)庫,統(tǒng)計各項新生數(shù)據(jù)上報教育廳新生數(shù)據(jù)并在教育部學籍學歷管理平臺進行新生學籍注冊教務處編制正式的新生名冊并發(fā)送到各系(院)及相關(guān)部門這里,我們假設建立的是一個關(guān)系數(shù)據(jù)庫,新生數(shù)據(jù)即是一個二維表,那么學生表的結(jié)構(gòu)是什么?包含什么內(nèi)容?33.1 SQL語言的基本概念與特點 3.1.1 SQL語言的發(fā)展及標準化3.1.1.1 SQL語言發(fā)展史 SQL語言是當前最為成功、應用最為
3、廣泛的關(guān)系數(shù)據(jù)庫語言,其發(fā)展主要經(jīng)歷了以下幾個階段:1974年由CHAMBERLIN和BOYEE提出,當時稱為SEQUEL(STUCTURED ENGLISH QUERY LANGUAGE);IBM公司對其進行了修改,并用于其SYSTEM R關(guān)系數(shù)據(jù)庫系統(tǒng)中;1981年 IBM推出其商用關(guān)系關(guān)系數(shù)據(jù)庫SQL/DS,并將其名字改為SQL,由于SQL語言功能強大,簡潔易用,因此得到了廣泛的使用; 今天廣泛應用于各種大型數(shù)據(jù)庫,如SYBASE、INFORMIX、 ORACLE、DB2、INGRES等,也用于各種小型數(shù)據(jù)庫,如FOXPRO、ACCESS。43.1.1.2 SQL語言標準化 隨著關(guān)系數(shù)據(jù)
4、庫系統(tǒng)和SQL語言應用的日益廣泛,SQL語言的標準化工作也在緊張革進行著,十多年來已制訂了多個SQL標準;1. 1982年,美國國家標準化局(AMERICAN NATIONAL STANDARD INSTITUTE,簡稱ANSI)開始制定SQL標準;2. 1986年,美國國家標準化協(xié)會公布了SQL語言的第一個標準SQL86;3. 1987年,國際標準化組織(ISO)通過了SQL86標準;4. 1989年,國際標準化組織(ISO)對SQL86進行了補充,推出了SQL89標準;5. 1992年,ISO又推出了SQL92標準,也稱為SQL2;6.SQL/99:Core level跟其他8種相應的le
5、vel,包括遞歸查詢,程序跟流程控制,基本的對象(object)支持包括oids;7.SQL/2003:包含了XML相關(guān)內(nèi)容,自動生成列值(column values);8.2005-09-30:“Data is the next generation inside.SQL is the new HTML”! Tim Oeilly提出了Web 2.0理念,稱數(shù)據(jù)將是核心,SQL將成為“新的HTML;9.SQL/2006:定義了SQL與XML(包含XQuery)的關(guān)聯(lián)應用;10.2006:Sun公司將以SQL基礎(chǔ)的數(shù)據(jù)庫管理系統(tǒng)嵌入Java V6;11.2007 :SQL Server 2008
6、(Katmi)在過去的SQL2005基礎(chǔ)上增強了它的安全性,主要在:簡單的數(shù)據(jù)加密,外鍵管理,增強了審查,改進了數(shù)據(jù)庫鏡像,加強了可支持性。 53.1.2 SQL語言的基本概念首先介紹兩個基本概念:基本表和視圖?;颈恚˙ASE TABLE):是獨立存在的表,不是由其它的表導出的表。一個關(guān)系對應一個基本表,一個或多個基本表對應一個存儲文件。視圖(VIEW):是一個虛擬的表,是從一個或幾個基本表導出的表。它本身不獨立存在于數(shù)據(jù)庫中,數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存放在導出視圖的基本表中。當基本表中的數(shù)據(jù)發(fā)生變化時,從視圖中查詢出來的數(shù)據(jù)也隨之改變。6例如:學生數(shù)據(jù)庫中
7、有學生基本情況表STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT),此表為基本表,對應一個存儲文件。可以在其基礎(chǔ)上定義一個男生基本情況表STUDENT_MALE(SNO,SNAME,SAGE,SDEPT),它是從STUDENT中選擇SSEX=男的各個行,然后在SNO,SNAME,SAGE,SDEPT上投影得到的。在數(shù)據(jù)庫中只存有STUDENT_MALE的定義,而STUDENT_MALE的記錄不重復存儲。在用戶看來,視圖是通過不同路徑去看一個實際表,就象一個窗口一樣,我們通過窗戶去看外面的高樓,可以看到高樓的不同部分,而透過視圖可以看到數(shù)據(jù)庫中自己感興趣的內(nèi)容。7SQL視圖1視
8、圖2基本表1基本表2基本表3基本表4存儲文件1存儲文件2外模式模式內(nèi)模式圖3.1 SQL語言支持的關(guān)系數(shù)據(jù)庫的三級邏輯結(jié)構(gòu) SQL語言支持數(shù)據(jù)庫的三級模式結(jié)構(gòu),如圖3.1所示。其中外模式對應于視圖和部分基本表,模式對應于基本表,內(nèi)模式對應于存儲文件。 83.1.3 SQL語言的主要特點1.綜合統(tǒng)一。 SQL語言具有:數(shù)據(jù)查詢(QUERY);數(shù)據(jù)定義(DEFINITION)數(shù)據(jù)操縱(MANIPULATION);數(shù)據(jù)控制(CONTROL) 四種語言一體化的功能。2.高度非過程化 即用戶只要提出“干什么”即可,不必管具體操作過程,也不必了解數(shù)據(jù)的存取路徑,只要指明所需的數(shù)據(jù)即可。3.面向集合的操作方
9、式 SQL語言是一種面向集合的語言,每個命令的操作對象是一個或多個關(guān)系,結(jié)果也是一個關(guān)系。4.以同一種語法結(jié)構(gòu)提供兩種使用方式 SQL語言既是自含式語言,又是嵌入式語言。可獨立使用,也可嵌入到宿主語言中。自含式語言可以獨立使用交互命令,適用于終端用戶、應用程序員和DBA;嵌入式語言使其嵌入在高級語言中使用,供應用程序員開發(fā)應用程序。9主要特點(5)語言簡潔、易學易用:核心功能只有8個動詞,語法簡單,接近英語103.2 SQL數(shù)據(jù)定義 SQL語言使用數(shù)據(jù)定義語言(DATA DEFINITION LANGUAGE,簡稱DDL)實現(xiàn)其數(shù)據(jù)定義功能,可對數(shù)據(jù)庫用戶、基本表、視圖、索引進行定義和撤消。表
10、 SQL的數(shù)據(jù)定義語句 操作對象操 作 方 式創(chuàng) 建刪 除修 改模 式CREATE SCHEMADROP SCHEMA表CREATE TABLEDROP TABLEALTER TABLE視 圖CREATE VIEWDROP VIEW索 引CREATE INDEXDROP INDEX113.2 SQL數(shù)據(jù)定義 3.2.1 字段數(shù)據(jù)類型當用SQL語句定義表時,需要為表中的每一個字段設置一個數(shù)據(jù)類型,用來指定字段所存放的數(shù)據(jù)是整數(shù)、字符串、貨幣或是其它類型的數(shù)據(jù)。SQL SERVER 的數(shù)據(jù)類型有很多種,分為以下9類:1. 整數(shù)數(shù)據(jù)類型:依整數(shù)數(shù)值的范圍大小,有BIT, INT , SMALLINT
11、, TINYINT四種。2. 精確數(shù)值類型:用來定義可帶小數(shù)部分的數(shù)字,有NUMERIC和DECIMAL兩種。二者相同,但建議使用DECIMAL。如:123.0、8000.56123. 近似浮點數(shù)值數(shù)據(jù)類型:當數(shù)值的位數(shù)太多時,可用此數(shù)據(jù)類型來取其近似值,用FLOAT和REAL兩種。如:1.23E+104. 日期時間數(shù)據(jù)類型:用來表示日期與時間,依時間范圍與精確程度可分為DATETIME與SMALLDATETIME兩種。如:1998-06-08 15:30:005. 字符串數(shù)據(jù)類型:用來表示字符串的字段。包括:CHAR, VARCHAR, TEXT三種,如:“數(shù)據(jù)庫”6. UNICODE字符串
12、數(shù)據(jù)類型:UNICODE是雙字節(jié)文字編碼標準,包括NCHAR, NVARCHAR與NTEXT三種。與字符串數(shù)據(jù)類型相類似,但UNICODE的一個字符用2字節(jié)存儲,而一般字符數(shù)據(jù)用一個字節(jié)存儲。7. 二進制數(shù)據(jù)類型:用來定義二進制碼的數(shù)據(jù)。有:BINARY, VARBINARY,IMAGE 三種,通常用十六進制表示:如:OX5F3C138. 貨幣數(shù)據(jù)類型:用來定義與貨幣有關(guān)的數(shù)據(jù),分為MONEY 與SMALLMONEY兩種,如:123.00009. 標記數(shù)據(jù)類型:有UNIQUEIDENTIFIER ,TIMESTAMP兩種,此數(shù)據(jù)類型通常系統(tǒng)自動產(chǎn)生,而不是用戶輸入的,TIMESTAMP記錄數(shù)據(jù)
13、更新的時間戳印,而UNIQUEIDENTIFIER用來識別每一筆數(shù)據(jù)的唯一性。各種數(shù)據(jù)類型的有關(guān)規(guī)定如下表: 數(shù)據(jù)類型數(shù)據(jù)內(nèi)容與范圍占用的字節(jié) BIT0, 1, NULL實際使用1BIT,但會占用1BYTE,若一個數(shù)據(jù)中有數(shù)個BIT字段,則可共占1個BYTE14INT-231到231-14BYTESSMALLINT-215至215-12BYTESTINYINT0至2551BYTESNUMERIC-1038-1至1038-11-9位數(shù)使用5BYTES10-19位數(shù)使用9BYTES20-28位數(shù)使用13BYTES29-38位數(shù)使用17BYTESDECIMAL-1038-1至1038-15-17BY
14、TES因長度而異,與NUMERIC相同F(xiàn)LOAT-1.79E+306至1.79E+308, 最多可表示53位數(shù)8BYTESREAL -3.40E+38到3.40E+38,最多可表示24位數(shù)4BYTES15DATETIME1753/1/1至9999/12/318BYTESSMALLDATETIME1900/1/1至2079/6/64BYTESCHAR1-8000個字符1個字符占1B,尾端空白字符保留VARCHAR1-8000個字符1個字符占1B,尾端空白字符刪除。TEXT231-1個字符1個字符占2B,最大可存儲2GBNCHAR1-4000個字符1個字符占2B,尾端空白字符保留NVARCHAR1
15、-4000個字符1個字符占2B,尾端空白字符刪除16NTEXT230-1個字符1個字符占2B,最大可存儲2GBBINARY1-8000個字符在存儲時,SQL SERVER會另外增加4B,尾 端空白字符會保留VARBINARY1-8000個字符在存儲時,SQL SERVER會另外增加4B,尾 端空白字符會刪除IMAGE231-1個字符最大可存儲2GBMONEY-263-263-18BSMALLMONEY-231-231-14BTIMESTAMP16進制8BUNIQUEIDENTIFIER全局唯一標識符(GUID)可用NEWID()函數(shù)生成一個該種類型的字段值。173.2.2 定義、修改和撤消數(shù)據(jù)
16、庫的用戶3.2.2.1 建立數(shù)據(jù)庫用戶數(shù)據(jù)庫用戶是指能夠登錄到數(shù)據(jù)庫,并能夠?qū)?shù)據(jù)庫進行存取操作的用戶。當SQL SERVER系統(tǒng)安裝完畢后,數(shù)據(jù)庫管理員就可以通過CREATE USER語句建立其他數(shù)據(jù)庫用戶了。語法格式為:CREATE USER IDENTIFIED BY 指定數(shù)據(jù)庫用戶的帳號名字,即用戶標識符,指用戶登錄到數(shù)據(jù)庫系統(tǒng)時使用的口令,這里的用戶名和口令可以與用戶登錄到操作系統(tǒng)時所使用的用戶名和口令不同。18例3.1 建立一個新用戶,其名稱為ZHANGSAN,登錄口令為123。 CREATE USER ZHANGSAN IDENTIFIED BY 1233.2.2.2 更改數(shù)據(jù)庫
17、用戶的口令數(shù)據(jù)庫用戶最初的口令是由數(shù)據(jù)庫管理員指定的,數(shù)據(jù)庫用戶可以用ALTER USER命令來更改它,ALTER USER語句的基本語法格式為:ALTER USER IDENTIFIED BY 例3.2 將用戶ZHANGSAN的口令改為456。ALTER USER ZHANGSAN IDENTIFIED BY 456193.2.2.3 刪除用戶隨著數(shù)據(jù)庫應用的發(fā)展和變化,數(shù)據(jù)庫的用戶也會發(fā)生變化。如果某些數(shù)據(jù)庫用戶不再需要使用數(shù)據(jù)庫,數(shù)據(jù)庫管理員就可以使用DROP USER把該用戶刪掉,DROP USER 語句的基本語法格式為:DROP USER 例3.3 刪除用戶ZHANGSANDROP
18、USER ZHANGSAN注意:刪除數(shù)據(jù)庫用戶之前應首先刪除該用戶建立的數(shù)據(jù)庫對象,包括基本表、視圖、索引等,否則系統(tǒng)將不允許刪除這個用戶。203.2.2 建立數(shù)據(jù)庫CREATE DATABASE 3.2.3 創(chuàng)建、修改和刪除數(shù)據(jù)表3.2.3.1 創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表是關(guān)系數(shù)據(jù)庫的基本組成單位,它物理地存儲于數(shù)據(jù)庫的存儲文件中。1. 創(chuàng)建一個數(shù)據(jù)表時主要包括以下幾個組成部分:(1)字段名(列名):字段名可長達128個字符。字段名可包含中文、英文字母、下劃線、#號、貨幣符號(¥)及AT符號()。同一表中不許有重名列;(2)字段數(shù)據(jù)類型:見表3.2;(3)字段的長度、精度和小數(shù)位數(shù);21字段的長度:指
19、字段所能容納的最大數(shù)據(jù)量,但對不同的數(shù)據(jù)類型來說,長度對字段的意義可能有些不同。對字符串與UNICODE數(shù)據(jù)類型而言,長度代表字段所能容納的字符的數(shù)目,因此它會限制用戶所能輸入的文本長度。對數(shù)值類的數(shù)據(jù)類型而言,長度則代表字段使用多少個字節(jié)來存放數(shù)字。對BINARY、VARBINARY、IMAGE數(shù)據(jù)類型而言,長度代表字段所能容納的字節(jié)數(shù)。精度和小數(shù)位數(shù)精度是指數(shù)中數(shù)字的位數(shù),包括小數(shù)點左側(cè)的整數(shù)部分和小數(shù)點右側(cè)的小數(shù)部分;小數(shù)位數(shù)則是指數(shù)字小數(shù)點右側(cè)的位數(shù)。例如:數(shù)字12345.678,其精度為8,小數(shù)位數(shù)為3;所以只有數(shù)值類的數(shù)據(jù)類型才有必要指定精度和小數(shù)位數(shù)。22經(jīng)常以如下所示的格式來表
20、示數(shù)據(jù)類型以及它所采用的長度、精度和小數(shù)位數(shù),其中的N代表長度,P代表精度,S表示小數(shù)位數(shù)。BINARY(N) - BINARY(10)CHAR(N) - CHAR(20)NUMERIC(P,S) - NUMERIC(8,3)但有的數(shù)據(jù)類型的精度與小數(shù)位數(shù)是固定的,對采用此類數(shù)據(jù)類型的字段而言,不需設置精度與小數(shù)位數(shù),如:如果某字段采用INT數(shù)據(jù)類型,其長度固定是4,精度固定是10,小數(shù)位數(shù)則固定是0,這表示字段將能存放10位數(shù)沒有小數(shù)點的整數(shù)。存儲大小則是4個字節(jié)。(4)NULL值與DEFAULT值DEFAULT值表示某一字段的默認值,當沒有輸入數(shù)據(jù)時,則使用此默認的值。232. 創(chuàng)建數(shù)據(jù)表
21、的SQL語法格式在SQL語言中,使用語句CREATE TABLE創(chuàng)建數(shù)據(jù)表,其基本語法格式為:CREATE TABLE (,|)是合法標識符,最多可有128個字符,如S,SC,C,不允許重名。:DEFAULT DEFAULT:若是某字段設置有默認值,當該字段未被輸入數(shù)據(jù)時,則以該默認值自動填入該字段。24例3.4 建立一學生表CREATE TABLE S(SNO CHAR(8) ,SN VARCHAR(20),AGE INT,SEX CHAR(2) DEFAULT 男 ,DEPT VARCHAR(20);執(zhí)行該語句后,便產(chǎn)生了學生基本表的表框架,此表為一個空表。其中,SEX列的缺省值為“男”。
22、 25實例2: 設某商業(yè)集團數(shù)據(jù)庫中有三個實體集。一是“倉庫”實體集,屬性有倉庫號、倉庫名和地址等;二是“商店”實體集,屬性有商店號、商店名、地址等;三是“商品”實體集,屬性有商品號、商品名、單價。 1.創(chuàng)建倉庫表,商店表,商品表。 26實例2: 設某商業(yè)集團數(shù)據(jù)庫中有三個實體集。一是“倉庫”實體集,屬性有倉庫號、倉庫名和地址等;二是“商店”實體集,屬性有商店號、商店名、地址等;三是“商品”實體集,屬性有商品號、商品名、單價。 設倉庫與商品之間存在“庫存”聯(lián)系,每個倉庫可存儲若干種商品,每種商品存儲在若干倉庫中,每個倉庫每存儲一種商品有個日期及存儲量,它的關(guān)系模式是:庫存(倉庫號,商品號,日期
23、,庫存量); 1.使用SQL創(chuàng)建倉庫表,商店表,商品表以及庫存表。2.要求倉庫表中倉庫號為主鍵,倉庫地址唯一。 商店表中商店號為主鍵,商店名不能為空值。 商品表中商品號為主鍵,單價大于0。 273. 定義完整性約束在SQL SERVER中,對于基本表的約束分為列約束和表約束。列約束是對某一個特定列的約束,包含在列定義中,直接跟在該列的其他定義之后,用空格分隔,不必指定列名;表約束與列定義相互獨立,不包括在列定義中,通常用于對多個列一起進行約束,與列定義用,分隔,定義表約束時必須指出要約束的那些列的名稱。完整性約束的基本語法格式為: CONSTRAINT 約束名:約束不指定名稱時,系統(tǒng)會給定一個
24、名稱。28約束類型:在定義完整性約束時必須指定完整性約束的類型。在SQL SERVER中可以定義五種類型的完整性約束,下面分別加以介紹:(1)NULL/NOT NULL是否允許該字段的值為NULL。NULL值不是0也不是空白,更不是填入字符串“NULL”,而是表示“不知道”、“不確定”或“沒有數(shù)據(jù)”的意思。當某一字段的值一定要輸入才有意義的時候,則可以設置為NOT NULL。如主鍵列就不允許出現(xiàn)空值,否則就失去了唯一標識一條記錄的作用只能用于定義列約束,其語法格式如下:CONSTRAINT NULL|NOT NULL 29例3.5 建立一個S表,對SNO字段進行NOT NULL約束。CREAT
25、E TABLE S(SNO CHAR(10) CONSTRAINT S_CONS NOT NULL,SN VARCHAR(20),AGE INT,SEX CHAR(2) DEFAULT 男 ,DEPT VARCHAR(20);當SNO為空時,系統(tǒng)給出錯誤信息,無NOT NULL約束時,系統(tǒng)缺省為NULL。其中S_CONS為指定的約束名稱,當約束名稱省略時,系統(tǒng)自動產(chǎn)生一個名字。如下列功能同上,只是省略約束名稱。 30CREATE TABLE S(SNO CHAR(10) NOT NULL ,SN VARCHAR(20),AGE INT,SEX CHAR(2) DEFAULT 男 ,DEPT V
26、ARCHAR(20); 31(2)UNIQUE約束UNIQUE約束用于指明基本表在某一列或多個列的組合上的取值必須唯一。定義了UNIQUE約束的那些列稱為唯一鍵,系統(tǒng)自動為唯一鍵建立唯一索引,從而保證了唯一鍵的唯一性。唯一鍵允許為空,但系統(tǒng)為保證其唯一性,最多只可以出現(xiàn)一個NULL值。UNIQUE既可用于列約束,也可用于表約束。UNIQUE用于定義列約束時,其語法格式如下:CONSTRAINT UNIQUE例3.6 建立一個S表,定義SN為唯一鍵。CREATE TABLE S(SNO CHAR(6),SN CHAR(8) CONSTRAINT SN_UNIQ UNIQUE,SEX CHAR(2
27、),AGE NUMERIC(2);32其中SN_UNIQ為指定的約束名稱,約束名稱可以省略,如下例:CREATE TABLE S(SNO CHAR(6),SN CHAR(8) UNIQUE,SEX CHAR(2),AGE NUMERIC(2);UNIQUE用于定義表約束時,其語法格式如下: CONSTRAINT UNIQUE(,)33例3.7 建立一個S表,定義SN+SEX為唯一鍵。CREATE TABLE S ( SNO CHAR(5),SN CHAR(8),SEX CHAR(2),CONSTRAINT S_UNIQ UNIQUE(SN,SEX);系統(tǒng)為SN+SEX建立唯一索引,確保同一性別
28、的學生沒有重名。(3)PRIMARY KEY約束PRIMARY KEY約束用于定義基本表的主鍵,起唯一標識作用,其值不能為NULL,也不能重復,以此來保證實體的完整性。 34PRIMARY KEY與UNIQUE約束類似,通過建立唯一索引來保證基本表在主鍵列取值的唯一性,但它們之間存在著很大的區(qū)別:在一個基本表中只能定義一個PRIMARY KEY約束,但可定義多個UNIQUE約束;對于指定為PRIMARY KEY的一個列或多個列的組合,其中任何一個列都不能出現(xiàn)空值,而對于UNIQUE所約束的唯一鍵,則允許為空。注意:不能為同一個列或一組列既定義UNIQUE約束,又定義PRIMARY KEY約束。
29、PRIMARY KEY既可用于列約束,也可用于表約束。PRIMARY KEY用于定義列約束時,其語法格式如下:CONSTRAINT PRIMARY KEY35例3.8 建立一個S表,定義SNO為S的主鍵CREATE TABLE S(SNO CHAR(5) NOT NULL CONSTRAINT S_PRIM PRIMARY KEY,SN CHAR(8),AGE NUMERIC(2);PRIMARY KEY用于定義表約束時,即將某些列的組合定義為主鍵,其語法格式如下: CONSTRAINT S PRIMARY KEY ()36例3.9 建立一個SC表,定義SNO+CNO為SC的主鍵CREATE
30、TABLE SC(SNO CHAR(5) NOT NULL,CNO CHAR(5) NOT NULL,SCORE NUMERIC(3),CONSTRAINT SC_PRIM PRIMARY KEY(SNO,CNO);37(4)FOREIGN KEY約束FOREIGN KEY約束指定某一個列或一組列作為外部鍵,其中,包含外部鍵的表稱為從表,包含外部鍵所引用的主鍵或唯一鍵的表稱主表。系統(tǒng)保證從表在外部鍵上的取值要么是主表中某一個主鍵值或唯一鍵值,要么取空值。以此保證兩個表之間的連接,確保了實體的參照完整性。FOREIGN KEY既可用于列約束,也可用于表約束,其語法格式為:CONSTRAINT F
31、OREIGN KEY REFERENCES ()38例3.10 建立一個SC表,定義SNO,CNO為SC的外部鍵。CREATE TABLE SC(SNO CHAR(5) NOT NULL CONSTRAINT S_FORE FOREIGN KEY REFERENCES S(SNO),CNO CHAR(5) NOT NULL CONSTRAINT C_FORE FOREIGN KEY REFERENCES C(CNO),SCORE NUMERIC(3),CONSTRAINT S_C_PRIM PRIMARY KEY (SNO,CNO);39(5)CHECK約束CHECK約束用來檢查字段值所允許的
32、范圍,如,一個字段只能輸入整數(shù),而且限定在0-100的整數(shù),以此來保證域的完整性。CHECK既可用于列約束,也可用于表約束,其語法格式為:CONSTRAINT CHECK ()例3.10 建立一個SC表,定義SCORE 的取值范圍為0到100之間。CREATE TABLE SC(SNO CHAR(5),CNO CHAR(5),SCORE NUMERIC(5,1) CONSTRAINT SCORE_CHK CHECK(SCORE=0 AND SCORE =100);40例3.11 建立包含完整性定義的學生表CREATE TABLE S(SNO CHAR(6) CONSTRAINT S_PRIM
33、PRIMARY KEY,SN CHAR(8) CONSTRAINT SN_CONS NOT NULL,AGE NUMERIC(2) CONSTRAINT AGE_CONS NOT NULLCONSTRAINT AGE_CHK CHECK (AGE BETWEEN 15 AND 50),SEX CHAR(2) DEFAULT 男,DEPT CHAR(10) CONSTRAINT DEPT_CONS NOT NULL);41實例2: 設某商業(yè)集團數(shù)據(jù)庫中有三個實體集。一是“倉庫”實體集,屬性有倉庫號、倉庫名和地址等;二是“商店”實體集,屬性有商店號、商店名、地址等;三是“商品”實體集,屬性有商品號
34、、商品名、單價。 設倉庫與商品之間存在“庫存”聯(lián)系,每個倉庫可存儲若干種商品,每種商品存儲在若干倉庫中,每個倉庫每存儲一種商品有個日期及存儲量,它的關(guān)系模式是:庫存(倉庫號,商品號,日期,庫存量); 1.使用SQL創(chuàng)建倉庫表,商店表,商品表以及庫存表。2.要求倉庫表中倉庫號為主鍵,倉庫地址唯一。 商店表中商店號為主鍵,商店名不能為空值。 商品表中商品號為主鍵,單價大于0。 423.2.3.2 修改基本表由于應用環(huán)境和應用需求的變化,經(jīng)常需要修改基本表的結(jié)構(gòu),比如,增加新列和完整性約束、修改原有的列定義和完整性約束等。SQL語言使用ALTER TABLE命令來完成這一功能,有如下三種修改方式:語
35、句格式 ALTER TABLE ALTER COLUMN ADD 完整性約束 DROP | ;:要修改的基本表ALTER COLUMN子句:用于修改列ADD子句:增加新列和新的完整性約束條件DROP子句:刪除指定列或完整性約束條件43ADD方式用于增加新列和完整性約束,定義方式同CREATE TABLE語句中的定義方式相同,其語法格式為:ALTER TABLE ADD | 例3.12 在S表中增加一個班號列和住址列。ALTER TABLE S ADDCLASS_NO CHAR(6),ADDRESS CHAR(40)44注意:使用此方式增加的新列自動填充NULL值,所以不能為增加的新列指定NOT
36、 NULL約束 。例3.13 在SC表中增加完整性約束定義,使SCORE在0-100之間。ALTER TABLE SC ADD CONSTRAINT SCORE_CHK CHECK(SCORE BETWEEN 0 AND 100)452. ALTER 方式用于修改某些列,其語法格式為:ALTER TABLEALTER COLUMN NULL|NOT NULL例3.14 把S表中的SNO列加寬到8位字符寬度ALTER TABLE S ALTER COLUMNSNO CHAR(8)46注意:使用此方式有如下一些限制:不能改變列名;不能將含有空值的列的定義修改為NOT NULL約束;若列中已有數(shù)據(jù),
37、則不能減少該列的寬度,也不能改變其數(shù)據(jù)類型;只能修改NULL|NOT NULL約束,其它類型的約束在修改之前必須先刪除,然后再重新添加修改過的約束定義。 47例3.15 刪除S表中的AGE_CHK約束ALTER TABLE SDROP CONSTRAINT AGE_CHK3.2.3.3 改變基本表的名字使用RENAME命令,可以改變基本表的名字,其語法格式為:RENAME TO 例3.16 將S表的名字更改為STUDENTRENAME S TO STUDENT483.DROP方式刪除完整性約束定義,其語法格式為:ALTER TABLEDROP CONSTRAINT 49實例2: 設某商業(yè)集團數(shù)
38、據(jù)庫中有三個實體集。一是“倉庫”實體集,屬性有倉庫號、倉庫名和地址等;二是“商店”實體集,屬性有商店號、商店名、地址等;三是“商品”實體集,屬性有商品號、商品名、單價。 設倉庫與商品之間存在“庫存”聯(lián)系,每個倉庫可存儲若干種商品,每種商品存儲在若干倉庫中,每個倉庫每存儲一種商品有個日期及存儲量,它的關(guān)系模式是:庫存(倉庫號,商品號,日期,庫存量); 1.修改商品表,添加產(chǎn)地屬性。2. 為庫存量添加完整性約束條件使庫存量值大于等于0。3.刪除商品表中商品地址唯一的完整性約束條件 503.2.3.4 刪除基本表當某個基本表無用時,可將其刪除。刪除后,該表中的數(shù)據(jù)和在此表上所建的索引都被刪除,而建立
39、在該表上的視圖不會隨之刪除,系統(tǒng)將繼續(xù)保留其定義,但已無法使用。如果重新恢復該表,這些視圖可重新使用。刪除表的語法格式:DROP TABLE 例3.17 刪除表STUDENTUSE STUDENT DROP TABLE STUDENT注意:只能刪除自己建立的表,不能刪除其他用戶所建的表。513.2.5 設計、創(chuàng)建和維護索引3.2.5.1 索引的作用在日常生活中我們會經(jīng)常遇到索引,例如圖書目錄、詞典索引等。借助索引,人們會很快地找到需要的東西。索引是數(shù)據(jù)庫隨機檢索的常用手段,它實際上就是記錄的關(guān)鍵字與其相應地址的對應表。例如,當我們要在本書中查找有關(guān)“SQL查詢”的內(nèi)容時,應該先通過目錄找到“S
40、QL查詢”所對應的頁碼,然后從該頁碼中找出所要的信息。這種方法比直接翻閱書的內(nèi)容要快。如果把數(shù)據(jù)庫表比作一本書,則表的索引就如書的目錄一樣,通過索引可大大提高查詢速度。此外,在SQL SERVER中,行的唯一性也是通過建立唯一索引來維護的。 索引的作用可歸納為:1. 加快查詢速度;2. 保證行的唯一性。523.2.5.2 索引的分類1. 按照索引記錄的存放位置可分為聚集索引與非聚集索引聚集索引:按照索引的字段排列記錄,并且依照排好的順序?qū)⒂涗洿鎯υ诒碇小7蔷奂饕喊凑账饕淖侄闻帕杏涗?,但是排列的結(jié)果并不會存儲在表中,而是另外存儲。2. 唯一索引的概念唯一索引表示表中每一個索引值只對應唯一的
41、數(shù)據(jù)記錄,這與表的PRIMARY KEY的特性類似,因此唯一性索引常用于PRIMARY KEY的字段上,以區(qū)別每一筆記錄。當表中有被設置為UNIQUE的字段時,SQL SERVER會自動建立一個非聚集的唯一性索引。而當表中有PRIMARY KEY的字段時,SQL SERVER會在PRIMARY KEY字段建立一個聚集索引。3. 復合索引的概念復合索引是將兩個字段或多個字段組合起來建立的索引,而單獨的字段允許有重復的值。533.2.5.3 建立索引建立索引的語句是CREATE INDEX,其語法格式為:CREATE UNIQUE CLUSTER INDEX ON ( 次序 , 次序)UNIQUE
42、表明建立唯一索引。CLUSTER表示建立聚集索引。次序用來指定索引值的排列順序,可為ASC(升序)或DESC(降序),缺省值為ASC。例3.18 為表SC在SNO和CNO上建立唯一索引。USE STUDENTCREATE UNIQUE INDEX SCI ON SC(SNO,CNO)54執(zhí)行此命令后,為SC表建立一個索引名為SCI的唯一索引,此索引為SNO和CNO兩列的復合索引,即對SC表中的行先按SNO的遞增順序索引,對于相同的SNO,又按CNO的遞增順序索引。由于有UNIQUE的限制,所以該索引在(SNO,CNO)組合列的排序上具有唯一性,不存在重復值。例3.19 為教師表T在TN上建立聚
43、集索引。CREATE CLUSTER INDEX TI ON T(TN)執(zhí)行此命令后,為T表建立一個索引名為TI的聚集索引,T表中的記錄將按照TN值的升序存放。55注意:1. 改變表中的數(shù)據(jù)(如增加或刪除記錄)時,索引將自動更新。索引建立后,在查詢使用該列時,系統(tǒng)將自動使用索引進行查詢。 2. 索引數(shù)目無限制,但索引越多,更新數(shù)據(jù)的速度越慢。對于僅用于查詢的表可多建索引,對于數(shù)據(jù)更新頻繁的表則應少建索引。3.2.5.4 刪除索引建立索引是為了提高查詢速度,但隨著索引的增多,數(shù)據(jù)更新時,系統(tǒng)會花費許多時間來維護索引。這時,應刪除不必要的索引。刪除索引的語句是DROP INDEX,其語法格式為:D
44、ROP INDEX 數(shù)據(jù)表名.索引名例3.20 刪除表SC的索引SCI。DROP INDEX SC.SCI56實例3:現(xiàn)有關(guān)系模式如下:部門(部門編號,部門名稱,電話)員工(員工編號,姓名,性別,部門編號,職務)項目(項目編號,項目名稱,預算)施工(員工編號,項目編號,工時)1.創(chuàng)建部門表,部門編號數(shù)據(jù)類型為CHAR(10)且為主鍵,部門名稱數(shù)據(jù)類型為CHAR(50),電話數(shù)據(jù)類型為CHAR(11);2.創(chuàng)建員工表,員工編號數(shù)據(jù)類型為CHAR(10)且為主鍵,姓名數(shù)據(jù)類型為CHAR(20),性別數(shù)據(jù)類型為CHAR(2),部門編號數(shù)據(jù)類型為CHAR(10)且為外鍵,職務數(shù)據(jù)類型為VARCHAR(
45、20);3.創(chuàng)建項目表,項目編號數(shù)據(jù)類型為CHAR(10)且為主鍵,項目名稱數(shù)據(jù)類型為CHAR(20),預算數(shù)據(jù)類型為INT;4.創(chuàng)建施工表,員工編號數(shù)據(jù)類型為CHAR(10),項目標號數(shù)據(jù)類型為CHAR(10),(員工編號,項目標號)為主鍵,工時數(shù)據(jù)類型為FLOAT;573.3 SQL數(shù)據(jù)查詢3.3.1 SELECT命令的格式與基本使用數(shù)據(jù)查詢是數(shù)據(jù)庫中最常見的操作。SQL語言提供SELECT語句,通過查詢操作可得到所需的信息。SELECT語句的一般格式為:SELECT列名,列名FROM表名或視圖名,表名或視圖名WHERE檢索條件GROUP BY HAVING ORDER BY ASC|DE
46、SC;58SELECT語句的格式:SELECTALL|DISTINCTTOP N PERCENTWITH TIES列名1 AS 別名1, 列名2 AS 別名2INTO 新表名FROM 表名 1AS 表1別名INNER|RIGHT|FULL|OUTEROUTERJOIN 表名2 AS 表2別名ON 條件59查詢的結(jié)果是仍是一個表。SELECT語句的執(zhí)行過程是:根據(jù)WHERE子句的檢索條件,從FROM子句指定的基本表或視圖中選取滿足條件的元組,再按照SELECT子句中指定的列,投影得到結(jié)果表。如果有GROUP子句,則將查詢結(jié)果按照相同的值進行分組。如果GROUP子句后有HAVING短語,則只輸出滿
47、足HAVING條件的元組。如果有ORDER子句,查詢結(jié)果還要按照的值進行排序。60例3.21 查詢?nèi)w學生的學號、姓名和年齡。SELECT SNO, SN, AGE FROM S例3.22 查詢學生的全部信息。SELECT * FROM S用 * 表示S表的全部列名,而不必逐一列出。 例3.23 查詢選修了課程的學生號。SELECT DISTINCT SNO FROM SC查詢結(jié)果中的重復行被去掉上述查詢均為不使用WHERE子句的無條件查詢,也稱作投影查詢。61另外,利用投影查詢可控制列名的順序,并可通過指定別名改變查詢結(jié)果的列標題的名字。例3.24 查詢?nèi)w學生的姓名、學號和年齡。SELEC
48、T SNAME NAME, SNO, AGE FROM S其中,NAME為SNAME的別名 623.3.2條件查詢當要在表中找出滿足某些條件的行時,則需使用WHERE子句指定查詢條件。WHERE子句中,條件通常通過三部分來描述:1 列名;2 比較運算符;3 列名、常數(shù)。 運算符含義=, , =, 85643.3.2.2 多重條件查詢當WHERE子句需要指定一個以上的查詢條件時,則需要使用邏輯運算符AND、OR和NOT將其連結(jié)成復合的邏輯表達式。其優(yōu)先級由高到低為:NOT、AND、OR,用戶可以使用括號改變優(yōu)先級。例3.27 查詢選修C1或C2且分數(shù)大于等于85分學生的的學號、課程號和成績。SE
49、LECT SNO,CNO,SCOREFROM SCWHERE(CNO=C1 OR CNO=C2) AND SCORE=85 653.3.2.3 確定范圍例3.28 查詢工資在1000至1500之間的教師的教師號、姓名及職稱。SELECT TNO,TN,PROFFROM TWHERE SAL BETWEEN 1000 AND 1500等價于SELECT TNO,TN,PROFFROM TWHERE SAL=1000 AND SAL=150066例3.29 查詢工資不在1000至1500之間的教師的教師號、姓名及職稱。SELECT TNO,TN,PROFFROM TWHERE SAL NOT BE
50、TWEEN 1000 AND 15003.2.2.4 確定集合利用“IN”操作可以查詢屬性值屬于指定集合的元組。例3.30 查詢選修C1或C2的學生的學號、課程號和成績。SELECT SNO, CNO, SCORE FROM SC WHERE CNO IN(C1, C2)此語句也可以使用邏輯運算符“OR”實現(xiàn)。67SELECT SNO, CNO, SCORE FROM SC WHERE CNO=C1 OR CNO= C2利用“NOT IN”可以查詢指定集合外的元組。 例3.31 查詢沒有選修C1,也沒有選修C2的學生的學號、課程號和成績。SELECT SNO, CNO, SCORE FROM
51、SC WHERE CNO NOT IN(C1, C2)等價于:SELECT SNO, CNO, SCORE FROM SC WHERE CNO!=C1 AND CNO!= C2683.3.2.5 部分匹配查詢上例均屬于完全匹配查詢,當不知道完全精確的値時,用戶還可以使用LIKE或NOT LIKE進行部分匹配查詢(也稱模糊查詢)。LIKE定義的一般格式為: LIKE 屬性名必須為字符型,字符串常量的字符可以包含如下兩個特殊符號:%:表示任意知長度的字符串;_:表示任意單個字符。 例3.32 查詢所有姓張的教師的教師號和姓名。SELECT TNO, TN FROM TWHERE TN LIKE 張
52、%69例3.33 查詢姓名中第二個漢字是“力”的教師號和姓名。SELECT TNO, TN FROM TWHERE TN LIKE _ _力%注:一個漢字占兩個字符。3.3.2.6空值查詢某個字段沒有值稱之為具有空值(NULL)。通常沒有為一個列輸入值時,該列的值就是空值??罩挡煌诹愫涂崭?,它不占任何存儲空間。例如,某些學生選課后沒有參加考試,有選課記錄,但沒有考試成績,考試成績?yōu)榭罩担@與參加考試,成績?yōu)榱惴值牟煌?70例3.34 查詢沒有考試成績的學生的學號和相應的課程號。SELECT SNO, CNOFROM SCWHERE SCORE IS NULL注意:這里的空值條件為IS NU
53、LL,不能寫成SCORE=NULL。713.2.2常用庫函數(shù)及統(tǒng)計匯總查詢SQL提供了許多庫函數(shù),增強了基本檢索能力。常用的庫函數(shù),如表3.2所示函數(shù)名稱功能AVG按列計算平均值SUM按列計算值的總和MAX求一列中的最大值MIN求一列中的最小值COUNT按列值計個數(shù)72例3.35 求學號為S1學生的總分和平均分。SELECT SUM(SCORE) AS TotalScore, AVG(SCORE) AS AveScoreFROM SCWHERE (SNO = S1) 注意:函數(shù)SUM和AVG只能對數(shù)值型字段進行計算。73例3.36 求選修C1號課程的最高分、最低分及之間相差的分數(shù)SELECT
54、MAX(SCORE) AS MaxScore, MIN(SCORE) AS MinScore, MAX(SCORE) - MIN(SCORE) AS DiffFROM SCWHERE (CNO = C1) 例3.37 求計算機系學生的總數(shù)SELECT COUNT(SNO) FROM SWHERE DEPT=計算機74例3.38 求學校中共有多少個系SELECT COUNT(DISTINCT DEPT) AS DeptNum FROM S注意:加入關(guān)鍵字DISTINCT后表示消去重復行,可計算字段“DEPT“不同值的數(shù)目。COUNT函數(shù)對空值不計算,但對零進行計算。例3.39 統(tǒng)計有成績同學的人
55、數(shù)SELECT COUNT (SCORE) FROM SC上例中成績?yōu)榱愕耐瑢W計算在內(nèi),沒有成績(即為空值)的不計算。 75例3.40 利用特殊函數(shù)COUNT(*)求計算機系學生的總數(shù)SELECT COUNT(*) FROM SWHERE DEPT=計算機COUNT(*)用來統(tǒng)計元組的個數(shù)不消除重復行,不允許使用DISTINCT關(guān)鍵字。763.3.3 分組查詢GROUP BY子句可以將查詢結(jié)果按屬性列或?qū)傩粤薪M合在行的方向上進行分組,每組在屬性列或?qū)傩粤薪M合上具有相同的值。例3.42 查詢各位教師的教師號及其任課的門數(shù)。SELECT TNO,COUNT(*) AS C_NUMFROM TCGR
56、OUP BY TNO GROUP BY子句按TNO的值分組,所有具有相同TNO的元組為一組,對每一組使用函數(shù)COUNT進行計算,統(tǒng)計出各位教師任課的門數(shù)。 77若在分組后還要按照一定的條件進行篩選,則需使用HAVING子句。 例3.43 查詢選修兩門以上課程的學生學號和選課門數(shù)SELECT SNO,COUNT(*) AS SC_NUM FROM SCGROUP BY SNO HAVING COUNT(*)=2 GROUP BY子句按SNO的值分組,所有具有相同SNO的元組為一組,對每一組使用函數(shù)COUNT進行計算,統(tǒng)計出每位學生選課的門數(shù)。HAVING子句去掉不滿足COUNT(*)=2的組。7
57、8當在一個SQL查詢中同時使用WHERE子句,GROUP BY 子句和HAVING子句時,其順序是WHEREGROUP BY HAVING。WHERE與HAVING子句的根本區(qū)別在于作用對象不同。WHERE子句作用于基本表或視圖,從中選擇滿足條件的元組;HAVING子句作用于組,選擇滿足條件的組,必須用于GROUP BY子句之后,但GROUP BY子句可沒有HAVING子句。793.3.5 查詢的排序當需要對查詢結(jié)果排序時,應該使用ORDER BY子句ORDER BY子句必須出現(xiàn)在其他子句之后排序方式可以指定,DESC為降序,ASC為升序,缺省時為升序例3.44 查詢選修C1 的學生學號和成績
58、,并按成績降序排列。SELECT SNO, SCOREFROM SCWHERE CNO=C1ORDER BY SCORE DESC 80例3.45 查詢選修C2、C3、C4或C5課程的學號、課程號和成績,查詢結(jié)果按學號升序排列,學號相同再按成績降序排列。SELECT SNO,CNO, SCORE FROM SCWHERE CNO IN (C2 ,C3, C4,C5)ORDER BY SNO,SCORE DESC 例3.46 求選課在三門以上且各門課程均及格的學生的學號及其總成績,查詢結(jié)果按總成績降序列出。SELECT SNO,SUM(SCORE) AS TotalScore FROM SCWH
59、ERE SCORE=60GROUP BY SNOHAVING COUNT(*)=3ORDER BY SUM(SCORE) DESC81此語句為分組排序,執(zhí)行過程如下:1.(FROM)取出整個SC2.(WHERE)篩選SCORE=60的元組3.(GROUP BY)將選出的元組按SNO分組4.(HAVING)篩選選課三門以上的分組5.(SELECT)以剩下的組中提取學號和總成績6.(ORDER BY)將選取結(jié)果排序ORDER BY SUM(SCORE) DESC 可以改寫成ORDER BY 2 DESC2 代表查詢結(jié)果的第二列。 823.3.6 數(shù)據(jù)表連接及連接查詢數(shù)據(jù)表之間的聯(lián)系是通過表的字段值
60、來體現(xiàn)的,這種字段稱為連接字段。連接操作的目的就是通過加在連接字段的條件將多個表連接起來,以便從多個表中查詢數(shù)據(jù)。前面的查詢都是針對一個表進行的,當查詢同時涉及兩個以上的表時,稱為連接查詢。表的連接方法有兩種:方法1:表之間滿足一定的條件的行進行連接,此時FROM子句中指明進行連接的表名,WHERE子句指明連接的列名及其連接條件。方法2:利用關(guān)鍵字JOIN進行連接。83具體分為以下幾種:INNER JOIN :顯示符合條件的記錄,此為默認值;LEFT (OUTER) JOIN:顯示符合條件的數(shù)據(jù)行以及左邊表中不符合條件的數(shù)據(jù)行,此時右邊數(shù)據(jù)行會以NULL來顯示,此稱為左連接;RIGHT (OU
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)承包經(jīng)營合同書
- 供應鏈質(zhì)量管理實務操作指南
- 2025年市場營銷學課件:理論與中國市場
- 三農(nóng)村公共服務均等化與便捷化實施方案
- 網(wǎng)絡安全應急響應處理手冊
- 集成開發(fā)環(huán)境使用說明書
- 實習員工勞務合同
- 法律服務保密協(xié)議書
- 地產(chǎn)行業(yè)投資項目表
- 動態(tài)字體大小調(diào)整實現(xiàn)辦法
- 貴州人民版五年級勞動下冊全冊教案
- 2024年高考英語易錯題 閱讀理解:推理判斷題4大陷阱(教師版新高考專用)
- 醫(yī)院環(huán)境衛(wèi)生學監(jiān)測和院感控制課件
- 《力與形變》教學課件(一)
- 湖北省2024年村干部定向考試真題
- 部編版三年級語文下冊期中試卷及參考答案
- JT-T-1199.1-2018綠色交通設施評估技術(shù)要求第1部分:綠色公路
- 酒店能耗分析報告
- 桃花紅杏花紅混聲合唱簡譜
- DL-T995-2016繼電保護和電網(wǎng)安全自動裝置檢驗規(guī)程
- 2024年蘇州農(nóng)業(yè)職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫含答案
評論
0/150
提交評論