數(shù)據(jù)庫(kù)原理及應(yīng)用教程(第5版) (微課版)課件 陳志泊 第3-5章 關(guān)系型數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言-SQL、關(guān)系型數(shù)據(jù)庫(kù)理論、數(shù)據(jù)庫(kù)優(yōu)化和管理_第1頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用教程(第5版) (微課版)課件 陳志泊 第3-5章 關(guān)系型數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言-SQL、關(guān)系型數(shù)據(jù)庫(kù)理論、數(shù)據(jù)庫(kù)優(yōu)化和管理_第2頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用教程(第5版) (微課版)課件 陳志泊 第3-5章 關(guān)系型數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言-SQL、關(guān)系型數(shù)據(jù)庫(kù)理論、數(shù)據(jù)庫(kù)優(yōu)化和管理_第3頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用教程(第5版) (微課版)課件 陳志泊 第3-5章 關(guān)系型數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言-SQL、關(guān)系型數(shù)據(jù)庫(kù)理論、數(shù)據(jù)庫(kù)優(yōu)化和管理_第4頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用教程(第5版) (微課版)課件 陳志泊 第3-5章 關(guān)系型數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言-SQL、關(guān)系型數(shù)據(jù)庫(kù)理論、數(shù)據(jù)庫(kù)優(yōu)化和管理_第5頁(yè)
已閱讀5頁(yè),還剩447頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

北京林業(yè)大學(xué)數(shù)據(jù)庫(kù)原理與應(yīng)用結(jié)構(gòu)化查詢(xún)語(yǔ)言StructuredQueryLanguage數(shù)據(jù)查詢(xún)數(shù)據(jù)定義數(shù)據(jù)操縱數(shù)據(jù)控制SQL的發(fā)展ChamberlinSEQUELSQLSQL的發(fā)展大型數(shù)據(jù)庫(kù)

SybaseSQLServerOracleDB2MySQL小型數(shù)據(jù)庫(kù)

FoxProAccessSQLite1982年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(AmericanNationalStandardInstitute,ANSI)開(kāi)始制訂SQL標(biāo)準(zhǔn);1986年,ANSI公布了SQL的第一個(gè)標(biāo)準(zhǔn)SQL-86;1987年,國(guó)際標(biāo)準(zhǔn)化組織(InternationalOrganizationforStandardization,ISO)正式采納了SQL-86標(biāo)準(zhǔn)為國(guó)際標(biāo)準(zhǔn);SQL的標(biāo)準(zhǔn)化1989年,ISO對(duì)SQL-86標(biāo)準(zhǔn)進(jìn)行了補(bǔ)充,推出了SQL-89標(biāo)準(zhǔn);1992年,ISO推出了SQL-92標(biāo)準(zhǔn)(也稱(chēng)SQL2);1999年,ISO推出了SQL-99標(biāo)準(zhǔn)(也稱(chēng)SQL3),它增加了對(duì)象數(shù)據(jù)、遞歸和觸發(fā)器等的支持功能;2003年,ISO推出了ISO/IEC9075:2003標(biāo)準(zhǔn)(也稱(chēng)SQL4)。SQL的標(biāo)準(zhǔn)化一個(gè)關(guān)系對(duì)應(yīng)一個(gè)基本表一個(gè)或多個(gè)基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件基本表(BaseTable):SQL的基本概念視圖(View):SQL的基本概念SQL的基本概念SQL語(yǔ)言支持的關(guān)系數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)

SQL

基本表1

視圖1

視圖2

基本表2

儲(chǔ)存文件1

基本表3

基本表4

儲(chǔ)存文件1

外模式

模式

內(nèi)模式SQL的主要特點(diǎn)

SQL語(yǔ)言是類(lèi)似于英語(yǔ)的自然語(yǔ)言,簡(jiǎn)潔易用SQL是一種一體化的語(yǔ)言SQL語(yǔ)言是一種非過(guò)程化的語(yǔ)言SQL語(yǔ)言是一種面向集合的語(yǔ)言SQL語(yǔ)言既是自含式語(yǔ)言,又是嵌入式語(yǔ)言SQLServer的發(fā)展與版本SQLServer2012簡(jiǎn)介SQLServer是一個(gè)支持關(guān)系模型的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)企業(yè)版(EnterpriseEdition)可作為大型web站點(diǎn)服務(wù)器標(biāo)準(zhǔn)版(StandardEdition)適用于部門(mén)級(jí)等中小規(guī)模的應(yīng)用Web版(WebEdition)面向InternetWeb服務(wù)環(huán)境設(shè)計(jì),成本低開(kāi)發(fā)者版(DeveloperEdition)擁有企業(yè)版的特性,但只限于在開(kāi)發(fā)、測(cè)試和演示中使用SQLServer2012的主要組件SQLServer2012簡(jiǎn)介組件

