




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 數(shù)據(jù)庫技術(shù)及應(yīng)用數(shù)據(jù)庫技術(shù)及應(yīng)用DB1第第4章章 SQL Server和和SQL語言語言 本章主要內(nèi)容本章主要內(nèi)容: 認(rèn)識認(rèn)識SQL Server 及其基本使用;及其基本使用; 數(shù)據(jù)庫標(biāo)準(zhǔn)語言數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL及其使用及其使用(建立數(shù)據(jù)庫、查詢數(shù)據(jù)、更新數(shù)據(jù))。(建立數(shù)據(jù)庫、查詢數(shù)據(jù)、更新數(shù)據(jù))。24.1.1 SQL Server2000概述概述 SQL Server 是一個客戶是一個客戶/服務(wù)器關(guān)系型數(shù)據(jù)庫管理服務(wù)器關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。使用系統(tǒng)。使用Transact-SQL在客戶機和在客戶機和SQL Server 之間發(fā)送請求。之間發(fā)送請求。4.1 SQL Server簡介簡介 SQL
2、 Server2000是是Microsoft 公司在公司在2000年推出的年推出的SQL Server數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)。3 (Enterprise Edition) 支持支持SQL Server2000的所有特性,可作為大型的所有特性,可作為大型Web站站點、企業(yè)的數(shù)據(jù)庫服務(wù)器。點、企業(yè)的數(shù)據(jù)庫服務(wù)器。標(biāo)準(zhǔn)標(biāo)準(zhǔn) Edition)用于小型的工作用于小型的工作組或部門。組或部門。4.1.1 SQL Server2000概述概述 SQL Server2000的常用版本有:的常用版本有:4 Personal Edition) 用于單機系統(tǒng)用于單機系統(tǒng)或客戶機?;蚩蛻魴C。 開發(fā)版開發(fā)版(D
3、eveloper Edition):用于程序員:用于程序員開發(fā)應(yīng)用程序開發(fā)應(yīng)用程序 ,需要,需要SQL Server2000作為作為數(shù)據(jù)存儲設(shè)備。數(shù)據(jù)存儲設(shè)備。4.1.1 SQL Server2000概述概述5 SQL Server的軟硬件平臺要求的軟硬件平臺要求:硬件要求硬件要求: 目前的計算機目前的計算機CPU、內(nèi)存和硬盤等都能滿足、內(nèi)存和硬盤等都能滿足SQL Server2000的要求。的要求。軟件要求軟件要求: SQL Server 2000標(biāo)準(zhǔn)版和企業(yè)版標(biāo)準(zhǔn)版和企業(yè)版只能安裝在只能安裝在服務(wù)器版的操作系統(tǒng)中。服務(wù)器版的操作系統(tǒng)中。 Windows 2000和和Windows XP操作
4、系統(tǒng),只操作系統(tǒng),只能安裝能安裝個人版和開發(fā)版?zhèn)€人版和開發(fā)版的的SQL Server 2000。4.1.1 SQL Server2000概述概述64.1.1 SQL Server2000概述概述版本或組件版本或組件操作系統(tǒng)要求操作系統(tǒng)要求企業(yè)版企業(yè)版Windows Server版版標(biāo)準(zhǔn)版標(biāo)準(zhǔn)版Windows Server版版?zhèn)€人版?zhèn)€人版Windows 各個版本各個版本開發(fā)版開發(fā)版Windows Server版版Windows Workstation版版Windows Professional版版客戶端客戶端Windows 各個版本各個版本表表4.1.1 不同版本不同版本SQL Server 2
5、000對操作系統(tǒng)的要求對操作系統(tǒng)的要求74.1.2 SQL Server2000 的主要組件的主要組件 SQL Server2000的安裝:的安裝: 見見“SQL Server 2000安裝安裝”課件課件84.1.2 SQL Server2000 的主要組件的主要組件 SQL Server2000的主要組件的主要組件:SQL Server主要組件主要組件91. 企業(yè)管理器企業(yè)管理器 企業(yè)管理器是最主要的管理工具,可以完成絕大企業(yè)管理器是最主要的管理工具,可以完成絕大部分?jǐn)?shù)據(jù)庫管理工作。主要為:部分?jǐn)?shù)據(jù)庫管理工作。主要為: 注冊和管理注冊和管理SQL Server服務(wù)器服務(wù)器 創(chuàng)建和管理數(shù)據(jù)庫和
6、數(shù)據(jù)庫對象創(chuàng)建和管理數(shù)據(jù)庫和數(shù)據(jù)庫對象 備份和還原數(shù)據(jù)庫和事務(wù)日志備份和還原數(shù)據(jù)庫和事務(wù)日志 設(shè)置任務(wù)調(diào)度、警報和提供服務(wù)器的控制功能設(shè)置任務(wù)調(diào)度、警報和提供服務(wù)器的控制功能 創(chuàng)建與管理用戶賬號和組創(chuàng)建與管理用戶賬號和組4.1.2 SQL Server2000的主要組件的主要組件102. 查詢分析器查詢分析器 查詢分析器是一個圖形化的數(shù)據(jù)庫編程接查詢分析器是一個圖形化的數(shù)據(jù)庫編程接口。通過查詢分析器口。通過查詢分析器 可以輸入和執(zhí)行各種可以輸入和執(zhí)行各種Transact-SQL語句。語句。例如例如:在:在“查詢查詢”窗口中輸入語句:窗口中輸入語句: SELECT 學(xué)號學(xué)號,姓名姓名,性別性別,
7、出生日期出生日期 FROM 學(xué)生學(xué)生 WHERE “班級班級”=計計00-14.1.2 SQL Server2000的主要組件的主要組件114.1.2 SQL Server2000的主要組件的主要組件123. 系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫 SQL Server 2000安裝好后,系統(tǒng)自動創(chuàng)建安裝好后,系統(tǒng)自動創(chuàng)建6個系統(tǒng)數(shù)據(jù)庫。它們存放在個系統(tǒng)數(shù)據(jù)庫。它們存放在Microsoft SQL Server默認(rèn)安裝目錄下的默認(rèn)安裝目錄下的MSSQLData文件文件夾夾中,數(shù)據(jù)庫文件的擴展名為中,數(shù)據(jù)庫文件的擴展名為.mdf,數(shù)據(jù)庫,數(shù)據(jù)庫日志文件的擴展名為日志文件的擴展名為.ldf。4.1.2 SQL Se
8、rver 2000的主要組件的主要組件13(1) Master數(shù)據(jù)庫數(shù)據(jù)庫 Master數(shù)據(jù)庫記錄了數(shù)據(jù)庫記錄了SQL Server系統(tǒng)的所系統(tǒng)的所有信息。這些信息包括所有的登錄信息、有信息。這些信息包括所有的登錄信息、系統(tǒng)設(shè)置信息、系統(tǒng)設(shè)置信息、 SQL Server的初始化信息的初始化信息和其它系統(tǒng)數(shù)據(jù)庫及用戶數(shù)據(jù)庫的相關(guān)信和其它系統(tǒng)數(shù)據(jù)庫及用戶數(shù)據(jù)庫的相關(guān)信息。息。 Master數(shù)據(jù)庫對應(yīng)的主數(shù)據(jù)文件是數(shù)據(jù)庫對應(yīng)的主數(shù)據(jù)文件是Master.mdf,日志文件是,日志文件是Mastlog.ldf。4.1.2 SQL Server2000 的主要組件的主要組件14(2) Model數(shù)據(jù)庫數(shù)據(jù)庫
9、 Model數(shù)據(jù)庫是所有用戶數(shù)據(jù)庫和數(shù)據(jù)庫是所有用戶數(shù)據(jù)庫和Tempdb數(shù)據(jù)庫的模板數(shù)據(jù)庫。數(shù)據(jù)庫的模板數(shù)據(jù)庫。 當(dāng)用戶使用當(dāng)用戶使用CREATE DATABASE命令建立新的命令建立新的數(shù)據(jù)庫時,新數(shù)據(jù)庫的第一部分總是通過復(fù)制數(shù)據(jù)庫時,新數(shù)據(jù)庫的第一部分總是通過復(fù)制Model數(shù)據(jù)庫中的內(nèi)容創(chuàng)建,剩余部分由空頁填數(shù)據(jù)庫中的內(nèi)容創(chuàng)建,剩余部分由空頁填充。充。 Model 數(shù)據(jù)庫對應(yīng)的主數(shù)據(jù)文件是數(shù)據(jù)庫對應(yīng)的主數(shù)據(jù)文件是Model.mdf,日志文件是日志文件是Modellog.ldf。4.1.2 SQL Server2000 的主要組件的主要組件15(3) Msdb數(shù)據(jù)庫數(shù)據(jù)庫 Msdb數(shù)據(jù)庫是數(shù)
10、據(jù)庫是代理數(shù)據(jù)庫代理數(shù)據(jù)庫,主要用于,主要用于SQL Server Agent,為其警報、任務(wù)調(diào)度和記錄為其警報、任務(wù)調(diào)度和記錄操作員的操作提供存儲空間。操作員的操作提供存儲空間。 Msdb數(shù)據(jù)庫對應(yīng)的主數(shù)據(jù)文件是數(shù)據(jù)庫對應(yīng)的主數(shù)據(jù)文件是Msdb.mdf,日志文件是,日志文件是Msdblog.ldf。4.1.2 SQL Server2000 的主要組件的主要組件16(4) Tempdb數(shù)據(jù)庫數(shù)據(jù)庫 是一個臨時數(shù)據(jù)庫。是一個臨時數(shù)據(jù)庫。 Tempdb數(shù)據(jù)庫由整個系統(tǒng)的所有數(shù)據(jù)庫使用。數(shù)據(jù)庫由整個系統(tǒng)的所有數(shù)據(jù)庫使用。它為所有的臨時表、臨時存儲過程及其它臨時操它為所有的臨時表、臨時存儲過程及其它臨
11、時操作提供存儲空間。作提供存儲空間。 SQL Server每次啟動時,每次啟動時, Tempdb 數(shù)據(jù)庫被重新建立。當(dāng)用戶與數(shù)據(jù)庫被重新建立。當(dāng)用戶與SQL Server斷開聯(lián)系時,其臨時表和存儲過程被自動斷開聯(lián)系時,其臨時表和存儲過程被自動刪除。刪除。 對應(yīng)的主數(shù)據(jù)文件是對應(yīng)的主數(shù)據(jù)文件是Tempdb.mdf,日志文件是,日志文件是Templog.ldf。4.1.2 SQL Server2000 的主要組件的主要組件17(5) Pubs數(shù)據(jù)庫和數(shù)據(jù)庫和Northwind數(shù)據(jù)庫數(shù)據(jù)庫 Pubs數(shù)據(jù)庫數(shù)據(jù)庫: 提供一個樣本數(shù)據(jù)庫作為學(xué)習(xí)提供一個樣本數(shù)據(jù)庫作為學(xué)習(xí)工具工具。 Northwind數(shù)據(jù)
12、庫:提供一個樣本數(shù)據(jù)庫作數(shù)據(jù)庫:提供一個樣本數(shù)據(jù)庫作為學(xué)習(xí)工具為學(xué)習(xí)工具。4.1.2 SQL Server2000 的主要組件的主要組件184. SQL Server 服務(wù)管理器服務(wù)管理器 服務(wù)管理器是在服務(wù)器端運行的程序,其界服務(wù)管理器是在服務(wù)器端運行的程序,其界面如圖所示。面如圖所示。4.1.2 SQL Server 2000的主要組件的主要組件服務(wù)管理器用來啟服務(wù)管理器用來啟動、暫停、繼續(xù)和動、暫停、繼續(xù)和停止數(shù)據(jù)庫服務(wù)器停止數(shù)據(jù)庫服務(wù)器的實時服務(wù)。的實時服務(wù)。19 在訪問數(shù)據(jù)庫之前,必須啟動在訪問數(shù)據(jù)庫之前,必須啟動SQL Server數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)。服務(wù)。SQL Server數(shù)據(jù)庫
13、服務(wù)的啟動有兩種方法數(shù)據(jù)庫服務(wù)的啟動有兩種方法: 啟動啟動Windows時自動啟動,可以通過服務(wù)管理器時自動啟動,可以通過服務(wù)管理器進(jìn)行設(shè)置。進(jìn)行設(shè)置。 通過通過“開始開始Microsoft SQL Server服務(wù)管理器服務(wù)管理器”進(jìn)行啟動。進(jìn)行啟動。4.1.2 SQL Server 2000的主要組件的主要組件204.1.3 創(chuàng)建數(shù)據(jù)庫和基本表創(chuàng)建數(shù)據(jù)庫和基本表1. 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫要創(chuàng)建數(shù)據(jù)庫必須擁有創(chuàng)建數(shù)據(jù)庫的權(quán)限。要創(chuàng)建數(shù)據(jù)庫必須擁有創(chuàng)建數(shù)據(jù)庫的權(quán)限。在初始情況下,只有系統(tǒng)管理員可以創(chuàng)建數(shù)在初始情況下,只有系統(tǒng)管理員可以創(chuàng)建數(shù)據(jù)庫。在數(shù)據(jù)庫創(chuàng)建完成后,它的創(chuàng)建者自據(jù)庫。在數(shù)據(jù)庫創(chuàng)
14、建完成后,它的創(chuàng)建者自動成為其所有者。動成為其所有者。214.1.3 創(chuàng)建數(shù)據(jù)庫和基本表創(chuàng)建數(shù)據(jù)庫和基本表創(chuàng)建數(shù)據(jù)庫的工作主要是創(chuàng)建數(shù)據(jù)庫的工作主要是: 確定數(shù)據(jù)庫名稱;確定數(shù)據(jù)庫名稱; 確定數(shù)據(jù)文件的名稱、存放位置和增長信確定數(shù)據(jù)文件的名稱、存放位置和增長信息等;息等; 確定事務(wù)日志文件名稱、存放位置和增長確定事務(wù)日志文件名稱、存放位置和增長信息等。信息等。22創(chuàng)建數(shù)據(jù)庫方法有三種創(chuàng)建數(shù)據(jù)庫方法有三種: 使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫;使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫; 使用使用Transact-SQL語言創(chuàng)建語言創(chuàng)建; 使用向?qū)?chuàng)建數(shù)據(jù)庫(略講)。使用向?qū)?chuàng)建數(shù)據(jù)庫(略講)。4.1.3 創(chuàng)建數(shù)據(jù)庫和基本
15、表創(chuàng)建數(shù)據(jù)庫和基本表本節(jié)介紹使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫。本節(jié)介紹使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫。23使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(電腦操作演示,建立電腦操作演示,建立student數(shù)據(jù)庫數(shù)據(jù)庫)如下圖如下圖4.1.3 創(chuàng)建數(shù)據(jù)庫和基本表創(chuàng)建數(shù)據(jù)庫和基本表2425 每個數(shù)據(jù)庫最多可創(chuàng)建每個數(shù)據(jù)庫最多可創(chuàng)建200萬個基本表,用萬個基本表,用戶創(chuàng)建基本表時,最多可以定義戶創(chuàng)建基本表時,最多可以定義1024個字個字段。段。 有兩種方法創(chuàng)建基本表:有兩種方法創(chuàng)建基本表: a. 使用使用Transact-SQL創(chuàng)建基本表;創(chuàng)建基本表; b. 使用企業(yè)管理器創(chuàng)建基本表。使用企業(yè)管理器創(chuàng)建基本表。
16、2. 創(chuàng)建基本表創(chuàng)建基本表 本節(jié)介紹使用企業(yè)管理器創(chuàng)建基本表。本節(jié)介紹使用企業(yè)管理器創(chuàng)建基本表。4.1.3 創(chuàng)建數(shù)據(jù)庫和基本表創(chuàng)建數(shù)據(jù)庫和基本表26 創(chuàng)建基本表的主要工作:創(chuàng)建基本表的主要工作: 確定基本表名;確定基本表名; 確定每個字段的名稱、數(shù)據(jù)類型、字段確定每個字段的名稱、數(shù)據(jù)類型、字段寬度、是否可為空等;寬度、是否可為空等; 確定每個表的主鍵。確定每個表的主鍵。(1)數(shù)據(jù)類型數(shù)據(jù)類型常用數(shù)據(jù)類型見下表所示。常用數(shù)據(jù)類型見下表所示。4.1.3 創(chuàng)建數(shù)據(jù)庫和基本表創(chuàng)建數(shù)據(jù)庫和基本表27數(shù)據(jù)類型數(shù)據(jù)類型說明說明數(shù)據(jù)類型數(shù)據(jù)類型說明說明Bit二進(jìn)制位類型二進(jìn)制位類型Money貨幣類型貨幣類型T
17、inyint無符號單字節(jié)整型無符號單字節(jié)整型Datetime日期日期/時間型時間型Smallint短整型短整型,2個字節(jié)個字節(jié)ImageOLE對象對象Int長整型長整型,4個字節(jié)個字節(jié)Varchar(n)最長為最長為n的可變長文的可變長文本類型本類型Bigint大整型大整型,8個字節(jié)個字節(jié)Text(n)長為長為n的可變長文本的可變長文本類型類型,長度最大長度最大231-1Decimal,Numeric數(shù)值類型數(shù)值類型(固定精固定精度和小數(shù)位度和小數(shù)位)Char(n),固定長度為固定長度為n的文的文本類型本類型Real單精度浮點型單精度浮點型,4字節(jié)字節(jié)Binary二進(jìn)制類型二進(jìn)制類型float
18、雙精度浮點型雙精度浮點型,8字節(jié)字節(jié)VarBinary可變長二進(jìn)制類型可變長二進(jìn)制類型表表4.1.2 常用的數(shù)據(jù)類型常用的數(shù)據(jù)類型28(2) 在企業(yè)管理器中創(chuàng)建基本表在企業(yè)管理器中創(chuàng)建基本表 選定數(shù)據(jù)庫,在其下選定數(shù)據(jù)庫,在其下“表表”項上打開快捷項上打開快捷菜單菜單(如下圖如下圖), 選擇選擇“新建表新建表”菜單命令,菜單命令,進(jìn)入其編輯器。進(jìn)入其編輯器。如圖所示如圖所示. .4.1.3 創(chuàng)建數(shù)據(jù)庫和基本表創(chuàng)建數(shù)據(jù)庫和基本表29三、三、 創(chuàng)建基本表創(chuàng)建基本表304.1.4 管理數(shù)據(jù)庫和基本表管理數(shù)據(jù)庫和基本表1. 刪除數(shù)據(jù)庫和基本表刪除數(shù)據(jù)庫和基本表 選擇要刪除的數(shù)據(jù)庫或表,按鍵盤上的選擇要
19、刪除的數(shù)據(jù)庫或表,按鍵盤上的“刪除刪除”鍵,或打開快捷菜單,選擇鍵,或打開快捷菜單,選擇“刪刪除除”菜單命令即可。(電腦操作演示)菜單命令即可。(電腦操作演示)2. 修改數(shù)據(jù)庫和基本表結(jié)構(gòu)修改數(shù)據(jù)庫和基本表結(jié)構(gòu)(電腦操作演示)見下頁圖。(電腦操作演示)見下頁圖。314.1.4 管理數(shù)據(jù)庫和基本表管理數(shù)據(jù)庫和基本表“設(shè)計表設(shè)計表”項項是修改表結(jié)構(gòu)是修改表結(jié)構(gòu)“打開表打開表”項是項是瀏覽表數(shù)據(jù)瀏覽表數(shù)據(jù)323. 備份和恢復(fù)數(shù)據(jù)庫備份和恢復(fù)數(shù)據(jù)庫(1) 備份數(shù)據(jù)庫:備份數(shù)據(jù)庫:為數(shù)據(jù)庫建立備份,以便為數(shù)據(jù)庫建立備份,以便數(shù)據(jù)庫發(fā)生故障后,用備份恢復(fù)數(shù)據(jù)庫數(shù)據(jù)庫發(fā)生故障后,用備份恢復(fù)數(shù)據(jù)庫。 選擇要備
20、份的數(shù)據(jù)庫選擇要備份的數(shù)據(jù)庫,然后,然后,方法方法1:打開快捷菜單,選擇:打開快捷菜單,選擇“所有任務(wù)所有任務(wù)”菜單項,再選擇菜單項,再選擇“備份數(shù)據(jù)庫備份數(shù)據(jù)庫” 菜單命菜單命令。令。方法方法2:選擇選擇“工具工具/備份數(shù)據(jù)庫備份數(shù)據(jù)庫”菜單命令。菜單命令。(2) 恢復(fù)數(shù)據(jù)庫:恢復(fù)數(shù)據(jù)庫:(電腦操作演示)(電腦操作演示)4.1.4 管理數(shù)據(jù)庫和基本表管理數(shù)據(jù)庫和基本表334.1.4 管理數(shù)據(jù)庫和基本表管理數(shù)據(jù)庫和基本表344. 導(dǎo)入和導(dǎo)出數(shù)據(jù)導(dǎo)入和導(dǎo)出數(shù)據(jù) 數(shù)據(jù)的導(dǎo)入和導(dǎo)出數(shù)據(jù)的導(dǎo)入和導(dǎo)出指將其他指將其他SQL Server服服務(wù)器上數(shù)據(jù)庫或其他數(shù)據(jù)源數(shù)據(jù)務(wù)器上數(shù)據(jù)庫或其他數(shù)據(jù)源數(shù)據(jù)(如如E
21、xcel工工作表作表)導(dǎo)入到本地導(dǎo)入到本地SQL Server服務(wù)器上的數(shù)服務(wù)器上的數(shù)據(jù)庫中據(jù)庫中,或反之?;蚍粗?。 數(shù)據(jù)的導(dǎo)入和導(dǎo)出數(shù)據(jù)的導(dǎo)入和導(dǎo)出利用利用SQL Server提供的提供的數(shù)據(jù)轉(zhuǎn)換服務(wù)數(shù)據(jù)轉(zhuǎn)換服務(wù)DTS來完成。來完成。 例如例如:將教學(xué)數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出到:將教學(xué)數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出到Excel表格表格中中 (電腦操作演示電腦操作演示)。4.1.4 管理數(shù)據(jù)庫和基本表管理數(shù)據(jù)庫和基本表354.1.4 管理數(shù)據(jù)庫和基本表管理數(shù)據(jù)庫和基本表364.1.4 管理數(shù)據(jù)庫和基本表管理數(shù)據(jù)庫和基本表 374.1.4 管理數(shù)據(jù)庫和基本表管理數(shù)據(jù)庫和基本表 384.1.4 管理數(shù)據(jù)庫和基本表管理數(shù)據(jù)庫
22、和基本表394.2 SQL語言語言 SQL是是Structured Query Language的縮寫的縮寫, 它是它是1974年由年由Boyce和和Chamberlin提出的,提出的,并在并在IBM公司公司San Jose 實驗室研制的關(guān)系數(shù)實驗室研制的關(guān)系數(shù)據(jù)庫實驗系統(tǒng)據(jù)庫實驗系統(tǒng)SYSTEM R上實現(xiàn)。上實現(xiàn)。 由于由于SQL功能豐富、語言簡潔、易學(xué)易用,功能豐富、語言簡潔、易學(xué)易用,很受用戶歡迎。為此,很受用戶歡迎。為此,80年代,計算機商家年代,計算機商家們紛紛推出各自支持們紛紛推出各自支持SQL的軟件或者與的軟件或者與SQL的接口軟件?,F(xiàn)在的接口軟件?,F(xiàn)在SQL已是世界上最廣泛使已
23、是世界上最廣泛使用的數(shù)據(jù)庫語言。用的數(shù)據(jù)庫語言。404.2 SQL語言語言 SQL語言由語言由三部分組成,包括三部分組成,包括數(shù)據(jù)定義語言數(shù)據(jù)定義語言DDL、數(shù)據(jù)操作語言數(shù)據(jù)操作語言DML、數(shù)據(jù)控制語言、數(shù)據(jù)控制語言DCL。也就是。也就是SQL語言具有數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和語言具有數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能。其中最重要的是數(shù)據(jù)查詢功能。數(shù)據(jù)控制功能。其中最重要的是數(shù)據(jù)查詢功能。 SQL語言是一種非過程化的語言語言是一種非過程化的語言。用。用SQL語句解語句解決一個問題時,用戶只需要告訴系統(tǒng)要干什么就決一個問題時,用戶只需要告訴系統(tǒng)要干什么就可以了,實現(xiàn)過程是由系統(tǒng)自動完
24、成的。另外,可以了,實現(xiàn)過程是由系統(tǒng)自動完成的。另外,SQL語言還具有面向集合操作,語法簡單,易學(xué)語言還具有面向集合操作,語法簡單,易學(xué)易用等特點。易用等特點。41分類分類命令動詞命令動詞功能功能數(shù)據(jù)查詢數(shù)據(jù)查詢SELECT查詢數(shù)據(jù)查詢數(shù)據(jù)數(shù)據(jù)定義數(shù)據(jù)定義CREATE建立基本表、視圖等建立基本表、視圖等DROP建立基本表、視圖等建立基本表、視圖等ALTER修改基本表、視圖等修改基本表、視圖等數(shù)據(jù)操縱數(shù)據(jù)操縱INSERT插入記錄插入記錄UPDATE修改記錄修改記錄DELETE刪除記錄刪除記錄數(shù)據(jù)控制數(shù)據(jù)控制GRANT授權(quán)授權(quán)REVOKE回收權(quán)限回收權(quán)限表表4.2.1 常用的常用的SQL命令命令4
25、.2 SQL語言語言424.2.1 數(shù)據(jù)定義數(shù)據(jù)定義 SQL的數(shù)據(jù)定義功能主要包括三部分:基的數(shù)據(jù)定義功能主要包括三部分:基本表的定義、視圖的定義和索引的定義。本表的定義、視圖的定義和索引的定義。431. CREATE TABLE 語句語句表定義表定義CREATE TABLE 表名表名(列名列名1 數(shù)據(jù)類型數(shù)據(jù)類型 列級完整性約束條件列級完整性約束條件 ,列名,列名2 數(shù)據(jù)類型數(shù)據(jù)類型 列級完整性約束條件列級完整性約束條件 ,表級完整性約束條件,表級完整性約束條件 )定義表時,要給出,構(gòu)成表的每個字段名及其數(shù)據(jù)類型和長度。主碼、參照完整性定義、用戶定義完整性。4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義44例
26、例:建立學(xué)生教學(xué)數(shù)據(jù)庫的:建立學(xué)生教學(xué)數(shù)據(jù)庫的3個表。個表。S(Sno,Sname,Ssex,Sage,Sdept)SC(Sno,Cno,Grade)(僅以此表舉例)(僅以此表舉例)C(Cno,Cname,Pcno,Credit)4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義45CREATE TABLE SC(Sno CHAR(6) NOT NULL, Cno CHAR(6) NOT NULL, Grade Smallint CHECK(Grade BETWEEN 0 AND 100) , CONSTRAINT pk PRIMARY KEY(Sno, Cno), FOREIGN KEY(Sno) REFEREN
27、CES S(Sno), FOREIGN KEY(Cno) REFERENCES C(Cno) )4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義46說明:說明:(1)字段級完整性約束字段級完整性約束 NOT NULL(不允許取空值不允許取空值) 和和NULL(允許取空值允許取空值) PRIMARY KEY (聲明字段為主鍵聲明字段為主鍵) UNIQUE(唯一性約束唯一性約束, 字段取值不能重復(fù)字段取值不能重復(fù)) FOREIGN KEY: 參照完整性的外鍵約束。參照完整性的外鍵約束。DEFAULT :為字段指定默認(rèn)值。:為字段指定默認(rèn)值。CHECK子句子句:實現(xiàn)字段級用戶定義約束。:實現(xiàn)字段級用戶定義約束。4.2.
28、1 數(shù)據(jù)定義數(shù)據(jù)定義47(2)表級完整性約束表級完整性約束 PRIMARY KEY (聲明字段為主鍵聲明字段為主鍵) FOREIGN KEY: :參照完整性的外鍵約束。參照完整性的外鍵約束。 CHECK子句:實現(xiàn)用戶定義完整性約束。子句:實現(xiàn)用戶定義完整性約束。4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義48CREATE TABLE SC(Sno CHAR(6) NOT NULL FOREIGN KEY REFERENCES S(Sno), Cno CHAR(6) NOT NULL, Grade Smallint default 0,CONSTRAINT k1 CHECK(Grade BETWEEN 0 AN
29、D 100) ,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Cno) REFERENCES C(Cno) )注注:完整性約束可以使用:完整性約束可以使用CONSTRAINT關(guān)鍵關(guān)鍵字命名。否則系統(tǒng)將自動為每個約束命名。字命名。否則系統(tǒng)將自動為每個約束命名。4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義492. ALTER TABLE語句語句表的修改表的修改ALTER TABLE 表名表名 ADD 新列名新列名 數(shù)據(jù)類型數(shù)據(jù)類型 完整性約束完整性約束 DROP 完整性約束名完整性約束名 DROP COLUMN 列名列名 ALTER COLUMN 列名列名 數(shù)據(jù)類型數(shù)據(jù)類型新增的屬性不能定義為
30、新增的屬性不能定義為“NOT NULL”NOT NULL”因為因為關(guān)系的原來元組在新列上的值取空值。關(guān)系的原來元組在新列上的值取空值。4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義50例例1:向:向”學(xué)生學(xué)生”表增加表增加“入學(xué)時間入學(xué)時間”字段,字段,其數(shù)據(jù)類型為日期型;將其數(shù)據(jù)類型為日期型;將“出生日期出生日期”的的數(shù)據(jù)類型改為數(shù)據(jù)類型改為“日期型日期型”;刪除;刪除“所屬系所屬系”字段字段 。ALTER TABLE 學(xué)生學(xué)生 ADD 入學(xué)時間入學(xué)時間 DatetimeALTER TABLE 學(xué)生學(xué)生 ALTER COLUMN 出生日期出生日期 DatetimeALTER TABLE 學(xué)生學(xué)生 DROP C
31、OLUMN 所屬系所屬系4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義513. DROP TABLE語句語句刪除基本表刪除基本表當(dāng)某個表不再需要時,可以刪除。當(dāng)某個表不再需要時,可以刪除。 一般格式:一般格式: DROP TABLE 表名表名例:例: DROP TABLE S 4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義524. 建立索引建立索引 當(dāng)數(shù)據(jù)表中記錄很多時,查詢速度成為當(dāng)數(shù)據(jù)表中記錄很多時,查詢速度成為一個突出的問題。若要提高查詢速度,可一個突出的問題。若要提高查詢速度,可以在涉及的字段上建立索引。以在涉及的字段上建立索引。 建立索引建立索引使用使用CREATE命令。命令。語法格式為語法格式為: CREATE UN
32、IQUE CLUSTER INDEX ON , 4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義53 說明:說明: 若查詢中涉及到索引字段時,系統(tǒng)會自動選擇合適若查詢中涉及到索引字段時,系統(tǒng)會自動選擇合適的索引,大大提高查詢速度。的索引,大大提高查詢速度。 索引一經(jīng)建立,就由系統(tǒng)使用和維護它,不需要用索引一經(jīng)建立,就由系統(tǒng)使用和維護它,不需要用戶干預(yù)。當(dāng)增加、修改、刪除數(shù)據(jù)表中記錄時,系戶干預(yù)。當(dāng)增加、修改、刪除數(shù)據(jù)表中記錄時,系統(tǒng)會自動維護索引。統(tǒng)會自動維護索引。 維護索引需要花費一些時間,故建立多少索引,需維護索引需要花費一些時間,故建立多少索引,需要權(quán)衡后處理。要權(quán)衡后處理。 UNIQUE:每一個索引值只對
33、應(yīng)惟一的數(shù)據(jù)記錄。:每一個索引值只對應(yīng)惟一的數(shù)據(jù)記錄。4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義54 CLUSTER:建立的索引是聚簇索引。所謂聚簇:建立的索引是聚簇索引。所謂聚簇索引是指索引項的順序與表中記錄的物理順序一索引是指索引項的順序與表中記錄的物理順序一致的索引組織。在一個表上只能建立聚簇索引,致的索引組織。在一個表上只能建立聚簇索引,因此應(yīng)在最常查詢的列上建立聚簇索引以提高查因此應(yīng)在最常查詢的列上建立聚簇索引以提高查詢效率。詢效率。 次序是指次序是指ASC或或DESC,默認(rèn)值為,默認(rèn)值為ASC。5刪除索引刪除索引 DROP INDEX 4.2.1 數(shù)據(jù)定義數(shù)據(jù)定義55說明:說明:1一個一個SEL
34、ECT語句可由五個子句組成,但只有語句可由五個子句組成,但只有前兩個子句是必不可少的,其它子句可以缺省。前兩個子句是必不可少的,其它子句可以缺省。4.2.2 SQL查詢查詢SELECT ALL|DISTINCT 目標(biāo)列表目標(biāo)列表FROM 表名表名1 ,表名,表名2 WHERE 條件表達(dá)式條件表達(dá)式1 GROUP BY 列名列名1 HAVING 條件表達(dá)式條件表達(dá)式2 ORDER BY 列名列名2 ASC | DESC ;562SELECT子句告訴系統(tǒng)查找什么數(shù)據(jù)。子句告訴系統(tǒng)查找什么數(shù)據(jù)。所要的數(shù)據(jù)可以是表的屬性、表達(dá)式或常所要的數(shù)據(jù)可以是表的屬性、表達(dá)式或常量。量。3FROM子句告訴系統(tǒng)從哪
35、里查找數(shù)據(jù)。子句告訴系統(tǒng)從哪里查找數(shù)據(jù)。即給出查詢涉及的一個或多個表即給出查詢涉及的一個或多個表(基本表基本表, 視圖視圖, 查詢表查詢表)。4WHERE子句給出查詢條件。只有滿足子句給出查詢條件。只有滿足條件的元組才是查詢所要的。條件的元組才是查詢所要的。4.2.2 SQL查詢查詢575GROUP BY子句用于分組查詢,它將結(jié)果按子句用于分組查詢,它將結(jié)果按的值進(jìn)行分組,每組的元組在該屬性列的值進(jìn)行分組,每組的元組在該屬性列上值相等。上值相等。 HAVING短語用來指定組應(yīng)該滿足的條件,只短語用來指定組應(yīng)該滿足的條件,只有滿足條件的組才予輸出。每組的數(shù)據(jù)作為查有滿足條件的組才予輸出。每組的數(shù)
36、據(jù)作為查詢結(jié)果的一行,有多少組,查詢結(jié)果表就有多詢結(jié)果的一行,有多少組,查詢結(jié)果表就有多少行。少行。6如果有如果有ORDER子句,則結(jié)果表還要按子句,則結(jié)果表還要按的值的升序或降序排序。的值的升序或降序排序。 4.2.2 SQL查詢查詢58以以教學(xué)數(shù)據(jù)庫教學(xué)數(shù)據(jù)庫為例介紹該命令的應(yīng)用。為例介紹該命令的應(yīng)用。學(xué)生學(xué)生 (學(xué)號學(xué)號,姓名姓名,性別性別, 出生日期出生日期, 班級班級, 所屬系所屬系, )課程課程 (課號課號,課名課名,學(xué)分學(xué)分,學(xué)時學(xué)時, 開課系開課系)選課選課 (學(xué)號學(xué)號, 課號課號, 成績成績, )4.2.2 SQL查詢查詢591. 選擇記錄選擇記錄例例1 查詢年齡為空值的學(xué)生
37、信息查詢年齡為空值的學(xué)生信息。例例2 查詢在查詢在19781983年之間出生的學(xué)生信息年之間出生的學(xué)生信息(不在不在之間之間) SELECT * FROM 學(xué)生學(xué)生 WHERE YEAR(出生日期出生日期) BETWEEN 1978 AND 1982SELECT * FROM 學(xué)生學(xué)生 WHERE YEAR(GETDATE()-YEAR(出生日期出生日期) IS NULLGetdate(): 系統(tǒng)函數(shù),返回系統(tǒng)當(dāng)前日期。系統(tǒng)函數(shù),返回系統(tǒng)當(dāng)前日期。YEAR(日期日期):系統(tǒng)函數(shù),返回:系統(tǒng)函數(shù),返回“日期日期”中的年份。中的年份。602. 選擇字段選擇字段例例3 查詢選修了查詢選修了001課且
38、有成績的學(xué)生學(xué)號。課且有成績的學(xué)生學(xué)號。SELECT 學(xué)號學(xué)號 FROM 選課選課 WHERE 課號課號=001 And 成績成績 IS NOT NULL例例4 查詢有不及格成績的學(xué)生學(xué)號。查詢有不及格成績的學(xué)生學(xué)號。SELECT DISTINCT 學(xué)號學(xué)號 FROM 選課選課 WHERE 成績成績 20 ORDER BY 學(xué)號學(xué)號 例例8 查詢學(xué)生選課信息,將結(jié)果按學(xué)號升序排列,查詢學(xué)生選課信息,將結(jié)果按學(xué)號升序排列,學(xué)號相同時再按照成績降序排列顯示。學(xué)號相同時再按照成績降序排列顯示。SELECT * FROM 選課選課ORDER BY 學(xué)號學(xué)號, 成績成績 DESC63 合計函數(shù)合計函數(shù)
39、SELECT子句中的目標(biāo)列可以是合計子句中的目標(biāo)列可以是合計函數(shù),用于數(shù)據(jù)函數(shù),用于數(shù)據(jù)統(tǒng)計工作,統(tǒng)計工作,主要有:主要有: COUNT(*) 計算元組個數(shù)計算元組個數(shù) COUNT(DISTINCT | ALL ) 計算一列中值的個數(shù)計算一列中值的個數(shù) SUM(DISTINCT | ALL ) 計算一列值的總和計算一列值的總和 AVG(DISTINCT | ALL ) 計算一列值的平均值計算一列值的平均值 MAX() 求一列值中的最大值求一列值中的最大值 MIN() 求一列值中的最小值求一列值中的最小值 4. 分組分組64例例9 查詢選修了課程的學(xué)生人數(shù)。查詢選修了課程的學(xué)生人數(shù)。 SELEC
40、T COUNT( DISTINCT 學(xué)號學(xué)號) FROM 選課選課 例例10 查詢選查詢選002課的學(xué)生人數(shù)以及該課的課的學(xué)生人數(shù)以及該課的最高、最低成績、平均成績。最高、最低成績、平均成績。SELECT COUNT( *) AS 人數(shù)人數(shù), MAX(成績成績) AS最高成績最高成績, MIN(成績成績) AS 最低成績最低成績, AVG(成績成績) AS 平均成績平均成績 FROM 選課選課WHERE 課號課號=00024. 分組分組65實際中我們常常會遇到這樣的查詢要求,如實際中我們常常會遇到這樣的查詢要求,如“查詢每個部門的工資總和、平均工資和職查詢每個部門的工資總和、平均工資和職工總數(shù)
41、工總數(shù)”等等。對這類查詢,我們可以使用等等。對這類查詢,我們可以使用GROUP BY分組子句,按分組子句,按“部門部門”分組,同分組,同一部門的職工在一組,求出各部門的統(tǒng)計值。一部門的職工在一組,求出各部門的統(tǒng)計值。例例11 計算各系年齡大于計算各系年齡大于22歲的學(xué)生的人數(shù)。歲的學(xué)生的人數(shù)。SELECT 所屬系所屬系, COUNT(*) AS 人數(shù)人數(shù) FROM 學(xué)生學(xué)生 WHERE YEAR(GETDATE()- YEAR(出生日期出生日期)=22GROUP BY 所屬系所屬系4. 分組分組66例例1 12 找出學(xué)生人數(shù)不足找出學(xué)生人數(shù)不足10人的系及其相應(yīng)人的系及其相應(yīng)的總?cè)藬?shù)。的總?cè)藬?shù)
42、。 SELECT 所屬系,所屬系,COUNT(*) AS 人數(shù)人數(shù) FROM 學(xué)生學(xué)生 GROUP BY 所屬系所屬系 HAVING COUNT(*)=34. 分組分組67當(dāng)查詢涉及兩個或兩個以上的表時,要用連當(dāng)查詢涉及兩個或兩個以上的表時,要用連接查詢。連接分為內(nèi)連接和外連接。接查詢。連接分為內(nèi)連接和外連接。5. 連接查詢連接查詢例例1 14 查詢選修查詢選修0002課成績?yōu)檎n成績?yōu)?0分以上的學(xué)生的分以上的學(xué)生的學(xué)號和姓名。學(xué)號和姓名。SELECT 學(xué)生學(xué)生.學(xué)號學(xué)號, 姓名姓名FROM 學(xué)生學(xué)生 WHERE 學(xué)生學(xué)生.學(xué)號學(xué)號=選課選課 .學(xué)號學(xué)號 AND 選課選課 .課號課號=0002
43、 AND 成績成績=9068例例1 15 查詢至少選修了查詢至少選修了0001、0002兩門課兩門課的學(xué)生學(xué)號。的學(xué)生學(xué)號。FROM 選課選課 AS SC1 , 選課選課 AS SC2 WHERE SC1.學(xué)號學(xué)號=SC2.學(xué)號學(xué)號 AND SC1.課號課號=0001 AND SC2.課號課號=0002注意注意:自身連接時,要為表起別名。:自身連接時,要為表起別名。ASAS可省可省寫。寫。5. 連接查詢連接查詢694.2.3 數(shù)據(jù)更新語句數(shù)據(jù)更新語句 SQL中數(shù)據(jù)更新包括中數(shù)據(jù)更新包括插入數(shù)據(jù)插入數(shù)據(jù)、修改數(shù)修改數(shù)據(jù)據(jù)和和刪除數(shù)據(jù)刪除數(shù)據(jù)三條語句。與查詢語句三條語句。與查詢語句SELECT不同,數(shù)據(jù)更新語句一次只能不同,數(shù)據(jù)更新語句一次只能對一個表中數(shù)據(jù)進(jìn)行更新操作。對一個表中數(shù)據(jù)進(jìn)行更新操作。701.1.插入數(shù)據(jù)(插入數(shù)據(jù)(INSERT)有兩種格式:有兩種格式:格式格式1:INSERT INTO 表名表名(字段字段1 1,字段,字段2)2)VALUES ( (常量常量1 1,常量,常量2)2) 格式格式2:INSERT INTO 表名表名(字段字段1 1,字段,字段2)2) 子查詢子查詢4.2.3 數(shù)據(jù)更新語句數(shù)據(jù)更新語句71例例16 將將計計00-2班所有學(xué)生選修班所有學(xué)生選修“0001”課信息插入選課表。課信息插入選課表。 ( (對于必修課,一
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度勞動合同期限與績效考核結(jié)果關(guān)聯(lián)合同
- 二零二五年度合同解除后債務(wù)重組協(xié)議
- 二零二五年度咖啡連鎖店加盟經(jīng)營合同
- 2025年度餐飲行業(yè)跨界投資入股合同
- 二零二五大連市土地租賃與共同投資合同
- 2025年度知識產(chǎn)權(quán)法律事務(wù)全面咨詢服務(wù)合同
- 2025年度甲方認(rèn)可乙方為轉(zhuǎn)租方的合作合同協(xié)議
- 二零二五年度高科技園區(qū)經(jīng)營場地租賃合同
- 臨聘人員2025年度勞動合同模板定制與解析
- 2025年度玉米種植基地建設(shè)與收購合作合同
- 【課件】學(xué)校后勤管理工作
- 2025-2030年中國聚丙烯酰胺(PAM)市場發(fā)展?fàn)顩r及未來投資戰(zhàn)略決策報告新版
- 2025年上海市租房合同標(biāo)準(zhǔn)樣本(2篇)
- 課題申報書:產(chǎn)教融合背景下護理專業(yè)技能人才“崗課賽證”融通路徑研究
- 《新媒體概論》課件
- EMS能源管理系統(tǒng)V1.4.0用戶需求說明書V1.0-20160916
- 《工業(yè)機器人現(xiàn)場編程》課件-任務(wù)3.1 涂膠機器人工作站工程現(xiàn)場
- 《綠色低碳鋁評價導(dǎo)則及追溯指南》T CNIA 0245-2024
- 兒童之家工作計劃
- 金屬非金屬礦山安全生產(chǎn)法規(guī)
- 車裝鉆機 編制說明
評論
0/150
提交評論