數據庫應用(SQL Server 2008)課件 趙增敏 項目1-5 初識SQL Server 2008-檢索數據庫數據_第1頁
數據庫應用(SQL Server 2008)課件 趙增敏 項目1-5 初識SQL Server 2008-檢索數據庫數據_第2頁
數據庫應用(SQL Server 2008)課件 趙增敏 項目1-5 初識SQL Server 2008-檢索數據庫數據_第3頁
數據庫應用(SQL Server 2008)課件 趙增敏 項目1-5 初識SQL Server 2008-檢索數據庫數據_第4頁
數據庫應用(SQL Server 2008)課件 趙增敏 項目1-5 初識SQL Server 2008-檢索數據庫數據_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

趙增敏等主編數據庫應用

(SQLServer2008)CONTENTS

目錄1項目1初識SQLServer20082項目2創(chuàng)建和管理數據庫3項目3創(chuàng)建和管理表4項目4操作數據庫數據5項目5檢索數據庫數據6項目6創(chuàng)建索引和視圖7項目7Transact-SQL程序設計8項目8創(chuàng)建存儲過程和觸發(fā)器9項目9管理數據安全CONTENTS

目錄1項目1初識SQLServer20082項目2創(chuàng)建和管理數據庫3項目3創(chuàng)建和管理表4項目4操作數據庫數據5項目5檢索數據庫數據6項目6創(chuàng)建索引和視圖7項目7Transact-SQL程序設計8項目8創(chuàng)建存儲過程和觸發(fā)器9項目9管理數據安全項目1

初識SQLServer2008CONTENTS

目錄1任務1了解數據庫2任務2了解SQLServer20083任務3安裝SQLServer20084任務4認識SQLServer2008服務和管理工具5任務5管理SQLServer服務器任務1了解數據庫相關知識數據庫

是為特定目的而組織和表示的信息、表以及其他對象的集合,數據庫存儲在一個或多個文件中。數據庫中的數據分為系統(tǒng)數據和用戶數據兩類。數據庫可以包含各種各樣的對象。SQLServer數據庫中包含表、視圖、存儲過程和函數,也包含觸發(fā)器和程序集、規(guī)則、類型和默認值,還包含用戶、角色以及架構等。關系數據庫

在關系數據庫中,數據行和數據列組成了表;一組表連同其他對象一起組成了數據庫。在關系數據庫中,數據可以存儲在不同的表中。每個表包含某個特定主題的數據。表中的一列通常也稱為字段,每個字段用于存儲某種特性的數據。表中的一行通常也稱為一條記錄,每條記錄包含表中一項的相關信息。數據庫管理系統(tǒng)

數據庫管理系統(tǒng)是對數據庫進行管理的軟件系統(tǒng),它提供了用戶與數據庫之間的軟件界面,可以用于創(chuàng)建、管理和維護數據庫。數據庫管理系統(tǒng)通常具有數據庫定義、數據庫操作和數據控制功能。SQL語言

SQL即結構化查詢語言,可用于檢索、插入、修改和刪除關系數據庫中的數據以及于定義和管理數據庫中的對象。SQL是一種關系數據庫語言,它具有數據查詢、數據定義、數據操作和數據控制功能。任務2了解SQLServer2008相關知識SQLServer2008的版本企業(yè)版:全面的數據管理和商業(yè)智能平臺。標準版:完整的數據管理和商業(yè)智能平臺。工作組版:可信賴的數據管理和報表平臺。網絡版:提供低成本、大規(guī)模、高度可用的Web應用程序或主機解決方案。移動版:免費的嵌入式SQLServer數據庫。學習版:提供學習和創(chuàng)建桌面應用程序和小型應用程序并可被獨立軟件廠商重新發(fā)布的免費版本。SQLServer2008的新增功能可信賴:提供了最高級別的可靠性和伸縮性,使得公司可以安全地運行最關鍵任務的應用程序。高效率:減少了開發(fā)和管理應用程序的時間和成本,使得公司可以快速創(chuàng)建和部署數據驅動的解決方案,從而抓住當今風云變幻的商業(yè)機會。智能化:提供了全面的數據平臺,可在用戶需要的時候提供發(fā)送信息。任務3安裝SQLServer2008任務描述安裝SQLServer2008R2標準版。任務實現(xiàn)選擇全新安裝或向現(xiàn)有安裝添加功能安裝安裝程序支持文件輸入產品密鑰;接受許可條款從“功能”列表中選擇所需的功能指定SQLServer實例的名稱和實例ID對每個SQLServer服務設置賬戶名、密碼和啟動類型配置數據庫引擎,選擇身份驗證模式配置AnalysisServices,指定當前用戶對分析服務具有管理權限配置ReportingServices,指定報表服務的配置模式完成安裝過程任務4認識SQLServer2008服務和管理工具任務描述了解SQLServer2008提供的服務器組件和管理工具相關知識SQLServer服務器組件數據庫引擎:用于存儲、處理和保護數據的核心服務。分析服務:用于設計、創(chuàng)建和管理多維數據。報表服務:是基于服務器的報表平臺,為各種數據源提供了完善的報表功能。集成服務:是一組圖形工具和可編程對象,用于移動、復制和轉換數據。SQLServerManagementStudio一個集成環(huán)境,用于訪問、配置、管理和開發(fā)SQLServer的組件。SQLServer配置管理器管理與SQLServer相關聯(lián)的服務、配置SQLServer使用的網絡協(xié)議以及從SQLServer客戶端計算機管理網絡連接配置。SQLServerProfilerSQLServerProfiler是用于從服務器捕獲SQLServer事件的工具。任務5管理SQLServer服務器管理服務器注冊SQLServer數據庫引擎服務器對于已注冊的服務器,可執(zhí)行以下操作?;诜掌鲃?chuàng)建查詢將對象資源管理器連接到服務器編輯服務器的注冊信息將已注冊的服務器信息導出到文件更改服務器的狀態(tài)刪除服務器的注冊信息管理服務器組創(chuàng)建服務器組對已注冊的服務器組可執(zhí)行以下操作。編輯服務器組的屬性在服務器組中注冊新服務器將注冊服務器移動到服務器組向服務器組中導入注冊服務器刪除服務器組1項目1初識SQLServer20082項目2創(chuàng)建和管理數據庫3項目3創(chuàng)建和管理表4項目4操作數據庫數據5項目5檢索數據庫數據6項目6創(chuàng)建索引和視圖7項目7Transact-SQL程序設計8項目8創(chuàng)建存儲過程和觸發(fā)器9項目9管理數據安全CONTENTS目錄項目2

創(chuàng)建和管理數據庫CONTENTS