功能SQLServer數(shù)據(jù)庫(kù)引擎存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心引擎,復(fù)制,全文搜索以及用于管理關(guān)系數(shù)據(jù)和XML數(shù)據(jù)的工具。SQLServerManagementStudio集成環(huán)境,用于配置和管理SQLServer的主要組件。分析服務(wù)創(chuàng)建和管理聯(lián)機(jī)分析處理及數(shù)據(jù)挖掘應(yīng)用的工具。報(bào)表服務(wù)開(kāi)發(fā)報(bào)表應(yīng)用程序的可擴(kuò)展平臺(tái),用于創(chuàng)建、管理和部署表格報(bào)表、矩陣報(bào)表、圖形報(bào)表以及自由格式報(bào)表等應(yīng)用。集成服務(wù)一組圖形工具和可編程對(duì)象。配置管理器為SQLServer服務(wù)、服務(wù)器協(xié)議、客戶(hù)端協(xié)議和客戶(hù)端別名提供配置管理。數(shù)據(jù)庫(kù)引擎優(yōu)化顧問(wèn)協(xié)助創(chuàng)建索引、索引視圖和分區(qū)的最佳組合商業(yè)智能開(kāi)發(fā)向?qū)Ъ砷_(kāi)發(fā)環(huán)境,集成了上述分析服務(wù)、報(bào)表服務(wù)和集成服務(wù)的功能。連接組件安裝客戶(hù)端和服務(wù)器通信的組件聯(lián)機(jī)叢書(shū)查詢(xún)有價(jià)值的信息SQLServer2012簡(jiǎn)介通過(guò)執(zhí)行“開(kāi)始→所有程序→MicrosoftSQL2012→SQLServerManagementStudio“命令,啟動(dòng)ManagementStudio數(shù)據(jù)庫(kù)的結(jié)構(gòu)描述信息的數(shù)據(jù)存在數(shù)據(jù)庫(kù)中并由DBMS統(tǒng)一管理從邏輯上看數(shù)據(jù)庫(kù)的結(jié)構(gòu)描述信息的數(shù)據(jù)是以文件的方式存儲(chǔ)在物理磁盤(pán)上,由操作系統(tǒng)進(jìn)行統(tǒng)一管理從物理上看數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)庫(kù)文件在磁盤(pán)上如何存儲(chǔ)。在SQLServer2012中,創(chuàng)建數(shù)據(jù)庫(kù)時(shí),會(huì)對(duì)應(yīng)地在物理磁盤(pán)上創(chuàng)建相應(yīng)的操作系統(tǒng)文件,數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)、對(duì)象和數(shù)據(jù)庫(kù)操作日志都存儲(chǔ)在這些文件中。數(shù)據(jù)庫(kù)的結(jié)構(gòu)——數(shù)據(jù)文件和事務(wù)日志文件數(shù)據(jù)文件1???數(shù)據(jù)文件n事務(wù)日志文件數(shù)據(jù)庫(kù)存放數(shù)據(jù)庫(kù)數(shù)據(jù)和數(shù)據(jù)庫(kù)對(duì)象的文件主要數(shù)據(jù)文件(.mdf)+次要數(shù)據(jù)文件(.ndf)保存用于恢復(fù)數(shù)據(jù)庫(kù)的日志信息,擴(kuò)展名為.ldf當(dāng)數(shù)據(jù)庫(kù)破壞時(shí)可以用事務(wù)日志還原數(shù)據(jù)庫(kù)內(nèi)容只有一個(gè)可有多個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)——文件組文件組文件組(FileGroup)是將多個(gè)數(shù)據(jù)文件集合起來(lái)形成的一個(gè)整體主要文件組+次要文件組一個(gè)數(shù)據(jù)文件只能存在于一個(gè)文件組中,一個(gè)文件組也只能被一個(gè)數(shù)據(jù)庫(kù)使用日志文件不分組,它不屬于任何文件組前4個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)路徑為<drive>:\ProgramFiles\MicrosoftSQLServer\MSSQL11.SQLSERVER\MSSQL\DATA\;resource數(shù)據(jù)庫(kù)是一個(gè)只讀和隱藏的數(shù)據(jù)庫(kù),不顯示在系統(tǒng)數(shù)據(jù)庫(kù)列表中,它的物理文件名為mssqlsystemresource.mdf和mssqlsystemresource.ldf,存儲(chǔ)路徑為<drive>:\ProgramFiles\MicrosoftSQLServer\MSSQL11.SQLSERVER\MSSQL\Binn\。SQLServer2012的系統(tǒng)數(shù)據(jù)庫(kù)SQLServer2012的系統(tǒng)數(shù)據(jù)庫(kù)有master、model、msdb、tempdb和resource。SQLServer2012的系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)mastermodelmsdbtempdbresource記錄所有系統(tǒng)級(jí)信息,記錄了所有其他數(shù)據(jù)庫(kù)的存在、數(shù)據(jù)庫(kù)文件的位置和SQLServer初始化信息;重新生成master將重新生成所有系統(tǒng)數(shù)據(jù)庫(kù)。model數(shù)據(jù)庫(kù)是所有用戶(hù)數(shù)據(jù)庫(kù)的創(chuàng)建模板,系統(tǒng)將model數(shù)據(jù)庫(kù)的全部?jī)?nèi)容復(fù)制到新的數(shù)據(jù)庫(kù)中,可以簡(jiǎn)化數(shù)據(jù)庫(kù)及其對(duì)象的創(chuàng)建及設(shè)置工作。計(jì)劃警報(bào)和作業(yè)。tempdb數(shù)據(jù)庫(kù)用作系統(tǒng)的臨時(shí)存儲(chǔ),主要保存顯式創(chuàng)建的臨時(shí)用戶(hù)對(duì)象和數(shù)據(jù)庫(kù)引擎創(chuàng)建的內(nèi)部對(duì)象。包含所有系統(tǒng)對(duì)象,通過(guò)resource數(shù)據(jù)庫(kù)可以更為輕松快捷地升級(jí)到新的MicrosoftSQLServer版本。SQLServer2012的系統(tǒng)數(shù)據(jù)庫(kù)SQLServer2012提供了AdventureWorks示例數(shù)據(jù)庫(kù)。與SQLServer2000等早期版本不同,SQLServer2012默認(rèn)并不安裝示例數(shù)據(jù)庫(kù),需要手工下載安裝。SQLServer2012聯(lián)機(jī)叢書(shū)基本都以該數(shù)據(jù)庫(kù)為例講解,建議讀者手工下載安裝該示例數(shù)據(jù)庫(kù)。創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建用戶(hù)數(shù)據(jù)庫(kù)有兩種典型方法:一是通過(guò)ManagementStudio創(chuàng)建;二是通過(guò)SQL命令創(chuàng)建。創(chuàng)建用戶(hù)數(shù)據(jù)庫(kù)創(chuàng)建用戶(hù)數(shù)據(jù)庫(kù)用ManagementStudio創(chuàng)建數(shù)據(jù)庫(kù)在“對(duì)象資源管理器”中,右鍵單擊“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),在快捷菜單中選擇“新建數(shù)據(jù)庫(kù)(N)…”命令,即可打開(kāi)新建數(shù)據(jù)庫(kù)窗口。創(chuàng)建用戶(hù)數(shù)據(jù)庫(kù)用ManagementStudio創(chuàng)建數(shù)據(jù)庫(kù)用SQL命令創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)的SQL命令的語(yǔ)法格式如下所示:CREATEDATABASE數(shù)據(jù)庫(kù)名稱(chēng)[ON[FILEGROUP文件組名稱(chēng)](NAME=數(shù)據(jù)文件邏輯名稱(chēng),FILENAME='路徑+數(shù)據(jù)文件名',SIZE=數(shù)據(jù)文件初始大小,MAXSIZE=數(shù)據(jù)文件最大容量,FILEGROWTH=數(shù)據(jù)文件自動(dòng)增長(zhǎng)容量,)][LOGON(NAME=日志文件邏輯名稱(chēng),FILENAME='路徑+日志文件名’,SIZE=日志文件初始大小,MAXSIZE=日志文件最大容量,FILEGROWTH=日志文件自動(dòng)增長(zhǎng)容量,)][COLLATE數(shù)據(jù)庫(kù)校驗(yàn)方式名稱(chēng)][FORATTACH]用SQL命令創(chuàng)建數(shù)據(jù)庫(kù)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命令創(chuàng)建一個(gè)教學(xué)數(shù)據(jù)庫(kù)Teach,數(shù)據(jù)文件的邏輯名稱(chēng)為T(mén)each_Data,數(shù)據(jù)文件存放在E盤(pán)根目錄下,文件名為T(mén)eachData.mdf,數(shù)據(jù)文件的初始存儲(chǔ)空間大小為10MB,最大存儲(chǔ)空間為500MB,存儲(chǔ)空間自動(dòng)增長(zhǎng)量為10MB;日志文件的邏輯名稱(chēng)為T(mén)each_Log,日志文件物理地存放在E盤(pán)根目錄下,文件名為T(mén)eachData.ldf,初始存儲(chǔ)空間大小為5MB,最大存儲(chǔ)空間為500MB,存儲(chǔ)空間自動(dòng)增長(zhǎng)量為5MB。用SQL命令創(chuàng)建數(shù)據(jù)庫(kù)修改數(shù)據(jù)庫(kù)修改用戶(hù)數(shù)據(jù)庫(kù)有兩種典型方法:一是通過(guò)ManagementStudio修改;二是通過(guò)SQL命令修改。修改用戶(hù)數(shù)據(jù)庫(kù)用ManagementStudio修改數(shù)據(jù)庫(kù)在“對(duì)象資源管理器”窗口,右鍵單擊要修改的數(shù)據(jù)庫(kù),從快捷菜單中選擇“屬性”命令,即可彈出數(shù)據(jù)庫(kù)屬性對(duì)話(huà)框。用ManagementStudio修改數(shù)據(jù)庫(kù)“常規(guī)”選項(xiàng)卡包含數(shù)據(jù)庫(kù)的狀態(tài)、所有者、創(chuàng)建日期、大小、可用空間、用戶(hù)數(shù)、備份和維護(hù)等信息?!拔募边x項(xiàng)卡包含數(shù)據(jù)文件和日志文件的名稱(chēng)、存儲(chǔ)位置、初始容量大小、文件增長(zhǎng)和文件最大限制等信息?!拔募M”選項(xiàng)卡可以添加或刪除文件組。但是,如果文件組中有文件則不能刪除,必須先將文件移出文件組,才能刪除文件組?!斑x項(xiàng)”選項(xiàng)卡可以設(shè)置數(shù)據(jù)庫(kù)的許多屬性,如排序規(guī)則、恢復(fù)模式、兼容級(jí)別等。“更改跟蹤”

選項(xiàng)卡可以設(shè)定是否對(duì)數(shù)據(jù)庫(kù)的修改進(jìn)行跟蹤。用ManagementStudio修改數(shù)據(jù)庫(kù)“權(quán)限”選項(xiàng)卡可以設(shè)定用戶(hù)或角色對(duì)此數(shù)據(jù)庫(kù)的操作權(quán)限。“擴(kuò)展屬性”

選項(xiàng)卡可以設(shè)定表或列的擴(kuò)展屬性。在設(shè)計(jì)表或列時(shí),通常通過(guò)表名或列名來(lái)表達(dá)含義,當(dāng)表名或列名無(wú)法表達(dá)含義時(shí),就需要使用擴(kuò)展屬性?!扮R像”選項(xiàng)卡可以設(shè)定是否對(duì)數(shù)據(jù)庫(kù)啟用鏡像備份。鏡像備份是一種高性能的備份方案,但需要投入一定的設(shè)備成本,一般用于高可靠性環(huán)境?!笆聞?wù)日志傳送”

選項(xiàng)卡設(shè)定是否啟用事務(wù)日志傳送。事務(wù)日志傳送備份是僅次于鏡像的高可靠性備份方案,可以達(dá)到分鐘級(jí)的災(zāi)難恢復(fù)能力,實(shí)施成本遠(yuǎn)小于鏡像備份,是一種經(jīng)濟(jì)實(shí)用的備份方案。用SQL命令修改數(shù)據(jù)庫(kù)可以使用ALTERDATABASE命令修改數(shù)據(jù)庫(kù)。注意,只有數(shù)據(jù)庫(kù)管理員(DBA)或者具有CREATEDATABASE權(quán)限的人員才有權(quán)執(zhí)行此命令。下面列出常用的修改數(shù)據(jù)庫(kù)的SQL命令的語(yǔ)法格式。ALTERDATABASE數(shù)據(jù)庫(kù)名稱(chēng)ADDFILE(

具體文件格式)[,…n][TOFILEGROUP文件組名]|ADDLOGFILE(

具體文件格式)[,…n]|REMOVEFILE文件邏輯名稱(chēng)|MODIFYFILE(

具體文件格式)用SQL命令修改數(shù)據(jù)庫(kù)|ADDFILEGROUP文件組名|REMOVEFILEGROUP文件組名|MODIFYFILEGROUP文件組名{READ_ONLY|READ_WRITE,|DEFAULT,|NAME=新文件組名}}其中,“具體文件格式”為:(NAME=文件邏輯名稱(chēng)

[,NEWNAME=新文件邏輯名稱(chēng)][,SIZE=初始文件大小][,MAXSIZE=文件最大容量][,FILEGROWTH=文件自動(dòng)增長(zhǎng)容量])用SQL命令修改數(shù)據(jù)庫(kù)[例]修改Teach數(shù)據(jù)庫(kù)中的Teach_Data文件增容方式為一次增加20MB。ALTERDATABASETeachMODIFYFILE(NAME=Teach_Data,FILEGROWTH=20)用SQL命令修改數(shù)據(jù)庫(kù)[例]用SQL命令修改數(shù)據(jù)庫(kù)Teach,添加一個(gè)次要數(shù)據(jù)文件,邏輯名稱(chēng)為T(mén)each_Datanew,存放在E盤(pán)根目錄下,文件名為T(mén)each_Datanew.ndf。數(shù)據(jù)文件的初始大小為100MB,最大容量為200MB,文件自動(dòng)增長(zhǎng)容量為10MB。ALTERDATABASETeachADDFILE(NAME=Teach_Datanew,FILENAME='E:\Teach_Datanew.ndf',SIZE=100,MAXSIZE=200,FILEGROWTH=10)用SQL命令修改數(shù)據(jù)庫(kù)[例]用SQL命令,從Teach數(shù)據(jù)庫(kù)中刪除次要數(shù)據(jù)文件。ALTERDATABASETeachREMOVEFILETeach_Datanew刪除數(shù)據(jù)庫(kù)刪除用戶(hù)數(shù)據(jù)庫(kù)有兩種典型方法:一是通過(guò)ManagementStudio刪除;二是通過(guò)SQL命令刪除。刪除用戶(hù)數(shù)據(jù)庫(kù)用ManagementStudio刪除數(shù)據(jù)庫(kù)打開(kāi)“對(duì)象資源管理器”,右鍵單擊要?jiǎng)h除的數(shù)據(jù)庫(kù),從快捷菜單中選擇“刪除”。刪除數(shù)據(jù)庫(kù)后,與此數(shù)據(jù)庫(kù)關(guān)聯(lián)的數(shù)據(jù)文件和日志文件都會(huì)被刪除,系統(tǒng)數(shù)據(jù)庫(kù)中存儲(chǔ)的該數(shù)據(jù)庫(kù)的所有信息也會(huì)被刪除,因此務(wù)必要慎重! 用SQL命令刪除數(shù)據(jù)庫(kù)DROPDATABASE數(shù)據(jù)庫(kù)名稱(chēng)[,...n][例]刪除數(shù)據(jù)庫(kù)Teach。DROPDATABASETeach查看數(shù)據(jù)庫(kù)信息查看數(shù)據(jù)庫(kù)信息有兩種典型方法:一是通過(guò)ManagementStudio查看二是通過(guò)系統(tǒng)存儲(chǔ)過(guò)程查看查看數(shù)據(jù)庫(kù)信息在ManagementStudio的“對(duì)象資源管理器”窗口中,選中“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)下的某個(gè)數(shù)據(jù)庫(kù),單擊鼠標(biāo)右鍵,在快捷菜單中選擇“屬性”,即可查看該數(shù)據(jù)庫(kù)的詳細(xì)信息。用ManagementStudio查看數(shù)據(jù)庫(kù)信息用系統(tǒng)存儲(chǔ)過(guò)程顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)

