版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
6.1SQL概述6.2SQL的查詢功能6.3SQL的數據操縱功能6.4SQL的數據定義功能本章目錄6.1.1SQL的特點6.1SQL概述SQL是一種非過程化語言。它的大多數語句都是可獨立執(zhí)行的,可用來完成一個獨立的操作,與上下語句無關。它既不是數據庫管理系統(tǒng)軟件,也不是應用軟件開發(fā)語言,僅用于對數據庫進行操作。⑴語言的一體化。SQL語言集數據定義語言DDL、數據操縱語言DML、數據控制語言DCL的功能于一體,語言風格統(tǒng)一。⑵高度非過程化。SQL是非過程化的語言,用SQL語言進行數據操作,用戶無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動完成。⑶SQL語言采用集合操作方式,不僅查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。⑷以同一種語法結構提供兩種使用方式。SQL語言既是自含式語言,又是嵌入式語言。在兩種不同的使用方式下,SQL語言的語法結構基本上是一致的。⑸語言簡潔,易學易用。SQL語言功能極強,但十分簡潔。完成數據定義、數據操縱、數據控制的核心功能只用數據查詢(SELECT)、數據操縱(INSERT,UPDATE,DELETE)、數據定義(CREATE,DROP,ALTER)以及數據控制(GRANT授權,REVOKE回收)等9個動詞。SQL由數據定義語言DDL、數據操縱語言DML、數據控制語言DCL三部分組成。6.1.2SQL的體系結構1.數據定義語言DDL
用來創(chuàng)建、修改、刪除數據庫、表及視圖的文件。包括數據庫定義命令CREATEDATABASE、表定義命令CREATETABLE-SQL、表結構修改命令ALTERTABLE-SQL、創(chuàng)建臨時表命令CREATECURSOR-SQL、創(chuàng)建視圖命令CREATESQLVIEW、表和視圖的刪除命令DROP等。其中,DDL有些命令在前面的章節(jié)中已使用過。完成對數據庫中記錄和字段等數據的操作。包括記錄的追加命令INSERT-SQL、記錄邏輯刪除命令DELETE-SQL、記錄更新命令UPDATE-SQL、數據查詢命令SELECT-SQL等。其中,前面三條命令在前面的章節(jié)中也已作過介紹和使用。2.數據操縱語言DML3.數據控制語言DCL用來控制用戶對數據庫的訪問權限。由GRANT(授權)、REVOKE(收回)命令組成。VisualFoxPro數據庫系統(tǒng)不支持SQL的DCL操作。本章將重點介紹SQL語言在數據查詢、視圖、數據庫定義、數據庫操縱等方面應用。SQL語句可以在命令窗口中進行交互式地執(zhí)行,也可以作為查詢和視圖被使用,還可以在程序文件中被執(zhí)行。SQL語句在書寫時,如果語句太長,可以用“
;”(其中,“
”表示一個空格)換行,接著在新的一行中續(xù)寫未完的子句。6.2SQL的查詢功能6.1.3SQL語句的執(zhí)行SQL的查詢功能屬于的數據操縱功能范圍。SQL的查詢語句也稱為SELECT命令,它的基本形式由SELECT-FROM-WHERE查詢塊組成,多個查詢可以嵌套執(zhí)行。SELECT-SQL語句的功能是:從一個或多個表中檢索符合條件的數據(記錄或字段)。SELECT-SQL語句的語法格式如右所示。6.2.1SELECT-SQL語句的格式說明:SELECT-SQL語句的格式包括三個基本子句SELECT子句、FROM子句、WHERE子句,還包括操作子句,即ORDER子句、GROUP子句、UNION子句以及其他的一些選項。ALL:表示選出的記錄中包括重復記錄,這是缺省值;DISTINCT:表示選出的記錄中不包括重復記錄。[Alias.]Select_Item[ASColumn_Name]:Select_Item可以是字段名,也可以包含用戶自定義函數和有關系統(tǒng)函數。如果有多個字段名或表達式,每個字段名或表達式之間須用“,”,將其分隔。[Alias.]是字段所在的表名或別名,用于區(qū)別多表相同的字段名。[ASColumn_Name]用于指定輸出時使用的列標題,可以不同于字段名。SELECT表達式可用一個*號來表示,此時指定所有的字段。1.SELECT子句[TOPnExpr[PERCENT]]:TOP子句必須與ORDERBY子句同時使用。nExpr表示在符合條件的記錄中選取的記錄數,范圍1~32767,排序后并列的若干記錄只計一個。含PERCENT選項時,nExpr表示百分比,記錄數為小數時自動取整,范圍0.01~99.99。2.TOP子句FROM子句及其選項:用于指定查詢的表與聯(lián)接類型。①[DatabaseName!]Table[[AS]Local_Alias]:Table列出從中檢索數據的表,選擇工作區(qū)與打開Table所指的表均由VisualFoxPro自行安排。對于非當前數據庫,用[DatabaseName!]Table”來指定該數據庫中的表。[AS]Local_Alias是表的暫用名或稱本地名,如果有該選項,則SELECT語句中只可使用這個名字。②JOIN關鍵字:用于聯(lián)接其左右兩個Table(表名)所指的表。INNER|LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER]:指定兩表聯(lián)接時的習接類型,聯(lián)接類型有4種。其中的OUTER選項表示外部聯(lián)接,即允許滿足聯(lián)接條件的記錄,又允許不滿足聯(lián)接條件的記錄。若省略OUTER選項,效果不變。③ONJoinCondition:指定聯(lián)接條件。④FORCE子句:嚴格按指定的聯(lián)接條件來聯(lián)接,避免VisualFoxPro因進行聯(lián)接優(yōu)化而降低查詢速度。3.FROM子句如果在同一個查詢中同時包括了INTO子句和TO子句,則TO子句不起作用。如果沒有包括INTO子句,查詢結果顯示在“瀏覽”窗口中。也可以用TO將查詢結果定向輸出到打印機或文件。4.INTO與TO子句
⑴INTODestination:Destination可以是下列子句之一。①ARRAYArrayName:將查詢結果保存到變量數組中,如果查詢結果中不包含任何記錄,則不創(chuàng)建這個數組。②CURSORCursorName:將查詢結果保存到臨時表中。如果指定了一個已打開表的名稱,則VisualFoxPro產生錯誤信息。執(zhí)行完SELECT語句后,臨時表仍然保持打開、活動但只讀。一旦關閉臨時表,則自動刪除它。③DBFTableName|TABLETableName:將查詢結果保存到一個表中。如果指定的表已經打開,并且SETSAFETY設置為OFF,則VisualFoxPro在不給出警告的情況下改寫該表。如果沒有指定擴展名,VisualFoxPro指定表的擴展名是.DBF。SELECT語句執(zhí)行結束后,表仍然保持打開活動狀態(tài)。包含DATABASEDatabaseName以指定添加了表的數據庫。⑵TOFILEFileName:表示輸出到指定的文本文件,并取代原文件內容。ADDITIVE表示只添加新數據,不清除原文件的內容。⑶TOPRINTER:表示輸出到打印機,PROMPT表示打印前先顯示打印確認框。⑷TOSCREEN:表示輸出到屏幕。若已用ON子句指定了聯(lián)接條件,WHERE子句中只能指定篩選條件,表示在已按聯(lián)接條件產生的記錄中篩選記錄。也可以省去JOIN子句,一次性地在WHERE子句中指定聯(lián)接條件和篩選條件。JoinCondition為聯(lián)接條件,FilterCondition為篩選條件。聯(lián)接多個查詢條件必須使用操作符AND。在每個聯(lián)接條件或篩選條件中,可用的操作符有:=、==、LIKE、<>或!=或#、>、>=、<和<=。5.WHERE子句對記錄按GROUPBYGroupColumn的值進行分組,常用于分組統(tǒng)計。6.GROUPBY子句指定包括在查詢結果中的組必須滿足的篩選條件,HAVING子句一般應該同GROUPBY一起使用。HAVING子句的命令如果沒有使用GROUPBY子句,則它的作用與WHERE子句相同,但使用WHERE子句可以獲得較快的速度。7.HAVING子句[UNION[ALL]SELECT命令]:在SELECT-SQL命令中可以用UNION子句嵌入另一個SELECT-SQL命令,使這兩個命令的查詢結果合并輸出,但輸出字段的類型和寬度必須一致。UNION子句默認組合結果中排除重復行,使用ALL則允許包含重復行。8.UNION子句ORDERBYOrder_Item:指定查詢結果中記錄按Order_Item排序,默認升序。ASC表示升序,DESC表示降序。Order_Item可以是字段,或表示查詢結果中列的位置的數字。9.ORDERBY子句
略。SELECT-SQL命令功能強大,命令很長,選項很多,但使用非常靈活,用它可以構造各種各樣的查詢。本章將通過大量的實例來介紹SELECT語句的使用。在第5章的5.3.2節(jié)中,我們介紹可以利用“查詢設計器”來察看SQL。上面介紹的各種子句的含義和使用方法,與“查詢設計器”或“視圖設計器”進行對照并理解其含義。10.其它子句簡單查詢,或稱投影查詢(ProjectionQuery)是一種最基本的查詢,指查詢有關的列表項。簡單查詢查詢的數據主要來自一個數據表。6.2.2簡單查詢1.基本格式SELECT[ALL|DISTINCT]Select_Item[ASColumn_Name][,...]FROM[DatabaseName!]Table【例6-1】從“學生.dbf”中查詢全體學生的學號、姓名、性別、出生日期、總分。其中總分在輸出時的標題字改為入校總分,如圖6-1所示。
SELECT學號,姓名,性別,出生日期,總分AS入校總分FROM學生如果要查詢表中所有字段的信息,則可簡單使用通配符“*”來完成,即可使用“SELECT*FROM學生”語句?!纠?-2】如果將“學生.dbf”表中的總分看作為數學、語文、英語、物理、化學和生物等7門課的成績總和,求出學生的平均成績。
SELECT*,ROUND(總分/7,1)AS平均成績FROM學生其中,AS子句為表達式ROUND(總分/7,1)定義了一個虛擬字段名:平均成績。由于查詢雖然默認輸出到“瀏覽”窗口,其實SELECT-SQL也產生一個別名為“查詢”的臨時表文件,并且在未使用工作區(qū)編號最小的工作區(qū)打開。這時,可使用DISPLAY或LIST等命令。執(zhí)行了LIST命令后的結果如圖6-2所示?!纠?-3】從“成績.dbf”表中查看學生的學號,顯示不重復的學號。SELECTDISTINCT學號FROM成績2.示例圖6-1簡單查詢圖6-2屏幕上顯示的查詢表的全部字段及表達式6.2.3條件查詢條件查詢(ConditionQuery)是指查詢一個或多個數據表中符合條件的記錄,這時需要使用WHERE子句來設置篩選條件或聯(lián)接條件。
…[WHEREJoinCondition[ANDJoinCondition...][AND|ORFilterCondition[AND|ORFilterCondition...]]]說明:在SQL語句中,WHERE子句后面的聯(lián)接條件除了使用前面介紹的VisualFoxPro語言中的關系表達式以及邏輯表達式外,還可使用幾個特殊運算符。①[NOT]BETWEEN…AND…:確定范圍,表示[不]在…之間。BETWEEN…AND…運算符的使用格式如下:Expression1BETWEENExpression2ANDExpression3上面的表達式的含義是:當表達式Expression1的值落在初值表達式Expression2和終值表達式個Expression3的值之間時,返回一個邏輯“真”(.T.),否則返回邏輯“假”(.F.)。②[NOT]IN:確定集合,表示[不]在…之中。例如,要找出系別號在“01”、“02”和“03”的所有學生,則可表示如下:…系別IN("01","03","05")1.基本格式
③[NOT]LIKE:表示表示[不]與…模式匹配。[NOT]LIKE運算符的使用格式如下:cExpression1LIKEcExpression2該表達式的功能是:當字符串表達式cExpression1的值與字符串表達式cExpression2的值相匹配時返回“真”(.T.),否則返回“假”(.F.)。LIKE匹配運行運算符中可以使用通配符“%”和“_”,其中“%”表示任意長度的字符串,“_”僅可通配所在位置的一個字符⑻一個漢字也算一個字符。【例6-4】查詢“學生.dbf”表中性別是“女”的學生。
SELECT*FROM學生WHERE性別='女‘【例6-5】查詢“學生.DBF”表中性別是“男”、年齡小于18歲的團員學生。
SELECT學號,姓名,性別,YEAR(DATE())-YEAR(出生日期)AS年齡,總分,團員FROM學生WHERE性別='男'ANDYEAR(DATE())-YEAR(出生日期)<=18AND團員【例6-6】在“學生.dbf”表中查詢總分在500分到600分之間的學生的姓名、性別、總分等信息。
SELECT姓名,性別,總分FROM學生where總分BETWEEN560AND6002.示例【例6-7】查詢系別號在“01”、“02”和“03”的所有學生,則可表示如下:SELECT*FROM學生WHERE系別IN("01","03","05")命令運行的結果,如圖6-6所示。圖6-6帶IN運算符的查詢【例6-8】查詢姓名中有“小”的且系別在“01”和“03”中的學生。SELECT*FROM學生WHERE姓名LIKE"%小%"AND系別IN("01","03")排序查詢,即在查詢時,可以通過ORDERBY子句可以實現查詢結果的排序輸出。6.2.4排序查詢…[ORDERBYOrder_Item[ASC|DESC][,Order_Item[ASC|DESC]...]]說明:⑴Order_Item:指定查詢結果進行排序所用的項。它可以是下面的形式:字段、字段編號等,但不得是Blob或General型字段。⑵ASC和DESC:ASC指定查詢結果按升序排列(默認次序);DESC則指定查詢結果按降序排列。1.基本格式【例6-9】查詢全體學生中“K101”課程成績最高的前三名學生的全部考試信息,結果如圖8.9所示。
SELECT*TOP3FROM成績Where課程號="K101"ORDERBY成績DESC
【例6-10】查詢選修“K102”、“K103”和“K105”課程學生的學號、課程號和成績,查詢結果按課程號降序排列,課程號相同再按成績升序排列,查詢結果如圖6-9所示。SELECT*FROM成績;WHERE課程號IN('K102','K103','K105')ORDERBY2desc,成績在查詢中,可以是在原有數據的基礎上通過計算,輸出統(tǒng)計結果,這樣的查詢稱為計算查詢或統(tǒng)計查詢(StatisticalQuery)。SQL提供了5個用于對一組值執(zhí)行計算,并返回單個值的聚合函數。一般情況下,若字段中含有空值,聚合函數會忽略,但COUNT除外。主要函數如表6-2所示。聚合函數在下列位置可作為表達式使用:①SELECT語句的選擇列表(子查詢或外部查詢)。②HAVING子句。圖6-8排序查詢結果圖6-9按查詢結果排序2.示例6.2.5計算查詢注:⑴在這些函數中,可以使用ALL短語或DISTINCT短語,如果指定了DISTINCT短語,則表示在計算時取消指定列中的重復值,如果不指定DISTINCT短語或ALL短語,則取默認值ALL,表示不取消重復值。⑵在COUNT表達式中,nExpression可使用除備注和通用型以外任何類型的表達式。COUNT(*)不需要任何參數,而且不能與DISTINCT一起使用,“*”的含義往往有GROUPBY有關⑶聚合函數不能用在WHERE子句中。⑷除CIUNT函數外,聚合函數忽略空值(NULL)。AVG([ALL|DISTINCT]nExpression)(按列)計算表達式nExpression的平均值SUM([ALL|DISTINCT]nExpression)(按列)計算表達式nExpression的總和COUNT([ALL|DISTINCT]nExpression|*)(按列)統(tǒng)計表達式nExpression的個數MAX([ALL|DISTINCT]nExpression)(按列)計算表達式nExpression中的最大值MIN([ALL|DISTINCT]nExpression)(按列)計算表達式nExpression中的最小值表6-2常用聚合函數及其功能圖6-10聚合函數SUM(),AVG()在查詢中的應用【例6-11】求學號為“s1101108”學生的總分和平均分(顯示學號),如圖6-10所示。
SELECT學號,SUM(成績)AS總分,AVG(成績)AS平均分FROM成績WHERE學號='s1101108'?!纠?-12】求選修課程號為“K104”學生的最高分、最低分及之間相差的分數(顯示課程號)。
SELECT課程號,MAX(成績)AS最高分,MIN(成績)AS最低分,;MAX(成績)-MIN(成績)AS相差分數FROM成績WHERE課程號='K104'【例6-13】求入??偡衷?60分以上的學生的人數。
SELECTCOUNT(學號)AS入??偡衷?60分以上的人數FROM學生;WHERE總分>=560【例6-14】統(tǒng)計選課表中有多少門課。
SELECTCOUNT(DISTINCT課程號)AS選課表中課程數FROM成績注意:由于在“成績.dbf”表中,在選修同一門課程的許多學生,因此在查詢中加入關鍵字DISTINCT后表示消去重復行,計算字段課程號不同值的數目?!纠?-15】利用特殊函數COUNT(*)求教師表中“教授”和“副教授”的人數。
SELECTCOUNT(*)AS教授和副教授的人數;FROM教師WHERE職稱IN(‘教授’,‘副教授’)【例6-16】統(tǒng)計“學生.dbf”表中大于20歲的人數。
SELECTCOUNT(*)AS大于或等于20歲以上的人數FROM學生;WHEREYEAR(DATE())-YEAR(出生日期)>=18在SELECT-SQL中,分組查詢(QroupingQuery)可以通過在基本查詢中增加GROUPBY子句來實現的。6.2.6分組查詢
…[GROUPBYGroupColumn[,GroupColumn...]][HAVINGFilterCondition[AND|OR...]]說明:⑴GroupColumn[,...]:指定用來分組的列,它可以是一列或多列。其形式可以是:字段或數字表達式。如果是數值表達式,表示分組按查詢結果中列的位置(最左邊列編號為1)進行。⑵HAVINGFilterCondition:用來指定查詢中分組的限定條件。當限定條件為多個時,應用AND或OR予以聯(lián)接。要得到該邏輯表達式的相反值,應使用NOT。但限定條件中不能有子查詢。HAVING子句在使用時須放在GROUPBy子句的后面,并且可以使用聚合函數。在SQL中,HAVING子句和WHERE的區(qū)別在于作用對象不同:①WHERE子句的作用對象是表或視圖,是從表中選擇出滿足篩選條件的記錄。②HAVING子句的作用對象是組,從組中選擇出滿足篩選條件的記錄。1.基本格式【例6-16】查詢各位教師的教師號及其任課的門數,如圖6-12所求。
SELECT教師號,COUNT(*)AS任課門數FROM授課GROUPBY教師號說明,GROUPBY子句按教師號的值分組,所有具有相同教師號的元組為一組,對每一組使用函數COUNT進行計算,統(tǒng)計出各位教師任課的門數?!纠?-17】查詢選修兩門以上課程的學生學號和所修課程門數,查詢結果如圖6-13所求。
SELECT學號,COUNT(*)AS選修課程門數;FROM成績GROUPBY學號HAVINGCOUNT(*)>2
【例6-18】在課程“K102”、“K104”、“K105”和“K106”中查詢學生平均成績在80分以上課程的學生的平均分(顯示課程號)。SELECT課程號,AVG(成績)AS平均分FROM成績WHERE課程號IN("K102","K104","K105","K106");GROUPBY課程號HAVINGAVG(成績)>=80查詢結果如圖6-14所示。2.示例圖6-12分組在查詢的應用圖6-13使用HAVING子句圖6-14在HAVING子句中使用聚合函數聯(lián)接查詢(JoinQuery)的目的就是通過加在聯(lián)接字段上的條件將多個表聯(lián)接起來,以便從多個表中查詢數據。聯(lián)接查詢包括等值(內部聯(lián)接)與非等值聯(lián)接查詢、自身聯(lián)接查詢、外聯(lián)接查詢等。表的聯(lián)接方法有兩種:⑴使用WHERE子句:WHERE子句指明聯(lián)接的列名及其聯(lián)接條件。使用WHERE子句可實現表間的等值聯(lián)接。⑵使用JOIN子句:當將JOIN子句放于FROM子句中時,應有關鍵詞ON與之相對應,以表明聯(lián)接的條件。6.2.7聯(lián)接查詢1.基本格式
…FROM[FORCE]Table1[INNER|LEFT|RIGHT|FULL]JOINTable2[[INNER|LEFT|RIGHT|FULLJOIN]Table3…][ONJoinCondition…][WHEREJoinCondition[ANDJoinCondition...]說明:
對于JOIN參與的表的關聯(lián)操作,如果需要不滿足聯(lián)接條件的行也在我們的查詢范圍內的話,我們就必需把聯(lián)接條件放在ON后面,而不能放在WHERE后面,如果我們把聯(lián)接條件放在了WHERE后面,那么所有的LEFT、RIGHT等這些操作將不起任何作用,對于這種情況,它的效果就完全等同于INNER聯(lián)接。對于那些不影響選擇行的條件,放在ON或者WHERE后面就可以。⑴等值聯(lián)接或內部聯(lián)接【例6-20】利用等值聯(lián)接或內部聯(lián)接,查詢陳靜所講授的課程號。分析:本題涉及到數據庫“教學管理.dbc”中的兩個表“教師.dbf”、“授課.dbf”,兩個表之間通過字段“教師號”相聯(lián)接。使用WHERE子句聯(lián)接時,如果使用的運算為“=”,我們將這種聯(lián)接稱為等值聯(lián)接,其他情況為非等值聯(lián)接。
SELECT教師.教師號,姓名,授課.課程號FROM教師,授課;WHERE教師.教師號=授課.教師號AND教師.姓名='鄒濤'或內部聯(lián)接:將JOIN…ON子句用WHERE子句代替的方法實現。
SELECT教師.教師號,教師.姓名,授課.課程號;FROM教學管理!教師INNERJOIN教學管理!授課;ON教師.教師號=授課.教師號WHERE教師.姓名='鄒濤‘
【例6-21】求查詢學生的:學號,姓名,系部信息。
SELECT學號,姓名,系名.*FROM學生INNERJOIN系名ON學生.系別=系名.系號或SELECT學號,姓名,系名.*FROM學生,系名WHERE學生.系別=系名.系號2.示例
【例6-22】查詢選修了課程“數據庫”或“電子商務”學生的學號、姓名、所修課程名稱及平均成績。
SELECT學生.學號,姓名,課程名,成績FROM學生,課程,成績;WHERE學生.學號=成績.學號AND成績.課程號=課程.課程號;AND(課程名="數據庫"OR課程名="電子商務")如果使用內部聯(lián)接,則上述語句可改為如下形式:SELECT學生.學號,姓名,課程名,成績;FROM課程INNERJOIN成績INNERJOIN學生;ON學生.學號=成績.學號ON成績.課程號=課程.課程號;WHERE課程.課程名='數據庫'OR課程.課程名='電子商務'本示例涉及三個表,WHERE子句中有兩個聯(lián)接條件和一個篩選條件。當有兩個以上的表進行聯(lián)接時,稱為多表聯(lián)接。在進行多表查詢時,應注意表的順序和ON聯(lián)接條件的順序。一般來說,在一對多關系中,“多”所在表應在JOIN的中間位置,“一”所在表應在JOIN的兩邊位置,如多表順序為“課程”、“成績”和“學生”。則ON在進行多表聯(lián)接時,最后一個表,如“學生”應首先和“多”表,這里即“成績”聯(lián)接;然后,“成績”和第一個表“課程”進行聯(lián)接。將上例改成如下形式,結果也正確。
SELECT學生.學號,姓名,課程名,成績;FROM學生INNERJOIN成績INNERJOIN課程;ON課程.課程號=成績.課程號ON成績.學號=學生.學號;WHERE課程.課程名='數據庫'OR課程.課程名='電子商務'⑵外部聯(lián)接在外部聯(lián)接中,參與聯(lián)接的表有主從之分,以主表中的每行數據去匹配從表中的數據列。符合聯(lián)接條件的數據將直接顯示,對于那些不符合條件的列,將填上NULL值顯示。外部聯(lián)接分為左外部聯(lián)接(LeftOuterJoin,簡稱左聯(lián)接)、右外部聯(lián)接(RightOuterJoin,簡稱右聯(lián)接)和完全聯(lián)接(FullJoin,簡稱全聯(lián)接)。以主表所在的方向區(qū)分外部聯(lián)接,主表在左邊稱為左聯(lián)接,主表在右邊稱為右聯(lián)接。【例6-24】以左聯(lián)接的方式查詢教師姓名、職稱及任課課程號。SELECT教師.教師號,姓名,職稱,課程號;FROM教師LEFTJOIN授課
ON教師.教師號=授課.教師號查詢結果如圖6-19所示。在楊磊和錢勇由于沒有任課記錄,查詢結果中課程號為空。圖6-19左聯(lián)接查詢結果⑶自我聯(lián)接又稱自身聯(lián)接,簡稱自聯(lián)接。是指將同一關系與其自身進行的聯(lián)接。在可以進行自聯(lián)接查詢的關系中,即表中的某些記錄,根據出自同一值域的兩個不同的字段,與另外一些記錄存在著一對多的關系。如圖6-20所示的關系中,存在“編號”字段和“隸屬關系”字段的聯(lián)系。
圖6-20具有同值域字段的表自我聯(lián)接中,物理上的一個關系要當邏輯上的兩個關系來使用。因此必須為該關系起兩個不同的局部別名,以標識所用的字段屬于哪個邏輯表所有。例,利用圖6-20所示的“自我聯(lián)接.dbf”表,列出該表”中的“隸屬關系”列出各級領導所領導的職工,如圖6-20右側圖所示。
SELECTz1.姓名,z1.職務,"領導",z2.姓名,z2.職務;FROM自我聯(lián)接ASz1,自我聯(lián)接ASz2;WHEREz1.編號=z2.隸屬關系ORDERBYz1.編號【例6-25】查詢所有比“李麗”工資高的教師姓名、職稱、工資和“李麗”的工資,如圖6-21所示。SELECTX.姓名,X.工資,Y.工資AS李麗工資;FROM教師ASX,教師ASYWHEREX.工資>Y.工資ANDY.姓名='李麗'
圖6-20具有同值域字段的表圖6-21自我聯(lián)接查詢什么是空值(NULL),空值從技術上說是“未知的值”但是空值并不包含零,一個或者多個空格組成的字符串,空格是零長度的字符串,從實際上說空值說明沒有向數據庫中輸入相應的數據(在VisualFoxPro中,按下Ctrl+0組合鍵可向設置了可接收空值的字段中輸入空值,切記不可直接輸出NULL或.NULL.。),或者某個特定的記錄不需要使用該列,在實際中有以下幾種情況可以使得一列為NULL。①其值未知,如果課程表中的不明確具體內容的課程內容,②其值不存在如在學生表中某個學生由于沒有考試所以該學生的考試成績?yōu)榭闸哿袑Ρ聿豢捎迷赟QL中,空值查詢的語法使用格式如下:
…WHEREcExpressionIS[NOT]NULL空值時要用“IS.NULL.”,而不能使用“=.NULL.”,【例6-26】查詢圖6-20中姓名為空值的記錄。SELECT*FROM自我聯(lián)接WHERE姓名ISNULL語句執(zhí)行后,其結果如圖6-22所示。6.2.8空值查詢圖6-22空值查詢嵌套查詢指(NestedQuery)在查詢條件WHERE子句中包含了由一對圓括號括起來的另一個SELECT-SQL子查詢語句。即嵌套查詢是基于多個關系的查詢,這類查詢所要求的結果出自一個關系,但相關條件卻涉及多個關系。它的基本格式具有如下的結構:
…WHEREcExpression<比較運算符>[ANY|ALL|SOME](Subquery)和
…WHEREcExpression[NOT]EXISTS(Subquery)說明:⑴(Subquery)稱為內查詢或子查詢,括號外的SELECT-SQL稱為外查詢或主查詢。子查詢的嵌套層次最多可達到255層,嵌套查詢在執(zhí)行時由里向外處理,即先執(zhí)行子查詢再執(zhí)行父查詢,父查詢要用到子查詢的結果。⑵<比較運算符>是前面提到的關系運算符和一些特殊運算符。⑶ANY、ALL、SOME是量詞,其中ANY和SOME是同義詞,在進行比較運算時只要子查詢中有一條記錄為真,則結果為真;而ALL則要求子查詢中的所有記錄都為真,結果才為真。<比較運算符>和量詞可以結合在一起使用,其含義如表6-3所示。6.2.9嵌套查詢表達式功
能>ANY或<ANY大于或者小于子查詢結果中的某個值>=ANY或<=ANY大于等于或者小于等于子查詢結果中的某個值>ALL或<ALL大于或者小于子查詢結果中的所有值>=ALL或<=ALL大于等于或者小于等于子查詢結果中的所有值=ANY等于子查詢結果中的某個值!=ANY不等于子查詢結果中的某個值=ALL等于子查詢結果中的所有值(無意義)!=ALL不等于子查詢結果中的任何值
⑷EXISTS是謂詞,用來檢查子查詢中是否有結果返回(是否為空)。NOTEXISTS表示是空的結果集。含有IN的查詢通??捎肊XISTS表示,但反過不不一定。含義如表6-3所示。表6-3量詞功能表在多表查詢中若果查詢的輸出對象出自于一個表,但相關查詢條件卻出自于另外的表。這樣的查詢比較簡單,稱為普通嵌套查詢?!纠?-27】利用“通訊.dbf”和“學生.dbf”查詢總分高于560分的學生的基本情況。分析:學生的基本信息出自于“通訊.dbf”,但查詢的條件卻出自于“學生.dbf”中總分高于560的學生的學號,這是一個較典型的普通嵌套查詢。
1.普通嵌套查詢SELECT*FROM通訊;WHERE學號IN(SELECT學號FROM學生WHERE總分>560)本例也可寫為:SELECT通訊.*FROM通訊,學生;WHERE通訊.學號=學生.學號AND總分>560還有一種嵌套查詢,內層的查詢條件需要外層查詢提供值,而外層的查詢條件則又是內層的查詢結果,從而形成查詢條件彼此依賴相互影響的特殊查詢。這樣的查詢稱為內外層互相關嵌套查詢?!纠?-28】查詢“成績.dbf”中每個學生考試中成績最高的科目信息。分析:要從“成績.dbf”中查詢出每位學生成績最高的科目的信息,而它的記錄卻僅是原來表中每個學生的某一條記錄。這條記錄應滿足每位學生七門課程中取最高成績的要求,而最高成績卻要通過對另一個邏輯表的查詢來實現。若為內、外層表分別起了一個局部別名:out、inn??梢缘贸觯纠型鈱硬樵冚敵鼋Y果中的“out.學號”字段的值供給了內層查詢找最高成績使用,而內層查詢的結果“MAX(成績)”則又為外層查詢提供了查詢條件。因此這是一個內外互相關嵌套查詢。查詢語句如下。
SELECTout.*FROM成績ASoutWHERE成績;=(SELECTMAX(成績)FROM成績ASinnWHEREout.學號=inn.學號)語句執(zhí)行后,其顯示的結果如圖6-24所示。
2.內外層互相關嵌套查詢圖6-24內外層互相關嵌套查詢嵌套查詢還可以與其它附加條件相組合,形成更復雜的查詢?!纠?-29】查詢住宿舍C6-2-218的學生情況及所在院系。分析:查詢涉及到“學生.dbf”、“通訊.dbf”和“系名.dbf”,查詢條件為宿舍="C6-2-218")。SELECT學生.學號,姓名,性別,總分,系名.系名,通訊.宿舍AS宿舍FROM學生,系名;WHERE學號IN(SELECT學號FROM通訊WHERE宿舍="C6-2-218");AND學生.系別=系名.系號
3.帶有其它附加條件的普通嵌套查詢4.帶量詞和謂詞的查詢【例6-30】查詢講授課程號為“K104”的教師姓名,如圖6-26所示。分析:先執(zhí)行子查詢,找到講授課程號為“K104”的教師號,是一組值構成的集合(T1103,T1104);再執(zhí)行父查詢,查詢集合中的值的任意一個,要使用ANY量詞。SELECT教師號,姓名FROM教師;WHERE教師號=ANY(SELECT教師號FROM授課WHERE課程號='K104')圖6-26帶ANY的查詢【例6-31】查詢比男生總分最低分高的女生姓名和總分。分析:先執(zhí)行子查詢,找到所有男生的總分集合(586、538、521、592、545、616、578);再使用量詞>ANY,查詢所有總分高于男生總分集合中任一個值的女生姓名和總分。SELECT學號,姓名,總分,性別FROM學生;WHERE總分>ANY(SELECT總分FROM學生WHERE性別='男');AND性別!='男'【例6-32】查詢高于女生總分最高分的男生姓名和總分。分析:女生的總分集合(520,518,550,564,506),總分最高分564,因此查詢比564高的總分可使用量詞>ALL。SELECTTOP2姓名,性別,總分FROM學生;WHERE總分>ALL(SELECT總分FROM學生WHERE性別='女');AND性別='男'ORDERBY總分DESCENDING【例6-33】查詢不講授課程號“K105”的教師姓名。SELECT教師.教師號,姓名FROM教師;WHEREEXISTS(SELECT*FROM授課WHERE課程號='K105'AND教師.教師號=授課.教師號)
此例也可以直接寫成下面的形式:SELECT教師.教師號,姓名FROM教師,授課;WHERE課程號='K105'AND教師.教師號=授課.教師號圖6-27帶>ANY的查詢【例6-34】查詢總分大于560的學生通訊信息。分析:首先在“學生.dbf”表中找出總分大于560的所有學生所對應的學號(s1101103、s1101106、s1101109、s1101111、s1101112),然后在找出再在“通訊.dbf”表查找符合這些學號的記錄。SELECT通訊.*FROM通訊WHEREEXISTS;(SELECT*FROM學生WHERE總分>=560AND通訊.學號=學生.學號)圖6-31合并查詢SQL支持集合的并運算,對于兩個具有相同字段個數、對應字段的值出自于同一值域的查詢,將把第二個查詢結果和第一個查詢合并成一個新的查詢結果,稱為合并查詢(UNION或MergeQuery或)。格式如下:
Select-SQLQuery1UNIONSelect-SQLQuery2【例6-35】查詢學號s1101102為與s1101106的所修課程成績。SELE*FROM成績WHERE學號="s1101102";UNION;SELE*FROM成績WHERE學號="s1101106"語句在執(zhí)行后,查詢結果如圖6-31所示。
6.2.10合并查詢去向查詢(OutputQuery),即查詢結果的去向。查詢結果的去向在沒有特別聲明的情況下,是以瀏覽的方式輸出的,盡管直觀卻不能保存以備它用。要將查詢結果予以保存,就要修改查詢結果的輸出去向,這可以通過INTO或TO子句來實現。6.2.11去向查詢1.基本格式2.示例…[[INTODestination]|[TOFILEFileName[ADDITIVE]|TOPRINTER|TOSCREEN]]INTO子句的功能是:指定將查詢結果保存在一個數組、臨時表或永久表的表中。如果沒有INTO子句,查詢結果僅在VisualFoxPro的當前窗口以瀏覽方式顯示。如果同時包括了INTO子句和TO子句,則TO子句不起作用?!纠?-36】查詢總分最高的前三位學生的信息,并將查詢結果寫入一個二維數組“zfsm”中,然后顯示之。CLEARMEMORYSELECTTOP3學號,姓名,性別,總分FROM學生ORDERBY總分DESCINTOARRAYzfsmDISPLAYMEMORYLIKEzfsm【例6-37】利用“學生.dbf”、“成績”和“課程”三張表,查詢所修課程成績大于90分以上的有關信息,并生成一張新表“學生成績.dbf”,新表中含有字段學號、姓名、課程名和成績。SELECT學生.學號,姓名,課程名,成績FROM學生,成績,課程;WHERE學生.學號=成績.學號AND成績.課程號=課程.課程號AND成績>=90INTOTABLE學生成績USE學生成績BROWSE【例6-38】將例6-36的查詢結果寫入一個臨時表“cj_Temp”中,然后瀏覽該表。SELECTTOP3學號,姓名,性別,總分FROM學生ORDERBY總分DESCINTOCURSORcj_TempBROWSE注意,臨時表只能暫時保存數據,一旦關閉VisualFoxPro就會隨之消失。【例6-39】將例6-36的查詢結果保存到一個文本文件“cj_Temp.txt”中,然后顯示生成的文本文件內容。CLEARSELECTTOP3學號,姓名,性別,總分FROM學生ORDERBY總分DESCTOFILEcj_TempNOCONSOLEMODIFILEcj_Temp.txt&&如在屏幕輸入可執(zhí)行命令TYPEcj_Temp.txt數據操縱語言一般由INSERT(插入)、DELETE(刪除)、UPDATE(更新),SELECT(檢索或查詢)等組成,由于SELECT比較特殊,所以一般又將它以查詢(檢索)語言單獨出現。6.3SQL的數據操縱功能6.3.1插入記錄1.命令格式在SQL中,記錄的插入可利用INSERT命令實現,該命令將在指定的表的末尾追加新記錄。INSERT-SQL命令有二種語法格式。
INSERTINTOdbf_name[(fname1[,fname2,...])]VALUES(eExpression1[,eExpression2,...])或者
INSERTINTOdbf_nameFROMARRAYArrayName|FROMMEMVAR命令功能是:在指定的表文件末尾追加一條記錄,插入新記錄后,記錄指針指向新記錄。說明:⑴INSERTINTOdbf_name:指定要追加記錄的表名。dbf_name中可以包含路徑,也可以是一個名稱表達式。表可事先也可不打開。⑵[(fname1[,fname2[,...]])]:指定新記錄的字段名,INSERT–SQL命令將向這些字段中寫字段值。⑶VALUES(eExpression1[,eExpression2[,...]]):新插入記錄的字段值。省略了字段名,那么必須按照表結構定義字段的順序來指定字段值。⑷FROMARRAYArrayName:指定一個數組中的數據將被寫入到新記錄中。從第一個數組元素開始,數組中的每個元素的內容依次插入到記錄的對應字段中。第一個數組元素的內容插入到新記錄的第一個字段,第二個元素的內容插入到第二個字段等。⑸FROMMEMVAR:把與字段同名的內存變量的內容插入到與它同名的字段中。如果某一字段不存在同名的內存變量,則該字段為空?!纠?-40】在表文件“學生.dbf”的末尾追加三條記錄。***用表達式方式追加第一條記錄***INSERTINTO學生(學號,姓名,性別,出生日期,系別,總分,團員);VALUES("s1101115","王棟","男",{^1992-09-28},"01",600,.T.)……
&&用數組或內容變量方式追加第二條記錄,參見P2392.示例SQL中的更新命令是UPDATE命令,功能強大,既不增加表中的記錄,也不減少表中的記錄,而是更改記錄的字段值。既可以對整個表或某些字段進行修改,也可以根據條件針對某些記錄修改字段的值。6.3.2更新記錄1.命令格式2.示例UPDATE[DatabaseName1!]TableName1SETColumn_Name1=eExpression1[,Column_Name2=eExpression2...]WHEREFilterCondition1[AND|ORFilterCondition2...]]說明:UPDATE[DatabaseName1!]TableName1:指定要更新記錄的(數據庫)表名。SETColumn_Name1=eExpression1…];用表達式eExpression1的值去更新指定列Column_Name1的值。如果省略了WHERE子句,在列中的每一行都用相同的值更新?!纠?-41】將“學生.dbf”中團員的總分增加20分。UPDATE學生SET總分=總分+20WHERE團員
SQL的數據刪除功能指從表中邏輯刪除滿足條件的記錄,類似于VisualFoxPro中的DELETE命令。6.4.3刪除記錄1.命令格式2.示例
DELETEFROM[DatabaseName!]TableName[WHEREFilterCondition1[AND|ORFilterCondition2...]]該命令的功能是:從指定的表中邏輯刪除滿足WHERE子句條件的所有記錄。如果在DELETE語句中沒有WHERE子句,則該表中的所有記錄都將被刪除。說明:①FROM[DatabaseName!]TableName:指定要給其中的記錄加刪除標記的(數據庫)表名。②WHEREFilterCondition1[AND|ORFilterCondition2...]:FilterCondition指定要做刪除標記的記錄必須滿足的條件。如果有多個篩選條件,它們用NOT、AND或OR操作符連接?!纠?-42】利用DELETE-SQL命令將“學生.dbf”表中“學號”字段的第3位是2或是5的學生的進行邏輯刪除。DELETEFROM學生WHERESUBSTR(學號,3,1)=”2”O(jiān)RSUBSTR(學號,3,1)=”5”數據定義語言DDL用于創(chuàng)建或刪除表、索引和視圖之類的對象。由CREATE、DROP、ALTER命令組成。6.3.1定義表結構1.命令格式6.4SQL的數據定義功能對表來說,一個字段除了字段的名字、類型、寬度、精確度這四個最基本的特性外,還可以有其它特性,諸如:是否允許有空值、設置字段完整性規(guī)則、設置為主碼或候選碼,設置為外碼,是否建立與其它表的永久關系等。這些特征都可以通過SQL表的定義命令CREATETABLE來完成。CREATETABLE|DBFTableName1[NAMELongTableName][FREE](FieldName1FieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][CHECKlExpression1[ERRORcMessageText1]][DEFAULTeExpression1][PRIMARYKEY|UNIQUE][REFERENCESTableName2[TAGTagName1]][,FieldName2...][,PRIMARYKEYeExpression2TAGTagName2|,UNIQUEeExpression3TAGTagName3][,FOREIGNKEYeExpression4TAGTagName4[NODUP]REFERENCESTableName3[TAGTagName5]][,CHECKlExpression2[ERRORcMessageText2]])|FROMARRAYArrayName此命令的功能是:使用指定的字段或由一個數組生成一個表。說明:⑴CREATETABLE|DBFTableName1:指定要創(chuàng)建的表的名稱。TABLE和DBF選項作用相同。⑵NAMELongTableName:指定表的長表名。因為長表名存儲在數據庫中,只有在打開數據庫時才能指定長表名。長名最多可包括128個字符。⑶FREE:創(chuàng)建的表是自由表,不添加到數據庫中。如果沒有打開數據庫則不需要FREE。⑷(FieldName1FieldType[(nFieldWidth[,nPrecision])]:分別指定字段1的字段名、字段類型、字段寬度和字段精度(小數位數)。FieldType是指定字段數據類型的單個字母。有些字段數據類型要求指定nFieldWidth或nPrecision或兩者都要指定。
FieldType的值分別有C、D、T、N、F、I、B、Y、L、M、G,請參見3.2節(jié)。⑸NULL|NOTNULL:允許該字段值為空或非空,默認NOTNULL。⑹CHECKlExpression1[ERRORcMessageText1]:為字段設置域完整性檢查。其中:①lExpression1:指定字段的有效性規(guī)則。②ERRORcMessageText1:字段完整性檢查出錯時給出的出錯信息。⑺DEFAULTeExpression1:為字段設置一個默認值,表達式eExpression1的數據類型與該字段的數據類型要一致。默認值設置后,每添加一條記錄時,該字段自動取該默認值。⑻PRIMARYKEY|UNIQUE:以該字段為關鍵字生成主索引,索引標記與字段同名,生成的索引為結構復合索引的標記。主索引字段值必須唯一。UNIQUE;該字段創(chuàng)建一個候選索引,索引標記與字段同名。⑼REFERENCESTableName2[TAGTagName1][NOCPTRANS]:該子句指定與父表創(chuàng)建一個永久關系。①TableName2:父表名。它一定是一個數據庫表。②TAGTagName1:指定在父表TableName2中的索引標記名。如果缺省TAG子句,則使用父表的主碼建立永久關系。如果主表沒有主索引,VisualFoxPro將給出一個錯誤。⑽FieldName2…:指定另一個字段及其特性,它的各參數語定義字段1時類似。⑾PRIMARYKEYeExpression2TAGTagName2:指定要創(chuàng)建的主索引。eExpression2指定表中的任一個字段或字段組合。TAGTagName2為創(chuàng)建的主索引標識的名稱。索引標識名最多包含10個字符。因為表只能有一個主索引,如已經創(chuàng)建了一個主索引字段,則命令中不能包含本子句。⑿UNIQUEeExpression3TAGTagName3:創(chuàng)建侯選索引。一個表可以有多個侯選索引。⒀FOREIGNKEYeExpression4TAGTagName4[NODUP]:生成一個外部索引,并建立和父表的永久關系??梢詾楸韯?chuàng)建多個外部索引,但外部索引表達式必須指定表中的不同字段。各子句作用如下:
①FOREIGNKEYeExpression4TAGTagName4:用來指定建立外碼和索引的標記名。
②NODUP:生成一個候選的外部索引。⒁REFERENCESTableName3[TAGTagName5]:指定建立永久關系的父表??砂琓AGTagName5,為父表建立一個基于索引標識的關系。如果省略TAGTagName5,則默認用父表的主索引關鍵字建立關系。⒂FROMARRAYArrayName:指定一個用來生成表的數組。該數組中應包含創(chuàng)建表所需要的各字段的名字、類型、長度、精度。用戶可以用FROMARRAY子句代替定義CREATETABLE命令中的個別字段。2.示例【例6-43】建立文件夾E:\cjgl中有成績管理數據庫“cjgl.dbc”,包括4個表文件:xs(學號C(8),姓名C(8),性別C(2),V(20),聯(lián)系電話C(12),系部代碼C(2),照片G)js(教師代碼C(4),姓名C(8),職稱C(6))kc(課程號C(4),課程名V(20),教師代碼C(4))cj(學號C(8),課程號C(4),成績I)關系模式中帶有下劃線的字段為主碼。請用CREATE-SQL命令來創(chuàng)建它們。⑴創(chuàng)建數據庫“cjgl.dbc”。
RUNMDE:\CJGLSETDEFAULTTOE:\XSCJCREATEDATABASEXSCJ(2)創(chuàng)建表“xs.dbf”。為字段“系部代碼”設置域完整性規(guī)則。CREATETABLExs(學號C(8)PRIMARYKEY,姓名C(8)NOTNULL,;性別C(2),聯(lián)系電話C(12),;系部代碼C(2)CHECK系部代碼>="01"AND系部代碼<="08",照片G)
其它參見P242。
結果如圖6-36所示。圖6-36用CREATE-SQL創(chuàng)建數據庫及表用戶使用數據時,隨著應用要求的改變,往往需要對原來定義的表結構進行修改,修改表橫貫的SQL命令是ALTERTABLE-SQL。ALTERTABLE-SQL有三種格式,本節(jié)將給出ALTERTABLE-SQL命令的詳細敘述。6.3.2修改表結構1.格式1⑴命令格式ALTERTABLETableName1ADD|ALTER[COLUMN]FieldName1FieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][CHECKlExpression1[ERRORcMessageText1]][DEFAULTeExpression1][PRIMARYKEY|UNIQUE][REFERENCESTableName2[TAGTagName1]][NOCPTRANS][NOVALIDATE]⑵功能:向表中添加一個新字段或修改一個已有的字段。⑶說明①ADD|ALTER:ADD表示添加字段,ALTER表示修改字段特性。②其他參數和子句與CREATETABLE中相同。③NOVALIDATE:用這一選項,VisualFoxPro修改表的結構不受表中數據完整性的約束。⑴命令格式ALTERTABLETableName1ALTER[COLUMN]FieldName2[NULL|NOTNULL][SETDEFAULTeExpression2][SETCHECKlExpression2[ERRORcMessageText2]][DROPDEFAULT][DROPCHECK][NOVALIDATE]⑵功能對表中指定的字段設置、修改或刪除缺省值、有效性規(guī)則,不影響原有表的數據。⑶說明①SET子句:用來設置缺省值、有效性規(guī)則。②DROP子句:用來刪除缺省值、有效性規(guī)則。③其他參數與前相同。2.格式2⑴命令格式ALTERTABLETableName1[DRO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職(新能源汽車運用與維修)轉向系統(tǒng)檢測試題及答案
- 2025年中職機電一體化技術(機電工程實務)試題及答案
- 2026屆四川南充市高考一診地理試卷試題(含答案詳解)
- 深度解析(2026)《GBT 18311.5-2003纖維光學互連器件和無源器件 基本試驗和測量程序 第3-5部分檢查和測量 衰減對波長的依賴性》
- 深度解析(2026)《GBT 17980.126-2004農藥 田間藥效試驗準則(二) 第126部分除草劑防治花生田雜草》
- 深度解析(2026)《GBT 17980.11-2000農藥 田間藥效試驗準則(一) 殺螨劑防治桔全爪螨》
- 深度解析(2026)GBT 17771-2010土方機械 落物保護結構 試驗室試驗和性能要求
- 深度解析(2026)《GBT 17626.18-2016電磁兼容 試驗和測量技術 阻尼振蕩波抗擾度試驗》(2026年)深度解析
- 共享設施維護保養(yǎng)操作規(guī)程
- 江西楓林涉外經貿職業(yè)學院《微生物與寄生蟲學》2025-2026學年第一學期期末試卷
- 形象設計行業(yè)市場分析與發(fā)展建議
- 管理工作者應對突發(fā)事件
- 北京市昌平區(qū)2024-2025學年三年級上學期期末數學試題
- 口腔診所前臺接待流程與話術模板
- 犍為經開區(qū)馬邊飛地化工園區(qū)污水處理廠環(huán)評報告
- 學困生轉換課件
- 腫瘤病人免疫治療及護理
- 門診護理工作流程
- 委托加工方案模板(3篇)
- 臨床科研團隊管理辦法
- (高清版)DB31∕T 1571-2025 城鎮(zhèn)供水廠生產廢水回用要求
評論
0/150
提交評論