




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第第4 4章章 關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言SQLSQL2v教學(xué)內(nèi)容:教學(xué)內(nèi)容:SQL語(yǔ)言的特點(diǎn)、SQL語(yǔ)言的數(shù)據(jù)類(lèi)型、 SQL語(yǔ)言(定義、操縱、查詢(xún)、控制、嵌入SQL語(yǔ)言)。v教學(xué)要求:教學(xué)要求:1、理解SQL語(yǔ)言的特點(diǎn)、功能和使用方法,SQL Server的數(shù)據(jù)類(lèi)型。2、掌握數(shù)據(jù)定義、操縱、查詢(xún)語(yǔ)言;視圖的定義和操作、基本SQL語(yǔ)句的使用;存儲(chǔ)過(guò)程和觸發(fā)器的使用3、了解嵌入式SQL和動(dòng)態(tài)SQL技術(shù)、規(guī)則的使用。v重重 點(diǎn):點(diǎn):SQL的查詢(xún)、定義、操縱功能;存儲(chǔ)過(guò)程和觸發(fā)器的使用。v難點(diǎn):難點(diǎn):SQL的查詢(xún)功能、定義功能、操縱功能。34.1 SQL Server 概述2022-5-83 S
2、QL Server是一個(gè)高性能的、多用戶(hù)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由于它強(qiáng)大、靈活的功能,豐富的應(yīng)用編程接口及精巧的系統(tǒng)結(jié)構(gòu),深受廣大用戶(hù)的青睞。它是當(dāng)前最流行的數(shù)據(jù)庫(kù)服務(wù)器系統(tǒng)之一。4v19961996年,年,MicrosoftMicrosoft推出了推出了SQL Server 6.5SQL Server 6.5版本;版本;v19981998年,年,SQL Server 7.0SQL Server 7.0版本和用戶(hù)見(jiàn)面;版本和用戶(hù)見(jiàn)面;v20002000年,年,MicrosoftMicrosoft公司增強(qiáng)了公司增強(qiáng)了SQL Server 7.0SQL Server 7.0的的功能,發(fā)布了功能,
3、發(fā)布了SQL Server 2000SQL Server 2000,包括企業(yè)版、標(biāo),包括企業(yè)版、標(biāo)準(zhǔn)版、開(kāi)發(fā)版和個(gè)人版等準(zhǔn)版、開(kāi)發(fā)版和個(gè)人版等4 4個(gè)版本。個(gè)版本。v20052005年,年,MicrosoftMicrosoft公司又推出了公司又推出了SQL Server 2005SQL Server 2005,提供了一個(gè)完整的數(shù)據(jù)管理和分析解決方案,給不提供了一個(gè)完整的數(shù)據(jù)管理和分析解決方案,給不同需求的組織和個(gè)人帶來(lái)幫助。同需求的組織和個(gè)人帶來(lái)幫助。v20082008年,年,SQL Server 2008SQL Server 2008面世。面世。52022-5-85SQL Server200
4、8 的各種版本版版 本本描描 述述使用場(chǎng)所使用場(chǎng)所企業(yè)版企業(yè)版Enterprise Edition一個(gè)全面的數(shù)據(jù)管理和商業(yè)智能一個(gè)全面的數(shù)據(jù)管理和商業(yè)智能平臺(tái),提供企業(yè)級(jí)的可擴(kuò)展性、平臺(tái),提供企業(yè)級(jí)的可擴(kuò)展性、高可用性和高安全性以運(yùn)行企業(yè)高可用性和高安全性以運(yùn)行企業(yè)關(guān)鍵業(yè)務(wù)應(yīng)用關(guān)鍵業(yè)務(wù)應(yīng)用 大規(guī)模大規(guī)模OLTP 大規(guī)模報(bào)表大規(guī)模報(bào)表 先進(jìn)的分析先進(jìn)的分析 數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)倉(cāng)庫(kù) 標(biāo)準(zhǔn)版標(biāo)準(zhǔn)版Standard Edition 一個(gè)完整的數(shù)據(jù)管理和商業(yè)智能一個(gè)完整的數(shù)據(jù)管理和商業(yè)智能平臺(tái),提供最好的易用性和可管平臺(tái),提供最好的易用性和可管理性來(lái)運(yùn)行部門(mén)級(jí)應(yīng)用理性來(lái)運(yùn)行部門(mén)級(jí)應(yīng)用部門(mén)級(jí)應(yīng)用部門(mén)級(jí)應(yīng)用 中小
5、型規(guī)模中小型規(guī)模OLTP 報(bào)表和分析報(bào)表和分析 工作組版工作組版Workgroup Edition 一個(gè)可信賴(lài)的數(shù)據(jù)管理和報(bào)表平一個(gè)可信賴(lài)的數(shù)據(jù)管理和報(bào)表平臺(tái),提供各分支應(yīng)用程序以安全、臺(tái),提供各分支應(yīng)用程序以安全、遠(yuǎn)程同步和管理功能遠(yuǎn)程同步和管理功能分支數(shù)據(jù)存儲(chǔ)分支數(shù)據(jù)存儲(chǔ) 分支報(bào)表分支報(bào)表 遠(yuǎn)程同步遠(yuǎn)程同步 學(xué)習(xí)版學(xué)習(xí)版Express Edition 提供學(xué)習(xí)和創(chuàng)建桌面應(yīng)用程序和提供學(xué)習(xí)和創(chuàng)建桌面應(yīng)用程序和小型應(yīng)用程序,并可被小型應(yīng)用程序,并可被ISVS重重新發(fā)布的免費(fèi)版本新發(fā)布的免費(fèi)版本 入門(mén)級(jí)入門(mén)級(jí)&學(xué)習(xí)學(xué)習(xí) 免費(fèi)的免費(fèi)的ISVS重發(fā)重發(fā) 富桌面端應(yīng)用富桌面端應(yīng)用 6一、一、
6、SQL ServerSQL Server數(shù)據(jù)庫(kù)的組成數(shù)據(jù)庫(kù)的組成 SQL ServerSQL Server的數(shù)據(jù)主要以文件的方式保存,主要?jiǎng)澋臄?shù)據(jù)主要以文件的方式保存,主要?jiǎng)澐譃槿?lèi)文件:主數(shù)據(jù)文件、輔助文件、日志文件。分為三類(lèi)文件:主數(shù)據(jù)文件、輔助文件、日志文件。主數(shù)據(jù)文件主數(shù)據(jù)文件:存儲(chǔ)數(shù)據(jù)庫(kù)的啟動(dòng)信息和系統(tǒng)表,也存儲(chǔ)數(shù)據(jù)庫(kù)的啟動(dòng)信息和系統(tǒng)表,也可以存儲(chǔ)用戶(hù)數(shù)據(jù)。每個(gè)數(shù)據(jù)庫(kù)包含一個(gè)主文件。建可以存儲(chǔ)用戶(hù)數(shù)據(jù)。每個(gè)數(shù)據(jù)庫(kù)包含一個(gè)主文件。建議擴(kuò)展名:議擴(kuò)展名: .mdf輔數(shù)據(jù)文件輔數(shù)據(jù)文件:可選的:可選的,保存主文件中容納不下的數(shù)據(jù)保存主文件中容納不下的數(shù)據(jù)。可以有。可以有0到多個(gè)輔數(shù)據(jù)文件。
7、擴(kuò)展名是到多個(gè)輔數(shù)據(jù)文件。擴(kuò)展名是 .ndf。7日志文件日志文件:保存恢復(fù)數(shù)據(jù)庫(kù)所需要的所有數(shù)據(jù)庫(kù)的事恢復(fù)數(shù)據(jù)庫(kù)所需要的所有數(shù)據(jù)庫(kù)的事務(wù)日志信息。必須至少有一個(gè)日志文件,務(wù)日志信息。必須至少有一個(gè)日志文件,建議擴(kuò)展名擴(kuò)展名用用.ldf.ldf。注意:注意:一個(gè)文件只能存在于一個(gè)文件組中,不能跨組。一個(gè)文件只能存在于一個(gè)文件組中,不能跨組。表、索引以及表、索引以及texttext、ntextntext和和imageimage數(shù)據(jù)可以指定存數(shù)據(jù)可以指定存放在特定的文件組中。放在特定的文件組中。文件組只能包含數(shù)據(jù)文件,日志文件不屬于任何文文件組只能包含數(shù)據(jù)文件,日志文件不屬于任何文件組。件組。8 二
8、、二、SQL Server SQL Server 數(shù)據(jù)存儲(chǔ)單位數(shù)據(jù)存儲(chǔ)單位創(chuàng)建數(shù)據(jù)庫(kù)之前,要了解創(chuàng)建數(shù)據(jù)庫(kù)之前,要了解SQL ServerSQL Server使用的數(shù)據(jù)存儲(chǔ)使用的數(shù)據(jù)存儲(chǔ)單位:?jiǎn)挝唬捍鎯?chǔ)頁(yè)(存儲(chǔ)頁(yè)(pagepage):):基本數(shù)據(jù)存儲(chǔ)單位,每頁(yè)基本數(shù)據(jù)存儲(chǔ)單位,每頁(yè)8KB8KB字節(jié)。字節(jié)。范圍(范圍(extentextent):):一個(gè)范圍是一個(gè)范圍是8 8個(gè)連續(xù)存儲(chǔ)頁(yè)。是存儲(chǔ)個(gè)連續(xù)存儲(chǔ)頁(yè)。是存儲(chǔ)表或索引的基本單位。表或索引的基本單位。文件組:文件組:數(shù)據(jù)庫(kù)中對(duì)文件進(jìn)行分組管理的機(jī)制。把相數(shù)據(jù)庫(kù)中對(duì)文件進(jìn)行分組管理的機(jī)制。把相關(guān)的文件放入特定文件組中,系統(tǒng)按組管理文件。關(guān)的文件
9、放入特定文件組中,系統(tǒng)按組管理文件。9文件組的類(lèi)型:文件組的類(lèi)型:主文件組(缺省文件組)主文件組(缺省文件組):存放主數(shù)據(jù)文件和其他沒(méi):存放主數(shù)據(jù)文件和其他沒(méi)有指定文件組的文件。有指定文件組的文件。系統(tǒng)表在主文件組中系統(tǒng)表在主文件組中。用戶(hù)定義文件組用戶(hù)定義文件組:用:用 CREATE DATABASE CREATE DATABASE 或或 ALTER ALTER DATABASE DATABASE 語(yǔ)句中的語(yǔ)句中的 FILEGROUP FILEGROUP 關(guān)鍵字,或在關(guān)鍵字,或在 企業(yè)管企業(yè)管理器內(nèi)的理器內(nèi)的 屬性屬性 對(duì)話(huà)框上指定的任何文件組。對(duì)話(huà)框上指定的任何文件組。10三、三、SQL
10、Server SQL Server 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)1 SQL Server數(shù)據(jù)庫(kù)類(lèi)型數(shù)據(jù)庫(kù)類(lèi)型2 2 系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)3 3 用戶(hù)數(shù)據(jù)庫(kù)用戶(hù)數(shù)據(jù)庫(kù) 111 1、SQL ServerSQL Server數(shù)據(jù)庫(kù)類(lèi)型數(shù)據(jù)庫(kù)類(lèi)型SQL ServerSQL Server的數(shù)據(jù)存儲(chǔ)空間可分為若干個(gè)的數(shù)據(jù)存儲(chǔ)空間可分為若干個(gè)“小小”數(shù)據(jù)庫(kù),以便于管理和提高存取效率。數(shù)據(jù)庫(kù),以便于管理和提高存取效率。 有兩類(lèi)數(shù)據(jù)庫(kù):有兩類(lèi)數(shù)據(jù)庫(kù): 系統(tǒng)數(shù)據(jù)庫(kù):系統(tǒng)數(shù)據(jù)庫(kù):存放存放SQL Server的整體信息。的整體信息。SQL Server使用系統(tǒng)數(shù)據(jù)庫(kù)操作和管理系統(tǒng)。使用系統(tǒng)數(shù)據(jù)庫(kù)操作和管理系統(tǒng)。 用戶(hù)數(shù)據(jù)庫(kù):用戶(hù)數(shù)據(jù)
11、庫(kù):是用戶(hù)創(chuàng)建的數(shù)據(jù)庫(kù)。一個(gè)是用戶(hù)創(chuàng)建的數(shù)據(jù)庫(kù)。一個(gè) SQL Server可以管理一個(gè)或多個(gè)用戶(hù)數(shù)據(jù)庫(kù)??梢怨芾硪粋€(gè)或多個(gè)用戶(hù)數(shù)據(jù)庫(kù)。12系統(tǒng)數(shù)據(jù)庫(kù)和用戶(hù)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)和用戶(hù)數(shù)據(jù)庫(kù)ModeModel lTempdTempdb bMasteMaster rMsdbMsdbDistributionDistributionpubspubsNorthwindNorthwindUserUser用戶(hù)數(shù)據(jù)庫(kù)用戶(hù)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)圖123132 2、系統(tǒng)數(shù)據(jù)庫(kù)、系統(tǒng)數(shù)據(jù)庫(kù) 安裝安裝SQL Server SQL Server 時(shí),系統(tǒng)自動(dòng)地創(chuàng)建時(shí),系統(tǒng)自動(dòng)地創(chuàng)建mastermaster、modelmo
12、del、tempdbtempdb、msdbmsdb、DistributionDistribution等等系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)。 master master數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)用來(lái)存放系統(tǒng)級(jí)的信息,如保存本地及遠(yuǎn)程用用來(lái)存放系統(tǒng)級(jí)的信息,如保存本地及遠(yuǎn)程用戶(hù)帳號(hào)、與本地服務(wù)器有交互的遠(yuǎn)程服務(wù)器、進(jìn)程、戶(hù)帳號(hào)、與本地服務(wù)器有交互的遠(yuǎn)程服務(wù)器、進(jìn)程、可配置的環(huán)境變量、系統(tǒng)錯(cuò)誤信息、分配給各數(shù)據(jù)庫(kù)可配置的環(huán)境變量、系統(tǒng)錯(cuò)誤信息、分配給各數(shù)據(jù)庫(kù)的存儲(chǔ)空間、系統(tǒng)上可用的磁帶和磁盤(pán)、活動(dòng)鎖等。的存儲(chǔ)空間、系統(tǒng)上可用的磁帶和磁盤(pán)、活動(dòng)鎖等。14 model model數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)為用戶(hù)數(shù)據(jù)庫(kù)提供了樣板和原型,包含了每
13、一為用戶(hù)數(shù)據(jù)庫(kù)提供了樣板和原型,包含了每一用戶(hù)數(shù)據(jù)庫(kù)所需要的系統(tǒng)表,它能夠被更改成為創(chuàng)用戶(hù)數(shù)據(jù)庫(kù)所需要的系統(tǒng)表,它能夠被更改成為創(chuàng)建新的數(shù)據(jù)庫(kù)的定制結(jié)構(gòu),對(duì)建新的數(shù)據(jù)庫(kù)的定制結(jié)構(gòu),對(duì)modelmodel所作的每一個(gè)改所作的每一個(gè)改動(dòng)都在新數(shù)據(jù)庫(kù)中產(chǎn)生影響。動(dòng)都在新數(shù)據(jù)庫(kù)中產(chǎn)生影響。 msdb數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)支持支持SQL Server Agent。msdb數(shù)據(jù)庫(kù)中的表數(shù)據(jù)庫(kù)中的表sysdbmainplan _history保存了系統(tǒng)維護(hù)的工作信保存了系統(tǒng)維護(hù)的工作信息,并且為調(diào)度信息提供一個(gè)存儲(chǔ)區(qū)。息,并且為調(diào)度信息提供一個(gè)存儲(chǔ)區(qū)。15 tempdb tempdb數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)是是SQL Serve
14、rSQL Server上數(shù)據(jù)庫(kù)使用的共享工作空間,為上數(shù)據(jù)庫(kù)使用的共享工作空間,為臨時(shí)表和其它臨時(shí)工作存儲(chǔ)需要提供了一個(gè)存儲(chǔ)區(qū)。臨時(shí)表和其它臨時(shí)工作存儲(chǔ)需要提供了一個(gè)存儲(chǔ)區(qū)。 Distribution Distribution數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)在為復(fù)制活動(dòng)配置在為復(fù)制活動(dòng)配置SQL ServerSQL Server時(shí),系統(tǒng)自動(dòng)安裝時(shí),系統(tǒng)自動(dòng)安裝DistributionDistribution數(shù)據(jù)庫(kù)。存儲(chǔ)復(fù)制活動(dòng)中的歷史記錄和數(shù)據(jù)庫(kù)。存儲(chǔ)復(fù)制活動(dòng)中的歷史記錄和事務(wù)數(shù)據(jù)。事務(wù)數(shù)據(jù)。163 3、 用戶(hù)數(shù)據(jù)庫(kù)用戶(hù)數(shù)據(jù)庫(kù) pubs pubs和和NorthwindNorthwind數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)pubspubs
15、和和NorthwindNorthwind數(shù)據(jù)庫(kù)是作為培訓(xùn)工作提供數(shù)據(jù)庫(kù)是作為培訓(xùn)工作提供的實(shí)例數(shù)據(jù)庫(kù),屬于用戶(hù)數(shù)據(jù)庫(kù)。一般來(lái)說(shuō),當(dāng)培的實(shí)例數(shù)據(jù)庫(kù),屬于用戶(hù)數(shù)據(jù)庫(kù)。一般來(lái)說(shuō),當(dāng)培訓(xùn)工具使用完后,要重新安裝它,以便恢復(fù)其原貌訓(xùn)工具使用完后,要重新安裝它,以便恢復(fù)其原貌。 用戶(hù)用戶(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)作為數(shù)據(jù)庫(kù)擁有者(作為數(shù)據(jù)庫(kù)擁有者(DBODBO)的用戶(hù)自己)的用戶(hù)自己創(chuàng)建的創(chuàng)建的數(shù)據(jù)庫(kù)。他擁有對(duì)數(shù)據(jù)庫(kù)的所有訪(fǎng)問(wèn)權(quán)限。數(shù)據(jù)庫(kù)。他擁有對(duì)數(shù)據(jù)庫(kù)的所有訪(fǎng)問(wèn)權(quán)限。174.2 SQL4.2 SQL語(yǔ)言簡(jiǎn)介語(yǔ)言簡(jiǎn)介 1、什么是、什么是SQL語(yǔ)言語(yǔ)言 SQLSQL語(yǔ)言是結(jié)構(gòu)化查詢(xún)語(yǔ)言,語(yǔ)言是結(jié)構(gòu)化查詢(xún)語(yǔ)言,Struct
16、ured Query Structured Query Language, Language, 簡(jiǎn)稱(chēng)簡(jiǎn)稱(chēng)SQLSQL。是介于關(guān)系代數(shù)和。是介于關(guān)系代數(shù)和 關(guān)系演算之關(guān)系演算之間的語(yǔ)言,其功能不僅僅是查詢(xún),它是通用的、功能間的語(yǔ)言,其功能不僅僅是查詢(xún),它是通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。 SQLSQL語(yǔ)言集數(shù)據(jù)語(yǔ)言集數(shù)據(jù)定義、查詢(xún)、更新和控制定義、查詢(xún)、更新和控制功能于功能于一體。一體。SQLSQL語(yǔ)言已經(jīng)成為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言語(yǔ)言已經(jīng)成為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言18 (1)(1)19741974年,年,IBMIBM圣約瑟實(shí)驗(yàn)室的圣約瑟實(shí)驗(yàn)室的BoyceBoyce和和Cha
17、mberlinChamberlin為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)System-RSystem-R設(shè)計(jì)的一種查詢(xún)語(yǔ)言,設(shè)計(jì)的一種查詢(xún)語(yǔ)言,當(dāng)時(shí)稱(chēng)為當(dāng)時(shí)稱(chēng)為SEQUELSEQUEL語(yǔ)言(語(yǔ)言(Structured EnglishStructured English Query Query Language)Language),后簡(jiǎn)稱(chēng)為,后簡(jiǎn)稱(chēng)為SQLSQL;(2)(2)19811981年,年,IBMIBM推出關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)推出關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)SQL/DSSQL/DS,得到廣,得到廣泛應(yīng)用;泛應(yīng)用;(3)(3)著名關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都陸續(xù)實(shí)現(xiàn)著名關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都陸續(xù)實(shí)現(xiàn)SQLSQL語(yǔ)言;
18、語(yǔ)言; (4)(4)19821982年年,ANSIANSI著手制定著手制定SQLSQL標(biāo)準(zhǔn),標(biāo)準(zhǔn),19861986年公布第一年公布第一個(gè)個(gè)SQLSQL標(biāo)準(zhǔn)標(biāo)準(zhǔn)-SQL86-SQL86,其主要內(nèi)容:模式定義、數(shù)據(jù)操作、,其主要內(nèi)容:模式定義、數(shù)據(jù)操作、嵌入式嵌入式SQLSQL等內(nèi)容。等內(nèi)容。2 2、SQLSQL語(yǔ)言的發(fā)展歷程語(yǔ)言的發(fā)展歷程19(5)(5)19871987年年,ISOISO通過(guò)通過(guò)SQL86SQL86標(biāo)準(zhǔn);標(biāo)準(zhǔn); (6)(6)19891989年年,ISOISO制定制定SQL89SQL89標(biāo)準(zhǔn),它在標(biāo)準(zhǔn),它在SQL86SQL86基礎(chǔ)上基礎(chǔ)上增增補(bǔ)完整性補(bǔ)完整性描述描述 (7)(7)1
19、9901990年年,我國(guó)制定等同,我國(guó)制定等同SQL89SQL89的國(guó)家標(biāo)準(zhǔn);的國(guó)家標(biāo)準(zhǔn);(8)(8)19921992年年,ISOISO制定制定SQL92SQL92標(biāo)準(zhǔn),即標(biāo)準(zhǔn),即SQL2SQL2;SQL2SQL2相當(dāng)龐相當(dāng)龐大,實(shí)現(xiàn)了對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的支持大,實(shí)現(xiàn)了對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的支持(9)(9)19991999年年,ANSIANSI制定制定SQL3SQL3標(biāo)準(zhǔn),在標(biāo)準(zhǔn),在SQL2SQL2基礎(chǔ)上擴(kuò)充了基礎(chǔ)上擴(kuò)充了面向?qū)ο蠊δ苊嫦驅(qū)ο蠊δ?,支持自定義數(shù)據(jù)類(lèi)型、提供遞歸操作、,支持自定義數(shù)據(jù)類(lèi)型、提供遞歸操作、臨時(shí)視圖、更新一般的授權(quán)結(jié)構(gòu)、嵌套的檢索結(jié)構(gòu)、臨時(shí)視圖、更新一般的授權(quán)結(jié)構(gòu)、嵌套的檢
20、索結(jié)構(gòu)、異步異步DMLDML等;等;20 SQL SQL標(biāo)準(zhǔn)的制定使得幾乎所有的數(shù)據(jù)庫(kù)廠(chǎng)家都采標(biāo)準(zhǔn)的制定使得幾乎所有的數(shù)據(jù)庫(kù)廠(chǎng)家都采用用SQLSQL語(yǔ)言作為其數(shù)據(jù)庫(kù)語(yǔ)言。但各家又在語(yǔ)言作為其數(shù)據(jù)庫(kù)語(yǔ)言。但各家又在SQLSQL標(biāo)準(zhǔn)的標(biāo)準(zhǔn)的基礎(chǔ)上進(jìn)行擴(kuò)充,形成自己的語(yǔ)言?;A(chǔ)上進(jìn)行擴(kuò)充,形成自己的語(yǔ)言。SQL ServerSQL Server擴(kuò)充擴(kuò)充SQLSQL標(biāo)準(zhǔn)形成標(biāo)準(zhǔn)形成Transact-SQLTransact-SQL,簡(jiǎn)稱(chēng),簡(jiǎn)稱(chēng)T-SQLT-SQL。213 3、SQLSQL語(yǔ)言應(yīng)用情況語(yǔ)言應(yīng)用情況 (1)(1)OracleOracle、SybaseSybase、InformixInform
21、ix、IngresIngres、DB2DB2、SQL SQL ServerServer、RdbRdb等大型數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)了等大型數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)了SQLSQL語(yǔ)言;語(yǔ)言; (2)(2)DbaseDbase、FoxproFoxpro、AcessAcess等等PCPC機(jī)數(shù)據(jù)庫(kù)管理系統(tǒng)部機(jī)數(shù)據(jù)庫(kù)管理系統(tǒng)部分實(shí)現(xiàn)了分實(shí)現(xiàn)了SQLSQL語(yǔ)言;語(yǔ)言; (3)(3)可以在可以在HTML(Hypertext Markup Language, HTML(Hypertext Markup Language, 超文超文本標(biāo)記語(yǔ)言本標(biāo)記語(yǔ)言) )中嵌入中嵌入SQLSQL語(yǔ)句,通過(guò)語(yǔ)句,通過(guò)WWWWWW訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)
22、;訪(fǎng)問(wèn)數(shù)據(jù)庫(kù); (4)(4)在在VCVC、VBVB、DelphiDelphi、PBPB也可嵌入也可嵌入SQLSQL語(yǔ)句。語(yǔ)句。224 SQL4 SQL語(yǔ)言的特點(diǎn)語(yǔ)言的特點(diǎn) 語(yǔ)言功能的一體化語(yǔ)言功能的一體化: : 集集DDLDDL、DMLDML、DCLDCL為一體。為一體。 結(jié)構(gòu)的一體化結(jié)構(gòu)的一體化:關(guān)系模型中唯一的結(jié)構(gòu)類(lèi)型就是:關(guān)系模型中唯一的結(jié)構(gòu)類(lèi)型就是關(guān)系表,這種數(shù)據(jù)結(jié)構(gòu)的單一性關(guān)系表,這種數(shù)據(jù)結(jié)構(gòu)的單一性, ,使得增、刪、改、使得增、刪、改、查詢(xún)等操作都只須使用一種操作符。查詢(xún)等操作都只須使用一種操作符。 高度非過(guò)程化高度非過(guò)程化:只須提出:只須提出“做什么做什么”無(wú)須指明無(wú)須指明“怎樣
23、做怎樣做”。用戶(hù)不必了解存取路徑。用戶(hù)不必了解存取路徑。23面向集合的操作方式面向集合的操作方式:在元組集合上操作:在元組集合上操作, ,操作結(jié)果操作結(jié)果仍是元組集合。仍是元組集合。 兩種操作方式、統(tǒng)一的語(yǔ)法結(jié)構(gòu)兩種操作方式、統(tǒng)一的語(yǔ)法結(jié)構(gòu):SQL語(yǔ)言既是自語(yǔ)言既是自含式、又是嵌入式語(yǔ)言。含式、又是嵌入式語(yǔ)言。自含式可作為連機(jī)交互式使自含式可作為連機(jī)交互式使用;嵌入式用;嵌入式SQLSQL可嵌入到高級(jí)語(yǔ)言中使用??汕度氲礁呒?jí)語(yǔ)言中使用。 語(yǔ)言簡(jiǎn)潔、易學(xué)易用語(yǔ)言簡(jiǎn)潔、易學(xué)易用:數(shù)據(jù)定義、操縱和控制只用:數(shù)據(jù)定義、操縱和控制只用了了9 9個(gè)動(dòng)詞。個(gè)動(dòng)詞。24SQLSQL語(yǔ)言中的主要?jiǎng)釉~語(yǔ)言中的主要
24、動(dòng)詞SQL功能功能動(dòng)詞動(dòng)詞數(shù)據(jù)查詢(xún)數(shù)據(jù)查詢(xún)SELECT數(shù)據(jù)定義數(shù)據(jù)定義CREATE,DROP,ALTER數(shù)據(jù)操縱數(shù)據(jù)操縱INSERT,UPDATE,DELETE數(shù)據(jù)控制數(shù)據(jù)控制GRANT,REVOKE25數(shù)據(jù)定義:數(shù)據(jù)定義:定義被存放數(shù)據(jù)的結(jié)構(gòu)及完整性。定義被存放數(shù)據(jù)的結(jié)構(gòu)及完整性。 數(shù)據(jù)檢索:數(shù)據(jù)檢索:從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)并使用這些數(shù)據(jù)。從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)并使用這些數(shù)據(jù)。 數(shù)據(jù)操縱:數(shù)據(jù)操縱:通過(guò)通過(guò)SQL更改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。更改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。 存取控制:存取控制:限制用戶(hù)檢索、增加和修改數(shù)據(jù)的權(quán)限,限制用戶(hù)檢索、增加和修改數(shù)據(jù)的權(quán)限,保護(hù)所存儲(chǔ)的數(shù)據(jù)不被非法存取。保護(hù)所存儲(chǔ)的數(shù)據(jù)不被非法存
25、取。 數(shù)據(jù)共享:數(shù)據(jù)共享:調(diào)整數(shù)據(jù)讓并發(fā)用戶(hù)共享。調(diào)整數(shù)據(jù)讓并發(fā)用戶(hù)共享。 5、SQL語(yǔ)言的功能語(yǔ)言的功能266 6、SQLSQL語(yǔ)言的分類(lèi)語(yǔ)言的分類(lèi) SQLSQL語(yǔ)言的命令通常分為四類(lèi)語(yǔ)言的命令通常分為四類(lèi) 1 1)、數(shù)據(jù)定義語(yǔ)言()、數(shù)據(jù)定義語(yǔ)言() 創(chuàng)建、修改或刪除數(shù)據(jù)庫(kù)中各種對(duì)象,包括創(chuàng)建、修改或刪除數(shù)據(jù)庫(kù)中各種對(duì)象,包括SQLSQL模模式、基本表、視圖、索引等。式、基本表、視圖、索引等。 命令:命令:TABLE TABLE VIEWVIEWINDEXINDEX(1 1)CREATE CREATE 27(2 2)ALTER TABLE ALTER TABLE 2 2)、查詢(xún)語(yǔ)言()、查
26、詢(xún)語(yǔ)言(S S) 按照指定的組合、條件表達(dá)式或排序檢索已存在按照指定的組合、條件表達(dá)式或排序檢索已存在的數(shù)據(jù)庫(kù)中數(shù)據(jù),不改變數(shù)據(jù)庫(kù)中數(shù)據(jù)。的數(shù)據(jù)庫(kù)中數(shù)據(jù),不改變數(shù)據(jù)庫(kù)中數(shù)據(jù)。 命令:命令:SELECTSELECTFROMFROMWHEREWHERE(3 3)DROPDROPTABLE TABLE VIEWVIEWINDEXINDEX. .283 3)、數(shù)據(jù)操縱語(yǔ)言()、數(shù)據(jù)操縱語(yǔ)言() 對(duì)已經(jīng)存在的數(shù)據(jù)庫(kù)進(jìn)行元組的插入、刪除、修改對(duì)已經(jīng)存在的數(shù)據(jù)庫(kù)進(jìn)行元組的插入、刪除、修改等操作。等操作。 命令:命令:INSERTINSERT、UPDATEUPDATE、DELETEDELETE4 4)、數(shù)據(jù)控
27、制語(yǔ)言()、數(shù)據(jù)控制語(yǔ)言(D D) 用來(lái)授予或收回訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的某種特權(quán)、控制數(shù)用來(lái)授予或收回訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的某種特權(quán)、控制數(shù)據(jù)操縱事務(wù)的發(fā)生時(shí)間及效果、對(duì)數(shù)據(jù)庫(kù)進(jìn)行監(jiān)視。據(jù)操縱事務(wù)的發(fā)生時(shí)間及效果、對(duì)數(shù)據(jù)庫(kù)進(jìn)行監(jiān)視。 命令:命令:GRANTGRANT、REVOKEREVOKE、 COMMITCOMMIT、ROLLBACKROLLBACK29vTransact-SQL (T-SQL)語(yǔ)言是微軟公司對(duì)標(biāo)準(zhǔn))語(yǔ)言是微軟公司對(duì)標(biāo)準(zhǔn)SQL語(yǔ)言的擴(kuò)展,它是語(yǔ)言的擴(kuò)展,它是SQL Server與應(yīng)用程序之與應(yīng)用程序之間的語(yǔ)言,是間的語(yǔ)言,是SQL Server對(duì)應(yīng)用程序開(kāi)發(fā)的應(yīng)用程對(duì)應(yīng)用程序開(kāi)發(fā)的應(yīng)用程序開(kāi)發(fā)接
28、口。序開(kāi)發(fā)接口。vT-SQL增強(qiáng)了增強(qiáng)了SQL語(yǔ)言的功能,同時(shí)兼容語(yǔ)言的功能,同時(shí)兼容SQL標(biāo)準(zhǔn)。標(biāo)準(zhǔn)。304.3 SQL語(yǔ)言的數(shù)據(jù)類(lèi)型語(yǔ)言的數(shù)據(jù)類(lèi)型v關(guān)系的所有屬性都需要用數(shù)據(jù)類(lèi)型加以描述,目的關(guān)系的所有屬性都需要用數(shù)據(jù)類(lèi)型加以描述,目的是為了給不同的數(shù)據(jù)分配合適的空間,確定合適的是為了給不同的數(shù)據(jù)分配合適的空間,確定合適的存儲(chǔ)形式。存儲(chǔ)形式。vSQL Server中的數(shù)據(jù)類(lèi)型有:系統(tǒng)數(shù)據(jù)類(lèi)型和用戶(hù)中的數(shù)據(jù)類(lèi)型有:系統(tǒng)數(shù)據(jù)類(lèi)型和用戶(hù)自定義數(shù)據(jù)類(lèi)型。自定義數(shù)據(jù)類(lèi)型。312022-5-8311、SQL Server 2008的系的系統(tǒng)數(shù)統(tǒng)數(shù)據(jù)據(jù)類(lèi)類(lèi)型型類(lèi)別數(shù)據(jù)類(lèi)型定義符 精確數(shù)字bigint、i
29、nt、smallint、tinyint、bit、decimal、numeric、money、smallmoney近似數(shù)字float、real日期和時(shí)間dateime、smalldatetime、date、datetime2、datetimeoffset、time(注意SQL Server 200中的日期和時(shí)間)字符串char、varchar、textUnicode 字符串 nchar、nvarchar、ntext二進(jìn)制字符串binary、varbinary、image其他數(shù)據(jù)類(lèi)型cursor、sql_variant、table、timestamp、uniqueidentifier、xml、hi
30、erarchyid32v主要數(shù)據(jù)類(lèi)型有:主要數(shù)據(jù)類(lèi)型有:vCHAR(nCHAR(n) :) :固定長(zhǎng)度非固定長(zhǎng)度非Unicode Unicode 數(shù)據(jù)的數(shù)據(jù)類(lèi)型數(shù)據(jù)的數(shù)據(jù)類(lèi)型 vNCHAR(nNCHAR(n) ):固定長(zhǎng)度固定長(zhǎng)度 Unicode Unicode 數(shù)據(jù)的數(shù)據(jù)類(lèi)型數(shù)據(jù)的數(shù)據(jù)類(lèi)型 vVARCHAR (n) :VARCHAR (n) :可變長(zhǎng)度且非可變長(zhǎng)度且非Unicode Unicode 的字符數(shù)的字符數(shù)據(jù),最大長(zhǎng)度為據(jù),最大長(zhǎng)度為n n, varcharvarchar是按字節(jié)存儲(chǔ)的。是按字節(jié)存儲(chǔ)的。vNVARCHAR (n) :NVARCHAR (n) : 可變長(zhǎng)可變長(zhǎng)Unico
31、deUnicode字符數(shù)據(jù),最大字符數(shù)據(jù),最大長(zhǎng)度為長(zhǎng)度為n n,nvarcharnvarchar是按字符存儲(chǔ)的。是按字符存儲(chǔ)的。33INT:4字節(jié)的整型字節(jié)的整型REAL:4字節(jié)的浮點(diǎn)數(shù)字節(jié)的浮點(diǎn)數(shù)NUMERIC(n,s): 實(shí)型,最大精度實(shí)型,最大精度n,s為小數(shù)位數(shù)為小數(shù)位數(shù)BINARYBINARY:最大最大長(zhǎng)度為長(zhǎng)度為2G2G字節(jié)的變長(zhǎng)二進(jìn)制字節(jié)的變長(zhǎng)二進(jìn)制DATETIME:日期型日期型注意:注意:SQL Server 2000與與SQL Server 2008中的日期中的日期類(lèi)型有很大的不同。類(lèi)型有很大的不同。342022-5-8342 2、用戶(hù)自定義數(shù)據(jù)類(lèi)型、用戶(hù)自定義數(shù)據(jù)類(lèi)型l
32、當(dāng)創(chuàng)建用戶(hù)自定義的數(shù)據(jù)類(lèi)型時(shí),必須提供當(dāng)創(chuàng)建用戶(hù)自定義的數(shù)據(jù)類(lèi)型時(shí),必須提供3 3個(gè)參個(gè)參數(shù):數(shù)據(jù)類(lèi)型的名稱(chēng)、所基于的系統(tǒng)數(shù)據(jù)類(lèi)型、數(shù)數(shù):數(shù)據(jù)類(lèi)型的名稱(chēng)、所基于的系統(tǒng)數(shù)據(jù)類(lèi)型、數(shù)據(jù)類(lèi)型是否允許空值。據(jù)類(lèi)型是否允許空值。l sp_addtypesp_addtype 新數(shù)據(jù)類(lèi)型新數(shù)據(jù)類(lèi)型 , ,系統(tǒng)數(shù)據(jù)類(lèi),系統(tǒng)數(shù)據(jù)類(lèi)型型,null_type,null_type35v【例】【例】 在數(shù)據(jù)庫(kù)在數(shù)據(jù)庫(kù)Sales中,創(chuàng)建用戶(hù)自定義中,創(chuàng)建用戶(hù)自定義數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型agentName, agentName基于的基于的系統(tǒng)數(shù)據(jù)類(lèi)型是變長(zhǎng)為系統(tǒng)數(shù)據(jù)類(lèi)型是變長(zhǎng)為8的字符,不允許為空。的字符,不允許為空。vuse
33、salesexec sp_addtype agentname,varchar(8),not nullgo362022-5-8363、表達(dá)式l 表達(dá)式是標(biāo)識(shí)符、值和運(yùn)算符的組合,在應(yīng)用時(shí)可以對(duì)其求值以獲取結(jié)果。l 表達(dá)式可以是常量、函數(shù)、列名、變量、子查詢(xún),還可以用運(yùn)算符對(duì)這些實(shí)體進(jìn)行組合以生成表達(dá)式。l 比如 (price * 1.5) 或 (price + sales_tax)。 372022-5-8374、運(yùn)算符l 運(yùn)算符是一種符號(hào),用來(lái)指定要在一個(gè)或多個(gè)表達(dá)式中執(zhí)行的操作。運(yùn)算符運(yùn)算符含義含義算術(shù)運(yùn)算符算術(shù)運(yùn)算符+(加加)、-(減減)、*(乘乘)、/(除除)、%(取模取模)比較運(yùn)算符比較
34、運(yùn)算符=、=、=、!=、!賦值運(yùn)算符賦值運(yùn)算符=邏輯運(yùn)算符邏輯運(yùn)算符AND、OR、NOT385 5、SQLSQL語(yǔ)句格式中使用的語(yǔ)句格式中使用的符號(hào)符號(hào)大括號(hào)大括號(hào) :表示:表示其中的內(nèi)容可有多個(gè)用豎線(xiàn)分隔的其中的內(nèi)容可有多個(gè)用豎線(xiàn)分隔的選項(xiàng),用戶(hù)必須選擇其中一項(xiàng)。選項(xiàng),用戶(hù)必須選擇其中一項(xiàng)。方括號(hào)方括號(hào) :可選項(xiàng),用戶(hù)根據(jù)需要選用??蛇x項(xiàng),用戶(hù)根據(jù)需要選用。豎線(xiàn)豎線(xiàn)| | :表示參數(shù)之間:表示參數(shù)之間或或的關(guān)系。的關(guān)系。省略號(hào)省略號(hào)“”:表示重復(fù)前面的語(yǔ)法單元。表示重復(fù)前面的語(yǔ)法單元。尖括號(hào)尖括號(hào):表示下面有子句定義。表示下面有子句定義。394.4 SQL4.4 SQL數(shù)據(jù)定義語(yǔ)言數(shù)據(jù)定義語(yǔ)
35、言DDLDDL 4.4.1 4.4.1 數(shù)據(jù)庫(kù)的定義、修改和刪除數(shù)據(jù)庫(kù)的定義、修改和刪除 4.4.2 4.4.2 基本表的定義、修改和刪除基本表的定義、修改和刪除 4.4.3 4.4.3 索引的定義、修改和刪除索引的定義、修改和刪除40 SQL數(shù)據(jù)定義功能如下表所示數(shù)據(jù)定義功能如下表所示 :414.4.1 數(shù)據(jù)庫(kù)的創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù)的創(chuàng)建、修改和刪除 在建立用戶(hù)邏輯組件(如在建立用戶(hù)邏輯組件(如table)之前必須首先建)之前必須首先建立數(shù)據(jù)庫(kù)。立數(shù)據(jù)庫(kù)。 建立數(shù)據(jù)庫(kù)的最實(shí)質(zhì)性任務(wù)是向建立數(shù)據(jù)庫(kù)的最實(shí)質(zhì)性任務(wù)是向OS申請(qǐng)用來(lái)存儲(chǔ)申請(qǐng)用來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)數(shù)據(jù)的物理磁盤(pán)空間。存儲(chǔ)空間以操作系統(tǒng)文數(shù)據(jù)
36、庫(kù)數(shù)據(jù)的物理磁盤(pán)空間。存儲(chǔ)空間以操作系統(tǒng)文件的方式體現(xiàn)。件的方式體現(xiàn)。v不同的不同的DBMSDBMS建立數(shù)據(jù)庫(kù)的命令有些區(qū)別,本課程是建立數(shù)據(jù)庫(kù)的命令有些區(qū)別,本課程是針對(duì)針對(duì)SQLSQL ServerServer 進(jìn)行講解的。包括:進(jìn)行講解的。包括:創(chuàng)建數(shù)據(jù)庫(kù)、刪除數(shù)據(jù)庫(kù)、修改數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)、刪除數(shù)據(jù)庫(kù)、修改數(shù)據(jù)庫(kù)42三、三、 創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)Enterprise ManagerEnterprise Manager中中創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)在在Query AnalyzerQuery Analyzer中用中用Transact_SQLTransact_SQL語(yǔ)句創(chuàng)建語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) 用戶(hù)
37、必須擁有創(chuàng)建數(shù)據(jù)庫(kù)的權(quán)限才能在用戶(hù)必須擁有創(chuàng)建數(shù)據(jù)庫(kù)的權(quán)限才能在SERVERSERVER端創(chuàng)建數(shù)據(jù)庫(kù)。在端創(chuàng)建數(shù)據(jù)庫(kù)。在SQL Server 2000SQL Server 2000為中創(chuàng)建數(shù)據(jù)為中創(chuàng)建數(shù)據(jù)庫(kù)的方法有:庫(kù)的方法有:431 1、在企業(yè)管理器中創(chuàng)建數(shù)據(jù)庫(kù)、在企業(yè)管理器中創(chuàng)建數(shù)據(jù)庫(kù) 進(jìn)入進(jìn)入Enterprise ManagerEnterprise Manager界面后:界面后: 展開(kāi)并展開(kāi)并選擇選擇服務(wù)器服務(wù)器組組 展開(kāi)并展開(kāi)并選擇要建立數(shù)據(jù)庫(kù)的選擇要建立數(shù)據(jù)庫(kù)的服務(wù)器服務(wù)器 選中選中“數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)” 按右鍵選擇按右鍵選擇“新建數(shù)據(jù)庫(kù)新建數(shù)據(jù)庫(kù)”,或選擇或選擇“操作操作/ /新建數(shù)據(jù)庫(kù)
38、新建數(shù)據(jù)庫(kù)”44數(shù)據(jù)庫(kù)文件位置、大小數(shù)據(jù)庫(kù)文件位置、大小文文件件增增長(zhǎng)長(zhǎng)信信息息選選擇擇文文件件位位置置45日志文件位置、大小日志文件位置、大小文文件件增增長(zhǎng)長(zhǎng)信信息息選選擇擇文文件件位位置置462 2、創(chuàng)建數(shù)據(jù)庫(kù)的、創(chuàng)建數(shù)據(jù)庫(kù)的SQLSQL語(yǔ)句語(yǔ)句CREATE DATABASE database_nameCREATE DATABASE database_name ON PRIMARYON PRIMARYfilespec ,nn , filegroup , ,n n LOG ON LOG ON filespec , ,n n FOR LOAD FOR ATTACH FOR LOAD FOR A
39、TTACH filespec: =: =( ( NAME = logical_file_name, NAME = logical_file_name, FILENAME = FILENAME = os_file_nameos_file_name ,SIZE = size ,SIZE = size ,MAXSIZE = max_size ,MAXSIZE = max_size UNLIMITED UNLIMITED ,FILEGROWTH = growth_increment ,FILEGROWTH = growth_increment) ) ,n n filegroup: = : = FILE
40、GROUPFILEGROUP filegroup_name filespec filegroup_name ,nn47例例CREATE DATABASE my ON PRIMARY( NAME = my_data, FILENAME =D:testmy.mdf, SIZE = 10 MB, -10 MB的主要數(shù)據(jù)庫(kù)文件的主要數(shù)據(jù)庫(kù)文件 MAXSIZE = 15 MB, FILEGROWTH = 20 % ) LOG ON (NAME = my_log, FILENAME =D:testmy.ldf, SIZE = 3 MB , -3 MB的日志文件的日志文件 MAXSIZE = 5 MB ,
41、FILEGROWTH = 1 MB )v注意:注意:在建立數(shù)據(jù)庫(kù)之前,為操作系統(tǒng)文件指定的在建立數(shù)據(jù)庫(kù)之前,為操作系統(tǒng)文件指定的目錄路徑必須存在。目錄路徑必須存在。48v例:例:建立建立jxgl1數(shù)據(jù)庫(kù),主文件初始大小為數(shù)據(jù)庫(kù),主文件初始大小為10MB,最大為最大為50MB,增量為,增量為5MB,日志文件初始大小為,日志文件初始大小為5MB,最大為,最大為25MB,增量為,增量為5MB vcreate database jxgl1 On (name=jxgl1_dat,filename=D:jxgljxgl1.mdf,vsize=10,maxsize=50,filegrowth=5)vlog
42、on (name=jxgl1_log,filename=e:zcxjxgl1.ldf,vsize=5MB,maxsize=25MB, filegrowth=5MB)49四、刪除數(shù)據(jù)庫(kù)四、刪除數(shù)據(jù)庫(kù) 當(dāng)確認(rèn)一個(gè)數(shù)據(jù)庫(kù)沒(méi)有需要時(shí),才可以刪除該當(dāng)確認(rèn)一個(gè)數(shù)據(jù)庫(kù)沒(méi)有需要時(shí),才可以刪除該數(shù)據(jù)庫(kù)。刪除數(shù)據(jù)庫(kù)的方法:數(shù)據(jù)庫(kù)。刪除數(shù)據(jù)庫(kù)的方法:(1 1)使用企業(yè)管理器刪除數(shù)據(jù)庫(kù))使用企業(yè)管理器刪除數(shù)據(jù)庫(kù)(2 2)使用)使用T-SQLT-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)語(yǔ)句刪除數(shù)據(jù)庫(kù) Drop database jxglDrop database jxgl50五、五、 修改數(shù)據(jù)庫(kù)修改數(shù)據(jù)庫(kù)(1 1)數(shù)據(jù)庫(kù)改名)數(shù)據(jù)庫(kù)改名(
43、2 2)修改數(shù)據(jù)庫(kù)選項(xiàng))修改數(shù)據(jù)庫(kù)選項(xiàng)511 1、數(shù)據(jù)庫(kù)改名、數(shù)據(jù)庫(kù)改名 使用系統(tǒng)存儲(chǔ)過(guò)程使用系統(tǒng)存儲(chǔ)過(guò)程sp_renamedbsp_renamedb可以修改數(shù)據(jù)庫(kù)可以修改數(shù)據(jù)庫(kù)的名稱(chēng),語(yǔ)句格式:的名稱(chēng),語(yǔ)句格式: sp_renamedbsp_renamedb old_dbnameold_dbname, new_dbname, new_dbname 例如:例如:sp_renamedbsp_renamedb zzgzzg, , zzg1zzg1注意注意:(:(1 1)給數(shù)據(jù)庫(kù)更名前,必須在企業(yè)管理器中給數(shù)據(jù)庫(kù)更名前,必須在企業(yè)管理器中設(shè)置該數(shù)據(jù)庫(kù)為單用戶(hù)狀態(tài)(設(shè)置該數(shù)據(jù)庫(kù)為單用戶(hù)狀態(tài)(只能有一個(gè)
44、用戶(hù)使用只能有一個(gè)用戶(hù)使用該數(shù)據(jù)庫(kù))。該數(shù)據(jù)庫(kù))。(2)只有屬于只有屬于sysadminsysadmin服務(wù)器角色的成員可以給服務(wù)器角色的成員可以給數(shù)據(jù)庫(kù)更名。數(shù)據(jù)庫(kù)更名。 522、修改數(shù)據(jù)庫(kù)選項(xiàng)、修改數(shù)據(jù)庫(kù)選項(xiàng) 可以在企業(yè)管理器中,也可以在查詢(xún)分析器中可以在企業(yè)管理器中,也可以在查詢(xún)分析器中修改數(shù)據(jù)庫(kù)的屬性、添加數(shù)據(jù)庫(kù)數(shù)據(jù)文件、改變數(shù)修改數(shù)據(jù)庫(kù)的屬性、添加數(shù)據(jù)庫(kù)數(shù)據(jù)文件、改變數(shù)據(jù)庫(kù)大小等。據(jù)庫(kù)大小等。用企業(yè)管理器修改:用企業(yè)管理器修改:選中要修改屬性的數(shù)據(jù)庫(kù),按選中要修改屬性的數(shù)據(jù)庫(kù),按右鍵,選擇右鍵,選擇“屬性屬性”命令,或命令,或選擇選擇“操作操作/ /屬性屬性”。用用T-SQLT-SQ
45、L語(yǔ)句修改:語(yǔ)句修改:使用系統(tǒng)存儲(chǔ)過(guò)程使用系統(tǒng)存儲(chǔ)過(guò)程sp_dboptionsp_dboption 使用使用 ALTER databaseALTER database命令(自學(xué))命令(自學(xué))53vALTER DATABASE database_name | MODIFY NAME = new_database_name | COLLATE collation_name | | 其中:其中::= := := := :=54:= := := := := := := := := := . 55 關(guān)系可以有三種類(lèi)型:關(guān)系可以有三種類(lèi)型: (1 1)基本表)基本表:實(shí)際存在的表,它是實(shí)際儲(chǔ)存數(shù):實(shí)際存在
46、的表,它是實(shí)際儲(chǔ)存數(shù)據(jù)的邏輯表示。據(jù)的邏輯表示。(2 2)查詢(xún)表:)查詢(xún)表:查詢(xún)結(jié)果相對(duì)應(yīng)的表。查詢(xún)結(jié)果相對(duì)應(yīng)的表。(3 3)視圖表:)視圖表:由基本表和其它視圖導(dǎo)出的表,是由基本表和其它視圖導(dǎo)出的表,是虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)。虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)。4.4.2 表的創(chuàng)建、修改和刪除表的創(chuàng)建、修改和刪除561、表的創(chuàng)建、表的創(chuàng)建(1)使用企業(yè)管理器創(chuàng)建表:)使用企業(yè)管理器創(chuàng)建表:選擇要新建表的選擇要新建表的數(shù)據(jù)庫(kù),按右鍵,選擇數(shù)據(jù)庫(kù),按右鍵,選擇新建新建/表表。(2)使用)使用SQL語(yǔ)句創(chuàng)建表語(yǔ)句創(chuàng)建表在在SQL Server 2000SQL Server 2000為中創(chuàng)建表的方法有:
47、為中創(chuàng)建表的方法有:57(1)使用企業(yè)管理器創(chuàng)建)使用企業(yè)管理器創(chuàng)建管理約束建立索引生成SQL文本58基本表的定義格式基本表的定義格式CREATE TABLE CREATE TABLE 表名表名( ( 列名列名 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 缺省值缺省值列級(jí)約束列級(jí)約束 , ,列名列名 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 缺省值缺省值列級(jí)約束列級(jí)約束. . ,UNIQUEUNIQUE(列名(列名 ,列名,列名 . .) ,PRIMARY KEYPRIMARY KEY(列名(列名 ,列名,列名 ) ,F(xiàn)OREIGN KEY FOREIGN KEY (列名(列名 ,列名,列名 ) REFERENCES REFERENCES 表
48、名(列名表名(列名 ,列名,列名 ) ,CKECK ( ,CKECK (條件條件) ) ) )表表級(jí)級(jí)約約束束59建表時(shí)的注意事項(xiàng):建表時(shí)的注意事項(xiàng):(1)表名列名命名應(yīng)用遵守命名規(guī)則。)表名列名命名應(yīng)用遵守命名規(guī)則。(2)一個(gè)用戶(hù)中表名要唯一,一個(gè)表中列名一個(gè)用戶(hù)中表名要唯一,一個(gè)表中列名要唯一。要唯一。 (3 3)數(shù)據(jù)類(lèi)型是)數(shù)據(jù)類(lèi)型是SQL ServerSQL Server所提供的基本數(shù)所提供的基本數(shù)據(jù)類(lèi)型。據(jù)類(lèi)型。 (4 4)定義完整性保證數(shù)據(jù)的正確和有效)定義完整性保證數(shù)據(jù)的正確和有效 60 建表時(shí)可定義有關(guān)的完整性約束條件,這些建表時(shí)可定義有關(guān)的完整性約束條件,這些完整性約束條件被
49、存入系統(tǒng)的完整性約束條件被存入系統(tǒng)的數(shù)據(jù)字典數(shù)據(jù)字典中。中。 當(dāng)用戶(hù)操作表中數(shù)據(jù)時(shí),由當(dāng)用戶(hù)操作表中數(shù)據(jù)時(shí),由DBMS自動(dòng)檢查自動(dòng)檢查該操作是否違背完整性約束條件。該操作是否違背完整性約束條件。注意注意: 如果完整性約束條件涉及到該表的多個(gè)屬性列,如果完整性約束條件涉及到該表的多個(gè)屬性列,則必須定義在表級(jí)上。如果是單個(gè)屬性則必須定義在表級(jí)上。如果是單個(gè)屬性,則可以是則可以是表級(jí)完整性表級(jí)完整性,也可以是列級(jí)完整性約束。也可以是列級(jí)完整性約束。61完整性約束的種類(lèi)完整性約束的種類(lèi)DEFAULT:DEFAULT:列的缺省值;列的缺省值;NOT NULLNOT NULL:( (列值列值) )非空值;
50、非空值;UNIQUEUNIQUE:(:(列或列的組合)值唯一;列或列的組合)值唯一;PRIMARY KEYPRIMARY KEY:(列或一組列):(列或一組列)主關(guān)鍵字(主碼);主關(guān)鍵字(主碼);FOREIGN KEYFOREIGN KEY:外碼定義;外碼定義;REFERENCESREFERENCES:被引用的外部表的表名和列名被引用的外部表的表名和列名 ;CKECK CKECK :指定表約束條件。指定表約束條件。保留字不能用作表名、列名等保留字不能用作表名、列名等62列級(jí)完整性約束的種類(lèi)列級(jí)完整性約束的種類(lèi)(1) not nullnot null和和nullnull約束;約束;(2 2)pr
51、imary keyprimary key(一個(gè)表只能有一個(gè)主鍵)約束;一個(gè)表只能有一個(gè)主鍵)約束;(3 3)uniqueunique:每個(gè):每個(gè)uniqueunique約束都生成一個(gè)惟一索引。約束都生成一個(gè)惟一索引。(4 4)foreign keyforeign key:參照完整性約束。:參照完整性約束。(5)default :缺省值約束;:缺省值約束;(6)check 約束:自定義約束。約束:自定義約束。注意注意: :完整性性約束在對(duì)數(shù)據(jù)庫(kù)進(jìn)行操縱時(shí)起作用完整性性約束在對(duì)數(shù)據(jù)庫(kù)進(jìn)行操縱時(shí)起作用. .63表級(jí)完整性約束的種類(lèi)表級(jí)完整性約束的種類(lèi)(1 1)primary keyprimary k
52、ey約束:約束:當(dāng)需要多列作為主關(guān)鍵字時(shí)當(dāng)需要多列作為主關(guān)鍵字時(shí)需要表級(jí)的需要表級(jí)的primary keyprimary key約束約束(2 2)foreign keyforeign key:外部關(guān)鍵字是復(fù)合屬性時(shí)需要表外部關(guān)鍵字是復(fù)合屬性時(shí)需要表級(jí)參照完整性約束。級(jí)參照完整性約束。(3)check :當(dāng)不同的列需要同時(shí)約束或有某種函當(dāng)不同的列需要同時(shí)約束或有某種函數(shù)關(guān)系時(shí),需要表級(jí)的完整性約束。數(shù)關(guān)系時(shí),需要表級(jí)的完整性約束。64例:創(chuàng)建例:創(chuàng)建DEPT(DEPT(系)系)非空和主碼約束非空和主碼約束CREATE TABLE DEPT ( deptnoCREATE TABLE DEPT (
53、deptno CHAR(8), CHAR(8), Deptname Deptname nvarchar(20) nvarchar(20) NOT NULLNOT NULL, , / /* *列級(jí)約束列級(jí)約束* */ / Deptphno CHAR(12), Deptadd Deptphno CHAR(12), Deptadd varchar(40), varchar(40), PRIMARY KEY (deptnoPRIMARY KEY (deptno) /) /* *表級(jí)完整性表級(jí)完整性或或 CREATE TABLE DEPT ( CREATE TABLE DEPT ( deptno dep
54、tno CHAR(8) CHAR(8) PRIMARY KEYPRIMARY KEY , , /*列級(jí)約束列級(jí)約束*/ Deptname Deptname nvarchar NOT NULLNOT NULL, , Deptphno CHAR(12), Deptadd Deptphno CHAR(12), Deptadd varchar (40) (40) 65外碼、外碼、 unique約束的定義約束的定義create table class ( classno char(8) primary key , /*列級(jí)約束列級(jí)約束*/ classname char(10) Unique, /*列級(jí)約
55、束列級(jí)約束*/ deptno char(8) FOREIGN KEY(deptno) REFERENCEs dept ) /*表級(jí)約束表級(jí)約束*/注意:所引用的字段必須是被參照表中的主碼。注意:所引用的字段必須是被參照表中的主碼。66CREATE TABLE student(sno CHAR(8) PRIMARY KEY, Sname nvarCHAR(20) NOT NULL, Ssex CHAR(1), Sage INT, sclass CHAR(8) FOREIGN KEY(sclass) REFERENCES class(classno)問(wèn):如果在問(wèn):如果在class表中未指定表中未指
56、定classno是主碼,則該是主碼,則該語(yǔ)句的會(huì)執(zhí)行成功嗎?語(yǔ)句的會(huì)執(zhí)行成功嗎?67constraint的用法的用法vcreate table sc(sno char(8),v cno varchar(8),v sgrade int, v constraint sno_cbo primary key (sno,cno)v或:或: create table grade(sno varchar(4),v cno varchar(4),v grade int,v primary key (sno,cno)68check約束、缺省值的定義約束、缺省值的定義create table 職工職工( wno
57、varchar(5) foreign key references 倉(cāng)庫(kù)倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào)倉(cāng)庫(kù)號(hào)), eno char(4), wage int check (wage=1000 and wage1000 and wage5000) default 1200, primary key (eno)692. 表的修改表的修改(1 1)使用企業(yè)管理器修改:)使用企業(yè)管理器修改:選中要修改的表,按選中要修改的表,按右鍵,選擇右鍵,選擇設(shè)計(jì)表設(shè)計(jì)表。(2 2)使用)使用SQLSQL語(yǔ)句修改語(yǔ)句修改70(2 2) 基本表的修改基本表的修改 增加、刪除、修改列定義或完整性約束條件:增加、刪除、修改列定義或完整性約
58、束條件: ALTER TABLE 表名表名 ADD子句子句 增加新的列定義或列說(shuō)明增加新的列定義或列說(shuō)明 MODIFY子句子句 修改表中列定義或列說(shuō)明修改表中列定義或列說(shuō)明 (SQL Server中不能用中不能用MODIFY子句子句) DROP子句子句 刪除表中的列或列說(shuō)明刪除表中的列或列說(shuō)明 ADD ADD CONSTRAINTCONSTRAINT子句子句 增加約束增加約束 DROP DROP CONSTRAINTCONSTRAINT子句子句 刪除約束刪除約束71 例例1: 1: 增加外部關(guān)鍵字約束增加外部關(guān)鍵字約束 ALTER TABLE ALTER TABLE gradegrade AD
59、D ADD FOREIGN KEY (sno) FOREIGN KEY (sno) REFERENCES student (sno REFERENCES student (sno) ) alter table student add constraint stu_check3 check (sno like 0-9) 例例2 2 增加字段增加字段 Alter table student Alter table student add phone varchar(20)add phone varchar(20) 72例例3 3 修改字段修改字段 ALTER TABLE STUDENT ALTER
60、 TABLE STUDENT MODIFYMODIFY sage DATETIMEsage DATETIME 注意:在注意:在SQL Server中應(yīng)為中應(yīng)為: Alter table student alter column sage DATETIMEMODIFYMODIFY在在SQL ServerSQL Server不能實(shí)現(xiàn)。不能實(shí)現(xiàn)。73例例4 刪除完整性約束刪除完整性約束(知道完整約束名才能刪除)知道完整約束名才能刪除) alter table student drop constraint stu_check3 ; 刪除屬性刪除屬性(只有部分只有部分DBMS允許刪除表中的屬性允許刪除表中的屬
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)鋁鎳鈷永磁市場(chǎng)前景趨勢(shì)及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025重慶市安全員-A證考試題庫(kù)附答案
- 2025-2030年中國(guó)金屬鈷市場(chǎng)發(fā)展趨勢(shì)規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)袋式除塵器行業(yè)運(yùn)營(yíng)趨勢(shì)規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)芝麻素市場(chǎng)運(yùn)行狀況與前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)翻譯行業(yè)競(jìng)爭(zhēng)狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)砂巖行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)及發(fā)展風(fēng)險(xiǎn)分析報(bào)告
- 2025-2030年中國(guó)電熱水龍頭市場(chǎng)運(yùn)行現(xiàn)狀及發(fā)展前景預(yù)測(cè)報(bào)告
- 廣西民族大學(xué)《建筑設(shè)備自動(dòng)化A》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東外語(yǔ)外貿(mào)大學(xué)《法律與人生》2023-2024學(xué)年第二學(xué)期期末試卷
- 咖啡店合同咖啡店合作經(jīng)營(yíng)協(xié)議
- 2025年山東鋁業(yè)職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 全套電子課件:技能成就夢(mèng)想
- 2024年教育公共基礎(chǔ)知識(shí)筆記
- 2025年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 異構(gòu)數(shù)據(jù)融合技術(shù)-深度研究
- 北京市朝陽(yáng)區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 《銷(xiāo)售合同執(zhí)行》課件
- 2025年春新外研版(三起)英語(yǔ)三年級(jí)下冊(cè)課件 Unit4第2課時(shí)Speedup
- 山東2024年山東經(jīng)貿(mào)職業(yè)學(xué)院第二批招聘102人歷年參考題庫(kù)(頻考版)含答案解析
- 急性呼吸窘迫綜合征的護(hù)理課件(演示)
評(píng)論
0/150
提交評(píng)論