用系統(tǒng)存儲(chǔ)過(guò)程顯示數(shù)據(jù)庫(kù)信息用系統(tǒng)存儲(chǔ)過(guò)程顯示文件信息用系統(tǒng)存儲(chǔ)過(guò)程顯示文件組信息Sp_helpdb[[@dbname=]'name']例如:EXECSp_helpdbAdventureWorks2012Sp_helpfile[[@filename=]'name']例如:EXECSp_helpfileAddressSp_helpfilegroup[[@filegroupname=]'name']例如:useAdventureWorks2012EXECSp_helpfilegroup遷移數(shù)據(jù)庫(kù)很多情況下,我們需要將數(shù)據(jù)庫(kù)文件從一臺(tái)電腦遷移到另外的電腦上,以下介紹兩種常用的遷移數(shù)據(jù)庫(kù)的方法:一是分離和加載數(shù)據(jù)庫(kù)二是生成腳本遷移用戶(hù)數(shù)據(jù)庫(kù)在對(duì)象資源管理器中,選擇要遷移的數(shù)據(jù)庫(kù)節(jié)點(diǎn),單擊鼠標(biāo)右鍵,在快捷菜單中選擇“任務(wù)”,在之后出現(xiàn)的級(jí)聯(lián)菜單中選擇“分離”,會(huì)彈出“分離數(shù)據(jù)庫(kù)”屬性對(duì)話(huà)框。分離和加載數(shù)據(jù)庫(kù)1.分離數(shù)據(jù)庫(kù)分離和加載數(shù)據(jù)庫(kù)1.分離數(shù)據(jù)庫(kù)分離和加載數(shù)據(jù)庫(kù)1.分離數(shù)據(jù)庫(kù)在對(duì)象資源管理器中選擇“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),單擊鼠標(biāo)右鍵,在快捷菜單中選擇“附加”,會(huì)彈出“附加數(shù)據(jù)庫(kù)”屬性對(duì)框框。分離和加載數(shù)據(jù)庫(kù)2.加載數(shù)據(jù)庫(kù)在“附加數(shù)據(jù)庫(kù)”屬性對(duì)話(huà)框中,單擊其中的“添加”按鈕,在彈出的對(duì)話(huà)框中選擇需要的.mdf文件,即可把數(shù)據(jù)庫(kù)文件附加成功。分離和加載數(shù)據(jù)庫(kù)2.加載數(shù)據(jù)庫(kù)分離和加載數(shù)據(jù)庫(kù)2.加載數(shù)據(jù)庫(kù)在對(duì)象資源管理器中,選擇要操作的數(shù)據(jù)庫(kù)節(jié)點(diǎn),單擊鼠標(biāo)右鍵,在快捷菜單中選擇“任務(wù)”,在之后出現(xiàn)的級(jí)聯(lián)菜單中選擇“生成腳本”命令,會(huì)彈出“生成和發(fā)布腳本”窗口。生成腳本生成腳本數(shù)據(jù)類(lèi)型SQL使用數(shù)據(jù)定義語(yǔ)言(DataDefinitionLanguage,DDL)實(shí)現(xiàn)數(shù)據(jù)定義功能。關(guān)系表中的每一列(即每個(gè)字段)都來(lái)自同一個(gè)域,屬于同一種數(shù)據(jù)類(lèi)型。數(shù)據(jù)類(lèi)型創(chuàng)建數(shù)據(jù)表之前,需要為表中的每一個(gè)屬性設(shè)置一種數(shù)據(jù)類(lèi)型。數(shù)據(jù)類(lèi)型數(shù)據(jù)內(nèi)容與范圍占用的字節(jié)bit精確數(shù)值型,0,1,NULL實(shí)際使用1bit,但會(huì)占用1字節(jié),若一個(gè)數(shù)據(jù)中有數(shù)個(gè)bit字段,則可共占1字節(jié)bigint精確數(shù)值型,-263~263-18字節(jié)int精確數(shù)值型,-231~231-14字節(jié)smallint精確數(shù)值型,-215~215-12字節(jié)tinyint精確數(shù)值型,0~2551字節(jié)mumeric精確數(shù)值型,-1038+1~1038–11~9位數(shù)使用5字節(jié),10~19位數(shù)使用9字節(jié),20~28位數(shù)使用13字節(jié),29~38位數(shù)使用17字節(jié)decimal精確數(shù)值型,-1038+1~1038–1與numeric類(lèi)型相同float近似數(shù)值型,-1.79E+308~1.79E+3088字節(jié)real近似數(shù)值型,-3.40E+38~3.40E+384字節(jié)數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型數(shù)據(jù)內(nèi)容與范圍占用的字節(jié)Money精確數(shù)值型,-263~263-1,精確到萬(wàn)分之一8字節(jié)smallmoney精確數(shù)值型,-214748.3648~214748.36474字節(jié)datetime精確數(shù)值型,1753/1/1~9999/12/318字節(jié)smalldatetime精確數(shù)值型,1900/1/1~2079/6/64字節(jié)char字符型,1~8000個(gè)字符,定長(zhǎng)的非Unicode字符1個(gè)字符占1字節(jié),尾端空白字符保留varchar字符型,1~8000個(gè)字符,非定長(zhǎng)的非Unicode字符1個(gè)字符占1字節(jié),尾端空白字符刪除text字符型,最多231-1個(gè)字符,變長(zhǎng)的非Unicode字符1個(gè)字符占1字節(jié),最大可存儲(chǔ)2GBncharUnicode字符型,1~4000個(gè)字符,非定長(zhǎng)的Unicode字符1個(gè)字符占2字節(jié),尾端空白字符保留navcharUnicode字符型,1~4000個(gè)字符,非定長(zhǎng)的Unicode字符1個(gè)字符占2字節(jié),尾端空白字符刪除ntextUnicode字符型,231-1個(gè)字符,非定長(zhǎng)的Unicode字符1個(gè)字符占2字節(jié),最大可存儲(chǔ)2GBbinary二進(jìn)制字符串型,1~8000個(gè)字節(jié),定長(zhǎng)二進(jìn)制數(shù)據(jù)在存儲(chǔ)時(shí),SQLServer會(huì)另外增加4字節(jié),尾端空白字符會(huì)保留varbinary二進(jìn)制字符串型,1~8000個(gè)字節(jié),非定長(zhǎng)二進(jìn)制數(shù)據(jù)在存儲(chǔ)時(shí),SQLServer會(huì)另外增加4字節(jié),尾端空白字符會(huì)刪除image二進(jìn)制字符串型,231–1個(gè)字節(jié),非長(zhǎng)二進(jìn)制數(shù)據(jù)最大可存儲(chǔ)2GBtimestamp其它數(shù)據(jù)類(lèi)型,十六進(jìn)制8字節(jié)uniqueidentifier其它數(shù)據(jù)類(lèi)型,全局唯一標(biāo)識(shí)符(GUID)可用NEWID(|)函數(shù)生成一個(gè)該種類(lèi)型的字段值。16字節(jié)sql_variant其它數(shù)據(jù)類(lèi)型,0~8016table其它數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型整數(shù)型:按照取值范圍從大到小,包括bigint、int、smallint、tinyint、bit。在實(shí)際應(yīng)用中,可以根據(jù)屬性的具體取值范圍選擇適合的整數(shù)型。數(shù)據(jù)類(lèi)型數(shù)值型:包括精確數(shù)值型numeric、decimal和近似數(shù)值型float、real。numeric與decimal在功能上等效,用于精確存儲(chǔ)數(shù)值。以numeric為例,格式為numeric(p,s),其中p表示數(shù)據(jù)長(zhǎng)度,s表示小數(shù)位數(shù)。例如,成績(jī)的數(shù)據(jù)類(lèi)型可以設(shè)置為numeric(4,1),表示數(shù)據(jù)長(zhǎng)度為4,小數(shù)位為小數(shù)點(diǎn)后一位。float和real用來(lái)存儲(chǔ)數(shù)據(jù)的近似值,當(dāng)數(shù)值的位數(shù)太多時(shí),可用它們存取數(shù)值的近似值。數(shù)據(jù)類(lèi)型貨幣型:按照取值范圍從大到小,包括money和smallmoney,它們可以精確到所代表的貨幣單位的萬(wàn)分之一,也就是小數(shù)點(diǎn)后面4位。通常情況下,貨幣型可以轉(zhuǎn)換為精確數(shù)值型。日期型:按照時(shí)間范圍從大到小,包括datetime和smalldatetime,可以精確到秒,smalldatetime比datetime少占用4個(gè)字節(jié)。此外,還有一個(gè)常用的日期型是date,這種數(shù)據(jù)類(lèi)型只顯示日期,不顯示時(shí)間。數(shù)據(jù)類(lèi)型包括char、varchar、nchar、nvarchar、text、ntext。其中,char、varchar存放非Unicode字符(即ASCII字符),一個(gè)字符占1個(gè)字節(jié),char是定長(zhǎng)的,varchar是非定長(zhǎng)的。字符型:數(shù)據(jù)類(lèi)型例如,“學(xué)號(hào)(SNo)”可以設(shè)置為char(6),表示學(xué)號(hào)最多可以包含6個(gè)非Unicode字符,即使小于6個(gè),在內(nèi)存中也要分配6個(gè)字節(jié)的空間;如果設(shè)置為varchar(6),則學(xué)號(hào)實(shí)際包含多少非Unicode字符,在內(nèi)存中就分配多少字節(jié)。字符型:數(shù)據(jù)類(lèi)型字符型:nchar、nvarchar存放Unicode字符,一個(gè)字符占2個(gè)字節(jié),nchar是定長(zhǎng)的,nvarchar是非定長(zhǎng)的。nchar、nvarchar的用法與char、varchar相同,只是占用內(nèi)存空間不同。例如,如果“學(xué)號(hào)(SNo)”設(shè)置為nchar(6),則學(xué)號(hào)占12個(gè)字節(jié);如果設(shè)置為nvarchar(6),則學(xué)號(hào)根據(jù)實(shí)際長(zhǎng)度分配字節(jié)。當(dāng)某個(gè)字符型屬性需要描述的字符數(shù)比較多時(shí),可以將其設(shè)置為text、ntext。其中,text存放非Unicode字符,定長(zhǎng),最大可存儲(chǔ)2GB;ntext存放Unicode字符,非定長(zhǎng),最大可存儲(chǔ)2GB。數(shù)據(jù)類(lèi)型包括binary、varbinary、image。binary是定長(zhǎng)的二進(jìn)制數(shù)據(jù)型,varbinary是非定長(zhǎng)的二進(jìn)制數(shù)據(jù)型,兩者最多可以表示8000個(gè)字節(jié)。任何類(lèi)型的數(shù)據(jù)都可存儲(chǔ)在這種類(lèi)型的字段中,不需數(shù)據(jù)轉(zhuǎn)換。image類(lèi)型可以存儲(chǔ)圖片本身,這時(shí)需要事先將圖片轉(zhuǎn)換成二進(jìn)制流的形式,也可以存儲(chǔ)圖片路徑。二進(jìn)制數(shù)據(jù)型:數(shù)據(jù)類(lèi)型包括timestamp、uniqueidentifier、sql_variant、table。timestamp數(shù)據(jù)類(lèi)型提供數(shù)據(jù)庫(kù)范圍內(nèi)的唯一值。此類(lèi)型相當(dāng)于binary(8)或varbinary(8),但當(dāng)它所定義的列更新或添加數(shù)據(jù)行時(shí),此列的值會(huì)被自動(dòng)更新,一個(gè)計(jì)數(shù)值將自動(dòng)地添加到此timestamp數(shù)據(jù)列中。每個(gè)數(shù)據(jù)庫(kù)表中只能有一個(gè)timestamp數(shù)據(jù)列。uniqueidentifier數(shù)據(jù)類(lèi)型稱(chēng)為全球唯一標(biāo)識(shí)符(GloballyUniqueIdentifier,GUID),可用NEWID()函數(shù)產(chǎn)生。特殊類(lèi)型:數(shù)據(jù)類(lèi)型特殊類(lèi)型:sql_variant數(shù)據(jù)類(lèi)型可以存儲(chǔ)除文本、圖形數(shù)據(jù)和timestamp類(lèi)型數(shù)據(jù)外的其他任何合法的SQLServer數(shù)據(jù),此數(shù)據(jù)類(lèi)型大大方便了SQLServer的開(kāi)發(fā)工作。table數(shù)據(jù)類(lèi)型用于存儲(chǔ)對(duì)表或視圖處理后的結(jié)果集,這一類(lèi)型使得變量可以存儲(chǔ)一個(gè)表,從而使函數(shù)或過(guò)程返回查詢(xún)結(jié)果更加方便、快捷。創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表有兩種典型方法:一是通過(guò)ManagementStudio創(chuàng)建;二是通過(guò)SQL命令創(chuàng)建。創(chuàng)建數(shù)據(jù)表右鍵單擊“對(duì)象資源管理器”中“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)下的“表”節(jié)點(diǎn),從快捷菜單中選擇“新建表”命令,會(huì)彈出定義數(shù)據(jù)表結(jié)構(gòu)對(duì)話(huà)框。其中,每一行用于定義數(shù)據(jù)表的一個(gè)字段,包括字段名、數(shù)據(jù)類(lèi)型、長(zhǎng)度、字段是否為NULL以及默認(rèn)值等。用ManagementStudio創(chuàng)建數(shù)據(jù)表用ManagementStudio創(chuàng)建數(shù)據(jù)表

