SQLServer數(shù)據(jù)庫開發(fā)經(jīng)典案例完整版課件_第1頁
SQLServer數(shù)據(jù)庫開發(fā)經(jīng)典案例完整版課件_第2頁
SQLServer數(shù)據(jù)庫開發(fā)經(jīng)典案例完整版課件_第3頁
SQLServer數(shù)據(jù)庫開發(fā)經(jīng)典案例完整版課件_第4頁
SQLServer數(shù)據(jù)庫開發(fā)經(jīng)典案例完整版課件_第5頁
已閱讀5頁,還剩287頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、021世紀(jì)高職高專創(chuàng)新精品規(guī)劃教材 SQL Server 數(shù)據(jù)庫開發(fā)經(jīng)典案例教程 1第1章 數(shù)據(jù)庫基礎(chǔ)2本章目標(biāo)數(shù)據(jù)庫存在的必要性和數(shù)據(jù)庫的發(fā)展SQL Server2008數(shù)據(jù)庫以及它所支持的操作系統(tǒng)平臺(tái)SQL Server2008的安裝方法服務(wù)器上的后臺(tái)服務(wù)SQL Server2008服務(wù)端組件和客戶端工具學(xué)會(huì)使用SSMS創(chuàng)建登錄 3數(shù)據(jù)庫存在的必要數(shù)據(jù)存在的必要性可以存儲(chǔ)大量的數(shù)據(jù),便于用戶進(jìn)行檢索和管理 可以保持?jǐn)?shù)據(jù)的一致性、完整性,降低數(shù)據(jù)冗余 實(shí)現(xiàn)應(yīng)用程序的數(shù)據(jù)共享和安全 利用數(shù)據(jù)庫可以智能的對(duì)數(shù)據(jù)進(jìn)行分析和統(tǒng)計(jì) 數(shù)據(jù)庫的發(fā)展史 第一代數(shù)據(jù)庫層次模型和網(wǎng)狀模型 各種DBMS 軟件都是

2、基于某種數(shù)據(jù)模型的 IBM 公司在1969 年推出了世界上第一個(gè)層次數(shù)據(jù)庫系統(tǒng)IMS 第二代數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫是建立在關(guān)系模型之上的數(shù)據(jù)庫 第三代數(shù)據(jù)庫面向?qū)ο髷?shù)據(jù)庫 處于發(fā)展階段,未來趨勢(shì)4數(shù)據(jù)庫的基本概念數(shù)據(jù)庫的基本概念數(shù)據(jù)和信息數(shù)據(jù)中所包含的意義就是信息 數(shù)據(jù)庫保存有組織的數(shù)據(jù)的容器關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫是基于關(guān)系模型建立的,由一系列二維表格組成,將數(shù)據(jù)分類存儲(chǔ)在多個(gè)二維表中,用關(guān)系(外鍵)來體現(xiàn)各個(gè)表之間的關(guān)系。 訂單 客戶 產(chǎn)品 產(chǎn)品數(shù)據(jù)庫表數(shù) 據(jù) 表存儲(chǔ)過程視 圖.5數(shù)據(jù)庫的基本概念數(shù)據(jù)庫的基本概念表、實(shí)體和記錄 實(shí)體是客觀存在的事物,比如:桌子,椅子,電腦行(記錄)6數(shù)

3、據(jù)庫的基本概念數(shù)據(jù)庫的基本概念數(shù)據(jù)冗余和數(shù)據(jù)完整性 數(shù)據(jù)冗余即相同的數(shù)據(jù)存在了多個(gè)地方 數(shù)據(jù)完整性是指數(shù)據(jù)庫中數(shù)據(jù)的有效性和相容性編號(hào)姓名年齡民族部門1王濤33漢族人事管理部2李梅27漢族人事管理部市場(chǎng)營銷部回族27李梅2財(cái)務(wù)管理部漢族33王濤1部門民族年齡姓名編號(hào)7SQL Server2008簡(jiǎn)介SQL Server2008簡(jiǎn)介 SQLServer是微軟公司開發(fā)的一款關(guān)系型數(shù)據(jù)庫產(chǎn)品,具有成本低,易上手,工具全等優(yōu)點(diǎn)。適用于大型或超大型數(shù)據(jù)庫服務(wù)器端。微軟的軟件的特點(diǎn)是版本分得細(xì),可適合各種使用者不同的需要 SQL Server2008的體系結(jié)構(gòu) SQL Server2008系統(tǒng)由4個(gè)部分組

4、成:數(shù)據(jù)庫引擎Analysis ServicesReporting ServicesIntegration Services數(shù)據(jù)庫引擎 數(shù)據(jù)庫引擎是Microsoft SQL Server2008系統(tǒng)的核心服務(wù),是存儲(chǔ)和處理關(guān)系(表格)類型的數(shù)據(jù)或XML文檔數(shù)據(jù)的服務(wù),負(fù)責(zé)完成數(shù)據(jù)的存儲(chǔ)、處理和安全管理。例如:創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、創(chuàng)建視圖、查詢數(shù)據(jù)和訪問數(shù)據(jù)庫等操作,都是由數(shù)據(jù)庫引擎完成的 8SQL Server2008的安裝和版本 安裝:下載軟件并參照書步驟進(jìn)行安裝版本企業(yè)版(SQL Server2008 Enterprise Edition) 標(biāo)準(zhǔn)版 (SQL Server2008 Sta

5、ndard Edition) 工作組版(SQL Server2008 Workgroup Edition)開發(fā)版(SQL Server2008 Developer Edition) 簡(jiǎn)易版(SQL Server2008 Express Edition) 9SQL Server2008后臺(tái)服務(wù)服務(wù)器上的后臺(tái)服務(wù) 在控制面板上選擇【管理工具】- 【服務(wù)】選項(xiàng)。SQL Server服務(wù) SQL Server Agent服務(wù) SQL Server Browser SQL Server Integration Services服務(wù) SQL Server Reporting Services服務(wù) 客戶端管

6、理工具 SQL Server Management StudioSQL Server Configuration Manager Reporting Services配置SQL Server錯(cuò)誤和使用情況報(bào)告 SQL Server Profiler 數(shù)據(jù)庫引擎優(yōu)化顧問10SQL Server2008的工作模式客戶端應(yīng)用程序SQL Server服務(wù)器批處理語句:語句1語句2GOSQL Server2008支持C/S工作模式,C/S模式即客戶機(jī)/服務(wù)器(Client/Server)模式的簡(jiǎn)稱,在該種模式下,服務(wù)器通常是在硬件配置和性能比較高、安裝了服務(wù)器軟件的計(jì)算機(jī),客戶機(jī)就是安裝了客戶端軟件的一

