




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1,第3章 SQL語言,2,本章概要,SQL是結(jié)構(gòu)化查詢語言(Structured Query Language)的縮寫,其功能包括數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制四個部分。 SQL 語言簡潔、方便實用、功能齊全,已成為目前應(yīng)用最廣的關(guān)系數(shù)據(jù)庫語言。 本章要求 了解 SQL語言的特點, 掌握SQL語言的四大功能及使用方法, 重點掌握其數(shù)據(jù)查詢功能及其使用。,3,3.1 SQL語言的基本概念與特點,3.1.1 SQL語言的發(fā)展及標(biāo)準(zhǔn)化 SQL語言發(fā)展史 SQL語言是當(dāng)前最為成功、應(yīng)用最為廣泛的關(guān)系數(shù)據(jù)庫語言,其發(fā)展主要經(jīng)歷了以下幾個階段: 1974年由CHAMBERLIN和
2、BOYEE提出,當(dāng)時稱為SEQUEL(STUCTURED ENGLISH QUERY LANGUAGE); IBM公司對其進(jìn)行了修改,并用于其SYSTEM R關(guān)系數(shù)據(jù)庫系統(tǒng)中; 1981年 IBM推出其商用關(guān)系關(guān)系數(shù)據(jù)庫SQL/DS,并將其名字改為SQL,由于SQL語言功能強大,簡潔易用,因此得到了廣泛的使用; 今天廣泛應(yīng)用于各種大型數(shù)據(jù)庫,如SYBASE、INFORMIX、 ORACLE、DB2、INGRES等,也用于各種小型數(shù)據(jù)庫,如FOXPRO、ACCESS。,4, SQL語言標(biāo)準(zhǔn)化 隨著關(guān)系數(shù)據(jù)庫系統(tǒng)和SQL語言應(yīng)用的日益廣泛,SQL語言的標(biāo)準(zhǔn)化工作也在緊張革進(jìn)行著,十多
3、年來已制訂了多個SQL標(biāo)準(zhǔn); 1. 1982年,美國國家標(biāo)準(zhǔn)化局(AMERICAN NATIONAL STANDARD INSTITUTE,簡稱ANSI)開始制定SQL標(biāo)準(zhǔn); 2. 1986年,美國國家標(biāo)準(zhǔn)化協(xié)會公布了SQL語言的第一個標(biāo)準(zhǔn)SQL86; 3. 1987年,國際標(biāo)準(zhǔn)化組織(ISO)通過了SQL86標(biāo)準(zhǔn); 4. 1989年,國際標(biāo)準(zhǔn)化組織(ISO)對SQL86進(jìn)行了補充,推出了SQL89標(biāo)準(zhǔn); 5. 1992年,ISO又推出了SQL92標(biāo)準(zhǔn),也稱為SQL2; 6. 目前SQL99(也稱為SQL3)在起草中,增加了面向?qū)ο蟮墓δ堋?5,3.1.2 SQL語言的基本概念 首先介紹兩個基
4、本概念:基本表和視圖。 基本表(BASE TABLE):是獨立存在的表,不是由其它的表導(dǎo)出的表。一個關(guān)系對應(yīng)一個基本表,一個或多個基本表對應(yīng)一個存儲文件。 視圖(VIEW):是一個虛擬的表,是從一個或幾個基本表導(dǎo)出的表。它本身不獨立存在于數(shù)據(jù)庫中,數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。當(dāng)基本表中的數(shù)據(jù)發(fā)生變化時,從視圖中查詢出來的數(shù)據(jù)也隨之改變。,6,例如:學(xué)生數(shù)據(jù)庫中有學(xué)生基本情況表STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT),此表為基本表,對應(yīng)一個存儲文件。可以在其基礎(chǔ)上定義一個男生基本情況表STUDENT_MALE(S
5、NO,SNAME,SAGE,SDEPT), 它是從STUDENT中選擇SSEX=男的各個行,然后在SNO,SNAME,SAGE,SDEPT上投影得到的。 在數(shù)據(jù)庫中只存有STUDENT_MALE的定義,而STUDENT_MALE的記錄不重復(fù)存儲。 在用戶看來,視圖是通過不同路徑去看一個實際表,就象一個窗口一樣,我們通過窗戶去看外面的高樓,可以看到高樓的不同部分,而透過視圖可以看到數(shù)據(jù)庫中自己感興趣的內(nèi)容。,7,圖3.1 SQL語言支持的關(guān)系數(shù)據(jù)庫的三級邏輯結(jié)構(gòu),SQL語言支持?jǐn)?shù)據(jù)庫的三級模式結(jié)構(gòu),如圖3.1所示。其中外模式對應(yīng)于視圖和部分基本表,模式對應(yīng)于基本表,內(nèi)模式對應(yīng)于存儲文件。,8,3
6、.1.3 SQL語言的主要特點 SQL語言類似于英語的自然語言,簡潔易用。 SQL語言是一種非過程語言,即用戶只要提出“干什么”即可,不必管具體操作過程,也不必了解數(shù)據(jù)的存取路徑,只要指明所需的數(shù)據(jù)即可。 SQL語言是一種面向集合的語言,每個命令的操作對象是一個或多個關(guān)系,結(jié)果也是一個關(guān)系。 SQL語言既是自含式語言,又是嵌入式語言??瑟毩⑹褂?,也可嵌入到宿主語言中。 自含式語言可以獨立使用交互命令,適用于終端用戶、應(yīng)用程序員和DBA; 嵌入式語言使其嵌入在高級語言中使用,供應(yīng)用程序員開發(fā)應(yīng)用程序。,9,5. SQL語言具有: 數(shù)據(jù)查詢(QUERY) 數(shù)據(jù)定義(DEFINITION) 數(shù)據(jù)操縱
7、(MANIPULATION) 數(shù)據(jù)控制(CONTROL) 四種語言一體化的功能。 下面以SQL SERVER 為例分別介紹其各個功能。各例題中所用的基本表如圖1.12所示。,10,3.2 SQL數(shù)據(jù)定義,SQL語言使用數(shù)據(jù)定義語言(DATA DEFINITION LANGUAGE,簡稱DDL)實現(xiàn)其數(shù)據(jù)定義功能,可對數(shù)據(jù)庫用戶、基本表、視圖、索引進(jìn)行定義和撤消。 3.2.1 字段數(shù)據(jù)類型 當(dāng)用SQL語句定義表時,需要為表中的每一個字段設(shè)置一個數(shù)據(jù)類型,用來指定字段所存放的數(shù)據(jù)是整數(shù)、字符串、貨幣或是其它類型的數(shù)據(jù)。 SQL SERVER 的數(shù)據(jù)類型有很多種,分為以下9類: 1. 整數(shù)數(shù)據(jù)類型:
8、依整數(shù)數(shù)值的范圍大小,有BIT, INT , SMALLINT, TINYINT四種。 2. 精確數(shù)值類型:用來定義可帶小數(shù)部分的數(shù)字,有NUMERIC和DECIMAL兩種。二者相同,但建議使用DECIMAL。如:123.0、8000.56,11,3. 近似浮點數(shù)值數(shù)據(jù)類型:當(dāng)數(shù)值的位數(shù)太多時,可用此數(shù)據(jù)類型來取其近似值,用FLOAT和REAL兩種。如:1.23E+10 4. 日期時間數(shù)據(jù)類型:用來表示日期與時間,依時間范圍與精確程度可分為DATETIME與SMALLDATETIME兩種。如:1998-06-08 15:30:00 5. 字符串?dāng)?shù)據(jù)類型:用來表示字符串的字段。包括:CHAR,
9、VARCHAR, TEXT三種,如:“數(shù)據(jù)庫” 6. UNICODE字符串?dāng)?shù)據(jù)類型:UNICODE是雙字節(jié)文字編碼標(biāo)準(zhǔn),包括NCHAR, NVARCHAR與NTEXT三種。與字符串?dāng)?shù)據(jù)類型相類似,但UNICODE的一個字符用2字節(jié)存儲,而一般字符數(shù)據(jù)用一個字節(jié)存儲。 7. 二進(jìn)制數(shù)據(jù)類型:用來定義二進(jìn)制碼的數(shù)據(jù)。有:BINARY, VARBINARY,IMAGE 三種,通常用十六進(jìn)制表示:如:OX5F3C,12,8. 貨幣數(shù)據(jù)類型:用來定義與貨幣有關(guān)的數(shù)據(jù),分為MONEY 與SMALLMONEY兩種,如:123.0000 9. 標(biāo)記數(shù)據(jù)類型:有UNIQUEIDENTIFIER ,TIMESTA
10、MP兩種,此數(shù)據(jù)類型通常系統(tǒng)自動產(chǎn)生,而不是用戶輸入的,TIMESTAMP記錄數(shù)據(jù)更新的時間戳印,而UNIQUEIDENTIFIER用來識別每一筆數(shù)據(jù)的唯一性。 各種數(shù)據(jù)類型的有關(guān)規(guī)定如下表:,13,14,15,16,3.2.2 定義、修改和撤消數(shù)據(jù)庫的用戶 建立數(shù)據(jù)庫用戶 數(shù)據(jù)庫用戶是指能夠登錄到數(shù)據(jù)庫,并能夠?qū)?shù)據(jù)庫進(jìn)行存取操作的用戶。 當(dāng)SQL SERVER系統(tǒng)安裝完畢后,數(shù)據(jù)庫管理員就可以通過CREATE USER語句建立其他數(shù)據(jù)庫用戶了。 語法格式為: CREATE USER IDENTIFIED BY 指定數(shù)據(jù)庫用戶的帳號名字,即用戶標(biāo)識符, 指用戶登錄到數(shù)據(jù)庫系統(tǒng)
11、時使用的口令, 這里的用戶名和口令可以與用戶登錄到操作系統(tǒng)時所使用的用戶名和口令不同。,17,例3.1 建立一個新用戶,其名稱為ZHANGSAN,登錄口令為123。 CREATE USER ZHANGSAN IDENTIFIED BY 123 更改數(shù)據(jù)庫用戶的口令 數(shù)據(jù)庫用戶最初的口令是由數(shù)據(jù)庫管理員指定的,數(shù)據(jù)庫用戶可以用ALTER USER命令來更改它, ALTER USER語句的基本語法格式為: ALTER USER IDENTIFIED BY 例3.2 將用戶ZHANGSAN的口令改為456。 ALTER USER ZHANGSAN IDENTIFIED BY 456,
12、18, 刪除用戶 隨著數(shù)據(jù)庫應(yīng)用的發(fā)展和變化,數(shù)據(jù)庫的用戶也會發(fā)生變化。 如果某些數(shù)據(jù)庫用戶不再需要使用數(shù)據(jù)庫,數(shù)據(jù)庫管理員就可以使用DROP USER把該用戶刪掉, DROP USER 語句的基本語法格式為: DROP USER 例3.3 刪除用戶ZHANGSAN DROP USER ZHANGSAN 注意:刪除數(shù)據(jù)庫用戶之前應(yīng)首先刪除該用戶建立的數(shù)據(jù)庫對象,包括基本表、視圖、索引等,否則系統(tǒng)將不允許刪除這個用戶。,19,3.2.2 建立數(shù)據(jù)庫 CREATE DATABASE 3.2.3 創(chuàng)建、修改和刪除數(shù)據(jù)表 創(chuàng)建數(shù)據(jù)表 數(shù)據(jù)表是關(guān)系數(shù)據(jù)庫的基本組成單位,它物
13、理地存儲于數(shù)據(jù)庫的存儲文件中。 1. 創(chuàng)建一個數(shù)據(jù)表時主要包括以下幾個組成部分: (1)字段名(列名):字段名可長達(dá)128個字符。字段名可包含中文、英文字母、下劃線、#號、貨幣符號(¥)及AT符號()。同一表中不許有重名列; (2)字段數(shù)據(jù)類型:見表3.2; (3)字段的長度、精度和小數(shù)位數(shù);,20,字段的長度:指字段所能容納的最大數(shù)據(jù)量,但對不同的數(shù)據(jù)類型來說,長度對字段的意義可能有些不同。 對字符串與UNICODE數(shù)據(jù)類型而言,長度代表字段所能容納的字符的數(shù)目,因此它會限制用戶所能輸入的文本長度。 對數(shù)值類的數(shù)據(jù)類型而言,長度則代表字段使用多少個字節(jié)來存放數(shù)字。 對BINARY、VARBI
14、NARY、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ù)。,21,經(jīng)常以如下所示的格式來表示數(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ù)
15、是固定的,對采用此類數(shù)據(jù)類型的字段而言,不需設(shè)置精度與小數(shù)位數(shù), 如:如果某字段采用INT數(shù)據(jù)類型,其長度固定是4,精度固定是10,小數(shù)位數(shù)則固定是0,這表示字段將能存放10位數(shù)沒有小數(shù)點的整數(shù)。存儲大小則是4個字節(jié)。 (4)NULL值與DEFAULT值 DEFAULT值表示某一字段的默認(rèn)值,當(dāng)沒有輸入數(shù)據(jù)時,則使用此默認(rèn)的值。,22,2. 創(chuàng)建數(shù)據(jù)表的SQL語法格式 在SQL語言中,使用語句CREATE TABLE創(chuàng)建數(shù)據(jù)表,其基本語法格式為: CREATE TABLE (,|) 是合法標(biāo)識符,最多可有128個字符,如S,SC,C,不允許重名。 :DEFAULT DEFAULT:若是某字段設(shè)
16、置有默認(rèn)值,當(dāng)該字段未被輸入數(shù)據(jù)時,則以該默認(rèn)值自動填入該字段。,23,例3.4 建立一學(xué)生表 USE STUDENT CREATE TABLE S (SNO CHAR(8) , SN VARCHAR(20), AGE INT, SEX CHAR(2) DEFAULT 男 , DEPT VARCHAR(20); 執(zhí)行該語句后,便產(chǎn)生了學(xué)生基本表的表框架,此表為一個空表。 其中,SEX列的缺省值為“男”。,24,3. 定義完整性約束 上列為創(chuàng)建基本表的最簡單形式,還可以對表進(jìn)一步定義,如主鍵、空值的設(shè)定,使數(shù)據(jù)庫用戶能夠根據(jù)應(yīng)用的需要對基本表的定義做出更為精確和詳盡的規(guī)定。 在SQL SERVE
17、R中,對于基本表的約束分為列約束和表約束。 列約束是對某一個特定列的約束,包含在列定義中,直接跟在該列的其他定義之后,用空格分隔,不必指定列名; 表約束與列定義相互獨立,不包括在列定義中,通常用于對多個列一起進(jìn)行約束,與列定義用,分隔,定義表約束時必須指出要約束的那些列的名稱。完整性約束的基本語法格式為: CONSTRAINT 約束名:約束不指定名稱時,系統(tǒng)會給定一個名稱。,25,約束類型:在定義完整性約束時必須指定完整性約束的類型。 在SQL SERVER中可以定義五種類型的完整性約束,下面分別加以介紹: (1)NULL/NOT NULL 是否允許該字段的值為NULL。 NULL值不是0也不
18、是空白,更不是填入字符串“NULL”,而是表示“不知道”、“不確定”或“沒有數(shù)據(jù)”的意思。 當(dāng)某一字段的值一定要輸入才有意義的時候,則可以設(shè)置為NOT NULL。 如主鍵列就不允許出現(xiàn)空值,否則就失去了唯一標(biāo)識一條記錄的作用 只能用于定義列約束, 其語法格式如下: CONSTRAINT NULL|NOT NULL,26,例3.5 建立一個S表,對SNO字段進(jìn)行NOT NULL約束。 USE STUDENT CREATE TABLE S (SNO CHAR(10) CONSTRAINT S_CONS NOT NULL, SN VARCHAR(20), AGE INT, SEX CHAR(2) D
19、EFAULT 男 , DEPT VARCHAR(20); 當(dāng)SNO為空上時,系統(tǒng)給出錯誤信息,無NOT NULL約束時,系統(tǒng)缺省為NULL。 其中S_CONS為指定的約束名稱,當(dāng)約束名稱省略時,系統(tǒng)自動產(chǎn)生一個名字。如下列功能同上,只是省略約束名稱。,27,USE STUDENT CREATE TABLE S (SNO CHAR(10) NOT NULL , SN VARCHAR(20), AGE INT, SEX CHAR(2) DEFAULT 男 , DEPT VARCHAR(20);,28,(2)UNIQUE約束 UNIQUE約束用于指明基本表在某一列或多個列的組合上的取值必須唯一。 定
20、義了UNIQUE約束的那些列稱為唯一鍵,系統(tǒng)自動為唯一鍵建立唯一索引,從而保證了唯一鍵的唯一性。 唯一鍵允許為空,但系統(tǒng)為保證其唯一性,最多只可以出現(xiàn)一個NULL值。 UNIQUE既可用于列約束,也可用于表約束。 UNIQUE用于定義列約束時,其語法格式如下: CONSTRAINT UNIQUE 例3.6 建立一個S表,定義SN為唯一鍵。 USE STUDENT CREATE TABLE S (SNO CHAR(6), SN CHAR(8) CONSTRAINT SN_UNIQ UNIQUE, SEX CHAR(2), AGE NUMERIC(2);,29,其中SN_UNIQ為指定的約束名稱,
21、約束名稱可以省略, 如下例: USE STUDENT CREATE TABLE S (SNO CHAR(6), SN CHAR(8) UNIQUE, SEX CHAR(2), AGE NUMERIC(2); UNIQUE用于定義表約束時,其語法格式如下: CONSTRAINT UNIQUE(,),30,例3.7 建立一個S表,定義SN+SEX為唯一鍵。 USE STUDENT CREATE TABLE S ( SNO CHAR(5), SN CHAR(8), SEX CHAR(2), CONSTRAINT S_UNIQ UNIQUE(SN,SEX); 系統(tǒng)為SN+SEX建立唯一索引,確保同一性
22、別的學(xué)生沒有重名。 (3)PRIMARY KEY約束 PRIMARY KEY約束用于定義基本表的主鍵,起唯一標(biāo)識作用,其值不能為NULL,也不能重復(fù),以此來保證實體的完整性。,31,PRIMARY KEY與UNIQUE約束類似,通過建立唯一索引來保證基本表在主鍵列取值的唯一性,但它們之間存在著很大的區(qū)別: 在一個基本表中只能定義一個PRIMARY KEY約束,但可定義多個UNIQUE約束; 對于指定為PRIMARY KEY的一個列或多個列的組合,其中任何一個列都不能出現(xiàn)空值,而對于UNIQUE所約束的唯一鍵,則允許為空。 注意:不能為同一個列或一組列既定義UNIQUE約束,又定義PRIMARY
23、 KEY約束。 PRIMARY KEY既可用于列約束,也可用于表約束。 PRIMARY KEY用于定義列約束時,其語法格式如下: CONSTRAINT PRIMARY KEY,32,例3.8 建立一個S表,定義SNO為S的主鍵 USE STUDENT 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 (),33,例3.9
24、 建立一個SC表,定義SNO+CNO為SC的主鍵 USE STUDENT CREATE TABLE SC (SNO CHAR(5) NOT NULL, CNO CHAR(5) NOT NULL, SCORE NUMERIC(3), CONSTRAINT SC_PRIM PRIMARY KEY(SNO,CNO);,34,(4)FOREIGN KEY約束 FOREIGN KEY約束指定某一個列或一組列作為外部鍵,其中,包含外部鍵的表稱為從表,包含外部鍵所引用的主鍵或唯一鍵的表稱主表。 系統(tǒng)保證從表在外部鍵上的取值要么是主表中某一個主鍵值或唯一鍵值,要么取空值。以此保證兩個表之間的連接,確保了實體的
25、參照完整性。 FOREIGN KEY既可用于列約束,也可用于表約束, 其語法格式為: CONSTRAINT FOREIGN KEY REFERENCES (),35,例3.10 建立一個SC表,定義SNO,CNO為SC的外部鍵。 USE STUDENT 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)
26、, CONSTRAINT S_C_PRIM PRIMARY KEY (SNO,CNO);,36,(5)CHECK約束 CHECK約束用來檢查字段值所允許的范圍,如,一個字段只能輸入整數(shù),而且限定在0-100的整數(shù),以此來保證域的完整性。 CHECK既可用于列約束,也可用于表約束, 其語法格式為: CONSTRAINT CHECK () 例3.10 建立一個SC表,定義SCORE 的取值范圍為0到100之間。 USE STUDENT CREATE TABLE SC (SNO CHAR(5), CNO CHAR(5), SCORE NUMERIC(5,1) CONSTRAINT SCORE_CHK
27、 CHECK(SCORE=0 AND SCORE =100);,37,例3.11 建立包含完整性定義的學(xué)生表 USE STUDENT CREATE TABLE S (SNO CHAR(6) CONSTRAINT S_PRIM PRIMARY KEY, SN CHAR(8) CONSTRAINT SN_CONS NOT NULL, AGE NUMERIC(2) CONSTRAINT AGE_CONS NOT NULL CONSTRAINT AGE_CHK CHECK (AGE BETWEEN 15 AND 50), SEX CHAR(2) DEFAULT 男, DEPT CHAR(10) CON
28、STRAINT DEPT_CONS NOT NULL);,38, 修改基本表 由于應(yīng)用環(huán)境和應(yīng)用需求的變化,經(jīng)常需要修改基本表的結(jié)構(gòu),比如,增加新列和完整性約束、修改原有的列定義和完整性約束等。 SQL語言使用ALTER TABLE命令來完成這一功能,有如下三種修改方式: 1. ADD方式 用于增加新列和完整性約束,定義方式同CREATE TABLE語句中的定義方式相同,其語法格式為: ALTER TABLE ADD | 例3.12 在S表中增加一個班號列和住址列。 USE STUDENT ALTER TABLE S ADD CLASS_NO CHAR(6), ADDRESS C
29、HAR(40),39,注意:使用此方式增加的新列自動填充NULL值,所以不能為增加的新列指定NOT NULL約束 。 例3.13 在SC表中增加完整性約束定義,使SCORE在0-100之間。 USE STUDENT ALTER TABLE SC ADD CONSTRAINT SCORE_CHK CHECK(SCORE BETWEEN 0 AND 100),40,2. ALTER 方式 用于修改某些列,其語法格式為: ALTER TABLE ALTER COLUMN NULL|NOT NULL 例3.14 把S表中的SNO列加寬到8位字符寬度 USE STUDENT ALTER TABLE S
30、ALTER COLUMN SNO CHAR(8),41,注意:使用此方式有如下一些限制: 不能改變列名; 不能將含有空值的列的定義修改為NOT NULL約束; 若列中已有數(shù)據(jù),則不能減少該列的寬度,也不能改變其數(shù)據(jù)類型; 只能修改NULL|NOT NULL約束,其它類型的約束在修改之前必須先刪除,然后再重新添加修改過的約束定義。 3.DROP方式 刪除完整性約束定義,其語法格式為: ALTER TABLE DROP CONSTRAINT ,42,例3.15 刪除S表中的AGE_CHK約束 USE STUDENT ALTER TABLE S DROP CONSTRAINT AGE_CHK 3.2
31、.3.3 改變基本表的名字 使用RENAME命令,可以改變基本表的名字,其語法格式為: RENAME TO 例3.16 將S表的名字更改為STUDENT USE STUDENT RENAME S TO STUDENT,43, 刪除基本表 當(dāng)某個基本表無用時,可將其刪除。 刪除后,該表中的數(shù)據(jù)和在此表上所建的索引都被刪除,而建立在該表上的視圖不會隨之刪除,系統(tǒng)將繼續(xù)保留其定義,但已無法使用。 如果重新恢復(fù)該表,這些視圖可重新使用。 刪除表的語法格式: DROP TABLE 例3.17 刪除表STUDENT USE STUDENT DROP TABLE STUDENT 注意:只能刪除
32、自己建立的表,不能刪除其他用戶所建的表。,44,3.2.5 設(shè)計、創(chuàng)建和維護(hù)索引 索引的作用 在日常生活中我們會經(jīng)常遇到索引,例如圖書目錄、詞典索引等。 借助索引,人們會很快地找到需要的東西。 索引是數(shù)據(jù)庫隨機檢索的常用手段,它實際上就是記錄的關(guān)鍵字與其相應(yīng)地址的對應(yīng)表。 例如,當(dāng)我們要在本書中查找有關(guān)“SQL查詢”的內(nèi)容時,應(yīng)該先通過目錄找到“SQL查詢”所對應(yīng)的頁碼,然后從該頁碼中找出所要的信息。這種方法比直接翻閱書的內(nèi)容要快。 如果把數(shù)據(jù)庫表比作一本書,則表的索引就如書的目錄一樣,通過索引可大大提高查詢速度。 此外,在SQL SERVER中,行的唯一性也是通過建立唯一索引
33、來維護(hù)的。 索引的作用可歸納為: 1. 加快查詢速度; 2. 保證行的唯一性。,45, 索引的分類 1. 按照索引記錄的存放位置可分為聚集索引與非聚集索引 聚集索引:按照索引的字段排列記錄,并且依照排好的順序?qū)⒂涗洿鎯υ诒碇小?非聚集索引:按照索引的字段排列記錄,但是排列的結(jié)果并不會存儲在表中,而是另外存儲。 2. 唯一索引的概念 唯一索引表示表中每一個索引值只對應(yīng)唯一的數(shù)據(jù)記錄, 這與表的PRIMARY KEY的特性類似,因此唯一性索引常用于PRIMARY KEY的字段上,以區(qū)別每一筆記錄。 當(dāng)表中有被設(shè)置為UNIQUE的字段時,SQL SERVER會自動建立一個非聚集的唯一性
34、索引。 而當(dāng)表中有PRIMARY KEY的字段時,SQL SERVER會在PRIMARY KEY字段建立一個聚集索引。 3. 復(fù)合索引的概念 復(fù)合索引是將兩個字段或多個字段組合起來建立的索引,而單獨的字段允許有重復(fù)的值。,46, 建立索引 建立索引的語句是CREATE INDEX,其語法格式為: CREATE UNIQUE CLUSTER INDEX ON ( 次序 , 次序) UNIQUE表明建立唯一索引。 CLUSTER表示建立聚集索引。 次序用來指定索引值的排列順序,可為ASC(升序)或DESC(降序),缺省值為ASC。 例3.18 為表SC在SNO和CNO上建立唯一索引。
35、 USE STUDENT CREATE UNIQUE INDEX SCI ON SC(SNO,CNO),47,執(zhí)行此命令后,為SC表建立一個索引名為SCI的唯一索引, 此索引為SNO和CNO兩列的復(fù)合索引,即對SC表中的行先按SNO的遞增順序索引,對于相同的SNO,又按CNO的遞增順序索引。 由于有UNIQUE的限制,所以該索引在(SNO,CNO)組合列的排序上具有唯一性,不存在重復(fù)值。 例3.19 為教師表T在TN上建立聚集索引。 CREATE CLUSTER INDEX TI ON T(TN) 執(zhí)行此命令后,為T表建立一個索引名為TI的聚集索引,T表中的記錄將按照TN值的升序存放。,48,
36、注意: 1. 改變表中的數(shù)據(jù)(如增加或刪除記錄)時,索引將自動更新。 索引建立后,在查詢使用該列時,系統(tǒng)將自動使用索引進(jìn)行查詢。 2. 索引數(shù)目無限制,但索引越多,更新數(shù)據(jù)的速度越慢。對于僅用 于查詢的表可多建索引,對于數(shù)據(jù)更新頻繁的表則應(yīng)少建索引。 刪除索引 建立索引是為了提高查詢速度,但隨著索引的增多,數(shù)據(jù)更新時,系統(tǒng)會花費許多時間來維護(hù)索引。這時,應(yīng)刪除不必要的索引。 刪除索引的語句是DROP INDEX,其語法格式為: DROP INDEX 數(shù)據(jù)表名.索引名 例3.20 刪除表SC的索引SCI。 DROP INDEX SC.SCI,49,3.3 SQL數(shù)據(jù)查詢,3.3.
37、1 SELECT命令的格式與基本使用 數(shù)據(jù)查詢是數(shù)據(jù)庫中最常見的操作。 SQL語言提供SELECT語句,通過查詢操作可得到所需的信息。 SELECT語句的一般格式為: SELECT列名,列名 FROM表名或視圖名,表名或視圖名 WHERE檢索條件 GROUP BY HAVING ORDER BY ASC|DESC;,50,SELECT語句的格式: SELECTALL|DISTINCTTOP N PERCENTWITH TIES 列名1 AS 別名1 , 列名2 AS 別名2 INTO 新表名 FROM 表名 1AS 表1別名 INNER|RIGHT|FULL|OUTEROUTERJOIN 表名
38、2 AS 表2別名 ON 條件,51,查詢的結(jié)果是仍是一個表。 SELECT語句的執(zhí)行過程是: 根據(jù)WHERE子句的檢索條件,從FROM子句指定的基本表或視圖中選取滿足條件的元組,再按照SELECT子句中指定的列,投影得到結(jié)果表。 如果有GROUP子句,則將查詢結(jié)果按照相同的值進(jìn)行分組。 如果GROUP子句后有HAVING短語,則只輸出滿足HAVING條件的元組。 如果有ORDER子句,查詢結(jié)果還要按照的值進(jìn)行排序。,52,例3.21 查詢?nèi)w學(xué)生的學(xué)號、姓名和年齡。 SELECT SNO, SN, AGE FROM S 例3.22 查詢學(xué)生的全部信息。 SELECT * FROM S 用 *
39、 表示S表的全部列名,而不必逐一列出。 例3.23 查詢選修了課程的學(xué)生號。 SELECT DISTINCT SNO FROM SC 查詢結(jié)果中的重復(fù)行被去掉 上述查詢均為不使用WHERE子句的無條件查詢,也稱作投影查詢。,53,另外,利用投影查詢可控制列名的順序,并可通過指定別名改變查詢結(jié)果的列標(biāo)題的名字。 例3.24 查詢?nèi)w學(xué)生的姓名、學(xué)號和年齡。 SELECT SNAME NAME, SNO, AGE FROM S 其中,NAME為SNAME的別名,54,3.3.2條件查詢 當(dāng)要在表中找出滿足某些條件的行時,則需使用WHERE子句指定查詢條件。 WHERE子句中,條件通常通過三部分來描
40、述: 1 列名; 2 比較運算符; 3 列名、常數(shù)。,表3.8 常用的比較運算符,55, 比較大小 例3.25 查詢選修課程號為C1的學(xué)生的學(xué)號和成績。 SELECT SNO,SCORE FROM SC WHERE CNO=C1 例3.26 查詢成績高于85分的學(xué)生的學(xué)號、課程號和成績。 SELECT SNO,CNO,SCORE FROM SC WHERE SCORE85,56, 多重條件查詢 當(dāng)WHERE子句需要指定一個以上的查詢條件時,則需要使用邏輯運算符AND、OR和NOT將其連結(jié)成復(fù)合的邏輯表達(dá)式。 其優(yōu)先級由高到低為:NOT、AND、OR,用戶可以使用括號
41、改變優(yōu)先級。 例3.27 查詢選修C1或C2且分?jǐn)?shù)大于等于85分學(xué)生的的學(xué)號、課程號和成績。 SELECT SNO,CNO,SCORE FROM SC WHERE(CNO=C1 OR CNO=C2) AND SCORE=85,57, 確定范圍 例3.28 查詢工資在1000至1500之間的教師的教師號、姓名及職稱。 SELECT TNO,TN,PROF FROM T WHERE SAL BETWEEN 1000 AND 1500 等價于 SELECT TNO,TN,PROF FROM T WHERE SAL=1000 AND SAL=1500,58,例3.29 查詢工資不在100
42、0至1500之間的教師的教師號、姓名及職稱。 SELECT TNO,TN,PROF FROM T WHERE SAL NOT BETWEEN 1000 AND 1500 確定集合 利用“IN”操作可以查詢屬性值屬于指定集合的元組。 例3.30 查詢選修C1或C2的學(xué)生的學(xué)號、課程號和成績。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO IN(C1, C2) 此語句也可以使用邏輯運算符“OR”實現(xiàn)。,59,SELECT SNO, CNO, SCORE FROM SC WHERE CNO=C1 OR CNO= C2 利用“NOT IN”可以查詢指
43、定集合外的元組。 例3.31 查詢沒有選修C1,也沒有選修C2的學(xué)生的學(xué)號、課程號和成績。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO NOT IN(C1, C2) 等價于: SELECT SNO, CNO, SCORE FROM SC WHERE CNO!=C1 AND CNO!= C2,60, 部分匹配查詢 上例均屬于完全匹配查詢,當(dāng)不知道完全精確的値時,用戶還可以使用LIKE或NOT LIKE進(jìn)行部分匹配查詢(也稱模糊查詢)。 LIKE定義的一般格式為: LIKE 屬性名必須為字符型,字符串常量的字符可以包含如下兩個特殊符號: %:表示
44、任意知長度的字符串; _:表示任意單個字符。 例3.32 查詢所有姓張的教師的教師號和姓名。 SELECT TNO, TN FROM T WHERE TN LIKE 張%,61,例3.33 查詢姓名中第二個漢字是“力”的教師號和姓名。 SELECT TNO, TN FROM T WHERE TN LIKE _ _力% 注:一個漢字占兩個字符。 空值查詢 某個字段沒有值稱之為具有空值(NULL)。 通常沒有為一個列輸入值時,該列的值就是空值。 空值不同于零和空格,它不占任何存儲空間。 例如,某些學(xué)生選課后沒有參加考試,有選課記錄,但沒有考試成績,考試成績?yōu)榭罩?,這與參加考試,成績?yōu)?/p>
45、零分的不同。,62,例3.34 查詢沒有考試成績的學(xué)生的學(xué)號和相應(yīng)的課程號。 SELECT SNO, CNO FROM SC WHERE SCORE IS NULL 注意:這里的空值條件為IS NULL,不能寫成SCORE=NULL。,63,3.2.2常用庫函數(shù)及統(tǒng)計匯總查詢 SQL提供了許多庫函數(shù),增強了基本檢索能力。 常用的庫函數(shù),如表3.2所示,64,例3.35 求學(xué)號為S1學(xué)生的總分和平均分。 SELECT SUM(SCORE) AS TotalScore, AVG(SCORE) AS AveScore FROM SC WHERE (SNO = S1) 注意:函數(shù)SUM和AVG只能對數(shù)
46、值型字段進(jìn)行計算。,65,例3.36 求選修C1號課程的最高分、最低分及之間相差的分?jǐn)?shù) SELECT MAX(SCORE) AS MaxScore, MIN(SCORE) AS MinScore, MAX(SCORE) - MIN(SCORE) AS Diff FROM SC WHERE (CNO = C1) 例3.37 求計算機系學(xué)生的總數(shù) SELECT COUNT(SNO) FROM S WHERE DEPT=計算機,66,例3.38 求學(xué)校中共有多少個系 SELECT COUNT(DISTINCT DEPT) AS DeptNum FROM S 注意:加入關(guān)鍵字DISTINCT后表示消去
47、重復(fù)行,可計算字段“DEPT“不同值的數(shù)目。 COUNT函數(shù)對空值不計算,但對零進(jìn)行計算。 例3.39 統(tǒng)計有成績同學(xué)的人數(shù) SELECT COUNT (SCORE) FROM SC 上例中成績?yōu)榱愕耐瑢W(xué)計算在內(nèi),沒有成績(即為空值)的不計算。,67,例3.40 利用特殊函數(shù)COUNT(*)求計算機系學(xué)生的總數(shù) SELECT COUNT(*) FROM S WHERE DEPT=計算機 COUNT(*)用來統(tǒng)計元組的個數(shù) 不消除重復(fù)行,不允許使用DISTINCT關(guān)鍵字。,68,3.3.3 分組查詢 GROUP BY子句可以將查詢結(jié)果按屬性列或?qū)傩粤薪M合在行的方向上進(jìn)行分組,每組在屬性列或?qū)傩粤?/p>
48、組合上具有相同的值。 例3.42 查詢各位教師的教師號及其任課的門數(shù)。 SELECT TNO,COUNT(*) AS C_NUM FROM TC GROUP BY TNO GROUP BY子句按TNO的值分組,所有具有相同TNO的元組為一組,對每一組使用函數(shù)COUNT進(jìn)行計算,統(tǒng)計出各位教師任課的門數(shù)。,69,若在分組后還要按照一定的條件進(jìn)行篩選,則需使用HAVING子句。 例3.43 查詢選修兩門以上課程的學(xué)生學(xué)號和選課門數(shù) SELECT SNO,COUNT(*) AS SC_NUM FROM SC GROUP BY SNO HAVING COUNT(*)=2 GROUP BY子句按SNO的
49、值分組,所有具有相同SNO的元組為一組,對每一組使用函數(shù)COUNT進(jìn)行計算,統(tǒng)計出每位學(xué)生選課的門數(shù)。 HAVING子句去掉不滿足COUNT(*)=2的組。,70,當(dāng)在一個SQL查詢中同時使用WHERE子句,GROUP BY 子句和HAVING子句時,其順序是WHEREGROUP BY HAVING。 WHERE與HAVING子句的根本區(qū)別在于作用對象不同。 WHERE子句作用于基本表或視圖,從中選擇滿足條件的元組; HAVING子句作用于組,選擇滿足條件的組,必須用于GROUP BY子句之后,但GROUP BY子句可沒有HAVING子句。,71,3.3.5 查詢的排序 當(dāng)需要對查詢結(jié)果排序時
50、,應(yīng)該使用ORDER BY子句 ORDER BY子句必須出現(xiàn)在其他子句之后 排序方式可以指定,DESC為降序,ASC為升序,缺省時為升序 例3.44 查詢選修C1 的學(xué)生學(xué)號和成績,并按成績降序排列。 SELECT SNO, SCORE FROM SC WHERE CNO=C1 ORDER BY SCORE DESC,72,例3.45 查詢選修C2、C3、C4或C5課程的學(xué)號、課程號和成績,查詢結(jié)果按學(xué)號升序排列,學(xué)號相同再按成績降序排列。 SELECT SNO,CNO, SCORE FROM SC WHERE CNO IN (C2 ,C3, C4,C5) ORDER BY SNO,SCORE
51、 DESC 例3.46 求選課在三門以上且各門課程均及格的學(xué)生的學(xué)號及其總成績,查詢結(jié)果按總成績降序列出。 SELECT SNO,SUM(SCORE) AS TotalScore FROM SC WHERE SCORE=60 GROUP BY SNO HAVING COUNT(*)=3 ORDER BY SUM(SCORE) DESC,73,此語句為分組排序,執(zhí)行過程如下: 1.(FROM)取出整個SC 2.(WHERE)篩選SCORE=60的元組 3.(GROUP BY)將選出的元組按SNO分組 4.(HAVING)篩選選課三門以上的分組 5.(SELECT)以剩下的組中提取學(xué)號和總成績 6
52、.(ORDER BY)將選取結(jié)果排序 ORDER BY SUM(SCORE) DESC 可以改寫成 ORDER BY 2 DESC 2 代表查詢結(jié)果的第二列。,74,3.3.6 數(shù)據(jù)表連接及連接查詢 數(shù)據(jù)表之間的聯(lián)系是通過表的字段值來體現(xiàn)的,這種字段稱為連接字段。 連接操作的目的就是通過加在連接字段的條件將多個表連接起來,以便從多個表中查詢數(shù)據(jù)。 前面的查詢都是針對一個表進(jìn)行的,當(dāng)查詢同時涉及兩個以上的表時,稱為連接查詢。 表的連接方法有兩種: 方法1:表之間滿足一定的條件的行進(jìn)行連接,此時FROM子句中指明進(jìn)行連接的表名,WHERE子句指明連接的列名及其連接條件。 方法2:利用關(guān)鍵字JOIN
53、進(jìn)行連接。,75,具體分為以下幾種: INNER JOIN :顯示符合條件的記錄,此為默認(rèn)值; LEFT (OUTER) JOIN:顯示符合條件的數(shù)據(jù)行以及左邊表中不符合條件的數(shù)據(jù)行,此時右邊數(shù)據(jù)行會以NULL來顯示,此稱為左連接; RIGHT (OUTER) JOIN:顯示符合條件的數(shù)據(jù)行以及右邊表中不符合條件的數(shù)據(jù)行,此時左邊數(shù)據(jù)行會以NULL來顯示,此稱為右連接; FULL (OUTER) JOIN:顯示符合條件的數(shù)據(jù)行以及左邊表和右邊表中不符合條件的數(shù)據(jù)行,此時缺乏數(shù)據(jù)的數(shù)據(jù)行會以NULL來顯示; CROSS JOIN:會將一個表的每一筆數(shù)據(jù)和另一表的每筆數(shù)據(jù)匹配成新的數(shù)據(jù)行。 當(dāng)將J
54、OIN 關(guān)鍵詞放于FROM子句中時,應(yīng)有關(guān)鍵詞ON與之相對應(yīng),以表明連接的條件。,76, 等值連接與非等值連接 例3.47 查詢劉偉老師所講授的課程。 方法1: SELECT T.TNO ,TN,CNO FROM T,TC WHERE (T.TNO = TC. TNO) AND (TN=劉偉) 這里,TN=劉偉為查詢條件,而T.TNO = TC.TNO 為連接條件,TNO為連接字段。連接條件的一般格式為: . . 其中,比較運算符主要有:、!。 當(dāng)比較運算符為“時,稱為等值連接,其他情況為非等值連接。,77,引用列名TNO時要加上表名前綴,是因為兩個表中的列名相同,必須用表名前綴
55、來確切說明所指列屬于哪個表,以避免二義性。如果列名是唯一的,比如TN,就不必須加前綴。 上面的操作是將T表中的TNO 和TC表中的TNO相等的行連接,同時選取TN為“劉偉“的行,然后再在TN,CNO列上投影,這是連接、選取和投影的操作組合。 方法2: SELECT T.TNO,TN,CNO FROM T INNER JOIN TC ON T.TNO=TC.TNO AND T.TN=劉偉,78,方法3: SELECT R2.TNO,R2.TN, R1.CNO FROM (SELECT TNO,CNO FROM TC ) AS R1 INNER JOIN (SELECT TNO ,TN FROM
56、T WHERE TN=劉偉) AS R2 ON R1.TNO=R2.TNO,79,例3.48 查詢所有選課學(xué)生的學(xué)號、姓名、選課名稱及成績。 SELECT S.SNO,SN,CN,SCORE FROM S,C,SC WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO 本例涉及三個表,WHERE子句中有兩個連接條件。當(dāng)有兩個以上的表進(jìn)行連接時,稱為多表連接。,80, 自身連接 當(dāng)一個表與其自已進(jìn)行連接操作時,稱為表的自身連接。 例3.49 查詢所有比劉偉工資高的教師姓名、性別、工資和劉偉的工資。 要查詢的內(nèi)容均在同一表T中,可以將表T分別取兩個別名,一個是X,一
57、個是Y。將X, Y 中滿足比劉偉工資高的行連接起來。這實際上是同一表T的自身連接。 方法1: SELECT X.TN,X.SAL AS SAL_a,Y.SAL AS SAL_b FROM T AS X ,T AS Y WHERE X.SALY.SAL AND Y.TN=劉偉,81,方法2: SELECT X.TN, X.SAL,Y.SAL FROM T AS X INNER JOIN T AS Y ON X.SALY.SAL AND Y.TN=劉偉 方法3: SELECT R1.TN,R1.SAL, R2.SAL FROM (SELECT TN,SAL FROM T ) AS R1 INNER
58、 JOIN (SELECT SAL FROM T WHERE TN=劉偉) AS R2 ON R1.SALR2.SAL,82,例3.50 檢索所有學(xué)生姓名,年齡和選課名稱。 方法1: SELECT SN,AGE,CN FROM S,C,SC WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO 方法2: SELECT R3.SNO,R3.SN,R3.AGE,R4.CN FROM (SELECT SNO,SN,AGE FROM S) AS R3 INNER JOIN (SELECT R2.SNO,R1.CN FROM (SELECT CNO,CN FROM C) AS R1 I
59、NNER JOIN (SELECT SNO,CNO FROM SC) AS R2 ON R1.CNO=R2.CNO) AS R4 ON R3.SNO=R4.SNO,83, 外連接 在上面的連接操作中,不滿足連接條件的元組不能作為查詢結(jié)果輸出。 如例3.48的查詢結(jié)果只包括有選課記錄的學(xué)生,而不會有吳麗同學(xué)的信息。若將例3.48改成: 例3.51 查詢所有學(xué)生的學(xué)號、姓名、選課名稱及成績。(沒有選課的同學(xué)的選課信息顯示為空)則應(yīng)寫成如下的SQL語句。 SELECT S.SNO,SN,CN,SCORE FROM S LEFT OUTER JOIN SC ON S.SNO=SC.SNO LEFT OUTER JOIN C ON C.CNO=SC.CNO 則查詢結(jié)果只包括所有的學(xué)生,沒有選課的吳麗同學(xué)的選課信息顯示為空。,84,3.3.7 子查詢 在WHERE子句中包含一個形如SELECT-FROM-WHERE的查詢塊,此查詢塊稱為子查詢或嵌套查詢,包含子查詢的語句稱為父查詢或外部查詢。 嵌套查詢可以將一系列簡單查詢構(gòu)成復(fù)雜查詢,增強查詢能力。 子查詢的嵌套層次最多可達(dá)到255層,以層層嵌套的方式構(gòu)造查詢充分體現(xiàn)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全國交管12123駕駛證學(xué)法減分考試題庫附含參考答案
- 流動客戶中心主任競聘演講稿
- 老年眼科護(hù)理課件
- 舊車庫改造升級工程承包合同
- 軍事測繪與軍事設(shè)施保密合同規(guī)范
- 商業(yè)綜合體停車位租賃及轉(zhuǎn)讓一體化合同
- 拆除工程安全風(fēng)險評估與管理協(xié)議
- 大學(xué)離譜考試題及答案
- 機械制造企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化基本規(guī)范
- 倉庫保管員安全生產(chǎn)職責(zé)
- 2025至2030年中國飛行控制器行業(yè)市場供需態(tài)勢及未來趨勢研判報告
- 2025年黑龍江省龍東地區(qū)中考數(shù)學(xué)試卷真題(含答案)
- 2025至2030年中國錦氨綸汗布市場分析及競爭策略研究報告
- 2025年建筑電氣工程師職業(yè)資格考試試卷及答案
- 2025年中小學(xué)暑假安全教育主題家長會 課件
- 近視管理白皮書(2025)專家共識-
- 2025年佛山市南海區(qū)圖書館招聘題庫帶答案分析
- GB/T 31586.1-2015防護(hù)涂料體系對鋼結(jié)構(gòu)的防腐蝕保護(hù)涂層附著力/內(nèi)聚力(破壞強度)的評定和驗收準(zhǔn)則第1部分:拉開法試驗
- 管道壓力試驗事故案例
- 筆記本電腦借用申請單
- SYB游戲模塊PPT課件
評論
0/150
提交評論