定義數(shù)據(jù)表結(jié)構(gòu)對(duì)話(huà)框“列名”(即表中某個(gè)字段名)由用戶(hù)命名,最長(zhǎng)128字符,可包含中文、英文、下劃線(xiàn)、#號(hào)、貨幣符號(hào)(¥)及@符號(hào)。同一表中不允許有重名的列。“數(shù)據(jù)類(lèi)型”,定義字段可存放數(shù)據(jù)的類(lèi)型?!霸试S空”,當(dāng)對(duì)某個(gè)字段的“允許空”列上打勾時(shí),表示該字段的值允許為NULL值。這樣,在向數(shù)據(jù)表中輸入數(shù)據(jù)時(shí),如果沒(méi)有給該字段輸入數(shù)據(jù),系統(tǒng)將自動(dòng)取NULL值,否則,必須給該字段提供數(shù)據(jù)?!澳J(rèn)值”,表示該字段的默認(rèn)值(即DEFAULT值)。如果規(guī)定了默認(rèn)值,在向數(shù)據(jù)表中輸入數(shù)據(jù)時(shí),如果沒(méi)有給該字段輸入數(shù)據(jù),系統(tǒng)自動(dòng)將默認(rèn)值寫(xiě)入該字段。用ManagementStudio創(chuàng)建數(shù)據(jù)表用SQL命令創(chuàng)建數(shù)據(jù)表 CREATETABLE<表名> (<列定義>[{,<列定義>|<表約束>}])<列名><數(shù)據(jù)類(lèi)型>[DEFAULT][{<列約束>}]