7、般的計(jì)算機(jī) 11連接與斷開數(shù)據(jù)庫服務(wù)器連接與斷開數(shù)據(jù)庫服務(wù)器身份驗(yàn)證:連接之前,需要選擇身份驗(yàn)證模式,系統(tǒng)提供了兩種身份驗(yàn)證模式:Windows身份驗(yàn)證:用當(dāng)前登錄操作系統(tǒng)的身份去登錄.SQL Server身份驗(yàn)證:用Windows加SQL Server的混合模式進(jìn)行驗(yàn)證,需要用合法的SQL Server登錄用戶去訪問默認(rèn)系統(tǒng)在安裝以后會(huì)自動(dòng)產(chǎn)生一個(gè)sa的登錄用戶,具有最高權(quán)限。斷開數(shù)據(jù)庫服務(wù)器 12啟動(dòng)和停止SQL Server服務(wù)啟動(dòng)、停止、暫停和重新啟動(dòng)SQL Server服務(wù) 使用SQL Server配置管理器用SQL Server Management Studio (SSMS) 使

8、用操作系統(tǒng)的服務(wù)管理功能使用命令提示符啟動(dòng)SQL Server默認(rèn)實(shí)例: net start mssqlserver停止SQL Server默認(rèn)實(shí)例: net stop mssqlserver 13SQL Server Management Studio(SSMS)介紹 SSMS簡(jiǎn)介 SQL Server是作為單獨(dú)的Windows進(jìn)程在基于Windows的計(jì)算機(jī)上運(yùn)行的,它可以運(yùn)行在獨(dú)立的桌面計(jì)算機(jī)上,也可以運(yùn)行在服務(wù)器或者網(wǎng)絡(luò)計(jì)算機(jī)上 .SQL Server作為服務(wù)運(yùn)行,該服務(wù)由Windows自身進(jìn)行監(jiān)控 SSMS中的一個(gè)重要的工具就是是查詢編輯器(query editor )SQL Ser

9、ver Management Studio(SSMS)的使用 14創(chuàng)建數(shù)據(jù)庫登錄賬戶 創(chuàng)建數(shù)據(jù)庫登錄賬戶在實(shí)際應(yīng)用中,經(jīng)常要根據(jù)不同的用戶設(shè)置不同的訪問權(quán)限來限制對(duì)數(shù)據(jù)庫的操作 15總結(jié)數(shù)據(jù)庫存在的必要性和數(shù)據(jù)庫的發(fā)展使用數(shù)據(jù)庫可以安全,高效的實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和管理數(shù)據(jù)和信息的概念SQL Server2008數(shù)據(jù)庫只適合Windows平臺(tái)SQL Server2008的安裝方法服務(wù)器上的后臺(tái)服務(wù)SQL Server2008服務(wù)端組件和客戶端工具創(chuàng)建登錄的方法16使用數(shù)據(jù)庫可以安全,高效的實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和管理數(shù)據(jù)和信息數(shù)據(jù)庫文件包括:主數(shù)據(jù)文件,次要數(shù)據(jù)文件和日志文件,每個(gè)數(shù)據(jù)庫至少要包含一個(gè)數(shù)據(jù)文

10、件和日志文件文件組是邏輯上對(duì)數(shù)據(jù)文件進(jìn)行管理的一種方式通過分離數(shù)據(jù)庫可以將數(shù)據(jù)庫分離成物理的文件附加數(shù)據(jù)庫可以將物理文件恢復(fù)成數(shù)據(jù)庫第2章 數(shù)據(jù)庫管理17本章目標(biāo)學(xué)會(huì)創(chuàng)建和維護(hù)數(shù)據(jù)庫的方法掌握數(shù)據(jù)庫的組成及數(shù)據(jù)文件的含義掌握數(shù)據(jù)庫的分離和附加方法學(xué)會(huì)使用幫助文檔18數(shù)據(jù)庫組成19數(shù)據(jù)文件(主要/次要)和日志文件數(shù)據(jù)文件包含數(shù)據(jù)和對(duì)象:如表、索引、視圖等日志文件包含恢復(fù)數(shù)據(jù)庫中的所有事務(wù)所需的信息數(shù)據(jù)庫主數(shù)據(jù)文件(.mdf)次要數(shù)據(jù)文件(.ndf)日志文件(.ldf)數(shù)據(jù)庫文件和文件組簡(jiǎn)介主數(shù)據(jù)文件包含數(shù)據(jù)庫的啟動(dòng)信息,用戶數(shù)據(jù)和對(duì)象存儲(chǔ)在此文件中,每個(gè)數(shù)據(jù)庫只能有一個(gè)主數(shù)據(jù)文件,建議擴(kuò)展名是

11、.mdf次要數(shù)據(jù)文件次要數(shù)據(jù)文件是可選的,由用戶定義并存儲(chǔ)用戶數(shù)據(jù)。建議擴(kuò)展名.ndf事務(wù)日志文件保存用于恢復(fù)數(shù)據(jù)庫的日志信息。每個(gè)數(shù)據(jù)庫必須至少有一個(gè)日志文件,建議擴(kuò)展名.ldf20數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫21mastertempdbmsdbStudentsDBBookShopDB用戶數(shù)據(jù)庫model4個(gè)系統(tǒng)數(shù)據(jù)庫用戶自己創(chuàng)建系統(tǒng)數(shù)據(jù)庫4個(gè)系統(tǒng)數(shù)據(jù)庫Master它存儲(chǔ) SQL Server 系統(tǒng)的所有系統(tǒng)級(jí)信息 ,它包括:登錄帳戶、鏈接服務(wù)器和系統(tǒng)配置設(shè)置。所有其他數(shù)據(jù)庫的存在、數(shù)據(jù)庫文件的位置SQL Server的初始化信息 model在 SQL Server 實(shí)例上創(chuàng)建的所有數(shù)據(jù)庫的模板 Msd