目錄任務1初識SQLServer數據庫任務2了解SQLServer系統(tǒng)數據庫任務3認識數據庫狀態(tài)和文件狀態(tài)任務4創(chuàng)建數據庫任務5設置數據庫為脫機狀態(tài)任務6擴展數據庫任務7收縮數據庫任務8擴展事務日志任務9創(chuàng)建文件組任務10分離和附加數據庫任務11重命名數據庫項目12更改數據庫所有者任務13刪除數據庫任務14備份數據庫任務15還原數據庫任務1認識SQLServer數據庫數據庫基本概念SQLServer數據庫由一個表集合組成。這些表包含數據以及為支持對數據執(zhí)行的活動而定義的其他對象。表中包含行(也稱為記錄或元組)和列(也稱為字段或屬性)的集合。表上有幾種類型的控制,例如約束、觸發(fā)器、默認值和自定義用戶數據類型,用于保證數據的有效性。文件與文件組每個SQLServer數據庫至少具有兩個文件:一個數據文件和一個日志文件。數據文件包含數據和對象,例如表、索引、存儲過程和視圖。日志文件包含恢復數據庫中的所有事務所需的信息。數據庫文件分為主要數據庫文件、次要數據庫文件和事務日志文件。每個數據庫有一個主要文件組。此文件組包含主要數據文件和未放入其他文件組的所有次要文件,所有系統(tǒng)表也都被分配到主要文件組中。也可以創(chuàng)建用戶定義的文件組,用于將數據文件集合起來,以便于管理、數據分配和放置。事務日志每個SQLServer2008數據庫都具有事務日志,用于記錄所有事務以及每個事務對數據庫所做的修改。事務日志是數據庫的重要組件,如果系統(tǒng)出現(xiàn)故障,則可能需要使用事務日志將數據庫恢復到一致狀態(tài)。刪除或移動事務日志以前,必須完全了解此操作帶來的后果。任務2了解SQLServer系統(tǒng)數據庫master數據庫用于記錄SQLServer系統(tǒng)的所有系統(tǒng)級信息,包括實例范圍的元數據(例如登錄賬戶)、端點、鏈接服務器和系統(tǒng)配置設置。master數據庫還記錄了所有其他數據庫的存在、數據庫文件的位置以及SQLServer的初始化信息。model數據庫用作在SQLServer服務器實例上創(chuàng)建的所有數據庫的模板。model數據庫必須始終存在于SQLServer系統(tǒng)中。當創(chuàng)建數據庫時,將通過復制model數據庫中的內容來創(chuàng)建數據庫的第一部分,然后用空頁填充新數據庫的剩余部分。如果修改model數據庫,則以后創(chuàng)建的所有數據庫都將繼承這些修改。msdb數據庫由SQLServer代理用于計劃警報和作業(yè),或由其他功能(如ServiceBroker和數據庫郵件)使用。Resource數據庫它是只讀數據庫,包含SQLServer中的所有系統(tǒng)對象。SQLServer系統(tǒng)對象(如sys.objects)在物理上保留在Resource數據庫中,但在邏輯上卻顯示在每個數據庫的sys架構中。Resource數據庫不包含用戶數據或用戶元數據。tempdb數據庫tempdb系統(tǒng)數據庫是一個全局資源,可供連接到SQLServer實例的所有用戶使用,可用于保存各種臨時對象。任務3認識數據庫狀態(tài)和文件狀態(tài)數據庫狀態(tài)數據庫總是處于一個特定的狀態(tài)中等。若要確認數據庫的當前狀態(tài),可選擇sys.databases目錄視圖中的state_desc列或DATABASEPROPERTYEX函數中的Status屬性。ONLINE:在線狀態(tài)或聯(lián)機狀態(tài);OFFLINE:離線狀態(tài)或脫機狀態(tài);RESTORING:恢復狀態(tài);RECOVERING:還原狀態(tài);RECOVERYPENDING:恢復未完成狀態(tài);SUSPECT:可疑狀態(tài);EMERGENCY:緊急狀態(tài)文件狀態(tài)ONLINE:在線狀態(tài);OFFLINE:離線狀態(tài);RESTORING:還原狀態(tài);RECOVERYPENDING:恢復未完成狀態(tài);SUSPECT:可疑狀態(tài)任務4創(chuàng)建數據庫使用SQLServerManagementStudio創(chuàng)建數據庫在對象資源管理器中,連接并展開SQLServer數據庫引擎實例右鍵單擊“數據庫”,選擇“新建數據庫”命令指定數據庫的名稱接受所有默認值來創(chuàng)建數據庫,或對默認值進行修改并創(chuàng)建數據庫使用CREATEDATABASE語句按默認設置創(chuàng)建數據庫CREATEDATABASEDB02;使用CREATEDATABASE語句按指定要求創(chuàng)建數據庫CREATEDATABASEgoodsONPRIMARY(NAME=goods_data,FILENAME='d:\mssql\goods.mdf',SIZE=3MB,MAXSIZE=50MB,FILEGROWTH=1MB)LOGON(

NAME=goods_log,FILENAME='d:\mssql\goods.ldf',

SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=5%);相關知識CREATEDATABASE語句CREATEDATABASEdatabase_name

[ON

[PRIMARY][<filespec>[,...n]

[,<filegroup>[,...n]]

[LOGON{<filespec>[,...n]}]]

[COLLATEcollation_name]][;]Transact-SQL語法約定任務5

設置數據庫為脫機狀態(tài)任務實現(xiàn)USEmaster;GOALTERDATABASEDB01SETOFFLINE;GO數據庫選項自動選項:控制某些自動行為。如AUTO_CLOSE選項游標選項:控制游標的行為和范圍。如CURSOR_CLOSE_ON_COMMIT、CURSOR_DEFAULT選項數據庫可用性選項:控制數據庫是聯(lián)機還是脫機等外部訪問選項:控制是否允許外部資源(如另一個數據庫中的對象)訪問數據庫。如DB_CHAINING選項參數化選項PARAMETERIZATION:控制參數化選項?;謴瓦x項:控制數據庫的恢復模式。如RECOVERY選項快照隔離選項,確定事務隔離級別。SQL選項,用于控制ANSI相容性選項。任務5