<表名>最多可有128個(gè)字符,如S、SC、C等,不允許重名。DEFAULT,若某字段設(shè)置有默認(rèn)值,則當(dāng)該字段未被輸入數(shù)據(jù)時(shí),以該默認(rèn)值自動(dòng)填入該字段。用SQL命令創(chuàng)建數(shù)據(jù)表 CREATETABLE<表名> (<列定義>[{,<列定義>|<表約束>}])<列名><數(shù)據(jù)類(lèi)型>[DEFAULT][{<列約束>}]

[例]用SQL命令建立一個(gè)學(xué)生表S。

CREATETABLES (SNoCHAR(6), SNVARCHAR(10), SexNCHAR(1)DEFAULT'男’, AgeINT, DeptNVARCHAR(20))缺省值為“男”定義數(shù)據(jù)表的約束數(shù)據(jù)表的約束在SQLServer中,對(duì)于數(shù)據(jù)表的約束分為列約束和表約束。列約束是對(duì)某一個(gè)特定列的約束,包含在列定義中,直接跟在該列的其他定義之后,用空格分隔,不必指定列名。表約束與列定義相互獨(dú)立,不包括在列定義中,通常用于對(duì)多個(gè)列一起進(jìn)行約束,與列定義用“,”分隔,定義表約束時(shí)必須指出要約束的列的名稱(chēng)。定義數(shù)據(jù)表的約束完整性約束的基本語(yǔ)法格式[CONSTRAINT<約束名>]<約束類(lèi)型>NULL/NOTNULLUNIQUEPRIMARYKEYFOREIGNKEYCHECKNULL/NOTNULL約束NULL表示“不知道”、“不確定”或“沒(méi)有數(shù)據(jù)”的意思主鍵列不允許出現(xiàn)空值[CONSTRAINT<約束名>][NULL|NOTNULL][例]建立一個(gè)S表,對(duì)SNo字段進(jìn)行NOTNULL約束。

CREATETABLES (SNoVARCHAR(6)CONSTRAINTS_CONSNOTNULL, SNNVARCHAR(10), SexNCHAR(1), AgeINT, DeptNVARCHAR(20))可省略約束名稱(chēng):SNoVARCHAR(6)NOTNULLUNIQUE約束(唯一約束)指明基本表在某一列或多個(gè)列的組合上的取值必須唯一在建立UNIQUE約束時(shí),需要考慮以下幾個(gè)因素:使用UNIQUE約束的字段允許為NULL值。一個(gè)表中可以允許有多個(gè)UNIQUE約束。UNIQUE約束用于強(qiáng)制在指定字段上創(chuàng)建一個(gè)UNIQUE索引,缺省為非聚集索引。UNIQUE約束(唯一約束)UNIQUE用于定義列約束[CONSTRAINT<約束名>]UNIQUEUNIQUE用于定義表約束[CONSTRAINT<約束名>]UNIQUE(<列名>[{,<列名>}])UNIQUE約束(唯一約束)[例]建立一個(gè)S表,定義SN為唯一鍵。CREATETABLES(SNoVARCHAR(6),SNNVARCHAR(10)CONSTRAINTSN_UNIQUNIQUE,SexNCHAR(1),AgeINT,DeptNVARCHAR(20))SN_UNIQ可以省略SNNVARCHAR(10)UNIQUE,UNIQUE約束(唯一約束)[例]建立一個(gè)S表,定義SN+Sex為唯一鍵,此約束為表約束。CREATETABLES(SNoVARCHAR(6),SNNVARCHAR(10)UNIQUE,SexNCHAR(1),AgeINT,DeptNVARCHAR(20),CONSTRAINTS_UNIQUNIQUE(SN,Sex))PRIMARYKEY約束(主鍵約束)PRIMARYKEY約束(主鍵約束)用于定義基本表的主鍵,起唯一標(biāo)識(shí)作用不能為NULL不能重復(fù)PRIMARYKEY與UNIQUE的區(qū)別:在一個(gè)基本表中只能定義一個(gè)PRIMARYKEY約束,但可定義多個(gè)UNIQUE約束。對(duì)于指定為PRIMARYKEY的一個(gè)列或多個(gè)列的組合,其中任何一個(gè)列都不能出現(xiàn)NULL值,而對(duì)于UNIQUE所約束的唯一鍵,則允許為NULL。不能為同一個(gè)列或一組列,既定義UNIQUE約束,又定義PRIMARYKEY約束。PRIMARYKEY約束(主鍵約束)PRIMARYKEY用于定義列約束CONSTRAINT<約束名>PRIMARYKEYPRIMARYKEY用于定義表約束[CONSTRAINT<約束名>]PRIMARYKEY(<列名>[{,<列名>}])PRIMARYKEY約束(主鍵約束)[例]建立一個(gè)S表,定義SNo為S的主鍵,建立另外一個(gè)數(shù)據(jù)表C,定義CNo為C的主鍵。定義數(shù)據(jù)表S:CREATETABLES(SNoVARCHAR(6)CONSTRAINTS_PrimPRIMARYKEY,SNNVARCHAR(10)UNIQUE,SexNCHAR(1),AgeINT,DeptNVARCHAR(20))

定義數(shù)據(jù)表C:CREATETABLEC(CNoVARCHAR(6)CONSTRAINTC_PrimPRIMARYKEY,CNNVARCHAR(20),CTINT)PRIMARYKEY約束(主鍵約束)[例]建立一個(gè)SC表,定義SNo+CNo為SC的主鍵。

CREATETABLESC (SNoVARCHAR(6)NOTNULL, CNoVARCHAR(6)NOTNULL, ScoreNUMERIC(4,1), CONSTRAINTSC_PrimPRIMARYKEY(SNo,CNo))FOREIGNKEY約束(外鍵約束)主表從表主鍵外部鍵引用[CONSTRAINT<約束名>]FOREIGNKEYREFERENCES<主表名>(<列名>[{,<列名>}])FOREIGNKEY約束(外鍵約束)[例]建立一個(gè)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約束用來(lái)檢查字段值所允許的范圍在建立CHECK約束時(shí),需要考慮以下幾個(gè)因素:一個(gè)表中可以定義多個(gè)CHECK約束。每個(gè)字段只能定義一個(gè)CHECK約束。在多個(gè)字段上定義的CHECK約束必須為表約束。當(dāng)執(zhí)行INSERT、UNDATE語(yǔ)句時(shí),CHECK約束將驗(yàn)證數(shù)據(jù)。[CONSTRAINT<約束名>]CHECK(<條件>)CHECK約束[例]建立一個(gè)SC表,定義Score的取值范圍為0~100之間。

CREATETABLESC (SNoVARCHAR(6), CNoVARCHAR(6), ScoreNUMERIC(4,1)CONSTRAINTScore_Chk CHECK(Score>=0ANDScore<=100))修改數(shù)據(jù)表在ManagementStudio中的“對(duì)象資源管理器”窗口中,展開(kāi)“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)。右鍵單擊要修改的數(shù)據(jù)表,從快捷菜單中選擇“設(shè)計(jì)”命令,則會(huì)彈出修改數(shù)據(jù)表結(jié)構(gòu)對(duì)話(huà)框??梢栽诖藢?duì)話(huà)框中修改列的數(shù)據(jù)類(lèi)型、名稱(chēng)等屬性,添加或刪除列,也可以指定表的主關(guān)鍵字約束。修改完畢后,單擊工具欄中的保存按鈕,存盤(pán)退出。用ManagementStudio修改數(shù)據(jù)表的結(jié)構(gòu)用ManagementStudio修改數(shù)據(jù)表的結(jié)構(gòu)修改數(shù)據(jù)表結(jié)構(gòu)對(duì)話(huà)框ALTERTABLE<表名>ADD<列定義>|<完整性約束定義>ALTERTABLE<表名>ALTERCOLUMN<列名><數(shù)據(jù)類(lèi)型>[NULL|NOTNULL]用SQL命令修改數(shù)據(jù)表結(jié)構(gòu)ALTERTABLE<表名>DROPCONSTRAINT<約束名>用SQL命令修改數(shù)據(jù)表結(jié)構(gòu)[例]在S表中增加一個(gè)班號(hào)列和住址列。

ALTERTABLES ADD Class_NoVARCHAR(6), AddressNVARCHAR(20)使用此方式增加的新列自動(dòng)填充N(xiāo)ULL值,所以不能為增加的新列指定NOTNULL約束。[例]在SC表中增加完整性約束定義,使Score在0~100之間。

ALTERTABLESC ADDCONSTRAINTScore_ChkCHECK(ScoreBETWEEN0AND100)用SQL命令修改數(shù)據(jù)表結(jié)構(gòu)[例]把S表中的SN列加寬到12個(gè)字符。

ALTERTABLES ALTERCOLUMN SNNVARCHAR(12)不能改變列名;不能將含有空值的列的定義修改為NOTNULL約束;若列中已有數(shù)據(jù),則不能減少該列的寬度,也不能改變其數(shù)據(jù)類(lèi)型;只能修改NULL/NOTNULL約束,其他類(lèi)型的約束在修改之前必須先將約束刪除,然后再重新添加修改過(guò)的約束定義。用SQL命令修改數(shù)據(jù)表結(jié)構(gòu)[例]刪除S表中的主鍵。