12、b 由 SQL Server 代理用來計(jì)劃警報(bào)和作業(yè) tempdb 是連接到 SQL Server 實(shí)例的所有用戶都可用的全局資源,它保存所有臨時(shí)表和臨時(shí)存儲(chǔ)過程 22文件組BookShopDB的物理文件結(jié)構(gòu)23BookShopDB.ldfE:日志文件 BookInfo Publisher UserInfo 主文件組BookShopDB.mdfC:用戶定義文件組Book1.ndf Book2.ndfD:sys sys sysusers sysobjects 24數(shù)據(jù)庫的建立-可視化方式數(shù)據(jù)庫的建立-使用代碼創(chuàng)建代碼創(chuàng)建數(shù)據(jù)庫25數(shù)據(jù)庫設(shè)置數(shù)據(jù)庫的設(shè)置數(shù)據(jù)庫右鍵-屬性 -選項(xiàng)-只讀 -收縮26數(shù)

13、據(jù)庫的修改修改數(shù)據(jù)庫:可以在【文件】選項(xiàng)頁通過修改數(shù)據(jù)文件修改數(shù)據(jù)庫 27數(shù)據(jù)庫刪除可視化方式 代碼方式Drop database test28分離數(shù)據(jù)庫分離數(shù)據(jù)庫 分離數(shù)據(jù)庫是指將數(shù)據(jù)庫從 SQL Server 實(shí)例中刪除29附加數(shù)據(jù)庫附加數(shù)據(jù)庫附加是分離的反操作。就可以使用分離后的數(shù)據(jù)文件和日志文件將數(shù)據(jù)庫附加到任何 SQL Server 實(shí)例,包括分離該數(shù)據(jù)庫的服務(wù)器 30總結(jié)數(shù)據(jù)庫文件包括:主數(shù)據(jù)文件,次要數(shù)據(jù)文件和日志文件,每個(gè)數(shù)據(jù)庫至少要包含一個(gè)數(shù)據(jù)文件和日志文件文件組是邏輯上對(duì)數(shù)據(jù)文件進(jìn)行管理的一種方式創(chuàng)建數(shù)據(jù)庫可視化方式創(chuàng)建代碼方式創(chuàng)建維護(hù)數(shù)據(jù)庫數(shù)據(jù)庫的修改和刪除通過分離數(shù)據(jù)庫

14、可以將數(shù)據(jù)庫分離成物理的文件附加數(shù)據(jù)庫可以將物理文件恢復(fù)成數(shù)據(jù)庫使用幫助文檔31第3章-1 SQLServer表管理32本章目標(biāo)掌握數(shù)據(jù)表、數(shù)據(jù)完整性、主鍵和外鍵的基本概念掌握SQLServer數(shù)據(jù)類型創(chuàng)建表的時(shí)候要設(shè)定字段名,選取合適的數(shù)據(jù)類型和約束如果要保證某個(gè)列唯一并且自動(dòng)增長,設(shè)定IDENTITY約束主鍵是保證實(shí)體完整性的約束,建議每個(gè)表有一個(gè)主鍵外鍵保證表之間的引用完整性,從表中的數(shù)據(jù)依賴于主表在建表時(shí)設(shè)置主鍵約束外鍵約束檢查約束默認(rèn)約束空值約束標(biāo)識(shí)列 33數(shù)據(jù)表基本概念表書數(shù)據(jù)庫中最重要的數(shù)據(jù)對(duì)象,數(shù)據(jù)存儲(chǔ)在表里數(shù)據(jù)表由行和列組成34數(shù)據(jù)完整性數(shù)據(jù)完整性實(shí)體完整性將行定義為特定表的

15、唯一實(shí)體。即表中的每一行數(shù)據(jù)都代表一個(gè)不同的實(shí)體,不能存在相同的數(shù)據(jù)行 域完整性域完整性指特定列項(xiàng)的有效性 引用完整性用來限制兩個(gè)有關(guān)聯(lián)關(guān)系的表之間的數(shù)據(jù) 35主鍵和外鍵 主鍵表通常具有包含唯一標(biāo)識(shí)表中每一行值的一個(gè)或一多個(gè)字段 特點(diǎn)一個(gè)表只能有一個(gè)主鍵主鍵中的列不能為空如果一個(gè)表的主鍵由多個(gè)列組成,該主鍵也叫“組合主鍵”外鍵外鍵約束保證了數(shù)據(jù)庫中兩個(gè)表中數(shù)據(jù)的引用完整性 將一個(gè)表的一列(或列組合)定義為引用其他表的主鍵,則引用表中的這個(gè)列(或列組合)就稱為外鍵 36主鍵和外鍵37主鍵外鍵數(shù)據(jù)表建立數(shù)據(jù)表,建表時(shí)需考慮:字段的名稱數(shù)據(jù)類型是否允許為Null是否自動(dòng)增長等 38數(shù)據(jù)類型Sqlse

16、rver有以下數(shù)據(jù)類型數(shù)據(jù)類型類別 具體類型 精確數(shù)據(jù) bigint,decimal,int,numeric,smallint,money,tinyint,smallmoney,bit 近似數(shù)字 float ,real字符串 char ,varchar, text Unicode字符串 nchar , nvarchar, ntext 二進(jìn)制字符串 binary ,image, varbinary 日期類型 datetime ,smalldatetime 其他類型 Uniqueidentifier, xml, table等 39創(chuàng)建表創(chuàng)建表的實(shí)質(zhì)就是定義表結(jié)構(gòu)以及約束等屬性。SQL Server

17、2008種提供了兩種方式創(chuàng)建表。一種是通過SQL Server Management Studio(SSMS)一種是通過T-SQL代碼。本書重點(diǎn)介紹使用T-SQL代碼來創(chuàng)建表 40T-SQL代碼建表通過執(zhí)行Transact-SQL的CREATE TABLE 語句可以創(chuàng)建表,建表的語法如下:例如: CREATE TABLE mytable ( col1 char(10) primary key, col2 int not null )41CREATE TABLE 表名( 字段1 數(shù)據(jù)類型 列的特征, 字段2 數(shù)據(jù)類型 列的特征, 。 )建表【示例3-1】 :建立用戶表UserInfo, 建表時(shí)設(shè)