擴展數據庫任務實現(xiàn)ALTERDATABASEDB02MODIFYFILE(NAME=DB02,SIZE=5MB);GOALTERDATABASEDB02ADDFILE(NAME=DBData,FILENAME='d:\mssql\MyDBData.ldf',SIZE=3MB,MAXSIZE=10MB,FILEGROWTH=10%);GOALTERDATABASE語句用于修改與數據庫關聯(lián)的文件和文件組,可以在數據庫中添加或刪除文件和文件組、更改數據庫或其文件和文件組的屬性任務6收縮數據庫(1)使用SQLServerManagementStudio收縮數據文件在對象資源管理器中連接到SQLServer數據庫引擎實例。右鍵單擊要收縮的數據庫,選擇“任務”→“收縮”→“文件”命令。從“文件類型”列表中選擇“數據”,從“文件名”列表中選擇數據文件。根據需要,選中“在釋放未使用的空間前重新組織頁”選項。在“將文件收縮到”框中輸入數字。單擊“確定”按鈕。從數據庫中刪除數據文件在ALTERDATABASE語句中使用REMOVEFILE子句從數據庫中刪除數據文件。任務6收縮數據庫(2)相關知識自動收縮數據庫ALTERDATABASEdatabase_nameSETAUTO_SHRINKON;使用DBCCSHRINKDATABASE收縮數據庫DBCCSHRINKDATABASE(database_name|database_id|0,target_percent)使用DBCCSHRINKFILE收縮數據庫DBCCSHRINKFILE({file_name|file_id},target_size)任務7擴展事務日志任務實現(xiàn)CREATEDATABASElibrary;GOALTERDATABASElibraryADDLOGFILE(NAME='library_log2',FILENAME='d:\mssql\library_log2.ldf',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=10%);GOALTERDATABASElibraryMODIFYFILE(NAME='library_log',SIZE=10MB);相關知識當一個數據庫增長或數據庫修改活動增加時,可能需要對事務日志進行擴展。如果事務日志使用完了空間,SQLServer便不能記錄事務,也不允許對數據進行修改。任務8創(chuàng)建文件組任務實現(xiàn)ALTERDATABASElibrary

ADDFILEGROUPlibrary_fg

GO

ALTERDATABASElibrary

ADDFILE

(NAME=library_data2,FILENAME='d:\mssql\library_data3.ndf',SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=1MB),

(NAME=library_data3,FILENAME='d:\mssql\library_data4.ndf',SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=1MB)

TOFILEGROUPlibrary_fg

GO

ALTERDATABASElibrary

MODIFYFILEGROUPlibrary_fgDEFAULT

GO相關知識文件組是在數據庫中對文件進行分組的一種管理機制。文件組不能獨立于數據庫文件創(chuàng)建。首次創(chuàng)建數據庫或者以后將更多文件添加到數據庫時,都可以創(chuàng)建文件組。一旦將文件添加到數據庫中,就不可能再將這些文件移到其他文件組。一個文件不能是多個文件組的成員。文件組只能包含數據文件。事務日志文件不能是文件組的一部分。任務9分離和附加數據庫任務實現(xiàn)CREATEDATABASETest

ONPRIMARY(NAME=Test,FILENAME='d:\mssql\test.mdf')

LOGON(NAME=Test_Log,FILENAME='d:\mssql\test.ldf')

GO

EXECsp_detach_dbTest;

GO

CREATEDATABASETest

ON(FILENAME='d:\mssql\test.mdf')FORATTACH;GO相關知識分離數據庫

是指將數據庫從SQLServer實例中刪除,但使數據庫在其數據文件和事務日志文件中保持不變。此后可以使用這些文件將數據庫附加到任何SQLServer實例,包括分離該數據庫的服務器。分離數據庫既可以使用SQLServerManagementStudio工具來實現(xiàn),也可以通過執(zhí)行sp_detach_db系統(tǒng)存儲過程來實現(xiàn)。附加數據庫

若要將分離后的數據庫重新附加到SQLServer實例中,可以使用SQLServerManagementStudio來實現(xiàn),也可以通過在CREATEDATABASE語句中使用FORATTACH子句來實現(xiàn)。任務10重命名數據庫任務實現(xiàn)ALTERDATABASEDB01

SETSINGLE_USER;

GO

ALTERDATABASEDB01

MODIFYNAME=Demo;

GO

ALTERDATABASEDemo

SETMULTI_USER;

GO相關知識使用SQLServerManagementStudio重命名數據庫:在對象資源管理器中右鍵單擊數據庫并選擇“重命名”命令,然后輸入新的數據庫名稱。在ALTERDATABASE語句中使用MODIFYNAME=new_database_name子句來實現(xiàn)數據庫的重命名。任務11更改數據庫所有者任務實現(xiàn)ALTERAUTHORIZATIONONDATABASE::libraryTO[ABC\Jack];GO相關知識在SQLServer中,可以更改當前數據庫的所有者。任何擁有連接到SQLServer的訪問權限的用戶(SQLServer登錄賬戶或Windows用戶)均可以成為數據庫的所有者。無法更改系統(tǒng)數據庫的所有權。更改數據庫的所有者使用SQLServerManagementStudio工具來實現(xiàn)用ALTERAUTHORIZATION語句來更改數據庫的所有者.任務12刪除數據庫任務實現(xiàn)DROPDATABASEDB02,Demo相關知識刪除數據庫在SQLServerManagementStudio對象資源管理器中右鍵單擊該數據庫,選擇“刪除”命令,當出現(xiàn)“刪除對象”對話框時單擊“確定”按鈕。使用DROPDATABASE來刪除數據庫,語法格式如下:DROPDATABASEdatabase_name[,...n]示例DROPDATABASESales,NewSales;任務13備份數據庫任務實現(xiàn)EXECsp_addumpdevice'disk','AdvWorksData',

'd:\mssql\backup\AdvWorksData.bak';

BACKUPDATABASEAdventureWorksTOAdvWorksData;

GO相關知識備份是數據的副本,可用于在系統(tǒng)發(fā)生故障后還原和恢復數據。使用備份可以在發(fā)生故障后還原數據。通過適當的備份可以從多種故障中恢復,包括媒體故障、用戶錯誤(例如誤刪除了某個表)、硬件故障(例如磁盤驅動器損壞或服務器報廢)以及自然災難等。此外,數據庫備份對于例行的工作也很有用,例如,將數據庫從一臺服務器復制到另一臺服務器、設置數據庫鏡像、政府機構文件歸檔和災難恢復。使用SQLServerManagementStudio備份數據庫使用BACKUPDATABASE語句備份數據庫任務14還原數據庫任務實現(xiàn)RESTOREDATABASEAdventureWorksFROMAdvWorksData;相關知識使用SQLServerManagementStudio還原數據庫使用RESTORE語句還原數據庫1項目1初識SQLServer20082項目2創(chuàng)建和管理數據庫3項目3創(chuàng)建和管理表4項目4操作數據庫數據5項目5檢索數據庫數據6項目6創(chuàng)建索引和視圖7項目7Transact-SQL程序設計8項目8創(chuàng)建存儲過程和觸發(fā)器9項目9管理數據安全CONTENTS目錄項目3創(chuàng)建和管理表CONTENTS