ALTERTABLES DROPCONSTRAINTS_Prim刪除數(shù)據(jù)表當(dāng)某個(gè)基本表已不再使用時(shí),可將其刪除。刪除后,表中的數(shù)據(jù)和所建的索引都被刪除,建立在該表上的視圖不會(huì)刪除,系統(tǒng)將繼續(xù)保留其定義,但已無(wú)法使用。刪除基本表如果重新恢復(fù)該表,這些視圖可重新使用。在ManagementStudio中,右鍵單擊要?jiǎng)h除的表,從快捷菜單中選擇“刪除”命令,會(huì)彈出“刪除對(duì)象”對(duì)話(huà)框。用ManagementStudio刪除數(shù)據(jù)表單擊“顯示依賴(lài)關(guān)系”按鈕,即會(huì)彈出“依賴(lài)關(guān)系”對(duì)話(huà)框,其中列出了表所依靠的對(duì)象和依賴(lài)于表的對(duì)象,當(dāng)有對(duì)象依賴(lài)于表時(shí)不能刪除表。用ManagementStudio刪除數(shù)據(jù)表只能刪除自己建立的表,不能刪除其他用戶(hù)所建的表用SQL命令刪除數(shù)據(jù)表DROPTABLE<表名>查看數(shù)據(jù)表在ManagementStudio的“對(duì)象資源管理器”中展開(kāi)“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),選中相應(yīng)的數(shù)據(jù)庫(kù),從中找到要查看的數(shù)據(jù)表。查看數(shù)據(jù)表右鍵單擊該表,從快捷菜單中選擇“屬性”菜單項(xiàng),則會(huì)彈出“表屬性”對(duì)話(huà)框,從中可以看到表的詳細(xì)屬性信息,如表名、所有者、創(chuàng)建日期、文件組、記錄行數(shù)、數(shù)據(jù)表中的字段名稱(chēng)、結(jié)構(gòu)和類(lèi)型等。查看數(shù)據(jù)表的屬性查看數(shù)據(jù)表查看數(shù)據(jù)表在ManagementStudio的“對(duì)象資源管理器”中,用右鍵單擊要查看數(shù)據(jù)的表,從快捷菜單中選擇“選擇前1000行(W)”命令,則會(huì)顯示表中的前1000條數(shù)據(jù)。查看數(shù)據(jù)表中的數(shù)據(jù)查看數(shù)據(jù)表關(guān)系表S(學(xué)生關(guān)系)SNo學(xué)號(hào)SN姓名Sex性別Age年齡Dept系別S1趙亦女17計(jì)算機(jī)S2錢(qián)爾男18信息S3孫珊女20信息S4李思男21自動(dòng)化S5周武男19計(jì)算機(jī)S6吳麗女20自動(dòng)化關(guān)系表CNo課程號(hào)CN課程名CT課時(shí)C1程序設(shè)計(jì)60C2微機(jī)原理80C3數(shù)字邏輯60C4數(shù)據(jù)結(jié)構(gòu)80C5數(shù)據(jù)庫(kù)60C6編譯原理60C7操作系統(tǒng)60C(課程關(guān)系)關(guān)系表SNo學(xué)號(hào)CNo課程號(hào)Score成績(jī)S1C190S1C285S2C557S2C680S2C7S2C470S3C175S3C270S3C485S4C193S4C285S4C383S5C289SC(選課關(guān)系)關(guān)系表TNO教師號(hào)TN姓名Sex性別Age年齡Prof職稱(chēng)Sal工資Comm崗位津貼Dept系別T1李力男47教授15003000計(jì)算機(jī)T2王平女28講師8001200信息T3劉偉男30講師9001200計(jì)算機(jī)T4張雪女51教授16003000自動(dòng)化T5張?zhí)m女39副教授13002000信息T(教師關(guān)系)關(guān)系表TNo教師號(hào)CNo課程號(hào)T1C1T1C4T2C5T2C6T3C1T3C5T4C2T4C3T5C5T5C7TC(授課關(guān)系)單關(guān)系(表)的數(shù)據(jù)查詢(xún)SELECT[ALL|DISTINCT][TOPN[PERCENT][WITHTIES]]〈列名〉[AS別名1][{,〈列名〉[AS別名2]}]FROM〈表名〉[[AS]表別名][WHERE〈檢索條件〉][GROUPBY<列名1>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]]單關(guān)系(表)的數(shù)據(jù)查詢(xún)結(jié)構(gòu)投影選取無(wú)條件查詢(xún)[例]查詢(xún)?nèi)w學(xué)生的學(xué)號(hào)、姓名和年齡。

SELECTSNo,SN,Age FROMS無(wú)條件查詢(xún)無(wú)條件查詢(xún)是指只包含“SELECT…FROM”的查詢(xún),這種查詢(xún)最簡(jiǎn)單,相當(dāng)于只對(duì)關(guān)系(表)進(jìn)行投影操作。在菜單欄下方的快捷工具中,單擊“新建查詢(xún)”,會(huì)彈出查詢(xún)窗口(即對(duì)象資源管理器右側(cè)的窗口)。無(wú)條件查詢(xún)?cè)诓樵?xún)窗口中輸入查詢(xún)語(yǔ)句,單擊“!執(zhí)行”,在查詢(xún)語(yǔ)句的下方,會(huì)顯示對(duì)應(yīng)的查詢(xún)結(jié)果。無(wú)條件查詢(xún)[例]查詢(xún)學(xué)生的全部信息。

SELECT* FROMS用“*”表示S表的全部列名,而不必逐一列出。無(wú)條件查詢(xún)[例]查詢(xún)選修了課程的學(xué)生的學(xué)號(hào)。

SELECTDISTINCTSNo FROMSC無(wú)條件查詢(xún)[例]查詢(xún)?nèi)w學(xué)生的姓名、學(xué)號(hào)和年齡。

SELECTSNName,SNo,Age FROMSSELECTSNASName,SNo,Age條件查詢(xún)當(dāng)要在表中找出滿(mǎn)足某些條件的行時(shí),則需使用WHERE子句指定查詢(xún)條件。WHERE子句中,條件通常通過(guò)三部分來(lái)描述。常用的比較運(yùn)算符如下表所示。條件查詢(xún)(1)列名(2)比較運(yùn)算符(3)列名、常數(shù)運(yùn)算符含義=,>,<,>=,<=,!=,<>比較大小AND,OR,NOT多重條件BETWEENAND確定范圍IN確定集合LIKE字符匹配ISNULL空值1.比較大小條件查詢(xún)[例]查詢(xún)選修課程號(hào)為'C1'的學(xué)生的學(xué)號(hào)和成績(jī)。SELECTSNo,ScoreFROMSCWHERECNo='C1'[例]查詢(xún)成績(jī)高于85分的學(xué)生的學(xué)號(hào)、課程號(hào)和成績(jī)。SELECTSNo,CNo,ScoreFROMSCWHEREScore>852.多重條件查詢(xún)條件查詢(xún)[例]查詢(xún)選修C1或C2且分?jǐn)?shù)大于等于85分學(xué)生的學(xué)號(hào)、課程號(hào)和成績(jī)。SELECTSNo,CNo,ScoreFROMSCWHERE(CNo='C1'ORCNo='C2')AND(Score>=85)NOT、AND、OR(用戶(hù)可以使用括號(hào)改變優(yōu)先級(jí))高低3.確定范圍條件查詢(xún)[例]查詢(xún)工資在1000元~1500元之間的教師的教師號(hào)、姓名及職稱(chēng)。SELECTTNo,TN,ProfFROMTWHERESalBETWEEN1000AND1500[例]查詢(xún)工資不在1000元~1500元間的教師的教師號(hào)、姓名及職稱(chēng)。

SELECTTNo,TN,ProfFROMTWHERESalNOTBETWEEN1000AND1500WHERESal>=1000ANDSal<=15004.確定集合條件查詢(xún)[例]查詢(xún)選修C1或C2的學(xué)生的學(xué)號(hào)、課程號(hào)和成績(jī)。