18、置主鍵并設(shè)置相應(yīng)字段的not null(非空)屬性 42USE BookShopDb -將當(dāng)前數(shù)據(jù)庫設(shè)置為BookShopDb GO CREATE TABLE UserInfo -創(chuàng)建用戶表( UserID char(3) PRIMARY KEY, -UerID為主鍵 UserName char(10) not null, Sex char(2) not null, Age int , hiredate datetime, tele char(15), Addr varchar(100)GO 建表表的IDENTITY 屬性標(biāo)識(shí)列字段的數(shù)據(jù)類型只能是decimal,int,numeric,sma

19、llint,bitint,tinyint每個(gè)表最多有一列具有IDENTITY屬性,且該列不能為空、不允許有默認(rèn)值IDENTITY屬性的語法: IDENTITY(seed,increment),seed稱為種子,表示裝載到表中第一行使用的值;如IDENTITY(1,1),表示該列值從1開始,每條記錄增1.IDENTITY屬性與CREATE TABLE和ALTER TABLE一起使用 43建表時(shí)使用標(biāo)識(shí)列【示例3-2】建立圖書類別表Category 44USE BookShopDb -將當(dāng)前數(shù)據(jù)庫設(shè)置為BookShopDb GOCREATE TABLE Publisher( PublisherID

20、 int IDENTITY(1,1) PRIMARY KEY, -自動(dòng)編號(hào)(標(biāo)識(shí)列) PublisherName varchar(50) not null -出版社名稱,必須輸入)GO 建表時(shí)使用約束45USE BookShopDb -將當(dāng)前數(shù)據(jù)庫設(shè)置為BookShopDbGO CREATE TABLE BookInfo /*創(chuàng)建BookInfo數(shù)據(jù)表*/( BookID char(15) PRIMARY KEY, -書號(hào) ,主鍵 BookName varchar(100) not null, -書名 Author varchar(50) not null, -作者 ISBN char(13)

21、 , -ISBN,null可以省略 PublishDate datetime not null, -出版日期 PublisherID int not null REFERENCES Publisher(PublisherID),-外鍵 CategoryID int not null REFERENCES Category(CategoryID), -外鍵 Price money , -價(jià)格 Content text -介紹)GO 建表時(shí)使用約束46USE BookShopDb -將當(dāng)前數(shù)據(jù)庫設(shè)置為BookShopDbGO Drop table userInfoCREATE TABLE User

22、Info -創(chuàng)建用戶表( UserID char(3) PRIMARY KEY CHECK(UserID LIKE 0-90-90-9), UserName char(10) UNIQUE, -用戶名,唯一約束 Sex char(2) CHECK(Sex in (男,女), -性別,Check約束 Age int not null, -年齡,非空約束 hiredate datetime , -入職日期 tele char(15), -電話 Addr varchar(100) DEFAULT 廣東廣州 -地址,默認(rèn)約束 )GO 【示例3-6】重建UserInfo表,演示在建表時(shí)如何設(shè)定約束建表時(shí)

23、使用約束47USE BookShopDb -將當(dāng)前數(shù)據(jù)庫設(shè)置為BookShopDb,GO CREATE TABLE SalesMaster /*創(chuàng)建SalesMaster銷售主表*/(SalesMasterID int identity primary key, -銷售id,自動(dòng)增長,主鍵 SalesDate datetime not null, -銷售日期 UserID char(3) not null), CONSTRAINT fk_UserID FOREIGN KEY (UserID) REFERENCES UserInfo(UserID) ON DELETE CASCADE 【示例3-

24、7】建立SalesMaster銷售主表,通過設(shè)定外鍵與UserInfo表之間建立聯(lián)系總結(jié)掌握數(shù)據(jù)表的概念和含義數(shù)據(jù)完整性、主鍵和外鍵的基本概念主鍵是保證實(shí)體完整性的約束,建議每個(gè)表有一個(gè)主鍵外鍵保證表之間的引用完整性,從表中的數(shù)據(jù)依賴于主表創(chuàng)建數(shù)據(jù)表創(chuàng)建表的時(shí)候要設(shè)定字段名,選取合適的數(shù)據(jù)類型和約束如果要保證某個(gè)列唯一并且自動(dòng)增長,設(shè)定IDENTITY約束掌握SQLServer數(shù)據(jù)類型,三大類:數(shù)字、字符和日期在建表時(shí)設(shè)置主鍵約束外鍵約束檢查約束默認(rèn)約束空值約束標(biāo)識(shí)列 48第3章-2 SQLServer表管理49本章目標(biāo)約束的維護(hù)修改表添加約束刪除約束建立數(shù)據(jù)庫關(guān)系圖 以圖形方式顯示數(shù)據(jù)庫表之

25、間的關(guān)系SQL Server中的特殊表類型 已分區(qū)表臨時(shí)表系統(tǒng)表修改和刪除表修改表結(jié)構(gòu)、刪除表50約束的維護(hù)添加約束語法51ALTER TABLE 表名ADD CONSTRAINT 約束名約束類型具體的約束說明 USE BookShopDb -選擇數(shù)據(jù)庫,以下示例從略GOALTER TABLE UserInfo ADD CONSTRAINT pk_ UserID PRIMARY KEY(UserID)添加主鍵約束添加外鍵約束ALTER TABLE SalesDetails ADD CONSTRAINT fk_BookID FOREIGN KEY(BookID) REFERENCES BookI

26、nfo(BookID) 約束的維護(hù)刪除約束語法52ALTER TABLE 表名DROP CONSTRAINT 約束名 ALTER TABLE UserInfo DROP CONSTRAINT pk_ UserID 數(shù)據(jù)庫關(guān)系圖 已建立了數(shù)據(jù)庫中各個(gè)數(shù)據(jù)表之間的關(guān)系,可通過SQL Server提供的數(shù)據(jù)庫關(guān)系圖,即可以圖表的形式顯示各個(gè)數(shù)據(jù)表之間的關(guān)系如果表之間的關(guān)系沒有建立,也可在通過數(shù)據(jù)庫關(guān)系圖建立數(shù)據(jù)表之間的關(guān)系 53數(shù)據(jù)庫關(guān)系圖54SQL Server中的特殊表類型 分區(qū)表當(dāng)表數(shù)據(jù)非常大時(shí)可以將一個(gè)表水平劃分為多個(gè)表單獨(dú)存儲(chǔ),并且可以存儲(chǔ)在多個(gè)不同的物理文件中。這樣的表就是分區(qū)表 臨時(shí)表

27、在操作過程中系統(tǒng)需要維護(hù)一些臨時(shí)數(shù)據(jù),比如果用戶需要將查詢結(jié)果排序,則會(huì)創(chuàng)建臨時(shí)表并在臨時(shí)表中將數(shù)據(jù)排序后返回給用戶 系統(tǒng)表SQL Server 將定義服務(wù)器配置及其所有表的數(shù)據(jù)存儲(chǔ)在一組特殊的表中,這組表稱為系統(tǒng)表。任何用戶都不應(yīng)該直接更改系統(tǒng)表 55修改表結(jié)構(gòu)修改表結(jié)構(gòu)使用ALTER TABLE語句修改表結(jié)構(gòu)增加列刪除列修改列的數(shù)據(jù)類型改變列的長度等在表沒有數(shù)據(jù)的情況下,可以對(duì)列進(jìn)行任意修改或刪除 56修改表結(jié)構(gòu)-增加列和修改列57USE BookShopDbGOALTER TABLE UserInfo ADD email char(20) GO 增加列 給UserInfo表增加列emai

28、l,字符類型長度是20,非空修改列USE BookShopDbGOALTER TABLE UserInfo ALTER COLUMN addr varchar(150) not null增加UserInfo表的字段addr 長度,將其增加到150,類型不變 修改表結(jié)構(gòu)-刪除列58刪除列刪除UserInfo表 email列USE BookShopDbGOALTER TABLE UserInfo DROP COLUMN emailGO刪除表刪除表 DROP TABLE UserInfo如果刪除的表和其他表有關(guān)聯(lián)關(guān)系,必須先刪除子表,然后再刪除主表。否則系統(tǒng)會(huì)彈出錯(cuò)誤 59總結(jié)約束的維護(hù)修改表添加約

29、束Alter table add constraint 約束名稱 約束類型刪除約束 alter table drop constraint 約束名稱建立數(shù)據(jù)庫關(guān)系圖 以圖形方式顯示數(shù)據(jù)庫表之間的關(guān)系SQL Server中的特殊表類型 已分區(qū)表臨時(shí)表系統(tǒng)表修改和刪除表修改表結(jié)構(gòu):修改添加字段Alter table 表名 add 字段名稱 數(shù)據(jù)類型修改表修改字段 alter table 表名 alter column 字段名稱 數(shù)據(jù)類型修改表刪除字段 alter table 表名 drop 字段名稱刪除表Drop table 表名 60第4章 SQLServer數(shù)據(jù)管理61本章目標(biāo)了解SQL和T-

30、SQLT-SQL實(shí)現(xiàn)數(shù)據(jù)的增加、修改、刪除數(shù)據(jù)操作62SQL和T-SQL SQL(Structure Query Language,結(jié)構(gòu)化查詢語言) 主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)系統(tǒng) SQL語言主要包括 數(shù)據(jù)操縱語言(DML)用來操作數(shù)據(jù)庫中的數(shù)據(jù),包括插入數(shù)據(jù)(INSERT)、修改數(shù)據(jù)(UPDATE)、刪除數(shù)據(jù)(DELETE)、查詢數(shù)據(jù)(SELECT)等操作 數(shù)據(jù)定義語言(DDL)用于創(chuàng)建或修改數(shù)據(jù)庫里的對(duì)象,如創(chuàng)建Create table、修改Alter table 、刪除Drop table等 數(shù)據(jù)控制語言(DCL) 用來控制用戶對(duì)

31、數(shù)據(jù)庫數(shù)據(jù)的訪問權(quán)限,如:Grant、Revoke等63T-SQL介紹 T-SQLT-SQL(Transact-SQL)是SQL Server的核心 所有與SQL Server實(shí)例通信的應(yīng)用程序,都是通過發(fā)送T-SQL語句到服務(wù)器來完成對(duì)數(shù)據(jù)庫的操作 T-SQL是對(duì)標(biāo)準(zhǔn)SQL的擴(kuò)展 是在標(biāo)準(zhǔn)SQL的基礎(chǔ)上增加了變量定義、函數(shù)、流程控制等編程要素 語法約定 語句不區(qū)分大小寫 64插入數(shù)據(jù) 65語法格式 INSERT INTO 表名(列名,n) VALUES (值,n) 【例4-1】 向BookShopDb 數(shù)據(jù)庫的UserInfo表中插入所有列數(shù)據(jù)USE BookShopDb GO -批處理結(jié)束

32、標(biāo)志,表示執(zhí)行 INSERT INTO UserInfo(UserID,UserName,Sex,Age,hiredate,tele,Addr) VALUES(001,王琳琳,女,26,2005-1-24,07313677867,湖南長沙)INSERT INTO UserInfo VALUES(002,張家輝,男,27,2004-3-5,02034657654,廣東廣州)INSERT INTO UserInfo(UserID,UserName) VALUES(003,張?zhí)锾?插入部分列時(shí)列名不能省略 插入所有列時(shí)列名可省略 插入數(shù)據(jù)66 【例4-3】向UserInfo表插入數(shù)據(jù),嘗試輸入性別為

33、其他內(nèi)容 INSERT INTO UserInfo(UserID,UserName,Sex,Age,hiredate,tele,Addr)VALUES(004,周晨陽,中,30,2003-4-2,02734652345,湖北宜昌)標(biāo)識(shí)列字段數(shù)據(jù)的插入 【例4-5】向Category表插入數(shù)據(jù), Category帶有標(biāo)識(shí)列CategoryID INSERT INTO Category(CategoryName) VALUES(計(jì)算機(jī)基礎(chǔ)理論) 使用SELECT INTO 語句拷貝表SELECT INTO 可將幾個(gè)表或視圖中的數(shù)據(jù)組合成一個(gè)表 查看表數(shù)據(jù):select * from copyUse

34、rInfo若只拷貝表結(jié)構(gòu): SELECT * INTO NewUserInfo FROM UserInfo where 1=2 67【例4-9】 使用SELECT . INTO拷貝UserInfo表年齡大于等于30的數(shù)據(jù) 生成一新表CopyUserInfoSELECT * INTO CopyUserInfo FROM UserInfo WHERE Age=30 更新數(shù)據(jù)語法格式68UPDATE 表名 SET WHERE 更新條件【例4-10】修改UserInfo表數(shù)據(jù),把UserID為007的用戶的住址改為甘肅酒泉UPDATE UserInfo SET Addr =甘肅酒泉 WHERE Use

35、rID =007修改數(shù)據(jù)69 【例4-11】如圖完善UserInfo表數(shù)據(jù),把用戶號(hào)003用戶的年齡、參加工作日期分別修改為33,2004-8-30 UPDATE UserInfo SET Age =33, hiredate =2004-8-30 WHERE UserID =003【例4-12】把用戶001的參加工作日期加1天,地址改為湖南湘潭UPDATE UserInfoSET hiredate=hiredate+1, Addr=湖南湘潭WHERE UserID =001 注意:修改數(shù)據(jù)如果只修改一條記錄,一般都按主鍵字段修改。刪除數(shù)據(jù) 語法:70DELETE FROM 表名 WHERE 條

36、件 【例4-14】刪除參加工作日期在2004-1-1之后的用戶信息DELETE FROM UserInfo WHERE hiredate2004-1-1 【例4-15】 刪除BookInfo表中書號(hào)是B0001的記錄 DELETE FROM BookInfo WHERE BookID=B0001 因?yàn)橐獎(jiǎng)h除BookInfo表的書號(hào)是B0001的記錄被SalesDetails表引用,所以必須先刪除SalesDetails表的相應(yīng)記錄,才能刪除BookInfo表的記錄 使用TRUNCATE TABLE語句 語法:71 TRUNCATE TABLE 表名【例4-16】 刪除CopyUserInfo表

