版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、1第第4 4章章 關(guān)系數(shù)據(jù)庫語言關(guān)系數(shù)據(jù)庫語言SQLSQL2v教學內(nèi)容:教學內(nèi)容:SQL語言的特點、SQL語言的數(shù)據(jù)類型、 SQL語言(定義、操縱、查詢、控制、嵌入SQL語言)。v教學要求:教學要求:1、理解SQL語言的特點、功能和使用方法,SQL Server的數(shù)據(jù)類型。2、掌握數(shù)據(jù)定義、操縱、查詢語言;視圖的定義和操作、基本SQL語句的使用;存儲過程和觸發(fā)器的使用3、了解嵌入式SQL和動態(tài)SQL技術(shù)、規(guī)則的使用。v重重 點:點:SQL的查詢、定義、操縱功能;存儲過程和觸發(fā)器的使用。v難點:難點:SQL的查詢功能、定義功能、操縱功能。34.1 SQL Server 概述2022-5-83 S
2、QL Server是一個高性能的、多用戶的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由于它強大、靈活的功能,豐富的應用編程接口及精巧的系統(tǒng)結(jié)構(gòu),深受廣大用戶的青睞。它是當前最流行的數(shù)據(jù)庫服務器系統(tǒng)之一。4v19961996年,年,MicrosoftMicrosoft推出了推出了SQL Server 6.5SQL Server 6.5版本;版本;v19981998年,年,SQL Server 7.0SQL Server 7.0版本和用戶見面;版本和用戶見面;v20002000年,年,MicrosoftMicrosoft公司增強了公司增強了SQL Server 7.0SQL Server 7.0的的功能,發(fā)布了功能,
3、發(fā)布了SQL Server 2000SQL Server 2000,包括企業(yè)版、標,包括企業(yè)版、標準版、開發(fā)版和個人版等準版、開發(fā)版和個人版等4 4個版本。個版本。v20052005年,年,MicrosoftMicrosoft公司又推出了公司又推出了SQL Server 2005SQL Server 2005,提供了一個完整的數(shù)據(jù)管理和分析解決方案,給不提供了一個完整的數(shù)據(jù)管理和分析解決方案,給不同需求的組織和個人帶來幫助。同需求的組織和個人帶來幫助。v20082008年,年,SQL Server 2008SQL Server 2008面世。面世。52022-5-85SQL Server200
4、8 的各種版本版版 本本描描 述述使用場所使用場所企業(yè)版企業(yè)版Enterprise Edition一個全面的數(shù)據(jù)管理和商業(yè)智能一個全面的數(shù)據(jù)管理和商業(yè)智能平臺,提供企業(yè)級的可擴展性、平臺,提供企業(yè)級的可擴展性、高可用性和高安全性以運行企業(yè)高可用性和高安全性以運行企業(yè)關(guān)鍵業(yè)務應用關(guān)鍵業(yè)務應用 大規(guī)模大規(guī)模OLTP 大規(guī)模報表大規(guī)模報表 先進的分析先進的分析 數(shù)據(jù)倉庫數(shù)據(jù)倉庫 標準版標準版Standard Edition 一個完整的數(shù)據(jù)管理和商業(yè)智能一個完整的數(shù)據(jù)管理和商業(yè)智能平臺,提供最好的易用性和可管平臺,提供最好的易用性和可管理性來運行部門級應用理性來運行部門級應用部門級應用部門級應用 中小
5、型規(guī)模中小型規(guī)模OLTP 報表和分析報表和分析 工作組版工作組版Workgroup Edition 一個可信賴的數(shù)據(jù)管理和報表平一個可信賴的數(shù)據(jù)管理和報表平臺,提供各分支應用程序以安全、臺,提供各分支應用程序以安全、遠程同步和管理功能遠程同步和管理功能分支數(shù)據(jù)存儲分支數(shù)據(jù)存儲 分支報表分支報表 遠程同步遠程同步 學習版學習版Express Edition 提供學習和創(chuàng)建桌面應用程序和提供學習和創(chuàng)建桌面應用程序和小型應用程序,并可被小型應用程序,并可被ISVS重重新發(fā)布的免費版本新發(fā)布的免費版本 入門級入門級&學習學習 免費的免費的ISVS重發(fā)重發(fā) 富桌面端應用富桌面端應用 6一、一、
6、SQL ServerSQL Server數(shù)據(jù)庫的組成數(shù)據(jù)庫的組成 SQL ServerSQL Server的數(shù)據(jù)主要以文件的方式保存,主要劃的數(shù)據(jù)主要以文件的方式保存,主要劃分為三類文件:主數(shù)據(jù)文件、輔助文件、日志文件。分為三類文件:主數(shù)據(jù)文件、輔助文件、日志文件。主數(shù)據(jù)文件主數(shù)據(jù)文件:存儲數(shù)據(jù)庫的啟動信息和系統(tǒng)表,也存儲數(shù)據(jù)庫的啟動信息和系統(tǒng)表,也可以存儲用戶數(shù)據(jù)。每個數(shù)據(jù)庫包含一個主文件。建可以存儲用戶數(shù)據(jù)。每個數(shù)據(jù)庫包含一個主文件。建議擴展名:議擴展名: .mdf輔數(shù)據(jù)文件輔數(shù)據(jù)文件:可選的:可選的,保存主文件中容納不下的數(shù)據(jù)保存主文件中容納不下的數(shù)據(jù)??梢杂小?梢杂?到多個輔數(shù)據(jù)文件。
7、擴展名是到多個輔數(shù)據(jù)文件。擴展名是 .ndf。7日志文件日志文件:保存恢復數(shù)據(jù)庫所需要的所有數(shù)據(jù)庫的事恢復數(shù)據(jù)庫所需要的所有數(shù)據(jù)庫的事務日志信息。必須至少有一個日志文件,務日志信息。必須至少有一個日志文件,建議擴展名擴展名用用.ldf.ldf。注意:注意:一個文件只能存在于一個文件組中,不能跨組。一個文件只能存在于一個文件組中,不能跨組。表、索引以及表、索引以及texttext、ntextntext和和imageimage數(shù)據(jù)可以指定存數(shù)據(jù)可以指定存放在特定的文件組中。放在特定的文件組中。文件組只能包含數(shù)據(jù)文件,日志文件不屬于任何文文件組只能包含數(shù)據(jù)文件,日志文件不屬于任何文件組。件組。8 二
8、、二、SQL Server SQL Server 數(shù)據(jù)存儲單位數(shù)據(jù)存儲單位創(chuàng)建數(shù)據(jù)庫之前,要了解創(chuàng)建數(shù)據(jù)庫之前,要了解SQL ServerSQL Server使用的數(shù)據(jù)存儲使用的數(shù)據(jù)存儲單位:單位:存儲頁(存儲頁(pagepage):):基本數(shù)據(jù)存儲單位,每頁基本數(shù)據(jù)存儲單位,每頁8KB8KB字節(jié)。字節(jié)。范圍(范圍(extentextent):):一個范圍是一個范圍是8 8個連續(xù)存儲頁。是存儲個連續(xù)存儲頁。是存儲表或索引的基本單位。表或索引的基本單位。文件組:文件組:數(shù)據(jù)庫中對文件進行分組管理的機制。把相數(shù)據(jù)庫中對文件進行分組管理的機制。把相關(guān)的文件放入特定文件組中,系統(tǒng)按組管理文件。關(guān)的文件
9、放入特定文件組中,系統(tǒng)按組管理文件。9文件組的類型:文件組的類型:主文件組(缺省文件組)主文件組(缺省文件組):存放主數(shù)據(jù)文件和其他沒:存放主數(shù)據(jù)文件和其他沒有指定文件組的文件。有指定文件組的文件。系統(tǒng)表在主文件組中系統(tǒng)表在主文件組中。用戶定義文件組用戶定義文件組:用:用 CREATE DATABASE CREATE DATABASE 或或 ALTER ALTER DATABASE DATABASE 語句中的語句中的 FILEGROUP FILEGROUP 關(guān)鍵字,或在關(guān)鍵字,或在 企業(yè)管企業(yè)管理器內(nèi)的理器內(nèi)的 屬性屬性 對話框上指定的任何文件組。對話框上指定的任何文件組。10三、三、SQL
10、Server SQL Server 數(shù)據(jù)庫數(shù)據(jù)庫1 SQL Server數(shù)據(jù)庫類型數(shù)據(jù)庫類型2 2 系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫3 3 用戶數(shù)據(jù)庫用戶數(shù)據(jù)庫 111 1、SQL ServerSQL Server數(shù)據(jù)庫類型數(shù)據(jù)庫類型SQL ServerSQL Server的數(shù)據(jù)存儲空間可分為若干個的數(shù)據(jù)存儲空間可分為若干個“小小”數(shù)據(jù)庫,以便于管理和提高存取效率。數(shù)據(jù)庫,以便于管理和提高存取效率。 有兩類數(shù)據(jù)庫:有兩類數(shù)據(jù)庫: 系統(tǒng)數(shù)據(jù)庫:系統(tǒng)數(shù)據(jù)庫:存放存放SQL Server的整體信息。的整體信息。SQL Server使用系統(tǒng)數(shù)據(jù)庫操作和管理系統(tǒng)。使用系統(tǒng)數(shù)據(jù)庫操作和管理系統(tǒng)。 用戶數(shù)據(jù)庫:用戶數(shù)據(jù)
11、庫:是用戶創(chuàng)建的數(shù)據(jù)庫。一個是用戶創(chuàng)建的數(shù)據(jù)庫。一個 SQL Server可以管理一個或多個用戶數(shù)據(jù)庫。可以管理一個或多個用戶數(shù)據(jù)庫。12系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫ModeModel lTempdTempdb bMasteMaster rMsdbMsdbDistributionDistributionpubspubsNorthwindNorthwindUserUser用戶數(shù)據(jù)庫用戶數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫圖123132 2、系統(tǒng)數(shù)據(jù)庫、系統(tǒng)數(shù)據(jù)庫 安裝安裝SQL Server SQL Server 時,系統(tǒng)自動地創(chuàng)建時,系統(tǒng)自動地創(chuàng)建mastermaster、modelmo
12、del、tempdbtempdb、msdbmsdb、DistributionDistribution等等系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫。 master master數(shù)據(jù)庫數(shù)據(jù)庫用來存放系統(tǒng)級的信息,如保存本地及遠程用用來存放系統(tǒng)級的信息,如保存本地及遠程用戶帳號、與本地服務器有交互的遠程服務器、進程、戶帳號、與本地服務器有交互的遠程服務器、進程、可配置的環(huán)境變量、系統(tǒng)錯誤信息、分配給各數(shù)據(jù)庫可配置的環(huán)境變量、系統(tǒng)錯誤信息、分配給各數(shù)據(jù)庫的存儲空間、系統(tǒng)上可用的磁帶和磁盤、活動鎖等。的存儲空間、系統(tǒng)上可用的磁帶和磁盤、活動鎖等。14 model model數(shù)據(jù)庫數(shù)據(jù)庫為用戶數(shù)據(jù)庫提供了樣板和原型,包含了每
13、一為用戶數(shù)據(jù)庫提供了樣板和原型,包含了每一用戶數(shù)據(jù)庫所需要的系統(tǒng)表,它能夠被更改成為創(chuàng)用戶數(shù)據(jù)庫所需要的系統(tǒng)表,它能夠被更改成為創(chuàng)建新的數(shù)據(jù)庫的定制結(jié)構(gòu),對建新的數(shù)據(jù)庫的定制結(jié)構(gòu),對modelmodel所作的每一個改所作的每一個改動都在新數(shù)據(jù)庫中產(chǎn)生影響。動都在新數(shù)據(jù)庫中產(chǎn)生影響。 msdb數(shù)據(jù)庫數(shù)據(jù)庫支持支持SQL Server Agent。msdb數(shù)據(jù)庫中的表數(shù)據(jù)庫中的表sysdbmainplan _history保存了系統(tǒng)維護的工作信保存了系統(tǒng)維護的工作信息,并且為調(diào)度信息提供一個存儲區(qū)。息,并且為調(diào)度信息提供一個存儲區(qū)。15 tempdb tempdb數(shù)據(jù)庫數(shù)據(jù)庫是是SQL Serve
14、rSQL Server上數(shù)據(jù)庫使用的共享工作空間,為上數(shù)據(jù)庫使用的共享工作空間,為臨時表和其它臨時工作存儲需要提供了一個存儲區(qū)。臨時表和其它臨時工作存儲需要提供了一個存儲區(qū)。 Distribution Distribution數(shù)據(jù)庫數(shù)據(jù)庫在為復制活動配置在為復制活動配置SQL ServerSQL Server時,系統(tǒng)自動安裝時,系統(tǒng)自動安裝DistributionDistribution數(shù)據(jù)庫。存儲復制活動中的歷史記錄和數(shù)據(jù)庫。存儲復制活動中的歷史記錄和事務數(shù)據(jù)。事務數(shù)據(jù)。163 3、 用戶數(shù)據(jù)庫用戶數(shù)據(jù)庫 pubs pubs和和NorthwindNorthwind數(shù)據(jù)庫數(shù)據(jù)庫pubspubs
15、和和NorthwindNorthwind數(shù)據(jù)庫是作為培訓工作提供數(shù)據(jù)庫是作為培訓工作提供的實例數(shù)據(jù)庫,屬于用戶數(shù)據(jù)庫。一般來說,當培的實例數(shù)據(jù)庫,屬于用戶數(shù)據(jù)庫。一般來說,當培訓工具使用完后,要重新安裝它,以便恢復其原貌訓工具使用完后,要重新安裝它,以便恢復其原貌。 用戶用戶數(shù)據(jù)庫數(shù)據(jù)庫作為數(shù)據(jù)庫擁有者(作為數(shù)據(jù)庫擁有者(DBODBO)的用戶自己)的用戶自己創(chuàng)建的創(chuàng)建的數(shù)據(jù)庫。他擁有對數(shù)據(jù)庫的所有訪問權(quán)限。數(shù)據(jù)庫。他擁有對數(shù)據(jù)庫的所有訪問權(quán)限。174.2 SQL4.2 SQL語言簡介語言簡介 1、什么是、什么是SQL語言語言 SQLSQL語言是結(jié)構(gòu)化查詢語言,語言是結(jié)構(gòu)化查詢語言,Struct
16、ured Query Structured Query Language, Language, 簡稱簡稱SQLSQL。是介于關(guān)系代數(shù)和。是介于關(guān)系代數(shù)和 關(guān)系演算之關(guān)系演算之間的語言,其功能不僅僅是查詢,它是通用的、功能間的語言,其功能不僅僅是查詢,它是通用的、功能極強的關(guān)系數(shù)據(jù)庫語言。極強的關(guān)系數(shù)據(jù)庫語言。 SQLSQL語言集數(shù)據(jù)語言集數(shù)據(jù)定義、查詢、更新和控制定義、查詢、更新和控制功能于功能于一體。一體。SQLSQL語言已經(jīng)成為關(guān)系數(shù)據(jù)庫的標準語言語言已經(jīng)成為關(guān)系數(shù)據(jù)庫的標準語言18 (1)(1)19741974年,年,IBMIBM圣約瑟實驗室的圣約瑟實驗室的BoyceBoyce和和Cha
17、mberlinChamberlin為關(guān)系數(shù)據(jù)庫管理系統(tǒng)為關(guān)系數(shù)據(jù)庫管理系統(tǒng)System-RSystem-R設計的一種查詢語言,設計的一種查詢語言,當時稱為當時稱為SEQUELSEQUEL語言(語言(Structured EnglishStructured English Query Query Language)Language),后簡稱為,后簡稱為SQLSQL;(2)(2)19811981年,年,IBMIBM推出關(guān)系數(shù)據(jù)庫系統(tǒng)推出關(guān)系數(shù)據(jù)庫系統(tǒng)SQL/DSSQL/DS,得到廣,得到廣泛應用;泛應用;(3)(3)著名關(guān)系數(shù)據(jù)庫管理系統(tǒng)都陸續(xù)實現(xiàn)著名關(guān)系數(shù)據(jù)庫管理系統(tǒng)都陸續(xù)實現(xiàn)SQLSQL語言;
18、語言; (4)(4)19821982年年,ANSIANSI著手制定著手制定SQLSQL標準,標準,19861986年公布第一年公布第一個個SQLSQL標準標準-SQL86-SQL86,其主要內(nèi)容:模式定義、數(shù)據(jù)操作、,其主要內(nèi)容:模式定義、數(shù)據(jù)操作、嵌入式嵌入式SQLSQL等內(nèi)容。等內(nèi)容。2 2、SQLSQL語言的發(fā)展歷程語言的發(fā)展歷程19(5)(5)19871987年年,ISOISO通過通過SQL86SQL86標準;標準; (6)(6)19891989年年,ISOISO制定制定SQL89SQL89標準,它在標準,它在SQL86SQL86基礎上基礎上增增補完整性補完整性描述描述 (7)(7)1
19、9901990年年,我國制定等同,我國制定等同SQL89SQL89的國家標準;的國家標準;(8)(8)19921992年年,ISOISO制定制定SQL92SQL92標準,即標準,即SQL2SQL2;SQL2SQL2相當龐相當龐大,實現(xiàn)了對遠程數(shù)據(jù)庫訪問的支持大,實現(xiàn)了對遠程數(shù)據(jù)庫訪問的支持(9)(9)19991999年年,ANSIANSI制定制定SQL3SQL3標準,在標準,在SQL2SQL2基礎上擴充了基礎上擴充了面向?qū)ο蠊δ苊嫦驅(qū)ο蠊δ?,支持自定義數(shù)據(jù)類型、提供遞歸操作、,支持自定義數(shù)據(jù)類型、提供遞歸操作、臨時視圖、更新一般的授權(quán)結(jié)構(gòu)、嵌套的檢索結(jié)構(gòu)、臨時視圖、更新一般的授權(quán)結(jié)構(gòu)、嵌套的檢
20、索結(jié)構(gòu)、異步異步DMLDML等;等;20 SQL SQL標準的制定使得幾乎所有的數(shù)據(jù)庫廠家都采標準的制定使得幾乎所有的數(shù)據(jù)庫廠家都采用用SQLSQL語言作為其數(shù)據(jù)庫語言。但各家又在語言作為其數(shù)據(jù)庫語言。但各家又在SQLSQL標準的標準的基礎上進行擴充,形成自己的語言?;A上進行擴充,形成自己的語言。SQL ServerSQL Server擴充擴充SQLSQL標準形成標準形成Transact-SQLTransact-SQL,簡稱,簡稱T-SQLT-SQL。213 3、SQLSQL語言應用情況語言應用情況 (1)(1)OracleOracle、SybaseSybase、InformixInform
21、ix、IngresIngres、DB2DB2、SQL SQL ServerServer、RdbRdb等大型數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)了等大型數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)了SQLSQL語言;語言; (2)(2)DbaseDbase、FoxproFoxpro、AcessAcess等等PCPC機數(shù)據(jù)庫管理系統(tǒng)部機數(shù)據(jù)庫管理系統(tǒng)部分實現(xiàn)了分實現(xiàn)了SQLSQL語言;語言; (3)(3)可以在可以在HTML(Hypertext Markup Language, HTML(Hypertext Markup Language, 超文超文本標記語言本標記語言) )中嵌入中嵌入SQLSQL語句,通過語句,通過WWWWWW訪問數(shù)據(jù)庫
22、;訪問數(shù)據(jù)庫; (4)(4)在在VCVC、VBVB、DelphiDelphi、PBPB也可嵌入也可嵌入SQLSQL語句。語句。224 SQL4 SQL語言的特點語言的特點 語言功能的一體化語言功能的一體化: : 集集DDLDDL、DMLDML、DCLDCL為一體。為一體。 結(jié)構(gòu)的一體化結(jié)構(gòu)的一體化:關(guān)系模型中唯一的結(jié)構(gòu)類型就是:關(guān)系模型中唯一的結(jié)構(gòu)類型就是關(guān)系表,這種數(shù)據(jù)結(jié)構(gòu)的單一性關(guān)系表,這種數(shù)據(jù)結(jié)構(gòu)的單一性, ,使得增、刪、改、使得增、刪、改、查詢等操作都只須使用一種操作符。查詢等操作都只須使用一種操作符。 高度非過程化高度非過程化:只須提出:只須提出“做什么做什么”無須指明無須指明“怎樣
23、做怎樣做”。用戶不必了解存取路徑。用戶不必了解存取路徑。23面向集合的操作方式面向集合的操作方式:在元組集合上操作:在元組集合上操作, ,操作結(jié)果操作結(jié)果仍是元組集合。仍是元組集合。 兩種操作方式、統(tǒng)一的語法結(jié)構(gòu)兩種操作方式、統(tǒng)一的語法結(jié)構(gòu):SQL語言既是自語言既是自含式、又是嵌入式語言。含式、又是嵌入式語言。自含式可作為連機交互式使自含式可作為連機交互式使用;嵌入式用;嵌入式SQLSQL可嵌入到高級語言中使用??汕度氲礁呒壵Z言中使用。 語言簡潔、易學易用語言簡潔、易學易用:數(shù)據(jù)定義、操縱和控制只用:數(shù)據(jù)定義、操縱和控制只用了了9 9個動詞。個動詞。24SQLSQL語言中的主要動詞語言中的主要
24、動詞SQL功能功能動詞動詞數(shù)據(jù)查詢數(shù)據(jù)查詢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ù)庫中檢索數(shù)據(jù)并使用這些數(shù)據(jù)。從數(shù)據(jù)庫中檢索數(shù)據(jù)并使用這些數(shù)據(jù)。 數(shù)據(jù)操縱:數(shù)據(jù)操縱:通過通過SQL更改數(shù)據(jù)庫中的數(shù)據(jù)。更改數(shù)據(jù)庫中的數(shù)據(jù)。 存取控制:存取控制:限制用戶檢索、增加和修改數(shù)據(jù)的權(quán)限,限制用戶檢索、增加和修改數(shù)據(jù)的權(quán)限,保護所存儲的數(shù)據(jù)不被非法存取。保護所存儲的數(shù)據(jù)不被非法存
25、取。 數(shù)據(jù)共享:數(shù)據(jù)共享:調(diào)整數(shù)據(jù)讓并發(fā)用戶共享。調(diào)整數(shù)據(jù)讓并發(fā)用戶共享。 5、SQL語言的功能語言的功能266 6、SQLSQL語言的分類語言的分類 SQLSQL語言的命令通常分為四類語言的命令通常分為四類 1 1)、數(shù)據(jù)定義語言()、數(shù)據(jù)定義語言() 創(chuàng)建、修改或刪除數(shù)據(jù)庫中各種對象,包括創(chuàng)建、修改或刪除數(shù)據(jù)庫中各種對象,包括SQLSQL模模式、基本表、視圖、索引等。式、基本表、視圖、索引等。 命令:命令:TABLE TABLE VIEWVIEWINDEXINDEX(1 1)CREATE CREATE 27(2 2)ALTER TABLE ALTER TABLE 2 2)、查詢語言()、查
26、詢語言(S S) 按照指定的組合、條件表達式或排序檢索已存在按照指定的組合、條件表達式或排序檢索已存在的數(shù)據(jù)庫中數(shù)據(jù),不改變數(shù)據(jù)庫中數(shù)據(jù)。的數(shù)據(jù)庫中數(shù)據(jù),不改變數(shù)據(jù)庫中數(shù)據(jù)。 命令:命令:SELECTSELECTFROMFROMWHEREWHERE(3 3)DROPDROPTABLE TABLE VIEWVIEWINDEXINDEX. .283 3)、數(shù)據(jù)操縱語言()、數(shù)據(jù)操縱語言() 對已經(jīng)存在的數(shù)據(jù)庫進行元組的插入、刪除、修改對已經(jīng)存在的數(shù)據(jù)庫進行元組的插入、刪除、修改等操作。等操作。 命令:命令:INSERTINSERT、UPDATEUPDATE、DELETEDELETE4 4)、數(shù)據(jù)控
27、制語言()、數(shù)據(jù)控制語言(D D) 用來授予或收回訪問數(shù)據(jù)庫的某種特權(quán)、控制數(shù)用來授予或收回訪問數(shù)據(jù)庫的某種特權(quán)、控制數(shù)據(jù)操縱事務的發(fā)生時間及效果、對數(shù)據(jù)庫進行監(jiān)視。據(jù)操縱事務的發(fā)生時間及效果、對數(shù)據(jù)庫進行監(jiān)視。 命令:命令:GRANTGRANT、REVOKEREVOKE、 COMMITCOMMIT、ROLLBACKROLLBACK29vTransact-SQL (T-SQL)語言是微軟公司對標準)語言是微軟公司對標準SQL語言的擴展,它是語言的擴展,它是SQL Server與應用程序之與應用程序之間的語言,是間的語言,是SQL Server對應用程序開發(fā)的應用程對應用程序開發(fā)的應用程序開發(fā)接
28、口。序開發(fā)接口。vT-SQL增強了增強了SQL語言的功能,同時兼容語言的功能,同時兼容SQL標準。標準。304.3 SQL語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型v關(guān)系的所有屬性都需要用數(shù)據(jù)類型加以描述,目的關(guān)系的所有屬性都需要用數(shù)據(jù)類型加以描述,目的是為了給不同的數(shù)據(jù)分配合適的空間,確定合適的是為了給不同的數(shù)據(jù)分配合適的空間,確定合適的存儲形式。存儲形式。vSQL Server中的數(shù)據(jù)類型有:系統(tǒng)數(shù)據(jù)類型和用戶中的數(shù)據(jù)類型有:系統(tǒng)數(shù)據(jù)類型和用戶自定義數(shù)據(jù)類型。自定義數(shù)據(jù)類型。312022-5-8311、SQL Server 2008的系的系統(tǒng)數(shù)統(tǒng)數(shù)據(jù)據(jù)類類型型類別數(shù)據(jù)類型定義符 精確數(shù)字bigint、i
29、nt、smallint、tinyint、bit、decimal、numeric、money、smallmoney近似數(shù)字float、real日期和時間dateime、smalldatetime、date、datetime2、datetimeoffset、time(注意SQL Server 200中的日期和時間)字符串char、varchar、textUnicode 字符串 nchar、nvarchar、ntext二進制字符串binary、varbinary、image其他數(shù)據(jù)類型cursor、sql_variant、table、timestamp、uniqueidentifier、xml、hi
30、erarchyid32v主要數(shù)據(jù)類型有:主要數(shù)據(jù)類型有:vCHAR(nCHAR(n) :) :固定長度非固定長度非Unicode Unicode 數(shù)據(jù)的數(shù)據(jù)類型數(shù)據(jù)的數(shù)據(jù)類型 vNCHAR(nNCHAR(n) ):固定長度固定長度 Unicode Unicode 數(shù)據(jù)的數(shù)據(jù)類型數(shù)據(jù)的數(shù)據(jù)類型 vVARCHAR (n) :VARCHAR (n) :可變長度且非可變長度且非Unicode Unicode 的字符數(shù)的字符數(shù)據(jù),最大長度為據(jù),最大長度為n n, varcharvarchar是按字節(jié)存儲的。是按字節(jié)存儲的。vNVARCHAR (n) :NVARCHAR (n) : 可變長可變長Unico
31、deUnicode字符數(shù)據(jù),最大字符數(shù)據(jù),最大長度為長度為n n,nvarcharnvarchar是按字符存儲的。是按字符存儲的。33INT:4字節(jié)的整型字節(jié)的整型REAL:4字節(jié)的浮點數(shù)字節(jié)的浮點數(shù)NUMERIC(n,s): 實型,最大精度實型,最大精度n,s為小數(shù)位數(shù)為小數(shù)位數(shù)BINARYBINARY:最大最大長度為長度為2G2G字節(jié)的變長二進制字節(jié)的變長二進制DATETIME:日期型日期型注意:注意:SQL Server 2000與與SQL Server 2008中的日期中的日期類型有很大的不同。類型有很大的不同。342022-5-8342 2、用戶自定義數(shù)據(jù)類型、用戶自定義數(shù)據(jù)類型l
32、當創(chuàng)建用戶自定義的數(shù)據(jù)類型時,必須提供當創(chuàng)建用戶自定義的數(shù)據(jù)類型時,必須提供3 3個參個參數(shù):數(shù)據(jù)類型的名稱、所基于的系統(tǒng)數(shù)據(jù)類型、數(shù)數(shù):數(shù)據(jù)類型的名稱、所基于的系統(tǒng)數(shù)據(jù)類型、數(shù)據(jù)類型是否允許空值。據(jù)類型是否允許空值。l sp_addtypesp_addtype 新數(shù)據(jù)類型新數(shù)據(jù)類型 , ,系統(tǒng)數(shù)據(jù)類,系統(tǒng)數(shù)據(jù)類型型,null_type,null_type35v【例】【例】 在數(shù)據(jù)庫在數(shù)據(jù)庫Sales中,創(chuàng)建用戶自定義中,創(chuàng)建用戶自定義數(shù)據(jù)類型數(shù)據(jù)類型agentName, agentName基于的基于的系統(tǒng)數(shù)據(jù)類型是變長為系統(tǒng)數(shù)據(jù)類型是變長為8的字符,不允許為空。的字符,不允許為空。vuse
33、salesexec sp_addtype agentname,varchar(8),not nullgo362022-5-8363、表達式l 表達式是標識符、值和運算符的組合,在應用時可以對其求值以獲取結(jié)果。l 表達式可以是常量、函數(shù)、列名、變量、子查詢,還可以用運算符對這些實體進行組合以生成表達式。l 比如 (price * 1.5) 或 (price + sales_tax)。 372022-5-8374、運算符l 運算符是一種符號,用來指定要在一個或多個表達式中執(zhí)行的操作。運算符運算符含義含義算術(shù)運算符算術(shù)運算符+(加加)、-(減減)、*(乘乘)、/(除除)、%(取模取模)比較運算符比較
34、運算符=、=、=、!=、!賦值運算符賦值運算符=邏輯運算符邏輯運算符AND、OR、NOT385 5、SQLSQL語句格式中使用的語句格式中使用的符號符號大括號大括號 :表示:表示其中的內(nèi)容可有多個用豎線分隔的其中的內(nèi)容可有多個用豎線分隔的選項,用戶必須選擇其中一項。選項,用戶必須選擇其中一項。方括號方括號 :可選項,用戶根據(jù)需要選用??蛇x項,用戶根據(jù)需要選用。豎線豎線| | :表示參數(shù)之間:表示參數(shù)之間或或的關(guān)系。的關(guān)系。省略號省略號“”:表示重復前面的語法單元。表示重復前面的語法單元。尖括號尖括號:表示下面有子句定義。表示下面有子句定義。394.4 SQL4.4 SQL數(shù)據(jù)定義語言數(shù)據(jù)定義語
35、言DDLDDL 4.4.1 4.4.1 數(shù)據(jù)庫的定義、修改和刪除數(shù)據(jù)庫的定義、修改和刪除 4.4.2 4.4.2 基本表的定義、修改和刪除基本表的定義、修改和刪除 4.4.3 4.4.3 索引的定義、修改和刪除索引的定義、修改和刪除40 SQL數(shù)據(jù)定義功能如下表所示數(shù)據(jù)定義功能如下表所示 :414.4.1 數(shù)據(jù)庫的創(chuàng)建、修改和刪除數(shù)據(jù)庫的創(chuàng)建、修改和刪除 在建立用戶邏輯組件(如在建立用戶邏輯組件(如table)之前必須首先建)之前必須首先建立數(shù)據(jù)庫。立數(shù)據(jù)庫。 建立數(shù)據(jù)庫的最實質(zhì)性任務是向建立數(shù)據(jù)庫的最實質(zhì)性任務是向OS申請用來存儲申請用來存儲數(shù)據(jù)庫數(shù)據(jù)的物理磁盤空間。存儲空間以操作系統(tǒng)文數(shù)據(jù)
36、庫數(shù)據(jù)的物理磁盤空間。存儲空間以操作系統(tǒng)文件的方式體現(xiàn)。件的方式體現(xiàn)。v不同的不同的DBMSDBMS建立數(shù)據(jù)庫的命令有些區(qū)別,本課程是建立數(shù)據(jù)庫的命令有些區(qū)別,本課程是針對針對SQLSQL ServerServer 進行講解的。包括:進行講解的。包括:創(chuàng)建數(shù)據(jù)庫、刪除數(shù)據(jù)庫、修改數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫、刪除數(shù)據(jù)庫、修改數(shù)據(jù)庫42三、三、 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫Enterprise ManagerEnterprise Manager中中創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫在在Query AnalyzerQuery Analyzer中用中用Transact_SQLTransact_SQL語句創(chuàng)建語句創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫 用戶
37、必須擁有創(chuàng)建數(shù)據(jù)庫的權(quán)限才能在用戶必須擁有創(chuàng)建數(shù)據(jù)庫的權(quán)限才能在SERVERSERVER端創(chuàng)建數(shù)據(jù)庫。在端創(chuàng)建數(shù)據(jù)庫。在SQL Server 2000SQL Server 2000為中創(chuàng)建數(shù)據(jù)為中創(chuàng)建數(shù)據(jù)庫的方法有:庫的方法有:431 1、在企業(yè)管理器中創(chuàng)建數(shù)據(jù)庫、在企業(yè)管理器中創(chuàng)建數(shù)據(jù)庫 進入進入Enterprise ManagerEnterprise Manager界面后:界面后: 展開并展開并選擇選擇服務器服務器組組 展開并展開并選擇要建立數(shù)據(jù)庫的選擇要建立數(shù)據(jù)庫的服務器服務器 選中選中“數(shù)據(jù)庫數(shù)據(jù)庫” 按右鍵選擇按右鍵選擇“新建數(shù)據(jù)庫新建數(shù)據(jù)庫”,或選擇或選擇“操作操作/ /新建數(shù)據(jù)庫
38、新建數(shù)據(jù)庫”44數(shù)據(jù)庫文件位置、大小數(shù)據(jù)庫文件位置、大小文文件件增增長長信信息息選選擇擇文文件件位位置置45日志文件位置、大小日志文件位置、大小文文件件增增長長信信息息選選擇擇文文件件位位置置462 2、創(chuàng)建數(shù)據(jù)庫的、創(chuàng)建數(shù)據(jù)庫的SQLSQL語句語句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ù)庫文件的主要數(shù)據(jù)庫文件 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ù)庫之前,為操作系統(tǒng)文件指定的在建立數(shù)據(jù)庫之前,為操作系統(tǒng)文件指定的目錄路徑必須存在。目錄路徑必須存在。48v例:例:建立建立jxgl1數(shù)據(jù)庫,主文件初始大小為數(shù)據(jù)庫,主文件初始大小為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ù)庫四、刪除數(shù)據(jù)庫 當確認一個數(shù)據(jù)庫沒有需要時,才可以刪除該當確認一個數(shù)據(jù)庫沒有需要時,才可以刪除該數(shù)據(jù)庫。刪除數(shù)據(jù)庫的方法:數(shù)據(jù)庫。刪除數(shù)據(jù)庫的方法:(1 1)使用企業(yè)管理器刪除數(shù)據(jù)庫)使用企業(yè)管理器刪除數(shù)據(jù)庫(2 2)使用)使用T-SQLT-SQL語句刪除數(shù)據(jù)庫語句刪除數(shù)據(jù)庫 Drop database jxglDrop database jxgl50五、五、 修改數(shù)據(jù)庫修改數(shù)據(jù)庫(1 1)數(shù)據(jù)庫改名)數(shù)據(jù)庫改名(
43、2 2)修改數(shù)據(jù)庫選項)修改數(shù)據(jù)庫選項511 1、數(shù)據(jù)庫改名、數(shù)據(jù)庫改名 使用系統(tǒng)存儲過程使用系統(tǒng)存儲過程sp_renamedbsp_renamedb可以修改數(shù)據(jù)庫可以修改數(shù)據(jù)庫的名稱,語句格式:的名稱,語句格式: sp_renamedbsp_renamedb old_dbnameold_dbname, new_dbname, new_dbname 例如:例如:sp_renamedbsp_renamedb zzgzzg, , zzg1zzg1注意注意:(:(1 1)給數(shù)據(jù)庫更名前,必須在企業(yè)管理器中給數(shù)據(jù)庫更名前,必須在企業(yè)管理器中設置該數(shù)據(jù)庫為單用戶狀態(tài)(設置該數(shù)據(jù)庫為單用戶狀態(tài)(只能有一個
44、用戶使用只能有一個用戶使用該數(shù)據(jù)庫)。該數(shù)據(jù)庫)。(2)只有屬于只有屬于sysadminsysadmin服務器角色的成員可以給服務器角色的成員可以給數(shù)據(jù)庫更名。數(shù)據(jù)庫更名。 522、修改數(shù)據(jù)庫選項、修改數(shù)據(jù)庫選項 可以在企業(yè)管理器中,也可以在查詢分析器中可以在企業(yè)管理器中,也可以在查詢分析器中修改數(shù)據(jù)庫的屬性、添加數(shù)據(jù)庫數(shù)據(jù)文件、改變數(shù)修改數(shù)據(jù)庫的屬性、添加數(shù)據(jù)庫數(shù)據(jù)文件、改變數(shù)據(jù)庫大小等。據(jù)庫大小等。用企業(yè)管理器修改:用企業(yè)管理器修改:選中要修改屬性的數(shù)據(jù)庫,按選中要修改屬性的數(shù)據(jù)庫,按右鍵,選擇右鍵,選擇“屬性屬性”命令,或命令,或選擇選擇“操作操作/ /屬性屬性”。用用T-SQLT-SQ
45、L語句修改:語句修改:使用系統(tǒng)存儲過程使用系統(tǒng)存儲過程sp_dboptionsp_dboption 使用使用 ALTER databaseALTER database命令(自學)命令(自學)53vALTER DATABASE database_name | MODIFY NAME = new_database_name | COLLATE collation_name | | 其中:其中::= := := := :=54:= := := := := := := := := := . 55 關(guān)系可以有三種類型:關(guān)系可以有三種類型: (1 1)基本表)基本表:實際存在的表,它是實際儲存數(shù):實際存在
46、的表,它是實際儲存數(shù)據(jù)的邏輯表示。據(jù)的邏輯表示。(2 2)查詢表:)查詢表:查詢結(jié)果相對應的表。查詢結(jié)果相對應的表。(3 3)視圖表:)視圖表:由基本表和其它視圖導出的表,是由基本表和其它視圖導出的表,是虛表,不對應實際存儲的數(shù)據(jù)。虛表,不對應實際存儲的數(shù)據(jù)。4.4.2 表的創(chuàng)建、修改和刪除表的創(chuàng)建、修改和刪除561、表的創(chuàng)建、表的創(chuàng)建(1)使用企業(yè)管理器創(chuàng)建表:)使用企業(yè)管理器創(chuàng)建表:選擇要新建表的選擇要新建表的數(shù)據(jù)庫,按右鍵,選擇數(shù)據(jù)庫,按右鍵,選擇新建新建/表表。(2)使用)使用SQL語句創(chuàng)建表語句創(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ù)類型數(shù)據(jù)類型 缺省值缺省值列級約束列級約束 , ,列名列名 數(shù)據(jù)類型數(shù)據(jù)類型 缺省值缺省值列級約束列級約束. . ,UNIQUEUNIQUE(列名(列名 ,列名,列名 . .) ,PRIMARY KEYPRIMARY KEY(列名(列名 ,列名,列名 ) ,F(xiàn)OREIGN KEY FOREIGN KEY (列名(列名 ,列名,列名 ) REFERENCES REFERENCES 表
48、名(列名表名(列名 ,列名,列名 ) ,CKECK ( ,CKECK (條件條件) ) ) )表表級級約約束束59建表時的注意事項:建表時的注意事項:(1)表名列名命名應用遵守命名規(guī)則。)表名列名命名應用遵守命名規(guī)則。(2)一個用戶中表名要唯一,一個表中列名一個用戶中表名要唯一,一個表中列名要唯一。要唯一。 (3 3)數(shù)據(jù)類型是)數(shù)據(jù)類型是SQL ServerSQL Server所提供的基本數(shù)所提供的基本數(shù)據(jù)類型。據(jù)類型。 (4 4)定義完整性保證數(shù)據(jù)的正確和有效)定義完整性保證數(shù)據(jù)的正確和有效 60 建表時可定義有關(guān)的完整性約束條件,這些建表時可定義有關(guān)的完整性約束條件,這些完整性約束條件被
49、存入系統(tǒng)的完整性約束條件被存入系統(tǒng)的數(shù)據(jù)字典數(shù)據(jù)字典中。中。 當用戶操作表中數(shù)據(jù)時,由當用戶操作表中數(shù)據(jù)時,由DBMS自動檢查自動檢查該操作是否違背完整性約束條件。該操作是否違背完整性約束條件。注意注意: 如果完整性約束條件涉及到該表的多個屬性列,如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上。如果是單個屬性則必須定義在表級上。如果是單個屬性,則可以是則可以是表級完整性表級完整性,也可以是列級完整性約束。也可以是列級完整性約束。61完整性約束的種類完整性約束的種類DEFAULT:DEFAULT:列的缺省值;列的缺省值;NOT NULLNOT NULL:( (列值列值) )非空值;
50、非空值;UNIQUEUNIQUE:(:(列或列的組合)值唯一;列或列的組合)值唯一;PRIMARY KEYPRIMARY KEY:(列或一組列):(列或一組列)主關(guān)鍵字(主碼);主關(guān)鍵字(主碼);FOREIGN KEYFOREIGN KEY:外碼定義;外碼定義;REFERENCESREFERENCES:被引用的外部表的表名和列名被引用的外部表的表名和列名 ;CKECK CKECK :指定表約束條件。指定表約束條件。保留字不能用作表名、列名等保留字不能用作表名、列名等62列級完整性約束的種類列級完整性約束的種類(1) not nullnot null和和nullnull約束;約束;(2 2)pr
51、imary keyprimary key(一個表只能有一個主鍵)約束;一個表只能有一個主鍵)約束;(3 3)uniqueunique:每個:每個uniqueunique約束都生成一個惟一索引。約束都生成一個惟一索引。(4 4)foreign keyforeign key:參照完整性約束。:參照完整性約束。(5)default :缺省值約束;:缺省值約束;(6)check 約束:自定義約束。約束:自定義約束。注意注意: :完整性性約束在對數(shù)據(jù)庫進行操縱時起作用完整性性約束在對數(shù)據(jù)庫進行操縱時起作用. .63表級完整性約束的種類表級完整性約束的種類(1 1)primary keyprimary k
52、ey約束:約束:當需要多列作為主關(guān)鍵字時當需要多列作為主關(guān)鍵字時需要表級的需要表級的primary keyprimary key約束約束(2 2)foreign keyforeign key:外部關(guān)鍵字是復合屬性時需要表外部關(guān)鍵字是復合屬性時需要表級參照完整性約束。級參照完整性約束。(3)check :當不同的列需要同時約束或有某種函當不同的列需要同時約束或有某種函數(shù)關(guān)系時,需要表級的完整性約束。數(shù)關(guān)系時,需要表級的完整性約束。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, , / /* *列級約束列級約束* */ / Deptphno CHAR(12), Deptadd Deptphno CHAR(12), Deptadd varchar(40), varchar(40), PRIMARY KEY (deptnoPRIMARY KEY (deptno) /) /* *表級完整性表級完整性或或 CREATE TABLE DEPT ( CREATE TABLE DEPT ( deptno dep
54、tno CHAR(8) CHAR(8) PRIMARY KEYPRIMARY KEY , , /*列級約束列級約束*/ 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 , /*列級約束列級約束*/ classname char(10) Unique, /*列級約
55、束列級約束*/ deptno char(8) FOREIGN KEY(deptno) REFERENCEs dept ) /*表級約束表級約束*/注意:所引用的字段必須是被參照表中的主碼。注意:所引用的字段必須是被參照表中的主碼。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)問:如果在問:如果在class表中未指定表中未指
56、定classno是主碼,則該是主碼,則該語句的會執(zhí)行成功嗎?語句的會執(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 倉庫倉庫(倉庫號倉庫號), eno char(4), wage int check (wage=1000 and wage1000 and wage5000) default 1200, primary key (eno)692. 表的修改表的修改(1 1)使用企業(yè)管理器修改:)使用企業(yè)管理器修改:選中要修改的表,按選中要修改的表,按右鍵,選擇右鍵,選擇設計表設計表。(2 2)使用)使用SQLSQL語句修改語句修改70(2 2) 基本表的修改基本表的修改 增加、刪除、修改列定義或完整性約束條件:增加、刪除、修改列定義或完整性約
58、束條件: ALTER TABLE 表名表名 ADD子句子句 增加新的列定義或列說明增加新的列定義或列說明 MODIFY子句子句 修改表中列定義或列說明修改表中列定義或列說明 (SQL Server中不能用中不能用MODIFY子句子句) DROP子句子句 刪除表中的列或列說明刪除表中的列或列說明 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中應為中應為: Alter table student alter column sage DATETIMEMODIFYMODIFY在在SQL ServerSQL Server不能實現(xiàn)。不能實現(xiàn)。73例例4 刪除完整性約束刪除完整性約束(知道完整約束名才能刪除)知道完整約束名才能刪除) alter table student drop constraint stu_check3 ; 刪除屬性刪除屬性(只有部分只有部分DBMS允許刪除表中的屬性允許刪除表中的屬
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年攝影器材配件銷售合同
- 2024年新品研發(fā)模具制造合同
- DB4117T 276-2020 甜瓜嫁接育苗技術(shù)規(guī)程
- DB4116T 044-2023 高淀粉玉米生產(chǎn)技術(shù)規(guī)程
- 2024年房地產(chǎn)買賣合同標的及價格
- 2024年度數(shù)據(jù)中心安全防護工程合同
- 2024年攜手共贏:工業(yè)園商鋪經(jīng)營承包合同
- 2024年快速物流銷售合同
- 2024年技術(shù)服務合同協(xié)議模板
- 2024年影視作品版權(quán)轉(zhuǎn)讓與授權(quán)許可合同
- 醫(yī)科大學2024年12月精神科護理學作業(yè)考核試題答卷
- 論青少年合理懷疑精神的培育
- 2024-2025學年浙教版八年級上冊科學期中模擬卷
- (正式版)HGT 6313-2024 化工園區(qū)智慧化評價導則
- 智能制造工程生涯發(fā)展報告
- 二級公立醫(yī)院績效考核三級手術(shù)目錄(2020版)
- 品牌授權(quán)工廠生產(chǎn)授權(quán)書合同
- 6人小品《沒有學習的人不傷心》臺詞完整版
- 銷售配合與帶動-培訓PPT課件
- MATLAB語言課程論文 基于MATLAB的電磁場數(shù)值圖像分析
- 暗挖隧道帷幕注漿專項方案[優(yōu)秀工程方案]
評論
0/150
提交評論