SELECTSNo,CNo,Score FROMSC WHERECNoIN('C1','C2’)此語(yǔ)句也可以使用邏輯運(yùn)算符“OR”實(shí)現(xiàn)。

WHERECNo='C1'ORCNo='C2'利用“NOTIN”可以查詢(xún)指定集合外的元組。利用“IN“操作可以查詢(xún)屬性值屬于指定集合的元組。4.確定集合條件查詢(xún)利用“IN”操作可以查詢(xún)屬性值屬于指定集合的元組。[例]查詢(xún)沒(méi)有選修C1,也沒(méi)有選修C2的學(xué)生的學(xué)號(hào)、課程號(hào)和成績(jī)。

SELECTSNo,CNo,Score FROMSC WHERECNoNOTIN('C1','C2')5.部分匹配查詢(xún)條件查詢(xún)當(dāng)不知道完全精確的值時(shí),用戶(hù)可以使用LIKE或NOTLIKE進(jìn)行部分匹配查詢(xún)(也稱(chēng)模糊查詢(xún))<屬性名>LIKE<字符串常量>5.部分匹配查詢(xún)條件查詢(xún)[例]查詢(xún)所有姓張的教師的教師號(hào)和姓名。

SELECTTNo,TN FROMT WHERETNLIKE'張%'[例]查詢(xún)姓名中第二個(gè)漢字是“力”的教師號(hào)和姓名。

SELECTTNo,TN FROMT WHERETNLIKE'_力%'6.空值查詢(xún)條件查詢(xún)[例]查詢(xún)沒(méi)有考試成績(jī)的學(xué)生的學(xué)號(hào)和相應(yīng)的課程號(hào)。

SELECTSNo,CNo FROMSC WHEREScoreISNULL某個(gè)字段沒(méi)有值稱(chēng)之為具有空值(NULL)空值不同于零和空格,不占任何存儲(chǔ)空間常用庫(kù)函數(shù)及統(tǒng)計(jì)匯總查詢(xún)常用庫(kù)函數(shù)及統(tǒng)計(jì)匯總查詢(xún)SQL提供了許多庫(kù)函數(shù),增強(qiáng)了基本檢索能力。常用的庫(kù)函數(shù)如下表所示。函數(shù)名稱(chēng)功能AVG按列計(jì)算平均值SUM按列計(jì)算值的總和MAX求一列中的最大值MIN求一列中的最小值COUNT按列值計(jì)個(gè)數(shù)常用庫(kù)函數(shù)及統(tǒng)計(jì)匯總查詢(xún)[例]求學(xué)號(hào)為S1的學(xué)生的總分和平均分。SELECTSUM(Score)ASTotalScore,AVG(Score)ASAvgScoreFROMSCWHERE(SNo='S1')常用庫(kù)函數(shù)及統(tǒng)計(jì)匯總查詢(xún)[例]求選修C1號(hào)課程的最高分、最低分及之間相差的分?jǐn)?shù)。SELECTMAX(Score)ASMaxScore,MIN(Score)ASMinScore,MAX(Score)-MIN(Score)ASDiffFROMSCWHERE(CNo='C1')[例]求計(jì)算機(jī)系學(xué)生的總數(shù)。

SELECTCOUNT(SNo)FROMS WHEREDept='計(jì)算機(jī)'常用庫(kù)函數(shù)及統(tǒng)計(jì)匯總查詢(xún)[例]求學(xué)校中共有多少個(gè)系。

SELECTCOUNT(DISTINCTDept)ASDeptNumFROMSDISTINCT消去重復(fù)行

[例]統(tǒng)計(jì)有成績(jī)同學(xué)的人數(shù)。

SELECTCOUNT(Score) FROMSC其中,成績(jī)?yōu)?的同學(xué)也計(jì)算在內(nèi),沒(méi)有成績(jī)(即為空值)的不計(jì)算。[例]利用特殊函數(shù)COUNT(*)求計(jì)算機(jī)系學(xué)生的總數(shù)。

SELECTCOUNT(*)FROMS WHEREDept='計(jì)算機(jī)'常用庫(kù)函數(shù)及統(tǒng)計(jì)匯總查詢(xún)COUNT(*)用來(lái)統(tǒng)計(jì)元組的個(gè)數(shù),不消除重復(fù)行,不允許使用DISTINCT關(guān)鍵字。分組查詢(xún)分組查詢(xún)GROUPBY子句可以將查詢(xún)結(jié)果按屬性列或?qū)傩粤薪M合在行的方向上進(jìn)行分組,每組在屬性列或?qū)傩粤薪M合上具有相同的值。分組查詢(xún)[例]查詢(xún)各個(gè)教師的教師號(hào)及其任課的門(mén)數(shù)。

SELECTTNo,COUNT(*)ASC_Num FROMTC GROUPBYTNoGROUPBY子句按TNo的值分組,所有具有相同TNo的元組為一組,對(duì)每一組使用函數(shù)COUNT進(jìn)行計(jì)算,統(tǒng)計(jì)出各位教師任課的門(mén)數(shù)。分組查詢(xún)?nèi)粼诜纸M后還要按照一定的條件進(jìn)行篩選,則需使用HAVING子句分組查詢(xún)[例]查詢(xún)選修兩門(mén)以上(含兩門(mén))課程的學(xué)生的學(xué)號(hào)和選課門(mén)數(shù)。SELECTSNo,COUNT(*)ASSC_NumFROMSCGROUPBYSNoHAVING(COUNT(*)>=2)查詢(xún)結(jié)果的排序查詢(xún)結(jié)果的排序當(dāng)需要對(duì)查詢(xún)結(jié)果排序時(shí),應(yīng)該使用ORDERBY子句,ORDERBY子句必須出現(xiàn)在其他子句之后。排序方式可以指定,DESC為降序,ASC為升序,缺省時(shí)為升序。查詢(xún)結(jié)果的排序[例]查詢(xún)選修C1的學(xué)生學(xué)號(hào)和成績(jī),并按成績(jī)降序排列。