37、的所有數(shù)據(jù) TRUNCATE TABLE CopyUserInfo總結(jié)增加單行數(shù)據(jù)用INSERT INTOVALUES語句修改數(shù)據(jù)用UPDATE 表名 SET 字段名=新值 WHERE 條件。語句刪除數(shù)據(jù)用DELETE FROM WHERE 語句快速刪除整個(gè)表中的數(shù)據(jù)用TRUNCATE TABLE 語句 TRUNCATE TABLE 表名72第5章 簡(jiǎn)單查詢和函數(shù)73本章目標(biāo)掌握查詢的基本語法掌握各種函數(shù)的應(yīng)用字符串函數(shù)日期函數(shù)數(shù)字函數(shù)掌握函數(shù)在查詢中的應(yīng)用74查詢75查詢請(qǐng)求查詢結(jié)果集結(jié)果集如何查詢查詢性別“男”的所有用戶76查詢 語法:77 SELECT FROM WHERE ORDER

38、BY ASC或DESC查詢數(shù)據(jù)返回所有的行和列查詢表中所有字段時(shí),可以用星號(hào)*來代替字段名返回部分行和列篩選部分字段,必須明確指定字段名【例5-2】查詢BookInfo表的BookName(書名),作者(Author),出版日期(publishDate),類別ID(CategoryID),價(jià)格(Price)等字段的數(shù)據(jù) 78 SELECT * FROM BookInfo SELECT BookName,Author,publishDate,CategoryID FROM BookInfo查詢-使用別名79SELECT bookName as 書名,Author as 作者,publishDat