目錄任務1表的設計任務2認識SQLServer數據類型任務3創(chuàng)建表任務4在表中添加列任務5修改列的屬性任務6在表中創(chuàng)建標識列任務7在表中創(chuàng)建主鍵任務8在表中創(chuàng)建唯一約束任務9在表中創(chuàng)建檢查約束任務10在表中創(chuàng)建列的默認值任務11在表中創(chuàng)建外鍵項目12創(chuàng)建數據庫關系圖任務13查看表的定義和數據任務14重命名表任務15從數據庫中刪除表任務1表的設計任務實現(xiàn)對相關部門進行調查,在此基礎上進行需求分析,確定數據庫中包含的表確定每個表中包含的哪些列、每個列是何種數據類型以及在哪個列建立主鍵使用OfficeVisio軟件繪制出數據庫模型圖相關知識制訂表規(guī)劃表要存儲什么對象;表中每一列的數據類型和長度表中哪些列允許空值;是否要使用以及在何處使用約束、默認值和規(guī)則使用何種索引以及在何處使用索引;哪些列是主鍵或外鍵規(guī)范化邏輯設計表應該有一個標識符;表應只存儲單一類型實體的數據表應避免可為空的列;表不應有重復的值或列任務2認識SQLServer數據類型(1)任務實現(xiàn)使用SQLServerManagementStudio創(chuàng)建用戶定義數據類型使用CREATETYPE語句創(chuàng)建用戶定義數據類型相關知識數據類型概述:數據類型是一種屬性,用于指定對象可保存的數據的類型:整數數據、字符數據、貨幣數據、日期和時間數據以及二進制字符串等。在SQLServer中,每個列、局部變量、表達式和參數都具有一個相關的數據類型。數字數據類型:bigint、int、smallint、tinyint和bit。小數類型:近似數字類型float(n)和real、精確數字類型decimal(p,s)和numeric(p,s)以及貨幣數字類型money和smallmoney。任務2認識SQLServer數據類型(2)字符串數據類型普通字符串:包括固定長度字符串類型char(n)、可變長度字符串類型varchar(n)和文本類型text。Unicode字符串:包括固定長度字符串類型nchar(n)、可變長度字符串類型nvarchar(n)和文本類型ntext。二進制數據類型:包括固定長度二進制數據類型binary(n)、可變長度二進制數據類型varbinary(n)和大量二進制數據類型image。日期和時間數據類型:date、datetime、datetime2、datetimeoffset、smalldatetime以及time。其他數據類型:cursor、hierarchyid、sql_variant、table、timestamp、uniqueidetifier以及xml別名數據類型:使用SQLServerManagementStudio工具來創(chuàng)建和刪除別名數據類型,或者使用CREATETYPE和DROPTYPE語句來創(chuàng)建和刪除別名數據類型。任務3創(chuàng)建表任務實現(xiàn)USE學生成績;

GO

CREATETABLE系別(

系別編號dep_numIDENTITY(1,1),系別名稱varchar(50)NOTNULL

);

CREATETABLE班級(

班級編號class_num,系別編號dep_num,專業(yè)名稱varchar(50)NOTNULL

);相關知識使用表設計器創(chuàng)建表使用CREATETABLE語句創(chuàng)建表任務4在表中添加列任務實現(xiàn)USE學生成績;

GO

CREATETABLE課程(

課程編號intNOTNULL,課程名稱varchar(20)NOTNULL

);

GO

ALTERTABLE課程

ADD課程類別char(8)NOTNULL,考試類別char(4)NOTNULL;

GO相關知識使用表設計器添加或刪除表列使用ALTERTABLE語句中添加或刪除表列任務5修改列的屬性任務實現(xiàn)CREATETYPEcourse_num

FROMsmallintNOTNULL;

GO

ALTERTABLE課程

ALTERCOLUMN課程編號course_num;

GO

ALTERTABLE課程

ALTERCOLUMN課程名稱varchar(50)NOTNULL;

GO相關知識表中的每一列都具有一組屬性,例如名稱、數據類型、為空性以及數據長度等。列的所有屬性構成表中列的定義。創(chuàng)建表時,可以對各列的屬性進行設置。創(chuàng)建表之后,還可以根據需要對列的屬性進行修改。若要設置列屬性,可使用表設計器或ALTERTABLE語句來實現(xiàn)。任務6在表中創(chuàng)建標識列任務實現(xiàn)ALTERTABLE課程

DROPCOLUMN課程編號;

GO

ALTERTABLE課程

ADD課程編號course_numIDENTITY(1,1);

GO相關知識通過使用IDENTITY屬性可以實現(xiàn)標識列,這使得開發(fā)人員可以為表中所插入的第一行指定一個標識號(稱為種子),并確定要添加到種子上的增量以確定后面的標識號。一個表只能有一個使用IDENTITY屬性定義的列,并且必須通過使用decimal、int、numeric、smallint、bigint或tinyint數據類型來定義該列。種子和增量的默認值均為1。任務7在表中創(chuàng)建主鍵任務實現(xiàn)CREATETABLE教師(

教師編號smallintNOTNULL

IDENTITY(1,1)PRIMARYKEYCLUSTERED,

...

);

GO

ALTERTABLE系別

ADDCONSTRAINTPK_系別PRIMARYKEYCLUSTERED(系別編號);

GO相關知識表通常具有包含唯一標識表中每一行的值的一列或一組列,這樣的一列或多列稱為表的主鍵(PRIMARYKEY,PK),主鍵用于強制表的實體完整性。在創(chuàng)建或修改表時,可以通過定義PRIMARYKEY約束來創(chuàng)建主鍵。一個表只能有一個PRIMARYKEY約束,并且PRIMARYKEY約束中的列不能接受空值。由于PRIMARYKEY約束可保證數據的唯一性,因此通常對標識列定義這種約束。任務8在表中創(chuàng)建唯一約束任務實現(xiàn)ALTERTABLE課程

ADDCONSTRAINTPK_課程PRIMARYKEYCLUSTERED(課程編號);

GO

ALTERTABLE課程

ADDCONSTRAINTUK_課程UNIQUENONCLUSTERED(課程名稱);