SELECTSNo,Score FROMSC WHERE(CNo='C1’) ORDERBYScoreDESC查詢(xún)結(jié)果的排序[例]查詢(xún)選修C2,C3,C4或C5課程的學(xué)號(hào)、課程號(hào)和成績(jī)。查詢(xún)結(jié)果按學(xué)號(hào)升序排列,學(xué)號(hào)相同再按成績(jī)降序排列。

SELECTSNo,CNo,Score FROMSC WHERECNoIN('C2','C3','C4','C5’) ORDERBYSNo,ScoreDESC多關(guān)系(表)的數(shù)據(jù)查詢(xún)當(dāng)查詢(xún)同時(shí)涉及兩個(gè)及兩個(gè)以上的表時(shí),稱(chēng)為連接查詢(xún)。連接查詢(xún)實(shí)際上是通過(guò)各個(gè)表之間共同字段的關(guān)聯(lián)性來(lái)查詢(xún)數(shù)據(jù)的,這種字段稱(chēng)為連接字段。多關(guān)系(表)的數(shù)據(jù)查詢(xún)表的連接方法有以下兩種:表之間滿(mǎn)足一定條件的行進(jìn)行連接時(shí),F(xiàn)ROM子句指明進(jìn)行連接的表名,WHERE子句指明連接的列名及其連接條件。利用關(guān)鍵字JOIN進(jìn)行連接:當(dāng)將JOIN

關(guān)鍵詞放于FROM子句中時(shí),應(yīng)有關(guān)鍵詞ON與之對(duì)應(yīng),以表明連接的條件。關(guān)系(表)的連接查詢(xún)結(jié)構(gòu)多關(guān)系(表)的連接查詢(xún)結(jié)構(gòu)JION的分類(lèi)INNERJOIN顯示符合條件的記錄LEFT(OUTER)JOIN為左(外)連接,用于顯示符合條件的數(shù)據(jù)行以及左邊表中不符合條件的數(shù)據(jù)行,此時(shí)右邊數(shù)據(jù)行會(huì)以NULL來(lái)顯示RIGHT(OUTER)JOIN右(外)連接,用于顯示符合條件的數(shù)據(jù)行以及右邊表中不符合條件的數(shù)據(jù)行。此時(shí)左邊數(shù)據(jù)行會(huì)以NULL來(lái)顯示FULL(OUTER)JOIN顯示符合條件的數(shù)據(jù)行以及左邊表和右邊表中不符合條件的數(shù)據(jù)行。此時(shí)缺乏數(shù)據(jù)的數(shù)據(jù)行會(huì)以NULL來(lái)顯示CROSSJOIN將一個(gè)表的每一個(gè)記錄和另一表的每個(gè)記錄匹配成新的數(shù)據(jù)行[例]查詢(xún)“劉偉”老師所講授的課程,要求列出教師號(hào)、教師姓名和課程號(hào)。內(nèi)連接查詢(xún)這里TN='劉偉'為查詢(xún)條件,而T.TNo=TC.TNo為連接條件,TNo為連接字段。SELECTT.TNo,TN,CNoFROMT,TCWHERE(T.TNo=TC.TNo)AND(TN='劉偉')方法1內(nèi)連接查詢(xún)方法2SELECTT.TNo,TN,CNoFROMTINNERJOINTCONT.TNo=TC.TNoWHERE(TN='劉偉')內(nèi)連接查詢(xún)[例]查詢(xún)所有選課學(xué)生的學(xué)號(hào)、姓名、選課名稱(chēng)及成績(jī)。SELECTS.SNo,SN,CN,ScoreFROMS,C,SCWHERES.SNo=SC.SNoANDSC.CNo=C.CNo符合連接條件的數(shù)據(jù)將直接返回到結(jié)果集中,對(duì)那些不符合連接條件的列,將被填上NULL值后再返回到結(jié)果集中。外連接查詢(xún)外部連接分為左外部連接和右外部連接兩種。以主表所在的方向區(qū)分外部連接,主表在左邊,則稱(chēng)為左外部連接;主表在右邊,則稱(chēng)為右外部連接。外連接查詢(xún)外連接查詢(xún)SELECTS.SNo,SN,CN,ScoreFROMSLEFTOUTERJOINSCONS.SNo=SC.SNoLEFTOUTERJOINCONC.CNo=SC.CNo[例]查詢(xún)所有學(xué)生的學(xué)號(hào)、姓名、選課名稱(chēng)及成績(jī)(沒(méi)有選課的同學(xué)的選課信息顯示為空)交叉查詢(xún)(CROSSJOIN)對(duì)連接查詢(xún)的表沒(méi)有特殊的要求,任何表都可以進(jìn)行交叉查詢(xún)操作。SELECT*FROMSCROSSJOINC[例]對(duì)學(xué)生表S和課程表C進(jìn)行交叉查詢(xún)。交叉查詢(xún)方法1:SELECTX.TN,X.SalASSal_a,Y.SalASSal_bFROMTASX,TASYWHEREX.Sal>Y.SalANDY.TN='劉偉'自連接查詢(xún)[例]查詢(xún)所有比“劉偉”工資高的教師姓名、工資和劉偉的工資。方法2:SELECTX.TN,X.Sal,Y.SalFROMTASXINNERJOINTASYONX.Sal>Y.SalANDY.TN='劉偉'子查詢(xún)普通子查詢(xún)子查詢(xún)——普通子查詢(xún)返回一個(gè)值的普通子查詢(xún)[例]查詢(xún)與“劉偉”老師職稱(chēng)相同的教師號(hào)、姓名。 SELECTTNo,TN FROMT WHEREProf=(SELECTProf FROMT WHERETN='劉偉')使用比較運(yùn)算符(=,>,<,>=,<=,!=)子查詢(xún)——普通子查詢(xún)返回一組值的普通子查詢(xún)[例]查詢(xún)講授課程號(hào)為C5的教師姓名。SELECTTNFROMTWHERE(TNo=ANY(SELECTTNo FROMTC WHERECNo='C5'))SELECTTNFROMT,TCWHERET.TNo=TC.TNoANDTC.CNo='C5'IN——使用ANY子查詢(xún)——普通子查詢(xún)SELECTTN,SalFROMTWHERESal>(SELECTMIN(Sal)FROMTWHEREDept='計(jì)算機(jī)')ANDDept<>'計(jì)算機(jī)'SELECTTN,SalFROMTWHERE(Sal>ANY(SELECTSalFROMTWHEREDept='計(jì)算機(jī)'))AND(Dept<>'計(jì)算機(jī)')[例]查詢(xún)其他系中比計(jì)算機(jī)系某一教師工資高的教師的姓名和工資。返回一組值的普通子查詢(xún)——使用ANY子查詢(xún)——普通子查詢(xún)[例]查詢(xún)其他系中比計(jì)算機(jī)系所有教師工資都高的教師的姓名和工資。 SELECTTN,Sal FROMT WHERE(Sal>ALL(SELECTSalFROMT WHEREDept='計(jì)算機(jī)')) AND(Dept<>'計(jì)算機(jī)')Sal>( SELECTMAX(Sal)返回一組值的普通子查詢(xún)——使用ALL子查詢(xún)——相關(guān)子查詢(xún)相關(guān)子查詢(xún)的執(zhí)行順序是:(1)選取父查詢(xún)表中的第一行記錄,內(nèi)部的子查詢(xún)利用此行中相關(guān)的屬性值進(jìn)行查詢(xún);(2)父查詢(xún)根據(jù)子查詢(xún)返回的結(jié)果判斷此行是否滿(mǎn)足查詢(xún)條件。如果滿(mǎn)足條件,則把該行放入父查詢(xún)的查詢(xún)結(jié)果集合中。(3)重復(fù)執(zhí)行這一過(guò)程,直到處理完父查詢(xún)表中的每一行數(shù)據(jù)。子查詢(xún)——相關(guān)子查詢(xún)帶有EXISTS的子查詢(xún)不返回任何實(shí)際數(shù)據(jù),它只得到邏輯值“真”或“假”。當(dāng)子查詢(xún)的查詢(xún)結(jié)果為非空時(shí),外層的WHERE子句返回真值,否則返回假值。NOTEXISTS與此相反。使用EXISTS子查詢(xún)——相關(guān)子查詢(xún)[例]用含有EXISTS的語(yǔ)句查詢(xún)講授課程號(hào)為C5的教師姓名。SELECTTNFROMTWHEREEXISTS(SELECT* FROMTCWHERETNo=T.TNoANDCNo='C5')子查詢(xún)——相關(guān)子查詢(xún) SELECTTN FROMT WHERE(NOTEXISTS(SELECT*FROMTCWHERETNo=T.TNoANDCNo='C5’))[例]查詢(xún)沒(méi)有講授課程號(hào)為C5的教師姓名。其他類(lèi)型查詢(xún)合并查詢(xún)是使用UNION操作符將來(lái)自不同查詢(xún)的數(shù)據(jù)組合起來(lái),形成一個(gè)具有綜合信息的查詢(xún)結(jié)果,UNION操作會(huì)自動(dòng)將重復(fù)的數(shù)據(jù)行剔除。參加合并查詢(xún)的各個(gè)子查詢(xún)使用的表結(jié)構(gòu)應(yīng)該相同,即各個(gè)子查詢(xún)中的字段數(shù)目和對(duì)應(yīng)的數(shù)據(jù)類(lèi)型都必須相同。合并查詢(xún)[例]從SC數(shù)據(jù)表中查詢(xún)出學(xué)號(hào)為“S1”同學(xué)的學(xué)號(hào)和總分,再?gòu)腟C數(shù)據(jù)表中查詢(xún)出學(xué)號(hào)為“S5”的同學(xué)的學(xué)號(hào)和總分,然后將兩個(gè)查詢(xún)結(jié)果合并成一個(gè)結(jié)果集。合并查詢(xún) SELECTSNoAS學(xué)號(hào),SUM(Score)AS總分

FROMSC WHERE(SNo='S1') GROUPBYSNo UNION SELECTSNoAS學(xué)號(hào),SUM(Score)AS總分

FROMSC WHERE(SNo='S5') GROUPBYSNo使用SELECT…INTO語(yǔ)句可以將查詢(xún)結(jié)果存儲(chǔ)到一個(gè)新建的數(shù)據(jù)庫(kù)表或臨時(shí)表中。 SELECTSNoAS學(xué)號(hào),SUM(Score)AS總分

INTOCal_Table FROMSC GROUPBYSNo存儲(chǔ)查詢(xún)結(jié)果到表中[例]從SC數(shù)據(jù)表中查詢(xún)出所有同學(xué)的學(xué)號(hào)和總分,并將查詢(xún)結(jié)果存放到一個(gè)新的數(shù)據(jù)表Cal_Table中。數(shù)據(jù)表中數(shù)據(jù)的操縱[例]在SC表中添加一條選課記錄('S7','C1’)。

INSERTINTOSC(SNo,CNo) VALUES('S7','C1')INSERTINTO添加數(shù)據(jù)添加一行新記錄INSERTINTO<表名>[(<列名1>[,<列名2>…])]子查詢(xún)添加多行記錄添加數(shù)據(jù)[例]求出各系教師的平均工資,把結(jié)果存放在新AvgSal中。首先建立新表AvgSal,用來(lái)存放系名和各系的平均工資。CREATETABLEAvgSal(DepartmentVARCHAR(20),AverageSMALLINT)添加數(shù)據(jù)然后利用子查詢(xún)求出T表中各系的平均工資,把結(jié)果存放在新表AvgSal中。INSERTINTOAvgSalSELECTDept,AVG(Sal)FROMTGROUPBYDeptUPDATE<表名>SET<列名>=<表達(dá)式>[,<列名>=<表達(dá)式>]…[WHERE<條件>]UPDATE修改數(shù)據(jù)[例]把劉偉老師轉(zhuǎn)到信息系UPDATETSETDept='信息'WHERESN='劉偉'修改數(shù)據(jù)修改一行修改數(shù)據(jù)[例]將所有學(xué)生的年齡增加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'))修改數(shù)據(jù)用子查詢(xún)選擇要修改的行[例]把所有教師的工資提高到平均工資的1.2倍。UPDATETSETSal=(SELECT1.2*AVG(Sal) FROMT)修改數(shù)據(jù)用子查詢(xún)提供要修改的值DELETEFROM<表名>[WHERE<條件>]刪除數(shù)據(jù)刪除一行記錄刪除數(shù)據(jù)[例]刪除劉偉老師的記錄。DELETEFROMTWHERETN='劉偉'[例]刪除所有教師的授課記錄。DELETEFROMTC刪除數(shù)據(jù)刪除多行記錄利用子查詢(xún)選擇要?jiǎng)h除的行刪除數(shù)據(jù)

[例]刪除劉偉老師授課的記錄。DELETEFROMTCWHERE(TNo=(SELECTTNo FROMT WHERETN='劉偉'))視圖視圖是一個(gè)虛擬表,其內(nèi)容由查詢(xún)定義。同基本表一樣,視圖包含一系列帶有名稱(chēng)的列和行數(shù)據(jù)。行和列數(shù)據(jù)來(lái)自定義視圖的查詢(xún)所引用的基本表,并且在引用視圖時(shí)動(dòng)態(tài)生成。視圖

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論