39、e as 出版日期,CategoryID as 類別,price as 價(jià)格FROM bookInfo 1,用as關(guān)鍵字 【例5-3】 用中文名稱來顯示書的信息,3種不同使用別名方法 2,用空格3,用=SELECT bookName 書名,Author 作者,publishDate 出版日期,CategoryID 類別,price 價(jià)格FROM bookInfoSELECT 書名= bookName,作者= Author, 出版日期=publishDate,類別=CategoryID , 價(jià)格=price FROM bookInfo查詢-使用where使用WHERE子句篩選滿足條件的數(shù)據(jù)行 8

40、0【例5-4】查詢2007年以后出版的所有書籍的書名、作者、出版日期和價(jià)格SELECT bookName,author,publishDate,price FROM BookInfo WHERE PublishDate2007-01-01函數(shù)T-SQL函數(shù)表示可以接受零個(gè)、一個(gè)或多個(gè)輸入值,并返回一個(gè)標(biāo)量值或一組值81 表5-1 常用T-SQL函數(shù)函數(shù)類別 說明 字符串函數(shù) 對(duì)字符串(char 或 varchar)輸入值執(zhí)行運(yùn)算,然后返回一個(gè)字符串或數(shù)字值。日期和時(shí)間函數(shù) 對(duì)日期和時(shí)間輸入值執(zhí)行運(yùn)算,然后返回字符串、數(shù)字或日期和時(shí)間值。數(shù)學(xué)函數(shù) 基于作為函數(shù)的參數(shù)提供的輸入值執(zhí)行運(yùn)算,然后返回

41、數(shù)字值。系統(tǒng)函數(shù)返回系統(tǒng)配置信息、返回有關(guān)數(shù)據(jù)庫和數(shù)據(jù)庫對(duì)象的信息、執(zhí)行運(yùn)算后返回 SQL Server 實(shí)例中有關(guān)值、對(duì)象和設(shè)置的信息,返回有關(guān)用戶和角色的信息等。字符串函數(shù) 字符串函數(shù) 字符串函數(shù)用于對(duì)字符串?dāng)?shù)據(jù)進(jìn)行處理,如字符串截取、查找子串、計(jì)算字符串長度等,并返回一個(gè)字符串或數(shù)值 82字符串函數(shù)83字符串函數(shù)的使用84 SELECT bookName,Author,PATINDEX(%數(shù)據(jù)庫%,bookName) POSFROM BookInfo WHERE PATINDEX(%數(shù)據(jù)庫%,bookName)0【例5-8】使用日期函數(shù)獲取今天的日期時(shí)間及明天的日期和時(shí)間【例5-7】使用

