




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
北京林業大學數據庫原理與應用結構化查詢語言StructuredQueryLanguage數據查詢數據定義數據操縱數據控制SQL的發展ChamberlinSEQUELSQLSQL的發展大型數據庫
SybaseSQLServerOracleDB2MySQL小型數據庫
FoxProAccessSQLite1982年,美國國家標準化協會(AmericanNationalStandardInstitute,ANSI)開始制訂SQL標準;1986年,ANSI公布了SQL的第一個標準SQL-86;1987年,國際標準化組織(InternationalOrganizationforStandardization,ISO)正式采納了SQL-86標準為國際標準;SQL的標準化1989年,ISO對SQL-86標準進行了補充,推出了SQL-89標準;1992年,ISO推出了SQL-92標準(也稱SQL2);1999年,ISO推出了SQL-99標準(也稱SQL3),它增加了對象數據、遞歸和觸發器等的支持功能;2003年,ISO推出了ISO/IEC9075:2003標準(也稱SQL4)。SQL的標準化一個關系對應一個基本表一個或多個基本表對應一個存儲文件基本表(BaseTable):SQL的基本概念視圖(View):SQL的基本概念SQL的基本概念SQL語言支持的關系數據庫的三級模式結構
SQL
基本表1
視圖1
視圖2
基本表2
儲存文件1
基本表3
基本表4
儲存文件1
外模式
模式
內模式SQL的主要特點
SQL語言是類似于英語的自然語言,簡潔易用SQL是一種一體化的語言SQL語言是一種非過程化的語言SQL語言是一種面向集合的語言SQL語言既是自含式語言,又是嵌入式語言SQLServer的發展與版本SQLServer2012簡介SQLServer是一個支持關系模型的關系數據庫管理系統企業版(EnterpriseEdition)可作為大型web站點服務器標準版(StandardEdition)適用于部門級等中小規模的應用Web版(WebEdition)面向InternetWeb服務環境設計,成本低開發者版(DeveloperEdition)擁有企業版的特性,但只限于在開發、測試和演示中使用SQLServer2012的主要組件SQLServer2012簡介組件
功能SQLServer數據庫引擎存儲、處理和保護數據的核心引擎,復制,全文搜索以及用于管理關系數據和XML數據的工具。SQLServerManagementStudio集成環境,用于配置和管理SQLServer的主要組件。分析服務創建和管理聯機分析處理及數據挖掘應用的工具。報表服務開發報表應用程序的可擴展平臺,用于創建、管理和部署表格報表、矩陣報表、圖形報表以及自由格式報表等應用。集成服務一組圖形工具和可編程對象。配置管理器為SQLServer服務、服務器協議、客戶端協議和客戶端別名提供配置管理。數據庫引擎優化顧問協助創建索引、索引視圖和分區的最佳組合商業智能開發向導集成開發環境,集成了上述分析服務、報表服務和集成服務的功能。連接組件安裝客戶端和服務器通信的組件聯機叢書查詢有價值的信息SQLServer2012簡介通過執行“開始→所有程序→MicrosoftSQL2012→SQLServerManagementStudio“命令,啟動ManagementStudio數據庫的結構描述信息的數據存在數據庫中并由DBMS統一管理從邏輯上看數據庫的結構描述信息的數據是以文件的方式存儲在物理磁盤上,由操作系統進行統一管理從物理上看數據庫的存儲結構是指數據庫文件在磁盤上如何存儲。在SQLServer2012中,創建數據庫時,會對應地在物理磁盤上創建相應的操作系統文件,數據庫中的所有數據、對象和數據庫操作日志都存儲在這些文件中。數據庫的結構——數據文件和事務日志文件數據文件1???數據文件n事務日志文件數據庫存放數據庫數據和數據庫對象的文件主要數據文件(.mdf)+次要數據文件(.ndf)保存用于恢復數據庫的日志信息,擴展名為.ldf當數據庫破壞時可以用事務日志還原數據庫內容只有一個可有多個數據庫的結構——文件組文件組文件組(FileGroup)是將多個數據文件集合起來形成的一個整體主要文件組+次要文件組一個數據文件只能存在于一個文件組中,一個文件組也只能被一個數據庫使用日志文件不分組,它不屬于任何文件組前4個數據庫存儲路徑為<drive>:\ProgramFiles\MicrosoftSQLServer\MSSQL11.SQLSERVER\MSSQL\DATA\;resource數據庫是一個只讀和隱藏的數據庫,不顯示在系統數據庫列表中,它的物理文件名為mssqlsystemresource.mdf和mssqlsystemresource.ldf,存儲路徑為<drive>:\ProgramFiles\MicrosoftSQLServer\MSSQL11.SQLSERVER\MSSQL\Binn\。SQLServer2012的系統數據庫SQLServer2012的系統數據庫有master、model、msdb、tempdb和resource。SQLServer2012的系統數據庫系統數據庫mastermodelmsdbtempdbresource記錄所有系統級信息,記錄了所有其他數據庫的存在、數據庫文件的位置和SQLServer初始化信息;重新生成master將重新生成所有系統數據庫。model數據庫是所有用戶數據庫的創建模板,系統將model數據庫的全部內容復制到新的數據庫中,可以簡化數據庫及其對象的創建及設置工作。計劃警報和作業。tempdb數據庫用作系統的臨時存儲,主要保存顯式創建的臨時用戶對象和數據庫引擎創建的內部對象。包含所有系統對象,通過resource數據庫可以更為輕松快捷地升級到新的MicrosoftSQLServer版本。SQLServer2012的系統數據庫SQLServer2012提供了AdventureWorks示例數據庫。與SQLServer2000等早期版本不同,SQLServer2012默認并不安裝示例數據庫,需要手工下載安裝。SQLServer2012聯機叢書基本都以該數據庫為例講解,建議讀者手工下載安裝該示例數據庫。創建數據庫創建用戶數據庫有兩種典型方法:一是通過ManagementStudio創建;二是通過SQL命令創建。創建用戶數據庫創建用戶數據庫用ManagementStudio創建數據庫在“對象資源管理器”中,右鍵單擊“數據庫”節點,在快捷菜單中選擇“新建數據庫(N)…”命令,即可打開新建數據庫窗口。創建用戶數據庫用ManagementStudio創建數據庫用SQL命令創建數據庫創建數據庫的SQL命令的語法格式如下所示:CREATEDATABASE數據庫名稱[ON[FILEGROUP文件組名稱](NAME=數據文件邏輯名稱,FILENAME='路徑+數據文件名',SIZE=數據文件初始大小,MAXSIZE=數據文件最大容量,FILEGROWTH=數據文件自動增長容量,)][LOGON(NAME=日志文件邏輯名稱,FILENAME='路徑+日志文件名’,SIZE=日志文件初始大小,MAXSIZE=日志文件最大容量,FILEGROWTH=日志文件自動增長容量,)][COLLATE數據庫校驗方式名稱][FORATTACH]用SQL命令創建數據庫CREATEDATABASETeachON(NAME=Teach_Data,FILENAME=‘E:\TeachData.mdf',SIZE=10,MAXSIZE=500,FILEGROWTH=10)LOGON(NAME=Teach_Log,FILENAME=‘E:\TeachData.ldf',SIZE=5,MAXSIZE=500,
FILEGROWTH=5)[例]用SQL命令創建一個教學數據庫Teach,數據文件的邏輯名稱為Teach_Data,數據文件存放在E盤根目錄下,文件名為TeachData.mdf,數據文件的初始存儲空間大小為10MB,最大存儲空間為500MB,存儲空間自動增長量為10MB;日志文件的邏輯名稱為Teach_Log,日志文件物理地存放在E盤根目錄下,文件名為TeachData.ldf,初始存儲空間大小為5MB,最大存儲空間為500MB,存儲空間自動增長量為5MB。用SQL命令創建數據庫修改數據庫修改用戶數據庫有兩種典型方法:一是通過ManagementStudio修改;二是通過SQL命令修改。修改用戶數據庫用ManagementStudio修改數據庫在“對象資源管理器”窗口,右鍵單擊要修改的數據庫,從快捷菜單中選擇“屬性”命令,即可彈出數據庫屬性對話框。用ManagementStudio修改數據庫“常規”選項卡包含數據庫的狀態、所有者、創建日期、大小、可用空間、用戶數、備份和維護等信息。“文件”選項卡包含數據文件和日志文件的名稱、存儲位置、初始容量大小、文件增長和文件最大限制等信息。“文件組”選項卡可以添加或刪除文件組。但是,如果文件組中有文件則不能刪除,必須先將文件移出文件組,才能刪除文件組。“選項”選項卡可以設置數據庫的許多屬性,如排序規則、恢復模式、兼容級別等。“更改跟蹤”
選項卡可以設定是否對數據庫的修改進行跟蹤。用ManagementStudio修改數據庫“權限”選項卡可以設定用戶或角色對此數據庫的操作權限。“擴展屬性”
選項卡可以設定表或列的擴展屬性。在設計表或列時,通常通過表名或列名來表達含義,當表名或列名無法表達含義時,就需要使用擴展屬性。“鏡像”選項卡可以設定是否對數據庫啟用鏡像備份。鏡像備份是一種高性能的備份方案,但需要投入一定的設備成本,一般用于高可靠性環境。“事務日志傳送”
選項卡設定是否啟用事務日志傳送。事務日志傳送備份是僅次于鏡像的高可靠性備份方案,可以達到分鐘級的災難恢復能力,實施成本遠小于鏡像備份,是一種經濟實用的備份方案。用SQL命令修改數據庫可以使用ALTERDATABASE命令修改數據庫。注意,只有數據庫管理員(DBA)或者具有CREATEDATABASE權限的人員才有權執行此命令。下面列出常用的修改數據庫的SQL命令的語法格式。ALTERDATABASE數據庫名稱ADDFILE(
具體文件格式)[,…n][TOFILEGROUP文件組名]|ADDLOGFILE(
具體文件格式)[,…n]|REMOVEFILE文件邏輯名稱|MODIFYFILE(
具體文件格式)用SQL命令修改數據庫|ADDFILEGROUP文件組名|REMOVEFILEGROUP文件組名|MODIFYFILEGROUP文件組名{READ_ONLY|READ_WRITE,|DEFAULT,|NAME=新文件組名}}其中,“具體文件格式”為:(NAME=文件邏輯名稱
[,NEWNAME=新文件邏輯名稱][,SIZE=初始文件大小][,MAXSIZE=文件最大容量][,FILEGROWTH=文件自動增長容量])用SQL命令修改數據庫[例]修改Teach數據庫中的Teach_Data文件增容方式為一次增加20MB。ALTERDATABASETeachMODIFYFILE(NAME=Teach_Data,FILEGROWTH=20)用SQL命令修改數據庫[例]用SQL命令修改數據庫Teach,添加一個次要數據文件,邏輯名稱為Teach_Datanew,存放在E盤根目錄下,文件名為Teach_Datanew.ndf。數據文件的初始大小為100MB,最大容量為200MB,文件自動增長容量為10MB。ALTERDATABASETeachADDFILE(NAME=Teach_Datanew,FILENAME='E:\Teach_Datanew.ndf',SIZE=100,MAXSIZE=200,FILEGROWTH=10)用SQL命令修改數據庫[例]用SQL命令,從Teach數據庫中刪除次要數據文件。ALTERDATABASETeachREMOVEFILETeach_Datanew刪除數據庫刪除用戶數據庫有兩種典型方法:一是通過ManagementStudio刪除;二是通過SQL命令刪除。刪除用戶數據庫用ManagementStudio刪除數據庫打開“對象資源管理器”,右鍵單擊要刪除的數據庫,從快捷菜單中選擇“刪除”。刪除數據庫后,與此數據庫關聯的數據文件和日志文件都會被刪除,系統數據庫中存儲的該數據庫的所有信息也會被刪除,因此務必要慎重! 用SQL命令刪除數據庫DROPDATABASE數據庫名稱[,...n][例]刪除數據庫Teach。DROPDATABASETeach查看數據庫信息查看數據庫信息有兩種典型方法:一是通過ManagementStudio查看二是通過系統存儲過程查看查看數據庫信息在ManagementStudio的“對象資源管理器”窗口中,選中“數據庫”節點下的某個數據庫,單擊鼠標右鍵,在快捷菜單中選擇“屬性”,即可查看該數據庫的詳細信息。用ManagementStudio查看數據庫信息用系統存儲過程顯示數據庫結構
用系統存儲過程顯示數據庫信息用系統存儲過程顯示文件信息用系統存儲過程顯示文件組信息Sp_helpdb[[@dbname=]'name']例如:EXECSp_helpdbAdventureWorks2012Sp_helpfile[[@filename=]'name']例如:EXECSp_helpfileAddressSp_helpfilegroup[[@filegroupname=]'name']例如:useAdventureWorks2012EXECSp_helpfilegroup遷移數據庫很多情況下,我們需要將數據庫文件從一臺電腦遷移到另外的電腦上,以下介紹兩種常用的遷移數據庫的方法:一是分離和加載數據庫二是生成腳本遷移用戶數據庫在對象資源管理器中,選擇要遷移的數據庫節點,單擊鼠標右鍵,在快捷菜單中選擇“任務”,在之后出現的級聯菜單中選擇“分離”,會彈出“分離數據庫”屬性對話框。分離和加載數據庫1.分離數據庫分離和加載數據庫1.分離數據庫分離和加載數據庫1.分離數據庫在對象資源管理器中選擇“數據庫”節點,單擊鼠標右鍵,在快捷菜單中選擇“附加”,會彈出“附加數據庫”屬性對框框。分離和加載數據庫2.加載數據庫在“附加數據庫”屬性對話框中,單擊其中的“添加”按鈕,在彈出的對話框中選擇需要的.mdf文件,即可把數據庫文件附加成功。分離和加載數據庫2.加載數據庫分離和加載數據庫2.加載數據庫在對象資源管理器中,選擇要操作的數據庫節點,單擊鼠標右鍵,在快捷菜單中選擇“任務”,在之后出現的級聯菜單中選擇“生成腳本”命令,會彈出“生成和發布腳本”窗口。生成腳本生成腳本數據類型SQL使用數據定義語言(DataDefinitionLanguage,DDL)實現數據定義功能。關系表中的每一列(即每個字段)都來自同一個域,屬于同一種數據類型。數據類型創建數據表之前,需要為表中的每一個屬性設置一種數據類型。數據類型數據內容與范圍占用的字節bit精確數值型,0,1,NULL實際使用1bit,但會占用1字節,若一個數據中有數個bit字段,則可共占1字節bigint精確數值型,-263~263-18字節int精確數值型,-231~231-14字節smallint精確數值型,-215~215-12字節tinyint精確數值型,0~2551字節mumeric精確數值型,-1038+1~1038–11~9位數使用5字節,10~19位數使用9字節,20~28位數使用13字節,29~38位數使用17字節decimal精確數值型,-1038+1~1038–1與numeric類型相同float近似數值型,-1.79E+308~1.79E+3088字節real近似數值型,-3.40E+38~3.40E+384字節數據類型數據類型數據內容與范圍占用的字節Money精確數值型,-263~263-1,精確到萬分之一8字節smallmoney精確數值型,-214748.3648~214748.36474字節datetime精確數值型,1753/1/1~9999/12/318字節smalldatetime精確數值型,1900/1/1~2079/6/64字節char字符型,1~8000個字符,定長的非Unicode字符1個字符占1字節,尾端空白字符保留varchar字符型,1~8000個字符,非定長的非Unicode字符1個字符占1字節,尾端空白字符刪除text字符型,最多231-1個字符,變長的非Unicode字符1個字符占1字節,最大可存儲2GBncharUnicode字符型,1~4000個字符,非定長的Unicode字符1個字符占2字節,尾端空白字符保留navcharUnicode字符型,1~4000個字符,非定長的Unicode字符1個字符占2字節,尾端空白字符刪除ntextUnicode字符型,231-1個字符,非定長的Unicode字符1個字符占2字節,最大可存儲2GBbinary二進制字符串型,1~8000個字節,定長二進制數據在存儲時,SQLServer會另外增加4字節,尾端空白字符會保留varbinary二進制字符串型,1~8000個字節,非定長二進制數據在存儲時,SQLServer會另外增加4字節,尾端空白字符會刪除image二進制字符串型,231–1個字節,非長二進制數據最大可存儲2GBtimestamp其它數據類型,十六進制8字節uniqueidentifier其它數據類型,全局唯一標識符(GUID)可用NEWID(|)函數生成一個該種類型的字段值。16字節sql_variant其它數據類型,0~8016table其它數據類型數據類型數據類型整數型:按照取值范圍從大到小,包括bigint、int、smallint、tinyint、bit。在實際應用中,可以根據屬性的具體取值范圍選擇適合的整數型。數據類型數值型:包括精確數值型numeric、decimal和近似數值型float、real。numeric與decimal在功能上等效,用于精確存儲數值。以numeric為例,格式為numeric(p,s),其中p表示數據長度,s表示小數位數。例如,成績的數據類型可以設置為numeric(4,1),表示數據長度為4,小數位為小數點后一位。float和real用來存儲數據的近似值,當數值的位數太多時,可用它們存取數值的近似值。數據類型貨幣型:按照取值范圍從大到小,包括money和smallmoney,它們可以精確到所代表的貨幣單位的萬分之一,也就是小數點后面4位。通常情況下,貨幣型可以轉換為精確數值型。日期型:按照時間范圍從大到小,包括datetime和smalldatetime,可以精確到秒,smalldatetime比datetime少占用4個字節。此外,還有一個常用的日期型是date,這種數據類型只顯示日期,不顯示時間。數據類型包括char、varchar、nchar、nvarchar、text、ntext。其中,char、varchar存放非Unicode字符(即ASCII字符),一個字符占1個字節,char是定長的,varchar是非定長的。字符型:數據類型例如,“學號(SNo)”可以設置為char(6),表示學號最多可以包含6個非Unicode字符,即使小于6個,在內存中也要分配6個字節的空間;如果設置為varchar(6),則學號實際包含多少非Unicode字符,在內存中就分配多少字節。字符型:數據類型字符型:nchar、nvarchar存放Unicode字符,一個字符占2個字節,nchar是定長的,nvarchar是非定長的。nchar、nvarchar的用法與char、varchar相同,只是占用內存空間不同。例如,如果“學號(SNo)”設置為nchar(6),則學號占12個字節;如果設置為nvarchar(6),則學號根據實際長度分配字節。當某個字符型屬性需要描述的字符數比較多時,可以將其設置為text、ntext。其中,text存放非Unicode字符,定長,最大可存儲2GB;ntext存放Unicode字符,非定長,最大可存儲2GB。數據類型包括binary、varbinary、image。binary是定長的二進制數據型,varbinary是非定長的二進制數據型,兩者最多可以表示8000個字節。任何類型的數據都可存儲在這種類型的字段中,不需數據轉換。image類型可以存儲圖片本身,這時需要事先將圖片轉換成二進制流的形式,也可以存儲圖片路徑。二進制數據型:數據類型包括timestamp、uniqueidentifier、sql_variant、table。timestamp數據類型提供數據庫范圍內的唯一值。此類型相當于binary(8)或varbinary(8),但當它所定義的列更新或添加數據行時,此列的值會被自動更新,一個計數值將自動地添加到此timestamp數據列中。每個數據庫表中只能有一個timestamp數據列。uniqueidentifier數據類型稱為全球唯一標識符(GloballyUniqueIdentifier,GUID),可用NEWID()函數產生。特殊類型:數據類型特殊類型:sql_variant數據類型可以存儲除文本、圖形數據和timestamp類型數據外的其他任何合法的SQLServer數據,此數據類型大大方便了SQLServer的開發工作。table數據類型用于存儲對表或視圖處理后的結果集,這一類型使得變量可以存儲一個表,從而使函數或過程返回查詢結果更加方便、快捷。創建數據表創建數據表有兩種典型方法:一是通過ManagementStudio創建;二是通過SQL命令創建。創建數據表右鍵單擊“對象資源管理器”中“數據庫”節點下的“表”節點,從快捷菜單中選擇“新建表”命令,會彈出定義數據表結構對話框。其中,每一行用于定義數據表的一個字段,包括字段名、數據類型、長度、字段是否為NULL以及默認值等。用ManagementStudio創建數據表用ManagementStudio創建數據表
定義數據表結構對話框“列名”(即表中某個字段名)由用戶命名,最長128字符,可包含中文、英文、下劃線、#號、貨幣符號(¥)及@符號。同一表中不允許有重名的列。“數據類型”,定義字段可存放數據的類型。“允許空”,當對某個字段的“允許空”列上打勾時,表示該字段的值允許為NULL值。這樣,在向數據表中輸入數據時,如果沒有給該字段輸入數據,系統將自動取NULL值,否則,必須給該字段提供數據。“默認值”,表示該字段的默認值(即DEFAULT值)。如果規定了默認值,在向數據表中輸入數據時,如果沒有給該字段輸入數據,系統自動將默認值寫入該字段。用ManagementStudio創建數據表用SQL命令創建數據表 CREATETABLE<表名> (<列定義>[{,<列定義>|<表約束>}])<列名><數據類型>[DEFAULT][{<列約束>}]
<表名>最多可有128個字符,如S、SC、C等,不允許重名。DEFAULT,若某字段設置有默認值,則當該字段未被輸入數據時,以該默認值自動填入該字段。用SQL命令創建數據表 CREATETABLE<表名> (<列定義>[{,<列定義>|<表約束>}])<列名><數據類型>[DEFAULT][{<列約束>}]
[例]用SQL命令建立一個學生表S。
CREATETABLES (SNoCHAR(6), SNVARCHAR(10), SexNCHAR(1)DEFAULT'男’, AgeINT, DeptNVARCHAR(20))缺省值為“男”定義數據表的約束數據表的約束在SQLServer中,對于數據表的約束分為列約束和表約束。列約束是對某一個特定列的約束,包含在列定義中,直接跟在該列的其他定義之后,用空格分隔,不必指定列名。表約束與列定義相互獨立,不包括在列定義中,通常用于對多個列一起進行約束,與列定義用“,”分隔,定義表約束時必須指出要約束的列的名稱。定義數據表的約束完整性約束的基本語法格式[CONSTRAINT<約束名>]<約束類型>NULL/NOTNULLUNIQUEPRIMARYKEYFOREIGNKEYCHECKNULL/NOTNULL約束NULL表示“不知道”、“不確定”或“沒有數據”的意思主鍵列不允許出現空值[CONSTRAINT<約束名>][NULL|NOTNULL][例]建立一個S表,對SNo字段進行NOTNULL約束。
CREATETABLES (SNoVARCHAR(6)CONSTRAINTS_CONSNOTNULL, SNNVARCHAR(10), SexNCHAR(1), AgeINT, DeptNVARCHAR(20))可省略約束名稱:SNoVARCHAR(6)NOTNULLUNIQUE約束(唯一約束)指明基本表在某一列或多個列的組合上的取值必須唯一在建立UNIQUE約束時,需要考慮以下幾個因素:使用UNIQUE約束的字段允許為NULL值。一個表中可以允許有多個UNIQUE約束。UNIQUE約束用于強制在指定字段上創建一個UNIQUE索引,缺省為非聚集索引。UNIQUE約束(唯一約束)UNIQUE用于定義列約束[CONSTRAINT<約束名>]UNIQUEUNIQUE用于定義表約束[CONSTRAINT<約束名>]UNIQUE(<列名>[{,<列名>}])UNIQUE約束(唯一約束)[例]建立一個S表,定義SN為唯一鍵。CREATETABLES(SNoVARCHAR(6),SNNVARCHAR(10)CONSTRAINTSN_UNIQUNIQUE,SexNCHAR(1),AgeINT,DeptNVARCHAR(20))SN_UNIQ可以省略SNNVARCHAR(10)UNIQUE,UNIQUE約束(唯一約束)[例]建立一個S表,定義SN+Sex為唯一鍵,此約束為表約束。CREATETABLES(SNoVARCHAR(6),SNNVARCHAR(10)UNIQUE,SexNCHAR(1),AgeINT,DeptNVARCHAR(20),CONSTRAINTS_UNIQUNIQUE(SN,Sex))PRIMARYKEY約束(主鍵約束)PRIMARYKEY約束(主鍵約束)用于定義基本表的主鍵,起唯一標識作用不能為NULL不能重復PRIMARYKEY與UNIQUE的區別:在一個基本表中只能定義一個PRIMARYKEY約束,但可定義多個UNIQUE約束。對于指定為PRIMARYKEY的一個列或多個列的組合,其中任何一個列都不能出現NULL值,而對于UNIQUE所約束的唯一鍵,則允許為NULL。不能為同一個列或一組列,既定義UNIQUE約束,又定義PRIMARYKEY約束。PRIMARYKEY約束(主鍵約束)PRIMARYKEY用于定義列約束CONSTRAINT<約束名>PRIMARYKEYPRIMARYKEY用于定義表約束[CONSTRAINT<約束名>]PRIMARYKEY(<列名>[{,<列名>}])PRIMARYKEY約束(主鍵約束)[例]建立一個S表,定義SNo為S的主鍵,建立另外一個數據表C,定義CNo為C的主鍵。定義數據表S:CREATETABLES(SNoVARCHAR(6)CONSTRAINTS_PrimPRIMARYKEY,SNNVARCHAR(10)UNIQUE,SexNCHAR(1),AgeINT,DeptNVARCHAR(20))
定義數據表C:CREATETABLEC(CNoVARCHAR(6)CONSTRAINTC_PrimPRIMARYKEY,CNNVARCHAR(20),CTINT)PRIMARYKEY約束(主鍵約束)[例]建立一個SC表,定義SNo+CNo為SC的主鍵。
CREATETABLESC (SNoVARCHAR(6)NOTNULL, CNoVARCHAR(6)NOTNULL, ScoreNUMERIC(4,1), CONSTRAINTSC_PrimPRIMARYKEY(SNo,CNo))FOREIGNKEY約束(外鍵約束)主表從表主鍵外部鍵引用[CONSTRAINT<約束名>]FOREIGNKEYREFERENCES<主表名>(<列名>[{,<列名>}])FOREIGNKEY約束(外鍵約束)[例]建立一個SC表,定義SNo,CNo為SC的外部鍵。
CREATETABLESC (SNoVARCHAR(6)NOTNULLCONSTRAINTS_Fore FOREIGNKEYREFERENCESS(SNo), CNoVARCHAR(6)NOTNULLCONSTRAINTC_Fore FOREIGNKEYREFERENCESC(CNo), ScoreNUMERIC(4,1), CONSTRAINTS_C_PrimPRIMARYKEY(SNo,CNo))CHECK約束CHECK約束CHECK約束用來檢查字段值所允許的范圍在建立CHECK約束時,需要考慮以下幾個因素:一個表中可以定義多個CHECK約束。每個字段只能定義一個CHECK約束。在多個字段上定義的CHECK約束必須為表約束。當執行INSERT、UNDATE語句時,CHECK約束將驗證數據。[CONSTRAINT<約束名>]CHECK(<條件>)CHECK約束[例]建立一個SC表,定義Score的取值范圍為0~100之間。
CREATETABLESC (SNoVARCHAR(6), CNoVARCHAR(6), ScoreNUMERIC(4,1)CONSTRAINTScore_Chk CHECK(Score>=0ANDScore<=100))修改數據表在ManagementStudio中的“對象資源管理器”窗口中,展開“數據庫”節點。右鍵單擊要修改的數據表,從快捷菜單中選擇“設計”命令,則會彈出修改數據表結構對話框。可以在此對話框中修改列的數據類型、名稱等屬性,添加或刪除列,也可以指定表的主關鍵字約束。修改完畢后,單擊工具欄中的保存按鈕,存盤退出。用ManagementStudio修改數據表的結構用ManagementStudio修改數據表的結構修改數據表結構對話框ALTERTABLE<表名>ADD<列定義>|<完整性約束定義>ALTERTABLE<表名>ALTERCOLUMN<列名><數據類型>[NULL|NOTNULL]用SQL命令修改數據表結構ALTERTABLE<表名>DROPCONSTRAINT<約束名>用SQL命令修改數據表結構[例]在S表中增加一個班號列和住址列。
ALTERTABLES ADD Class_NoVARCHAR(6), AddressNVARCHAR(20)使用此方式增加的新列自動填充NULL值,所以不能為增加的新列指定NOTNULL約束。[例]在SC表中增加完整性約束定義,使Score在0~100之間。
ALTERTABLESC ADDCONSTRAINTScore_ChkCHECK(ScoreBETWEEN0AND100)用SQL命令修改數據表結構[例]把S表中的SN列加寬到12個字符。
ALTERTABLES ALTERCOLUMN SNNVARCHAR(12)不能改變列名;不能將含有空值的列的定義修改為NOTNULL約束;若列中已有數據,則不能減少該列的寬度,也不能改變其數據類型;只能修改NULL/NOTNULL約束,其他類型的約束在修改之前必須先將約束刪除,然后再重新添加修改過的約束定義。用SQL命令修改數據表結構[例]刪除S表中的主鍵。
ALTERTABLES DROPCONSTRAINTS_Prim刪除數據表當某個基本表已不再使用時,可將其刪除。刪除后,表中的數據和所建的索引都被刪除,建立在該表上的視圖不會刪除,系統將繼續保留其定義,但已無法使用。刪除基本表如果重新恢復該表,這些視圖可重新使用。在ManagementStudio中,右鍵單擊要刪除的表,從快捷菜單中選擇“刪除”命令,會彈出“刪除對象”對話框。用ManagementStudio刪除數據表單擊“顯示依賴關系”按鈕,即會彈出“依賴關系”對話框,其中列出了表所依靠的對象和依賴于表的對象,當有對象依賴于表時不能刪除表。用ManagementStudio刪除數據表只能刪除自己建立的表,不能刪除其他用戶所建的表用SQL命令刪除數據表DROPTABLE<表名>查看數據表在ManagementStudio的“對象資源管理器”中展開“數據庫”節點,選中相應的數據庫,從中找到要查看的數據表。查看數據表右鍵單擊該表,從快捷菜單中選擇“屬性”菜單項,則會彈出“表屬性”對話框,從中可以看到表的詳細屬性信息,如表名、所有者、創建日期、文件組、記錄行數、數據表中的字段名稱、結構和類型等。查看數據表的屬性查看數據表查看數據表在ManagementStudio的“對象資源管理器”中,用右鍵單擊要查看數據的表,從快捷菜單中選擇“選擇前1000行(W)”命令,則會顯示表中的前1000條數據。查看數據表中的數據查看數據表關系表S(學生關系)SNo學號SN姓名Sex性別Age年齡Dept系別S1趙亦女17計算機S2錢爾男18信息S3孫珊女20信息S4李思男21自動化S5周武男19計算機S6吳麗女20自動化關系表CNo課程號CN課程名CT課時C1程序設計60C2微機原理80C3數字邏輯60C4數據結構80C5數據庫60C6編譯原理60C7操作系統60C(課程關系)關系表SNo學號CNo課程號Score成績S1C190S1C285S2C557S2C680S2C7S2C470S3C175S3C270S3C485S4C193S4C285S4C383S5C289SC(選課關系)關系表TNO教師號TN姓名Sex性別Age年齡Prof職稱Sal工資Comm崗位津貼Dept系別T1李力男47教授15003000計算機T2王平女28講師8001200信息T3劉偉男30講師9001200計算機T4張雪女51教授16003000自動化T5張蘭女39副教授13002000信息T(教師關系)關系表TNo教師號CNo課程號T1C1T1C4T2C5T2C6T3C1T3C5T4C2T4C3T5C5T5C7TC(授課關系)單關系(表)的數據查詢SELECT[ALL|DISTINCT][TOPN[PERCENT][WITHTIES]]〈列名〉[AS別名1][{,〈列名〉[AS別名2]}]FROM〈表名〉[[AS]表別名][WHERE〈檢索條件〉][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]]單關系(表)的數據查詢結構投影選取無條件查詢[例]查詢全體學生的學號、姓名和年齡。
SELECTSNo,SN,Age FROMS無條件查詢無條件查詢是指只包含“SELECT…FROM”的查詢,這種查詢最簡單,相當于只對關系(表)進行投影操作。在菜單欄下方的快捷工具中,單擊“新建查詢”,會彈出查詢窗口(即對象資源管理器右側的窗口)。無條件查詢在查詢窗口中輸入查詢語句,單擊“!執行”,在查詢語句的下方,會顯示對應的查詢結果。無條件查詢[例]查詢學生的全部信息。
SELECT* FROMS用“*”表示S表的全部列名,而不必逐一列出。無條件查詢[例]查詢選修了課程的學生的學號。
SELECTDISTINCTSNo FROMSC無條件查詢[例]查詢全體學生的姓名、學號和年齡。
SELECTSNName,SNo,Age FROMSSELECTSNASName,SNo,Age條件查詢當要在表中找出滿足某些條件的行時,則需使用WHERE子句指定查詢條件。WHERE子句中,條件通常通過三部分來描述。常用的比較運算符如下表所示。條件查詢(1)列名(2)比較運算符(3)列名、常數運算符含義=,>,<,>=,<=,!=,<>比較大小AND,OR,NOT多重條件BETWEENAND確定范圍IN確定集合LIKE字符匹配ISNULL空值1.比較大小條件查詢[例]查詢選修課程號為'C1'的學生的學號和成績。SELECTSNo,ScoreFROMSCWHERECNo='C1'[例]查詢成績高于85分的學生的學號、課程號和成績。SELECTSNo,CNo,ScoreFROMSCWHEREScore>852.多重條件查詢條件查詢[例]查詢選修C1或C2且分數大于等于85分學生的學號、課程號和成績。SELECTSNo,CNo,ScoreFROMSCWHERE(CNo='C1'ORCNo='C2')AND(Score>=85)NOT、AND、OR(用戶可以使用括號改變優先級)高低3.確定范圍條件查詢[例]查詢工資在1000元~1500元之間的教師的教師號、姓名及職稱。SELECTTNo,TN,ProfFROMTWHERESalBETWEEN1000AND1500[例]查詢工資不在1000元~1500元間的教師的教師號、姓名及職稱。
SELECTTNo,TN,ProfFROMTWHERESalNOTBETWEEN1000AND1500WHERESal>=1000ANDSal<=15004.確定集合條件查詢[例]查詢選修C1或C2的學生的學號、課程號和成績。
SELECTSNo,CNo,Score FROMSC WHERECNoIN('C1','C2’)此語句也可以使用邏輯運算符“OR”實現。
WHERECNo='C1'ORCNo='C2'利用“NOTIN”可以查詢指定集合外的元組。利用“IN“操作可以查詢屬性值屬于指定集合的元組。4.確定集合條件查詢利用“IN”操作可以查詢屬性值屬于指定集合的元組。[例]查詢沒有選修C1,也沒有選修C2的學生的學號、課程號和成績。
SELECTSNo,CNo,Score FROMSC WHERECNoNOTIN('C1','C2')5.部分匹配查詢條件查詢當不知道完全精確的值時,用戶可以使用LIKE或NOTLIKE進行部分匹配查詢(也稱模糊查詢)<屬性名>LIKE<字符串常量>5.部分匹配查詢條件查詢[例]查詢所有姓張的教師的教師號和姓名。
SELECTTNo,TN FROMT WHERETNLIKE'張%'[例]查詢姓名中第二個漢字是“力”的教師號和姓名。
SELECTTNo,TN FROMT WHERETNLIKE'_力%'6.空值查詢條件查詢[例]查詢沒有考試成績的學生的學號和相應的課程號。
SELECTSNo,CNo FROMSC WHEREScoreISNULL某個字段沒有值稱之為具有空值(NULL)空值不同于零和空格,不占任何存儲空間常用庫函數及統計匯總查詢常用庫函數及統計匯總查詢SQL提供了許多庫函數,增強了基本檢索能力。常用的庫函數如下表所示。函數名稱功能AVG按列計算平均值SUM按列計算值的總和MAX求一列中的最大值MIN求一列中的最小值COUNT按列值計個數常用庫函數及統計匯總查詢[例]求學號為S1的學生的總分和平均分。SELECTSUM(Score)ASTotalScore,AVG(Score)ASAvgScoreFROMSCWHERE(SNo='S1')常用庫函數及統計匯總查詢[例]求選修C1號課程的最高分、最低分及之間相差的分數。SELECTMAX(Score)ASMaxScore,MIN(Score)ASMinScore,MAX(Score)-MIN(Score)ASDiffFROMSCWHERE(CNo='C1')[例]求計算機系學生的總數。
SELECTCOUNT(SNo)FROMS WHEREDept='計算機'常用庫函數及統計匯總查詢[例]求學校中共有多少個系。
SELECTCOUNT(DISTINCTDept)ASDeptNumFROMSDISTINCT消去重復行
[例]統計有成績同學的人數。
SELECTCOUNT(Score) FROMSC其中,成績為0的同學也計算在內,沒有成績(即為空值)的不計算。[例]利用特殊函數COUNT(*)求計算機系學生的總數。
SELECTCOUNT(*)FROMS WHEREDept='計算機'常用庫函數及統計匯總查詢COUNT(*)用來統計元組的個數,不消除重復行,不允許使用DISTINCT關鍵字。分組查詢分組查詢GROUPBY子句可以將查詢結果按屬性列或屬性列組合在行的方向上進行分組,每組在屬性列或屬性列組合上具有相同的值。分組查詢[例]查詢各個教師的教師號及其任課的門數。
SELECTTNo,COUNT(*)ASC_Num FROMTC GROUPBYTNoGROUPBY子句按TNo的值分組,所有具有相同TNo的元組為一組,對每一組使用函數COUNT進行計算,統計出各位教師任課的門數。分組查詢若在分組后還要按照一定的條件進行篩選,則需使用HAVING子句分組查詢[例]查詢選修兩門以上(含兩門)課程的學生的學號和選課門數。SELECTSNo,COUNT(*)ASSC_NumFROMSCGROUPBYSNoHAVING(COUNT(*)>=2)查詢結果的排序查詢結果的排序當需要對查詢結果排序時,應該使用ORDERBY子句,ORDERBY子句必須出現在其他子句之后。排序方式可以指定,DESC為降序,ASC為升序,缺省時為升序。查詢結果的排序[例]查詢選修C1的學生學號和成績,并按成績降序排列。
SELECTSNo,Score FROMSC WHERE(CNo='C1’) ORDERBYScoreDESC查詢結果的排序[例]查詢選修C2,C3,C4或C5課程的學號、課程號和成績。查詢結果按學號升序排列,學號相同再按成績降序排列。
SELECTSNo,CNo,Score FROMSC WHERECNoIN('C2','C3','C4','C5’) ORDERBYSNo,ScoreDESC多關系(表)的數據查詢當查詢同時涉及兩個及兩個以上的表時,稱為連接查詢。連接查詢實際上是通過各個表之間共同字段的關聯性來查詢數據的,這種字段稱為連接字段。多關系(表)的數據查詢表的連接方法有以下兩種:表之間滿足一定條件的行進行連接時,FROM子句指明進行連接的表名,WHERE子句指明連接的列名及其連接條件。利用關鍵字JOIN進行連接:當將JOIN
關鍵詞放于FROM子句中時,應有關鍵詞ON與之對應,以表明連接的條件。關系(表)的連接查詢結構多關系(表)的連接查詢結構JION的分類INNERJOIN顯示符合條件的記錄LEFT(OUTER)JOIN為左(外)連接,用于顯示符合條件的數據行以及左邊表中不符合條件的數據行,此時右邊數據行會以NULL來顯示RIGHT(OUTER)JOIN右(外)連接,用于顯示符合條件的數據行以及右邊表中不符合條件的數據行。此時左邊數據行會以NULL來顯示FULL(OUTER)JOIN顯示符合條件的數據行以及左邊表和右邊表中不符合條件的數據行。此時缺乏數據的數據行會以NULL來顯示CROSSJOIN將一個表的每一個記錄和另一表的每個記錄匹配成新的數據行[例]查詢“劉偉”老師所講授的課程,要求列出教師號、教師姓名和課程號。內連接查詢這里TN='劉偉'為查詢條件,而T.TNo=TC.TNo為連接條件,TNo為連接字段。SELECTT.TNo,TN,CNoFROMT,TCWHERE(T.TNo=TC.TNo)AND(TN='劉偉')方法1內連接查詢方法2SELECTT.TNo,TN,CNoFROMTINNERJOINTCONT.TNo=TC.TNoWHERE(TN='劉偉')內連接查詢[例]查詢所有選課學生的學號、姓名、選課名稱及成績。SELECTS.SNo,SN,CN,ScoreFROMS,C,SCWHERES.SNo=SC.SNoANDSC.CNo=C.CNo符合連接條件的數據將直接返回到結果集中,對那些不符合連接條件的列,將被填上NULL值后再返回到結果集中。外連接查詢外部連接分為左外部連接和右外部連接兩種。以主表所在的方向區分外部連接,主表在左邊,則稱為左外部連接;主表在右邊,則稱為右外部連接。外連接查詢外連接查詢SELECTS.SNo,SN,CN,ScoreFROMSLEFTOUTERJOINSCONS.SNo=SC.SNoLEFTOUTERJOINCONC.CNo=SC.CNo[例]查詢所有學生的學號、姓名、選課名稱及成績(沒有選課的同學的選課信息顯示為空)交叉查詢(CROSSJOIN)對連接查詢的表沒有特殊的要求,任何表都可以進行交叉查詢操作。SELECT*FROMSCROSSJOINC[例]對學生表S和課程表C進行交叉查詢。交叉查詢方法1:SELECTX.TN,X.SalASSal_a,Y.SalASSal_bFROMTASX,TASYWHEREX.Sal>Y.SalANDY.TN='劉偉'自連接查詢[例]查詢所有比“劉偉”工資高的教師姓名、工資和劉偉的工資。方法2:SELECTX.TN,X.Sal,Y.SalFROMTASXINNERJOINTASYONX.Sal>Y.SalANDY.TN='劉偉'子查詢普通子查詢子查詢——普通子查詢返回一個值的普通子查詢[例]查詢與“劉偉”老師職稱相同的教師號、姓名。 SELECTTNo,TN FROMT WHEREProf=(SELECTProf FROMT WHERETN='劉偉')使用比較運算符(=,>,<,>=,<=,!=)子查詢——普通子查詢返回一組值的普通子查詢[例]查詢講授課程號為C5的教師姓名。SELECTTNFROMTWHERE(TNo=ANY(SELECTTNo FROMTC WHERECNo='C5'))SELECTTNFROMT,TCWHERET.TNo=TC.TNoANDTC.CNo='C5'IN——使用ANY子查詢——普通子查詢SELECTTN,SalFROMTWHERESal>(SELECTMIN(Sal)FROMTWHEREDept='計算機')ANDDept<>'計算機'SELECTTN,SalFROMTWHERE(Sal>ANY(SELECTSalFROMTWHEREDept='計算機'))AND(Dept<>'計算機')[例]查詢其他系中比計算機系某一教師工資高的教師的姓名和工資。返回一組值的普通子查詢——使用ANY子查詢——普通子查詢[例]查詢其他系中比計算機系所有教師工資都高的教師的姓名和工資。 SELECTTN,Sal FROMT WHERE(Sal>ALL(SELECTSalFROMT WHEREDept='計算機')) AND(Dept<>'計算機')Sal>( SELECTMAX(Sal)返回一組值的普通子查詢——使用ALL子查詢——相關子查詢相關子查詢的執行順序是:(1)選取父查詢表中的第一行記錄,內部的子查詢利用此行中相關的屬性值進行查詢;(2)父查詢根據子查詢返回的結果判斷此行是否滿足查詢條件。如果滿足條件,則把該行放入父查詢的查詢結果集合中。(3)重復執行這一過程,直到處理完父查詢表中的每一行數據。子查詢——相關子查詢帶有EXISTS的子查詢不返回任何實際數據,它只得到邏輯值“真”或“假”。當子查詢的查詢結果為非空時,外層的WHERE子句返回真值,否則返回假值。NOTEXISTS與此相反。使用EXISTS子查詢——相關子查詢[例]用含有EXISTS的語句查詢講授課程號為C5的教師姓名。SELECTTNFROMTWHEREEXISTS(SELECT* FROMTCWHERETNo=T.TNoANDCNo='C5')子查詢——相關子查詢 SELECTTN FROMT WHERE(NOTEXISTS(SELECT*FROMTCWHERETNo=T.TNoANDCNo='C5’))[例]查詢沒有講授課程號為C5的教師姓名。其他類型查詢合并查詢是使用UNION操作符將來自不同查詢的數據組合起來,形成一個具有綜合信息的查詢結果,UNION操作會自動將重復的數據行剔除。參加合并查詢的各個子查詢使用的表結構應該相同,即各個子查詢中的字段數目和對應的數據類型都必須相同。合并查詢[例]從SC數據表中查詢出學號為“S1”同學的學號和總分,再從SC數據表中查詢出學號為“S5”的同學的學號和總分,然后將兩個查詢結果合并成一個結果集。合并查詢 SELECTSNoAS學號,SUM(Score)AS總分
FROMSC WHERE(SNo='S1') GROUPBYSNo UNION SELECTSNoAS學號,SUM(Score)AS總分
FROMSC WHERE(SNo='S5') GROUPBYSNo使用SELECT…INTO語句可以將查詢結果存儲到一個新建的數據庫表或臨時表中。 SELECTSNoAS學號,SUM(Score)AS總分
INTOCal_Table FROMSC GROUPBYSNo存儲查詢結果到表中[例]從SC數據表中查詢出所有同學的學號和總分,并將查詢結果存放到一個新的數據表Cal_Table中。數據表中數據的操縱[例]在SC表中添加一條選課記錄('S7','C1’)。
INSERTINTOSC(SNo,CNo) VALUES('S7','C1')INSERTINTO添加數據添加一行新記錄INSERTINTO<表名>[(<列名1>[,<列名2>…])]子查詢添加多行記錄添加數據[例]求出各系教師的平均工資,把結果存放在新AvgSal中。首先建立新表AvgSal,用來存放系名和各系的平均工資。CREATETABLEAvgSal(DepartmentVARCHAR(20),AverageSMALLINT)添加數據然后利用子查詢求出T表中各系的平均工資,把結果存放在新表AvgSal中。INSERTINTOAvgSalSELECTDept,AVG(Sal)FROMTGROUPBYDeptUPDATE<表名>SET<列名>=<表達式>[,<列名>=<表達式>]…[WHERE<條件>]UPDATE修改數據[例]把劉偉老師轉到信息系UPDATETSETDept='信息'WHERESN='劉偉'修改數據修改一行修改數據[例]將所有學生的年齡增加1歲。UPDATESSETAge=Age+1[例]把教師表中工資小于或等于1000元的講師的工資提高20%。UPDATETSETSal=1.2*SalWHERE(Prof='講師')AND(Sal<=1000)修改多行
[例]把講授C5課程的教師的崗位津貼增加100元。UPDATETSETComm=Comm+100WHERE(TNoIN(SELECTTNo FROMT,TC WHERET.TNo=TC.TNoANDTC.CNo='C5'))修改數據用子查詢選擇要修改的行[例]把所有教師的工資提高到平均工資的1.2倍。UPDATETSETSal=(SELECT1.2*AVG(Sal) FROMT)修改數據用子查詢提供要修改的值DELETEFROM<表名>[WHERE<條件>]刪除數據刪除一行記錄刪除數據[例]刪除劉偉老師的記錄。DELETEFROMTWHERETN='劉偉'[例]刪除所有教師的授課記錄。DELETEFROMTC刪除數據刪除多行記錄利用子查詢選擇要刪除的行刪除數據
[例]刪除劉偉老師授課的記錄。DELETEFROMTCWHERE(TNo=(SELECTTNo FROMT WHERETN='劉偉'))視圖視圖是一個虛擬表,其內容由查詢定義。同基本表一樣,視圖包含一系列帶有名稱的列和行數據。行和列數據來自定義視圖的查詢所引用的基本表,并且在引用視圖時動態生成。視圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 苗圃施工類管理制度
- 茶藝制作室管理制度
- 《熱愛中國共產黨》課件
- 某童裝品牌戰略咨詢計劃書
- 地理(山東青島卷)(A4考試版)
- 大班音樂歌唱春天幼兒讀物幼兒教育教育專區
- 上海虹口區2024-2025學年下學期七年級期末考試英語試題(含答案無聽力原文及音頻)
- 試劑分析性能評估模板資料講解
- 自動控制系統設計曲面印刷機
- 2025年遼寧省中考英語模擬試題(二)
- 數據安全管理員職業技能競賽考試題庫(含答案)
- 礦山測量工考試試卷及答案
- 女性學:女性精神在現代社會中的挑戰學習通超星期末考試答案章節答案2024年
- 學習貫徹二十屆三中全會精神測試題200(含答案)
- GB/T 17395-2024鋼管尺寸、外形、重量及允許偏差
- DB64-T 1972-2024 風積沙路基填筑(干壓法)施工技術規范
- 農機維修專業技能考試題及答案
- 浪潮集團ERP實施崗在線測評題
- 低溫水電解制氫系統 穩動態及電能質量性能測試方法(征求意見稿)
- 氣象行業天氣預報技能競賽理論試題庫資料(含答案)
- 一把手講安全課件:提升全員安全意識
評論
0/150
提交評論