GO相關知識唯一約束即UNIQUE約束。通過創(chuàng)建唯一約束可以確保在非主鍵列中不輸入重復的值。UNIQUE約束和PRIMARYKEY約束都強制唯一性,但要想強制一列或多列組合(不是主鍵)的唯一性時就應該使用UNIQUE約束。對一個表可以定義多個UNIQUE約束,但只能定義一個PRIMARYKEY約束。UNIQUE約束允許NULL值,這一點不同于PRIMARYKEY約束。當與參與UNIQUE約束的任何值一起使用時,每列只允許一個空值。FOREIGNKEY約束可以引用UNIQUE約束。任務9在表中創(chuàng)建檢查約束任務實現(xiàn)CREATETABLE學生(

學號stu_numPRIMARYKEYCHECK(學號LIKE'[0-9][0-9][0-9][0-9][0-9][0-9]'),

班級編號class_num,姓名name,

性別char(2)NOTNULLCHECK(性別='男'OR性別='女'),

出生日期dateNOTNULL,入學日期dateNOTNULL,

政治面貌char(8)CHECK(政治面貌='中共黨員'OR政治面貌='共青團員'),

...);GO相關知識檢查約束即CHECK約束。檢查約束通過限制列可接受的值以強制域的完整性。CHECK約束通過不基于其他列中的數據的邏輯表達式來確定有效值??梢酝ㄟ^任何基于邏輯運算符返回TRUE或FALSE的邏輯(布爾)表達式來創(chuàng)建CHECK約束。任務10在表中創(chuàng)建列的默認值任務實現(xiàn)ALTERTABLE教師ADDCONSTRAINTdf_教師DEFAULT('大學')FOR學歷;GO相關知識在數據庫中,記錄中的每列均必須有值,即使該值是NULL。在實際應用中可能會有這種情況:必須向表中加載一行數據但不知道某一列的值,或該值尚不存在。如果列允許空值,就可以為行加載空值。由于可能不希望有可為空的列,因此最好是為列定義DEFAULT定義(如果合適)。當將某行加載到某列具有DEFAULT定義的表中時,即隱式指示SQLServer2008數據庫引擎將默認值插入到沒有指定值的列中。如果列不允許空值且沒有DEFAULT定義,就必須為該列顯式指定值,否則數據庫引擎會返回錯誤,指出該列不允許空值。任務11在表中創(chuàng)建外鍵任務實現(xiàn)CREATETABLE成績(

學號stu_numFOREIGNKEYREFERENCES學生(學號),

課程編號course_numFOREIGNKEYREFERENCES課程(課程編號),

成績tinyintNULLCHECK(成績>=0AND成績<=100),CONSTRAINTPK_成績PRIMARYKEY(學號,課程編號));相關知識外鍵(FOREIGNKEY,F(xiàn)K)是用于建立和加強兩個表數據之間的鏈接的一列或多列。在外鍵引用中,當A表的列引用作為B表的主鍵值的列時,便在兩表之間創(chuàng)建了鏈接,該列就成為A表的外鍵。使用表設計器創(chuàng)建外鍵約束使用CREATETABLE語句創(chuàng)建外鍵約束任務12創(chuàng)建數據庫關系圖任務實現(xiàn)展開數據庫,右鍵單擊“數據庫關系圖”,選擇“新建數據庫關系圖”;在“添加表”對話框中選擇并添加表;將主鍵表的主鍵拖到外鍵表的外鍵上。相關任務數據庫關系圖是數據庫中對象的圖形表示形式。數據庫關系圖既可以是整個數據庫結構的圖片,也可以是部分數據庫結構的圖片,包括表、表中的列以及各個表之間的關系。使用數據庫關系圖可以創(chuàng)建和修改表、列、關系和鍵,也可以修改索引和約束。任務13查看表的定義和數據任務實現(xiàn)USE學生成績;GOEXECsp_help學生;GOSELECT*FROM學生;GO相關知識在數據庫中創(chuàng)建表之后,可能需要查找有關表屬性的信息,例如列的名稱、數據類型或其約束的名稱等,最為常見的任務是查看表中的數據。此外,還可以通過顯示表的依賴關系來確定哪些對象(例如視圖、存儲過程和觸發(fā)器)是由表決定的。在更改表時,相關的對象可能會受到影響。在對象資源管理器中展開一個表下方的“列”、“鍵”、“約束”結點,就可以查看該表的相關信息。也可以使用系統(tǒng)存儲過程、目錄視圖或查詢語句來查看表的相關信息。任務14重命名表任務實現(xiàn)USEAdventureWorks2008R2;GOEXECsp_rename'Sales.SalesTerritory','SalesTerr';GO相關知識若要更改表的名稱,可在對象資源管理器中右鍵單擊該表,然后選擇“重命名”,輸入新的名稱。也可以使用sp_rename系統(tǒng)存儲過程在當前數據庫中更改用戶創(chuàng)建對象的名稱,此對象可以是表、索引、列、別名數據類型。任務15從數據庫中刪除表任務實現(xiàn)USETest;GOCREATETABLETest(colaintPRIMARYKEY,colbchar(10)NOTNULL);GODROPTABLETest相關知識刪除表時,該表的結構定義、數據、全文索引、約束和索引都從數據庫中永久刪除??墒褂脤ο筚Y源管理器來從數據庫中刪除表,操作方法是:展開數據庫下方的“表”結點,右鍵單擊要刪除的表,然后選擇“刪除”命令,單擊“確定”按鈕。也可以使用DROPTABLE語句從數據庫中刪除表。1項目1初識SQLServer20082項目2創(chuàng)建和管理數據庫3項目3創(chuàng)建和管理表4項目4操作數據庫數據5項目5檢索數據庫數據6項目6創(chuàng)建索引和視圖7項目7Transact-SQL程序設計8項目8創(chuàng)建存儲過程和觸發(fā)器9項目9管理數據安全CONTENTS目錄項目4

操作數據庫數據CONTENTS

目錄任務1使用結果窗格插入表數據任務2使用INSERT語句插入數據任務3使用BULKINSERT語句復制數據任務4使用INSERT...SELECT語句插入表數據任務5使用結果窗格編輯表數據任務6使用UPDATE語句更新數據任務7在UPDATE語句中使用FROM子句任務8使用TOP子句限制更新的數據任務9使用結果窗格刪除數據任務10使用DELETE語句刪除數據任務11使用TOP子句限制刪除的行