42、PATINDEX函數(shù)查詢BookInfo表中包含數(shù)據(jù)庫的書名和作者以及數(shù)據(jù)庫出現(xiàn)的位置 SELECT GETDATE() 今天, DATEADD(DAY,1,GETDATE() 明天日期和時(shí)間函數(shù)85系統(tǒng)函數(shù)86總結(jié)掌握查詢的基本語法從表中篩選記錄的時(shí)候用SELECT語句通過給列起別名的方式簡(jiǎn)化代碼掌握各種函數(shù)的應(yīng)用字符串函數(shù)日期函數(shù)數(shù)字函數(shù)掌握函數(shù)在查詢中的應(yīng)用87第6章 檢索數(shù)據(jù)88本章目標(biāo)掌握WHERE子句中運(yùn)算符的使用掌握使用Top關(guān)鍵字和使用Distinct消除重復(fù)行掌握模糊查詢Like,between,in的用法89在WHERE子句中使用運(yùn)算符 SELECT通過WHERE子句構(gòu)造記

43、錄的篩選條件,從而選擇出滿足條件的記錄 記錄的篩選條件:運(yùn)算符 函數(shù)使用 IS NULL條件90運(yùn)算符使用比較運(yùn)算符和邏輯運(yùn)算符 91【例6-1】 查詢BookInfo表中價(jià)格低于的書名、作者和價(jià)格 SELECT BookName,Author,Price FROM BookInfo WHERE Price 40【例6-2】 查詢BookInfo表中價(jià)格在30到80之間(包括邊界) 的書名、價(jià)格和說明 SELECT BookName,price,Content FROM BookInfo WHERE Price =30 使用 IS NULL條件 使用 IS NULL條件92【例6-3】 查詢U

44、serInfo中電話(tele)為空的用戶信息 SELECT UserID,UserName,Sex,Age,hiredate,tele,Addr FROM UserInfo WHERE tele is null 查詢中使用函數(shù)93【例6-5】 在BookInfo表中,查詢書名長度小于10的圖書書名、作者和書名長度 SELECT bookname,Author ,LEN(bookName) FROM BookInfo WHERE LEN(bookname)10設(shè)置結(jié)果集格式 使用ORDER BY排序數(shù)據(jù) 94【例6-6】 在BookInfo表中,按出版日期的先后順序,查詢價(jià)格低于45的圖書的書

45、號(hào)、書名、價(jià)格、作者和出版日期。 SELECT bookid,bookName,Price,Author,PublishDate FROM BookInfo WHERE Price b.PriceWHERE b.BookID =B0002總結(jié)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)使用SQL內(nèi)置的聚合函數(shù)MaxMinSumAvgCount對(duì)數(shù)據(jù)進(jìn)行分組用GROUP BY,分組條件篩選用Having查詢的數(shù)據(jù)來自于多個(gè)表用關(guān)聯(lián)查詢關(guān)聯(lián)查詢連接內(nèi)聯(lián)接內(nèi)聯(lián)接篩選多表中完全匹配的行外部聯(lián)接左外聯(lián)接以左表為主篩選數(shù)據(jù)右外聯(lián)接以右表為主篩選數(shù)據(jù)自聯(lián)接自聯(lián)接將表自身通過別名關(guān)聯(lián)125第8章 子查詢126本章目標(biāo)掌握子查詢的使用子查詢

46、返回單一值子查詢返回值列表子查詢的存在性測(cè)試EXISTS掌握集合運(yùn)算并集(Union)交集(Intersection)減(Except)127子查詢問題:顯示價(jià)格最高書籍的書號(hào)、書名和價(jià)格 解決方法:查詢出最高價(jià)格select MAX(price) from BookInfo以價(jià)格為條件查詢出書號(hào)、書名和價(jià)格select bookid,bookname,price from BookInfo where Price=(select MAX(price) from BookInfo) 128外部查詢內(nèi)部查詢子查詢子查詢就是一個(gè)嵌套在 SELECT、INSERT、UPDATE 或 DELETE 語

47、句或其他子查詢中的查詢,子查詢也稱為內(nèi)部查詢,而包含子查詢的語句也稱為外部查詢 子查詢的SELECT 查詢總是使用圓括號(hào)括起來。基本語法:129SELECT 列名.FROM 表名WHERE 條件 =(SELECT 列名 FROM 表名 WHERE 條件)返回單個(gè)值的子查詢 當(dāng)子查詢返回單個(gè)值時(shí),外部查詢條件和子查詢之間使用比較運(yùn)算符(、=、(SELECT AVG(price) FROM BookInfo) 比較運(yùn)算符返回單個(gè)值的子查詢查詢書名為“JavaWeb開發(fā)技術(shù)詳解”的出版社ID和出版年限 SELECT publisherID FROM BookInfo WHERE BookName =

48、JavaWeb開發(fā)技術(shù)詳解SELECT YEAR(publishDate) FROM BookInfo WHERE BookName =JavaWeb開發(fā)技術(shù)詳解 代碼為:SELECT BookID,BookName,publishDate,PublisherID FROM BookInfo WHERE PublisherID =(SELECT publisherID FROM BookInfo WHERE BookName =JavaWeb開發(fā)技術(shù)詳解) AND YEAR(PublishDate) = (SELECT YEAR(publishDate) FROM BookInfo WHERE

49、 BookName =JavaWeb開發(fā)技術(shù)詳解 )131【例8-2】 查詢具有和“JavaWeb開發(fā)技術(shù)詳解”相同出版社和相同出版年限的書籍的書號(hào)、書名和出版日期解決方法:返回值列表的子查詢 子查詢返回值列表即子查詢返回的不是單個(gè)值,外部查詢的檢索條件WHERE和子查詢之間使用以下運(yùn)算符 132返回值列表的子查詢【例8-3】查詢有銷售記錄的人員信息先求子查詢,即在銷售主表SalesMaster中查找銷售人員ID SELECT UserID FROM SalesMaster因?yàn)殇N售人員不止一個(gè),所以外部查詢和子查詢之間使用INSELECT * FROM UserInfo WHERE UserI

50、D IN (SELECT UserID FROM SalesMaster) 133返回值列表的子查詢【例8-3】顯示價(jià)格高于類別JAVA的所有書籍的書號(hào)、書名、作者和價(jià)格。分析:先求出類別是“JAVA“的所有書籍的價(jià)格列表 SELECT Price,BookID,CategoryID FROM BookInfo WHERE CategoryID = (SELECT categoryid FROM Category WHERE CategoryName =JAVA)外部查詢和子查詢之間應(yīng)該使用ALLSELECT BookID ,BookName ,Author,Price FROM BookIn

51、fo WHERE Price ALL(SELECT Price FROM BookInfo WHERE CategoryID =(SELECT categoryid FROM Category WHERE CategoryName =JAVA) ) 134值列表EXISTS存在性測(cè)試相關(guān)子查詢?cè)谧硬樵冎幸猛獠坎樵兊牧校醋硬樵兊膱?zhí)行與外部查詢有關(guān) 135 【例8-4】顯示同類圖書中價(jià)格最高的的書籍信息,顯示內(nèi)容包括書號(hào)、書名、價(jià)格和類別。分析:對(duì)BookInfo表的每一條記錄,與同類圖書的價(jià)格比較,求出最高價(jià)格的書籍SELECT BookID ,BookName ,Price ,Catego