項目12使用TRUNCATETABLE語句刪除所有行任務13向SQLServer數據庫中導入數據任務14從SQLServer數據庫中導出數據任務1使用結果窗格插入表數據任務實現(xiàn)展開數據庫,展開數據庫下方的“表”右鍵單擊表,選擇“編輯前200行”在“結果”窗格中,定位到添加新數據行的空白行,輸入各列的值,按Tab鍵移到下一個單元格離開當前行會將其提交到數據庫相關知識添加數據的方法使用查詢編輯器的“結果”窗格向該表中添加數據使用INSERT語句向該表中添加數據使用BULKINSERT語句以用戶指定的格式添加數據使用INSERT和SELECT將來自其他表的數據添加到該表中?!敖Y果”窗格是查詢設計器的一個組成部分,用于顯示最近執(zhí)行的SELECT查詢的結果。如果看不到“結果”窗格,可選擇“查詢設計器”→“窗格”→“結果”命令。任務2使用INSERT語句插入表數據任務實現(xiàn)USE學生成績;INSERTINTO課程(課程名稱,課程類別,考試類別)VALUES('計算機應用基礎','公共基礎','考試'),('辦公軟件','公共基礎','考查'),...GOINSERTINTO教師(系別編號,姓名,性別,出生日期,參加工作時間,學歷,職稱,政治面貌)VALUES(1,'何曉明','女','1975-8-18','1999-7-12','大學','講師','中共黨員'),...相關知識使用INSERT語句可以將一個或多個新行添加到表中。如果列滿足以下條件,則自動為列提供值:若具有IDENTITY屬性,則使用下一個增量標識值;若指定有默認值,則使用列的默認值;若具有timestamp數據類型,則使用當前時間戳值;若可為空值,則使用空值任務3使用BULKINSERT語句復制數據任務實現(xiàn)在記事本程序中錄入學生信息并保存為文本文件,要求每行結束時按Enter鍵,各列之間用逗號分隔,所有列值都不需要使用定界符,但這些值必須與相應列的數據類型兼容。在查詢編輯窗口中編寫以下語句:BULKINSERT學生成績.dbo.學生FROM'd:\mssql\第4章\學生信息.txt'WITH(FIELDTERMINATOR=',',ROWTERMINATOR='\n);GO相關知識使用BULKINSERT語句可以按用戶指定的格式將數據文件加載到數據庫表中database_name為包含指定表的數據庫的名稱schema_name指定表的名稱data_file指定數據文件的完整路徑FIELDTERMINATOR指定數據文件的字段終止符任務4使用INSERT...SELECT語句插入表數據任務實現(xiàn)USE學生成績;INSERTINTO成績(學號,課程編號)SELECT學生.學號,授課.課程編號FROM學生,授課WHERE(學生.學號NOTIN(SELECT學號FROM成績)AND授課.班級編號=學生.班級編號);GO相關知識在INSERT語句中,可以使用SELECT子查詢將一個或多個表或視圖中的值添加到另一個表中。使用SELECT子查詢可以同時在表中插入多行數據。子查詢的選擇列表必須與INSERT語句的列列表匹配。如果沒有指定列列表,則選擇列表必須與正在其中執(zhí)行插入操作的表或視圖的列匹配。任務5使用結果窗格編輯表數據任務實現(xiàn)展開數據庫,展開表,右鍵單擊包含數據的表,選擇“編輯前200行”在“結果”窗格中,為列填寫新值按向下箭頭鍵把光標移到下一行若要顯示更多的行,可在“SQL”窗格中更改TOP關鍵字后的數字;若要顯示表中的全部行,可刪除TOP關鍵字及其后面的數字相關知識對表中已有的數據進行修改的方法使用“結果”窗格對表中數據進行編輯使用UPDATE語句對表中的一行或多行數據進行修改使用FROM子句對UPDATE語句進行擴展使用TOP子句來限制UPDATE語句中修改的行數任務6使用UPDATE語句更新數據任務實現(xiàn)USE學生成績;UPDATE成績SET成績=86WHERE學號='120101'AND課程編號=1;UPDATE成績SET成績=92WHERE學號='120102'AND課程編號=1;UPDATE成績SET成績=87WHERE學號='120103'AND課程編號=1;...相關知識UPDATE語句用于更改表或視圖中單行、行組或所有行的數據值。database_name指定數據庫的名稱,table_orview_name指定要更新行的表或視圖的名稱。SET子句包含要更新的列和每個列的新值的列表(用逗號分隔)。column_name指定包含要更改的數據的列,column_name必須已經存在于table_orview_name中,不能更新標識列。expression指定返回單個值的變量、文字值、表達式或嵌套SELECT語句,expression返回的值替換column_name中的現(xiàn)有值。任務7在UPDATE語句中使用FROM子句任務實現(xiàn)UPDATE成績SET成績=92FROM學生,課程WHERE學生.姓名='馮岱若'AND課程.課程名稱='網頁設計'AND學生.學號=成績.學號AND課程.課程編號=成績.課程編號;GO相關知識在UPDATE語句中使用了FROM子句,可以將數據從一個或多個表或視圖拉入要更新的表中table_name指定UPDATE要更新的目標表。SET子句指定要更新的列和所使用的數據,expression的值中可以同時包含目標表和FROM子句指定的表中的列。WHERE子句執(zhí)行以下功能:指定要在目標表中更新的行;指定源表中可以為更新提供值的行。任務8使用TOP限制更新的數據任務實現(xiàn)USEAdventureWorks;UPDATETOP(10)Sales.StoreSETSalesPersonID=276WHERESalesPersonID=275;GO相關知識在UPDATE語句中,可以使用TOP子句來限制修改的行數使用TOP(n)子句時,將基于隨機選擇n行來執(zhí)行更新操作任務9使用結果窗格刪除表數據相關知識刪除數據的方法:在“結果”窗框中刪除數據使用DELETE語句從表中刪除滿足指定條件的若干行數據使用TOP語句限制刪除的行數使用TRUNCATETABLE語句從表中快速刪除所有行。在“結果”窗格中刪除數據的操作步驟右鍵單擊數據表,選擇“編輯前200行”。單擊待刪除行左側的選擇框。若要選擇多行,可按住Ctrl鍵或Shift鍵單擊各行的選擇框,或在這些行的選擇框上拖動鼠標;若要選擇全部行,可單擊列標題行中的選擇框。按Delete鍵。在確認消息框中單擊“是”。任務10使用DELETE語句刪除數據任務實現(xiàn)USE學生成績;DELETEFROM成績

FROM學生

WHERE學生.姓名='劉春明'AND學生.學號=成績.學號;相關知識DELETE語句用于刪除表或視圖中的一行或多行從一個表中刪除所有行后,該表仍會保留在數據庫中。DELETE語句只從表中刪除行,若要從數據庫中刪除表,可使用DROPTABLE語句。任務11使用TOP限制刪除的行任務實現(xiàn)USEAdventureWorks;GODELETETOP(20)FROMPurchasing.PurchaseOrderDetailWHEREDueDate<'20020701';GOUSEAdventureWorks2008R2;GODELETETOP(2.5)PERCENTFROMProduction.ProductInventory;相關知識在DELETE語句中,可以使用TOP(expression)[PERCENT]子句來指定將要刪除的任意行數或任意行的百分比,其中expression可以為行數或行的百分比。與INSERT、UPDATE或DELETE一起使用的TOP表達式中被引用行將不按任何順序排列。任務12使用TRUNCATETABLE刪除所有行任務實現(xiàn)USEAdventureWorks;GOTRUNCATETABLEHumanResources.JobCandidate;GO相關知識使用TRUNCATETABLE語句可以從表中刪除所有行,而不記錄單個行刪除操作。該語句在功能上與沒有WHERE子句的DELETE語句相同;TRUNCATETABLE速度更快,使用的系統(tǒng)資源和事務日志資源更少。任務13向SQLServer數據庫中導入數據任務實現(xiàn)右鍵單擊接受數據的目標數據庫,選擇“任務”→“導入數據”啟動SQLServer導入和導出向導,選擇數據源,如選擇Access數據庫文件選擇目標,指定要將數據復制到何處;選擇源表和源視圖保存并運行包相關知識導入數據是指將外部數據源中的數據復制到SQLServer數據庫中。導入數據過程可在向導的提示下完成,包括選擇提供數據的數據源和接受數據的SQLServer目標數據庫、指定表復制或查詢選項、選擇源表和源視圖以及設置是否保存SSIS包等。任務14從SQLServer數據庫中導出數據任務實現(xiàn)右鍵單擊要導出數據的數據庫,選擇“任務”→“導出數據”命令啟動SQLServer導入和導出向導,指定要從中復制數據的SQLServer數據庫。選擇目標,例如選擇Accesss數據庫文件選擇源表和源視圖,保存并執(zhí)行包相關知識導出數據是指將存儲在SQLServer數據庫中的數據復制到其他數據庫、電子表格或文本文件中。導出數據的整個操作過程可以在向導提示下完成,主要步驟包括選擇提供數據的數據源和接受數據的目標數據庫或文件、指定表復制或查詢選項、選擇源表和源視圖以及設置是否保存SSIS包等。1項目1初識SQLServer20082項目2創(chuàng)建和管理數據庫3項目3創(chuàng)建和管理表4項目4操作數據庫數據5項目5檢索數據庫數據6項目6創(chuàng)建索引和視圖7項目7Transact-SQL程序設計8項目8創(chuàng)建存儲過程和觸發(fā)器9項目9管理數據安全CONTENTS目錄項目5

檢索數據庫數據CONTENTS

目錄(一)任務1認識SELECT語句任務2從表中選擇所有列任務3從表中選擇特定列任務4從表中選擇特殊列任務5設置結果集列的名稱任務6在選擇列表中進行計算任務7使用DISTINCT消除重復項任務8使用TOP限制結果集任務9使用沒有FROM子句的SELECT語句任務10在FROM子句中使用內部聯(lián)接任務11在FROM子句中使用外部數據項目12在選擇表查詢中使用交叉聯(lián)接任務13在選擇查詢中使用比較搜索條件任務14使用范圍搜索條件任務15在選擇查詢中使用列表搜索條件任務16在搜索條件中使用模式匹配CONTENTS

目錄(二)任務17在選擇查詢中使用邏輯運算符任務18使用ORDERBY對數據排序任務19將TOP...WITHTIES與ORDERBY聯(lián)用任務20使用GROUPBY對數據分組任務21在分組操作中應用搜索條件任務22使用聚合函數匯總數據任務23使用公用表表達式檢索數據任務24使用PIVOT運算符生成交叉表查詢任務25將查詢結果保存到表中任務26使用子查詢進行集成員測試任務27使用子查詢進行比較測試項目28使用子查詢進行存在性測試任務29使用子查詢替代表達式任務1認識SELECT語句任務實現(xiàn)在命令提示符下輸入sqlcmd,然后輸入要執(zhí)行的SQL語句:USE學生成績;GOSELECT學號,姓名,性別,出生日期FROM學生WHERE性別='女'ORDERBY出生日期;GO輸入QUIT命令,退出sqlcmd實用工具。相關知識SELECT語句的組成SELECT語句用于從數據庫中檢索行,并允許從一個或多個表中選擇一個或多個行或列。查詢工具介紹查詢編輯器sqlcmd實用工具bcp實用工具任務2從表中選擇所有列任務實現(xiàn)USE學生成績;GOSELECT*FROM系別;GO相關知識SELECT子句是SELECT語句的第一部分。該子句用于指定查詢返回的選擇列表,用于定義SELECT語句的結果集中的列。選擇列表是一系列以逗號分隔的表達式,每個表達式定義結果集中的一列。結果集中列的排列順序與選擇列表中表達式的排列順序相同。在SELECT子句中使用星號(*)可選擇表或視圖中的所有列。如果沒有使用限定符指定,則星號將被解析為對FROM子句中指定的所有表或視圖中的所有列的引用。如果使用表或視圖名稱進行限定,則星號將被解析為對指定表或視圖中的所有列的引用。任務3從表中選擇特定列任務實現(xiàn)USE學生成績;GOSELECT班級編號,學號,姓名,性別,出生日期,政治面貌FROM學生;GO相關知識若要選擇表中的特定列作為SELECT查詢的輸出列,則應當在選擇列表中明確地列出每一列,各列之間用逗號分隔。如果創(chuàng)建表時在表名或列名中使用了空格(不符合標識符命名規(guī)則),則編寫SELECT語句時需要使用方括號將表名或列名括起來,否則會出現(xiàn)錯誤信息。如果在FROM子句中指定了多個表,而這些表中又有同名的列,則在使用這些列時需要在列名前面冠以表名,以指明該列屬于哪個表。任務4從表中選擇特殊列任務實現(xiàn)USE學生成績;GOSELECT系別編號,$IDENTITY,姓名,性別,參加工作時間FROM教師;GO相關知識對于表中的標識符列,可使用$IDENTITY關鍵字來引用。對于具有ROWGUIDCOL屬性的列,可使用$ROWGUID關鍵字來引用。如果在SELECT語句選取多個表作為查詢的數據來源,則必須在$IDENTITY和$ROWGUID關鍵字前面冠以表名,以指示這些列屬于哪個表。例如,Table1.$IDENTITY和Table1.$ROWGUID。任務5設置結果集列的名稱任務實現(xiàn)USEAdventureWorks;GOSELECTEmployeeIDAS雇員編號,TitleAS頭銜,BirthDateAS出生日期,HireDateAS雇用日期FROMHumanResources.Employee;GO相關知識使用AS子句來更改結果集列的名稱或為派生列分配名稱:column_nameAScolumn_aliasresult_column_expressionASderived_column_namecolumn_alias=column_namederived_column_name=result_column_expression任務6在選擇列表中進行計算任務實現(xiàn)USE學生成績;GOSELECT班級編號,學號,姓名,DATEDIFF(yy,出生日期,GETDATE())AS年齡FROM學生;GO相關知識在SELECT語句的選擇列表中,可以包含通過對一個或多個簡單表達式應用運算符而生成的表達式。這樣可使結果集中包含基表中不存在、但是根據基表中存儲的值計算得到的值,這些結果集列被稱為派生列。在派生列中,可以對數值列或常量使用算術運算符或函數進行的計算和運算,也可以進行數據類型轉換,還可以使用子查詢。所謂子查詢,就是一個嵌套在SELECT、INSERT、UPDATE或DELETE語句或其他子查詢中的查詢。任務7使用DISTINCT消除重復項任務實現(xiàn)USE學生成績;GOSELECTDISTINCT課程編號FROM成績;GO相關知識使用DISTINCT關鍵字可以從SELECT語句的結果集中消除重復的行。對于DISTINCT關鍵字來說,空值將被認為是相互重復的內容。如果沒有指定DISTINCT,將返回包括重復行在內的所有行。當SELECT語句中包括DISTINCT時,不論遇到多少個空值,結果中只返回一個NULL。任務8使用TOP限制結果集任務實現(xiàn)USE學生成績;GOSELECTTOP(10)學號,姓名,性別,出生日期FROM學生;GO相關知識在SELECT語句中,可以使用TOP子句限制結果集中返回的行數。語法格式如下:TOP(expression)[PERCENT][WITHTIES]其中expression是一個數值表達式,用于指定返回的行數。如果指定了PERCENT,則是指返回的結果集行的百分比(由expression指定)。如果在SELECT語句中同時使用了TOP和ORDERBY子句,則返回的行將會從排序后的結果集中選擇。整個結果集按照指定的順序排列,并且返回排序后結果集前面的若干行(由expression指定)。如果同時還指定了WITHTIES選項,則返回包含ORDERBY子句返回的最后一個值的所有行,即便這樣會超過expression指定的數量。任務9使用沒有FROM子句的SELECT語句任務實現(xiàn)SELECT'歡迎您使用SQLServer2008'AS歡迎信息,GETDATE()AS'現(xiàn)在時間',@@SERVERNAMEAS'SQLServer服務器名稱',@@VERSIONAS[SQLServer版本號]相關知識在SELECT語句中,F(xiàn)ROM子句用于指定選擇查詢的數據來源。如果在SELECT語句中不需要訪問表中的列,則不必使用FROM子句。若要使用SELCET語句從表或視圖中檢索數據,就必須使用FROM子句。FROM子句是用逗號分隔的表名、視圖名和JOIN子句的列表,使用FROM子句可以列出選擇列表和WHERE子句中所引用的列所在的表和視圖,也可以使用AS子句為表和視圖的名稱指定別名。使用FROM子句還可以指定一個或多個表或視圖并在兩個或多個表或視圖之間創(chuàng)建各種類型的連接。在SELECT語句中,F(xiàn)ROM子句是一個可選項。如果要使用SELECT語句從數據庫內的表或視圖中選擇數據,就必須使用FROM子句。任務10在FROM子句中使用內部連接任務實現(xiàn)USE學生成績;GOSELECT學生.學號,姓名,課程.課程名稱,成績FROM成績INNERJOIN學生ON成績.學號=學生.學號

INNERJOIN課程ON成績.課程編號=課程.課程編號;GO相關知識使用SELECT語句從多個表或視圖中檢索數據時,可通過在FROM子句中使用各種連接運算符來實現(xiàn)。連接指明了SQLServer應當如何使用一個表中的數據來選擇另一個表中的行,通過連接可以從兩個或多個表中根據各個表之間的邏輯關系來檢索數據。內部連接是一種最常用的連接類型,它使用比較運算符對要連接列中的值進行比較。若兩個來源表的相關列滿足連接條件,則內部連接從這兩個表中提取數據并組成新的行。內部連接通常通過在FROM子句中使用INNERJOIN運算符來實現(xiàn)。任務11在FROM子句中使用外部連接任務實現(xiàn)USE學生成績;GOSELECT學號,課程名稱,成績FROM成績RIGHTJOIN課程ON成績.課程編號=課程.課程編號;GO相關知識外部連接回FROM子句中指定的至少一個表或視圖中的所有行,只要這些行符合任何WHERE或HAVING搜索條件。外部連接分為左外部連接LEFT[OUTER]JOIN、右外部連接RIGHT[OUTER]JOIN和完全外部連接FULL[OUTER]JOIN。若要在結果集中包括左表中的所有行,而不考慮右表中是否存在匹配的行,可使用左外部連接。若要在結果集中包括右表中的所有行,而不考慮左表中是否存在匹配的行,可使用右外部連接。若要通過在連接的結果中包括不匹配的行來保留不匹配信息,可使用完全外部連接。任務12在選擇查詢中使用交叉連接任務實現(xiàn)USE學生成績;GOSELECT班級編號,姓名FROM學生CROSSJOIN班級;GO相關知識使用CROSSJOIN運算符可實現(xiàn)兩個來源表之間的交叉連接,語法格式如下:FROMtable1CROSSJOINtable2如果沒有在SELECT語句中使用WHERE子句,則交叉連接將產生連接所涉及的表的笛卡兒積。笛卡兒積結果集的大小等于第一個表的行數乘以第二個表的行數。如果在SELECT語句中添加一個WHERE子句,則交叉連接的作用與內連接相同。任務13在選擇查詢中使用比較搜索條件任務實現(xiàn)USE學生成績;GOSELECT教師編號,姓名,性別,學歷,職稱,政治面貌FROM教師WHERE學歷='研究生';GO相關知識通過在SELECT語句中使用WHERE子句可以設置對行的篩選條件,從而保證查詢集中僅僅包含所需要的行,而將不需要的行排除在結果集之外。在SELECT語句中WHERE子句是可選的,使用時應放在FROM子句后面,語法如下:[WHERE<search_condition>]任務14使用范圍搜索條件任務實現(xiàn)USE學生成績;GOSELECT學生.學號,姓名,課程名稱,成績FROM成績INNERJOIN學生ON學生.學號=成績.學號INNERJOIN課程ON課程.課程編號=成績.課程編號WHERE成績BETWEEN80AND90;GO相關知識范圍搜索返回介于兩個指定值之間的所有值,包括范圍返回與兩個指定值匹配的所有值,排他范圍不返回與兩個指定值匹配的任何值。在WHERE子句中,可以使用BETWEEN運算符來指定要搜索的包括范圍,也可以使用NOTBETWEEN來查找指定范圍之外的所有行,語法格式如下:test_expression[NOT]BETWEENbegin_expressionANDend_expression任務15在選擇查詢中使用列表搜索條件任務實現(xiàn)USE學生成績;GOSELECT班級編號,學號,姓名,性別,出生日期FROM學生WHERESUBSTRING(姓名,1,1)IN('張','王','李','趙');GO相關知識在WHERE子句中使用IN運算符可以選擇與列表中的任意值匹配的行。IN運算符用于確定指定的值是否與子查詢或列表中的值相匹配,語法格式如下:test_expression[NOT]IN(subquery|expression[,...n])如果測試表達式test_expression的值與子查詢subquery所返回的任何值相等,或者與逗號分隔的列表中的某個expression相等,則結果值為TRUE;否則結果值為FALSE。使用NOTIN可以對返回值求反。任務16在搜索條件中使用模式匹配任務實現(xiàn)USE學生成績;GOSELECT*FROM學生WHERE姓名LIKE'[張王李趙]%';GOSELECT*FROM學生WHERE姓名LIKE'%建%';GO相關知識在WHERE子句中,可以使用LIKE運算符來搜索與指定模式匹配的字符串、日期或時間值。LIKE運算符用于確定特定字符串是否與指定模式相匹配,語法格式如下:match_expression[NOT]LIKEpattern[ESCAPEescape_character]通配符:%表示包含零個或多個字符的任意字符串;_表示任何單個字符;[]指定一個范圍內的任何單個字符;[^]表示不在指定范圍內的任何單個字符。任務17在選擇查詢中使用邏輯運算符

溫馨提示

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

評論

0/150

提交評論