52、ryID FROM BookInfo a WHERE a.Price =( SELECT max(b.price) FROM BookInfo b WHERE a.CategoryID =b.CategoryID ) EXISTS存在性測(cè)試EXISTS存在性測(cè)試 指定一個(gè)子查詢,測(cè)試行是否存在,也就是對(duì)于外部查詢的每一行,檢查子查詢是否是空集合,如不是空集合,主查詢返回值,否則主查詢沒有返回值 該題目涉及銷售細(xì)表SalesDetails和書籍表BookInfo,因?yàn)椴樵兊氖菚畔?,所以BookInfo表應(yīng)該放在外部查詢位置,銷售細(xì)表SalesDetails應(yīng)放在子查詢位置 136【例8-5】

53、查詢已銷售的書籍信息,顯示內(nèi)容包括書號(hào)、書名和作者。SELECT BookID,BookName,Author FROM BookInfo WHERE EXISTS(SELECT * FROM SalesDetails WHERE BookID=BookInfo.BookID)NOT Exists子查詢【例8-6】查詢沒有銷售記錄的用戶信息,顯示內(nèi)容包括用戶ID、用戶名和入職月份。分析:該題目外部查詢是用戶UserInfo表,子查詢是銷售主表SalesMaster,由于查詢的是沒有銷售記錄的用戶,所以使用NOT EXISTS關(guān)鍵字判斷子查詢是否有記錄返回 137用戶id用戶idSELECT a

54、.UserId,a.UserName,YEAR(a.hiredate) 入職年份FROM UserInfo a WHERE NOT EXISTS (SELECT * FROM SalesMaster b WHERE b.UserID=a.UserID)集合操作 集合操作是一種以兩個(gè)或多個(gè)SELECT 查詢結(jié)果集為操作對(duì)象,通過對(duì)這些查詢結(jié)果集實(shí)施并、交、差等集合運(yùn)算,獲取新的結(jié)果集的一種查詢方法 集合操作的運(yùn)算符主要包括以下3種 并集(UNION)交集(INTERSECT)差(EXCEPT)138并集(UNION) 并集并集是將兩個(gè)或更多查詢的結(jié)果合并為單個(gè)結(jié)果集,該結(jié)果集包含聯(lián)合查詢中的所有

55、查詢的全部行 UNION的使用限制:集合操作符所涉及的查詢應(yīng)有相同的列數(shù),對(duì)應(yīng)的列必須具有相同的數(shù)據(jù)類型。所顯示的行上面的標(biāo)簽來自第一個(gè)SELECT語句。UNION和UNION ALLUNION ALL:返回兩個(gè)查詢所選定的所有行,包括重復(fù)行UNION:未指定ALL,返回的結(jié)果集中不包括重復(fù)行 139并集(UNION)【例8-7】 把“機(jī)械工業(yè)出版社”出版的圖書和“人民郵電出版社”出版社的圖書一起顯示輸出查詢“機(jī)械工業(yè)出版社”的圖書的T-SQL如下查詢“人民郵電出版社”的圖書的T-SQL如下 140SELECT BookID ,BookName,Author,PublisherID FROM

56、BookInfo WHERE PublishERID=(SELECT PublisherID FROM Publisher WHERE PublisherName =機(jī)械工業(yè)出版社)SELECT BookID ,BookName,Author,PublisherID FROM BookInfo WHERE PublishERID=(SELECT PublisherID FROM Publisher WHERE PublisherName =人民郵電出版社 )SELECT BookID ,BookName,Author,PublisherID FROM BookInfo WHERE Publis

57、hERID=(SELECT PublisherID FROM Publisher WHERE PublisherName =機(jī)械工業(yè)出版社)UNION SELECT BookID ,BookName,Author,PublisherID FROM BookInfo WHERE PublishERID=(SELECT PublisherID FROM Publisher WHERE PublisherName =人民郵電出版社)并集(UNION)【例8-8】將新數(shù)據(jù)顯示在查詢中141SELECT 009 AS 用戶ID,張三 as 用戶名, 男 as 性別, 20 as 年齡UNION SELE

58、CT UserID ,UserName,Sex,Age FROM UserInfo交集(INTERSECT) 交集(INTERSECT) INTERSECT運(yùn)算符比較兩個(gè)查詢的結(jié)果,返回重復(fù)值,即返回兩個(gè)結(jié)果集中的交集,兩者都包含的記錄 INTERSECT運(yùn)算符的使用限制與UNION運(yùn)算符相同?!纠?-9】查詢有銷售記錄的書籍142SELECT BookID as 書ID FROM SalesDetailsINTERSECT SELECT BookID FROM BookInfo 差(EXCEPT) 差(EXCEPT)運(yùn)算符比較兩個(gè)查詢的結(jié)果,返回非重復(fù)值。EXCEPT運(yùn)算符獲取在結(jié)果集A中但

59、不在結(jié)果集B中的記錄,即結(jié)果集A減去結(jié)果集B EXCEPT運(yùn)算符的使用限制與UNION運(yùn)算符相同 143差(EXCEPT)【例8-10】查詢BookInfo表中價(jià)格低于40的書籍中去掉2006年出版的書籍信息,顯示內(nèi)容包括書號(hào)、書名、價(jià)格和出版日期 144SELECT BookID 書ID ,BookName 書名 ,Price 價(jià)格 ,PublishDate 出版日期 FROM BookInfo WHERE Price 40EXCEPTSELECT BookID ,BookName ,Price ,PublishDate FROM BookInfo WHERE YEAR(PublishDat

60、e) =2006總結(jié)子查詢就是嵌套在SELECT,INSERT,UPDATE和DELETE中的查詢。一般子查詢不依賴于外部查詢,執(zhí)行時(shí)先執(zhí)行內(nèi)部查詢?cè)賵?zhí)行外部查詢,通常用比較運(yùn)算符和IN,NOT IN關(guān)鍵字。相關(guān)子查詢即子查詢的條件依賴于外部查詢,執(zhí)行時(shí)先執(zhí)行外 部查詢,然后根據(jù)外部查詢返回的記錄行數(shù)重復(fù)執(zhí)行內(nèi)部查詢通 常用EXISTS,NOT EXISTS關(guān)鍵字。集合運(yùn)算結(jié)果集要進(jìn)行合并時(shí)用UNION運(yùn)算符。結(jié)果集取交集用INTERSECT運(yùn)算符。結(jié)果集相減用EXCEPT運(yùn)算符。145第9章 數(shù)據(jù)庫的設(shè)計(jì)本章目標(biāo)了解設(shè)計(jì)數(shù)據(jù)庫的步驟掌握數(shù)據(jù)庫設(shè)計(jì)模型ER模型掌握使用范式規(guī)范化數(shù)據(jù)庫為什么需要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論