版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目一數(shù)據(jù)庫技術(shù)導(dǎo)論全套可編輯PPT課件項(xiàng)目1-數(shù)據(jù)庫技術(shù)導(dǎo)論.pptx項(xiàng)目2-數(shù)據(jù)庫創(chuàng)建與管理.pptx項(xiàng)目3-數(shù)據(jù)庫表的創(chuàng)建與管理.pptx項(xiàng)目4-數(shù)據(jù)基本操作.pptx項(xiàng)目5-數(shù)據(jù)查詢.pptx項(xiàng)目6-數(shù)據(jù)庫的編程操作.pptx項(xiàng)目7-數(shù)據(jù)庫安全管理.pptx項(xiàng)目8-數(shù)據(jù)庫應(yīng)用程序開發(fā)項(xiàng)目實(shí)戰(zhàn).pptx任務(wù)1.1了解數(shù)據(jù)庫技術(shù)任務(wù)1.2配置SQLServer2022運(yùn)行環(huán)境任務(wù)1.3結(jié)構(gòu)化查詢語句T-SQL的使用123主要知識(shí)點(diǎn)數(shù)據(jù)庫管理員(DBA)職業(yè)崗位的技能需求數(shù)據(jù)庫主要類型,關(guān)系數(shù)據(jù)庫的特點(diǎn)數(shù)據(jù)庫、表、記錄、字段的含義及相互關(guān)系SQLServer2022數(shù)據(jù)庫界面組成及簡(jiǎn)單用法學(xué)習(xí)目標(biāo)數(shù)據(jù)庫的概念與類型關(guān)鍵數(shù)據(jù)庫模型及特點(diǎn)SQLServer2022運(yùn)行環(huán)境的安裝與配置運(yùn)用SQLServer2022建立數(shù)據(jù)庫和數(shù)據(jù)表掌握數(shù)據(jù)庫和表的簡(jiǎn)單修改方法及結(jié)構(gòu)化查詢語句T-SQL的使用任務(wù)1.1了解數(shù)據(jù)庫技術(shù)1.1.1數(shù)據(jù)庫技術(shù)概述1.1.2配置SQLServer2022運(yùn)行環(huán)境1.1.3結(jié)構(gòu)化查詢語句T-SQL的使用數(shù)據(jù)庫技術(shù)概述1.1.1數(shù)據(jù)庫技術(shù)概述數(shù)據(jù)庫是按照一定結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫,是一個(gè)長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織、可共享、能統(tǒng)一管理的大量數(shù)據(jù)集合,可以多個(gè)用戶共享,具有較小的冗余度和較高的獨(dú)立性。數(shù)據(jù)庫技術(shù)是軟件領(lǐng)域的一個(gè)重要分支,產(chǎn)生于20世紀(jì)60年代,它的出現(xiàn)使計(jì)算機(jī)應(yīng)用到了工農(nóng)業(yè)生產(chǎn)、商業(yè)、行政管理、科學(xué)研究、工程技術(shù)以及國(guó)防軍事等各個(gè)領(lǐng)域。它以數(shù)據(jù)庫管理系統(tǒng)(DBMS)為核心,以數(shù)據(jù)存儲(chǔ)和處理為主要功能,涵蓋DBMS產(chǎn)品、數(shù)據(jù)挖掘、開發(fā)工具、應(yīng)用系統(tǒng)解決方案等多個(gè)內(nèi)容。任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1、數(shù)據(jù)庫分類主要包括關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫兩種類型。123關(guān)系型數(shù)據(jù)庫采用關(guān)系模型來組織數(shù)據(jù),由二維表及各張表之間關(guān)聯(lián)關(guān)系所組成,容易理解,容易使用,容易維護(hù)。主要有:MySQL,MSAccess、MSSQLServer、Oracle、INFORMIX、Sybase、DB2。非關(guān)系型數(shù)據(jù)庫主要指非結(jié)構(gòu)化數(shù)據(jù)庫(NoSQL),是一種數(shù)據(jù)存儲(chǔ)方法的集合,可以是文檔或者鍵(Key)值(Value)對(duì),字段長(zhǎng)度可變,支持重復(fù)字段、子字段及變長(zhǎng)字段,能處理變長(zhǎng)數(shù)據(jù)和重復(fù)字段,實(shí)現(xiàn)數(shù)據(jù)項(xiàng)的變主要NoSQL產(chǎn)品有MongoDB、HBase、redis、Memcache、BigTable等。優(yōu)點(diǎn):格式靈活,速度快,容易擴(kuò)展,成本低。數(shù)據(jù)庫的兩種類型任務(wù)1.11.1.1數(shù)據(jù)庫技術(shù)概述2、關(guān)系數(shù)據(jù)庫的基本概念關(guān)系:就是一張二維表,簡(jiǎn)稱表,每個(gè)關(guān)系都有一個(gè)關(guān)系名,即表名。元組:是二維表中的一行,在數(shù)據(jù)表中稱為記錄。屬性:二維表中的一列,在數(shù)據(jù)表中稱為字段。域:屬性的取值范圍,也就是數(shù)據(jù)表中某一列的取值范圍。關(guān)鍵字:一組可以唯一標(biāo)識(shí)元組的屬性,數(shù)據(jù)表中常稱為主鍵,由一個(gè)或多個(gè)列組成。關(guān)系模式:即對(duì)關(guān)系的描述。格式為:關(guān)系名(屬性1,屬性2,......,屬性N),稱為表結(jié)構(gòu)。數(shù)據(jù)庫管理系統(tǒng)(DBMS):是位于應(yīng)用軟件與操作系統(tǒng)之間,用以管理和維護(hù)數(shù)據(jù)庫中數(shù)據(jù)的軟件集合。按功能劃分,DBMS可分為三大部分:數(shù)據(jù)描述語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL。數(shù)據(jù)庫系統(tǒng)(DBS):由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng)。數(shù)據(jù)獨(dú)立性:指存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫獨(dú)立于調(diào)用數(shù)據(jù)的軟件。任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.1數(shù)據(jù)庫技術(shù)概述3、國(guó)產(chǎn)數(shù)據(jù)庫:數(shù)據(jù)庫國(guó)產(chǎn)化時(shí)間雖然不長(zhǎng),但通過吸收和創(chuàng)新開源軟件優(yōu)勢(shì),成效顯著,典型產(chǎn)品有:達(dá)夢(mèng)數(shù)據(jù)庫(DM):武漢達(dá)夢(mèng)數(shù)據(jù)庫股份有限公司。思極有容:國(guó)網(wǎng)信息通信產(chǎn)業(yè)集團(tuán)為主研發(fā)。OceanBase:阿里推出的完全自主研發(fā)品牌。TDSQL:騰訊產(chǎn)品。KingbaseES:北京人大金倉信息技術(shù)股份有限公司產(chǎn)品。GaussDB:華為數(shù)據(jù)庫產(chǎn)品。任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.1數(shù)據(jù)庫技術(shù)概述數(shù)據(jù)庫課程直接對(duì)應(yīng)的職業(yè)技能崗位是數(shù)據(jù)庫管理員(DBA),間接崗位是軟件開發(fā)工程師(程序員)。DBA是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的專門人員。任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.2數(shù)據(jù)庫職業(yè)崗位技能需求分析1、數(shù)據(jù)庫管理員:2、數(shù)據(jù)庫開發(fā)工程師任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.2數(shù)據(jù)庫職業(yè)崗位技能需求分析3、
Java軟件開發(fā)工程師任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.2數(shù)據(jù)庫職業(yè)崗位技能需求分析本教材共安排了兩個(gè)案例數(shù)據(jù)庫高校圖書館圖書借閱管理系統(tǒng)libsys,是圖書館工作人員對(duì)新購(gòu)圖書分類、入庫登記、辦理和發(fā)放讀者借書證、圖書借閱與歸還管理的軟件,用于課堂教學(xué)。學(xué)生成績(jī)管理系統(tǒng)scoresys,用于知識(shí)拓展和實(shí)習(xí)實(shí)訓(xùn),其功能學(xué)生基本信息登記、課程信息登錄、任課教師信息登錄和成績(jī)管理,供任課教師和教務(wù)管理人員使用,用于實(shí)踐環(huán)節(jié)。圖書館圖書資料借閱管理系統(tǒng)(簡(jiǎn)稱圖書管理系統(tǒng)),包括前臺(tái)借閱和歸還管理功能以及后臺(tái)登記入庫管理功能,采購(gòu)人員購(gòu)進(jìn)圖書后,采編人員首先根據(jù)圖書類別登記入庫,然后分門別類放進(jìn)不同位置的書架上。任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.3案例數(shù)據(jù)庫及表設(shè)計(jì)任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.3案例數(shù)據(jù)庫及表設(shè)計(jì)任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.3案例數(shù)據(jù)庫及表設(shè)計(jì)表1-6bookinfo表的記錄任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.3案例數(shù)據(jù)庫及表設(shè)計(jì)任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.3案例數(shù)據(jù)庫及表設(shè)計(jì)表1-8ReaderInfo表的記錄任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.3案例數(shù)據(jù)庫及表設(shè)計(jì)任務(wù)1.1數(shù)據(jù)庫技術(shù)概述1.1.3案例數(shù)據(jù)庫及表設(shè)計(jì)表1-8ReaderInfo表的記錄配置SQLServer2022運(yùn)行環(huán)境SQLServer2022是微軟公司2022年底推出的最新關(guān)系型數(shù)據(jù)庫軟件,它既包含以往各個(gè)版本的全部功能,還具有更好的云服務(wù)功能。SQLServer的主要版本:SQLSERVER7.0SQLSERVER
2000SQLSERVER
2003SQLSERVER
2005SQLSERVER2008SQLSERVER
2012SQLSERVER2014SQLSERVER2016SQLSERVER2017SQLSERVER2019任務(wù)1.2配置SQLServer2022運(yùn)行環(huán)境1.2.1下載SQLServer2022安裝包1、SQLServer2022的主要版本:Enterprise:企業(yè)版Standard:標(biāo)準(zhǔn)版Web:Web版Developer:開發(fā)者版Express:快速版任務(wù)1.2配置SQLServer2022運(yùn)行環(huán)境1.2.1下載SQLServer2022安裝包2、SQLServer2022下載內(nèi)核在線安裝包和SSMS可視化工具安裝包,用于安裝SQLServer2022內(nèi)核,文件名是SQL2022-SSEI-Dev.exe。SSMS安裝包用于安裝SQLServerManagementStudio(SSMS),提供數(shù)據(jù)庫操作的可視化界面,文件名是SSMS-Setup-CHS.exe。任務(wù)1.23、硬件和軟件要求硬件要求:X64處理器且主頻2.0GHz以上,硬盤可用空間6G以上,內(nèi)存2G以上軟件要求:Windows10TH11507或更高版本,建議安裝在Windows11上不支持Windows7及以下版本配置SQLServer2022運(yùn)行環(huán)境1.2.2安裝SQLServer2022任務(wù)1.2SQLServer2022安裝順序先安排內(nèi)核SQL2022-SSEI-Dev.exe。再安裝可視化界面SSMS-Setup-CHS.exe。1、安裝內(nèi)核(1)以管理員身份運(yùn)行SQL2022-SSEI-Dev.exe文件配置SQLServer2022運(yùn)行環(huán)境1.2.2安裝SQLServer2022任務(wù)1.2SQLServer2022安裝順序先安排內(nèi)核SQL2022-SSEI-Dev.exe。再安裝可視化界面SSMS-Setup-CHS.exe。1、安裝內(nèi)核(2)選擇語言,默認(rèn)中文簡(jiǎn)體配置SQLServer2022運(yùn)行環(huán)境1.2.2安裝SQLServer2022任務(wù)1.2SQLServer2022安裝順序先安排內(nèi)核SQL2022-SSEI-Dev.exe。再安裝可視化界面SSMS-Setup-CHS.exe。1、安裝內(nèi)核(3)確定安裝路徑配置SQLServer2022運(yùn)行環(huán)境1.2.2安裝SQLServer2022任務(wù)1.2SQLServer2022安裝順序先安排內(nèi)核SQL2022-SSEI-Dev.exe。再安裝可視化界面SSMS-Setup-CHS.exe。1、安裝內(nèi)核(4)系統(tǒng)會(huì)自動(dòng)從網(wǎng)站下載相關(guān)文件,啟動(dòng)安裝過程,直到安裝完成。配置SQLServer2022運(yùn)行環(huán)境1.2.2安裝SQLServer2022任務(wù)1.2SQLServer2022安裝順序先安排內(nèi)核SQL2022-SSEI-Dev.exe。再安裝可視化界面SSMS-Setup-CHS.exe。2、安裝可視化工具SSMS配置SQLServer2022運(yùn)行環(huán)境1.2.3SQLServer工作界面任務(wù)1.2【開始】-【所有應(yīng)用】-【MicrosoftSQLServerTools19】-【SQLServerManagementStudio19】,進(jìn)入SQLServer服務(wù)器登錄界面兩種身份驗(yàn)證方式Windows身份驗(yàn)證:默認(rèn)方式,建議使用SQLServer身份驗(yàn)證:輸入用戶名和密碼,DBA有權(quán)限設(shè)置登錄用戶。配置SQLServer2022運(yùn)行環(huán)境1.2.3SQLServer工作界面任務(wù)1.2SQLServer工作界面配置SQLServer2022運(yùn)行環(huán)境1.2.4SQLServer工作環(huán)境的使用任務(wù)1.2MicrosoftSQLServer2022的主要功能數(shù)據(jù)庫引擎(SSDE):用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù),是一個(gè)集成環(huán)境,窗口是SSMS集成服務(wù)(SSIS)):是一個(gè)用于提取、轉(zhuǎn)換和加載(ETL)操作的平臺(tái)分析服務(wù)(SSAS):針對(duì)個(gè)人、團(tuán)隊(duì)和公司商業(yè)智能的分析數(shù)據(jù)平臺(tái)和工具集報(bào)表服務(wù)(SSRS):是數(shù)據(jù)輸出的報(bào)表解決方案,提供企業(yè)級(jí)的Web報(bào)表功能分析服務(wù)(SSAS):提供了數(shù)據(jù)建模和分析的功能主數(shù)據(jù)服務(wù)(MDS):針對(duì)主數(shù)據(jù)管理的SQLServer解決方案配置管理器:為SQLServer服務(wù)、服務(wù)器協(xié)議、客戶端協(xié)議提供配置管理事件探查器:監(jiān)視數(shù)據(jù)庫引擎實(shí)例或AnalysisServices實(shí)例的圖形用戶界面數(shù)據(jù)庫引擎優(yōu)化顧問:協(xié)助創(chuàng)建索引、索引視圖和分區(qū)的最佳組合連接組件:安裝用于客戶端和服務(wù)器之間通信的組件代理服務(wù):MicrosoftWindows服務(wù),允許自動(dòng)執(zhí)行某些管理任務(wù)結(jié)構(gòu)化查詢語句T-SQL的使用1.3.1T-SQL簡(jiǎn)介任務(wù)1.3T-SQL,是在SQLServer中的國(guó)際SQL3標(biāo)準(zhǔn)的實(shí)現(xiàn),是微軟公司對(duì)SQL的擴(kuò)展,具有SQL的主要特點(diǎn),同時(shí)增加了變量、運(yùn)算符、函數(shù)、流程控制和注釋等元素。T-SQL語句不分區(qū)大小寫,可分為數(shù)據(jù)定義語句DDL、數(shù)據(jù)操作語句DML、數(shù)據(jù)控制語句DCL和附加語句四大類。結(jié)構(gòu)化查詢語句T-SQL的使用1.3.1T-SQL簡(jiǎn)介任務(wù)1.3結(jié)構(gòu)化查詢語句T-SQL的使用1.3.2T-SQL語法基礎(chǔ)任務(wù)1.31、數(shù)據(jù)類型(1)字符型(2)整數(shù)型結(jié)構(gòu)化查詢語句T-SQL的使用1.3.2T-SQL語法基礎(chǔ)任務(wù)1.31、數(shù)據(jù)類型(3)精確實(shí)數(shù)型decimal(n,m):十進(jìn)制型,格式是decimal(n,m),n表示總長(zhǎng)度,m表示小數(shù)位數(shù)。如:decimal(10,5),表示總長(zhǎng)度是10位,其中小數(shù)位數(shù)是5位,整數(shù)位數(shù)5位,小數(shù)點(diǎn)不占位數(shù)。numeric:數(shù)值型,其用法與decimal相同,如:numeric(10)表示長(zhǎng)度是10位,不允許有小數(shù),實(shí)際上就是整數(shù),而numeric(10,5)表示最多5位小數(shù),5位整數(shù)。(4)近似實(shí)數(shù)型存儲(chǔ)精度不是很高,但數(shù)據(jù)的取值范圍卻又非常大的數(shù)據(jù),其長(zhǎng)度是固定的,用戶不可以改變,可以用普通方法和科學(xué)計(jì)數(shù)法表示。包括2種:real:實(shí)數(shù),可以表示的數(shù)值范圍是–3.40E+38~–1.18E–38,0,1.18E–38~3.40E+38float:浮點(diǎn)數(shù),可以表示的數(shù)值范圍是–1.79E+308~–2.23E–308,0,2.23E–308~1.79E+308結(jié)構(gòu)化查詢語句T-SQL的使用1.3.2T-SQL語法基礎(chǔ)任務(wù)1.3(5)貨幣型money:長(zhǎng)度為8字節(jié),如$326779.1234,精確到萬分之一。smallmoney:長(zhǎng)度為4字節(jié),如$23.333,3.51e8,$3.51e8。(6)日期時(shí)間型:其值要以字符串的形式表示,即要用單引號(hào)引起來,包括四種類型:date:日期型可以只精確到月,系統(tǒng)自動(dòng)填寫為當(dāng)月的1日。time:時(shí)間型。格式:hh:mm:ssAM/PM,datetime:日期和時(shí)間的結(jié)合體。格式是:MM/DD/YYYYhh:mm:ssAM/PMsmalldatetime:小日期時(shí)間型(7)文本型:用于存儲(chǔ)超大長(zhǎng)度的文本內(nèi)容,長(zhǎng)度固定,用戶不可以修改,包括兩種類型:text:字符型,用來存儲(chǔ)大量的非統(tǒng)一編碼型字符數(shù)據(jù),最多可以有231-1或20億個(gè)字符。nchar:統(tǒng)一編碼字符型,用來存儲(chǔ)定長(zhǎng)統(tǒng)一編碼字符型數(shù)據(jù)。(8)二進(jìn)制型binary:二進(jìn)制數(shù)據(jù)類型,存儲(chǔ)最長(zhǎng)8000字節(jié),其存儲(chǔ)空間的大小是n+4個(gè)字節(jié)。varbinary:可變長(zhǎng)二進(jìn)制數(shù)據(jù)類型,用來存儲(chǔ)最長(zhǎng)8000字節(jié)的二進(jìn)制數(shù)據(jù),用戶可以設(shè)置長(zhǎng)度。image:圖像型,用來存儲(chǔ)變長(zhǎng)的二進(jìn)制數(shù)據(jù),最大可達(dá)231-1或大約20億字節(jié)結(jié)構(gòu)化查詢語句T-SQL的使用1.3.2T-SQL語法基礎(chǔ)任務(wù)1.3(9)特殊數(shù)據(jù)類型timestamp:時(shí)間戳類型,相當(dāng)于一個(gè)單向遞增的計(jì)數(shù)器,表示SQLServer活動(dòng)的先后順序,Timestamp數(shù)據(jù)與插入數(shù)據(jù)的日期和時(shí)間沒有關(guān)系。當(dāng)所定義的列在更新或插入新行時(shí),此列值系統(tǒng)自動(dòng)填寫。如果表中列名為Timestamp,系統(tǒng)自動(dòng)設(shè)置為Timestamp類型。Uniqueidentifier:唯一標(biāo)識(shí)型類型,長(zhǎng)度為16,是根據(jù)網(wǎng)卡地址和CPU時(shí)鐘產(chǎn)生的,通過函數(shù)newid()獲得,全球各地機(jī)器產(chǎn)生的此值都不同,但用戶可以修改。當(dāng)表的記錄行要求唯一時(shí),用uniqueidentifier類型最實(shí)用。T-SQL沒有專門的邏輯型,用bit表示邏輯數(shù)據(jù)類型,占用1個(gè)字節(jié),其值為真值時(shí),用0表示,為假時(shí)用1表示,如果輸入0或1以外的值,將被視為1。結(jié)構(gòu)化查詢語句T-SQL的使用1.3.2T-SQL語法基礎(chǔ)任務(wù)1.32、變量T-SQL提供了系統(tǒng)變量和用戶自定義變量系統(tǒng)變量:由系統(tǒng)定義,用戶不能修改,以@@變量名的形式出現(xiàn),如:@@VERSION、@@SERVERNAME、@@LANGUAGE、@@ERROR、@@ROWCOUNT。系統(tǒng)變量的作用域是全局的,在整個(gè)會(huì)話層都是有效的。自定義變量:聲明用戶的語法是:
DECLARE@變量名
數(shù)據(jù)類型一個(gè)@符號(hào)是用戶自定義變量的標(biāo)志,在聲明和使用時(shí)都不能省略,用SET語句給變量賦值。示例:DECLARE@student_namechar(10)SET@student_name='歐陽輝宇'SELECT@student_nameSELECT@@VERSIONSELECT@@SERVERNAMESELECT@@LANGUAGESELECT@@ERRORSELECT@@ROWCOUNT結(jié)構(gòu)化查詢語句T-SQL的使用1.3.2T-SQL語法基礎(chǔ)任務(wù)1.33、運(yùn)算符數(shù)學(xué)運(yùn)算符:加(+)減(-)乘(*)除(/)和求余(%)。邏輯運(yùn)算符:與(AND)、或(OR)、非(NOT),其結(jié)果是一個(gè)邏輯值。賦值運(yùn)算符:=,格式是:變量名=表達(dá)式。比較運(yùn)算符:表達(dá)大小關(guān)系,包括6種:=、<>、>、<、>=、<=,結(jié)果是一個(gè)邏輯值。字符串連接運(yùn)算符:+,將2個(gè)字符串串聯(lián)起來。4、批處理用戶編寫的一個(gè)或多個(gè)語句的集合,以go作為批處理結(jié)束的標(biāo)志5、系統(tǒng)內(nèi)嵌函數(shù)系統(tǒng)內(nèi)嵌函數(shù)包括日期時(shí)間函數(shù)、數(shù)學(xué)函數(shù)、聚合函數(shù)和字符串函數(shù)。以日期時(shí)間函數(shù)為例:getdate():獲取系統(tǒng)當(dāng)前日期和時(shí)間day(日期表達(dá)式):返回日期中的日。month(日期表達(dá)式):返回日期中的月。year(日期表達(dá)式):返回日期中的年。結(jié)構(gòu)化查詢語句T-SQL的使用1.3.3流程控制語句任務(wù)1.31、注釋語句單行注釋:--注釋內(nèi)容,從此處開始到本行結(jié)束為注釋內(nèi)容多行注釋:/*注釋內(nèi)容*/3、條件判斷語句用IF條件ELSE語句表示,格式:IF條件語句1ELSE語句22、語句塊用BEGIN……END定義語句塊,表示這個(gè)語句塊將被作為一個(gè)整體。如:BEGINSELECT*FROMbookInfoEND條件判斷語句應(yīng)用舉例:根據(jù)變量sex的值,輸出一行信息,假設(shè)sex為男,輸出“性別為男,明天的體育課踢足球”,如果sex不為男,輸出“性別為女,明天的體育課跳健美操”。DECLARE@sexchar(2)SET@sex='女'IF@sex='男'PRINT
'性別為男,明天的體育課踢足球'ELSEPRINT
'性別為女,明天的體育課跳健美操'結(jié)構(gòu)化查詢語句T-SQL的使用1.3.3流程控制語句任務(wù)1.34、多分支條件語句:CASE語句,有2種格式第一種格式是:CASE表達(dá)式WHEN值1THEN表達(dá)式1WHEN值2THEN表達(dá)式2...WHEN值NTHEN表達(dá)式NELSE表達(dá)式N+1END多分支條件語句應(yīng)用舉例要求:假定用0-6表示星期天到星期六,根據(jù)星期幾輸出當(dāng)天的電影預(yù)告。DECLARE@dayint,@infochar(50)SET@day=5SET@info=CASE@dayWHEN0THEN'周日電影《大決戰(zhàn)之遼沈戰(zhàn)役》’WHEN1THEN'周一電影《大決戰(zhàn)之平津戰(zhàn)役》’WHEN2THEN'周二電影《大決戰(zhàn)之淮海戰(zhàn)役》’WHEN3THEN'周三電影《可愛的中國(guó)》’WHEN4THEN'周四電影《小兵張嘎》’WHEN5THEN'周五電影《地道戰(zhàn)》’WHEN6THEN'周六電影《四渡赤水》’ELSE'周日電影《地雷戰(zhàn)》'ENDPRINT@info結(jié)構(gòu)化查詢語句T-SQL的使用1.3.3流程控制語句任務(wù)1.34、多分支條件語句:CASE語句,有2種格式第二種格式是:CASEWHEN表達(dá)式1THEN表達(dá)式1
WHEN表達(dá)式2THEN表達(dá)式2...
WHEN表達(dá)式NTHEN表達(dá)式NELSE表達(dá)式N+1END多分支條件語句應(yīng)用舉例要求:假定用salary表示月工資,根據(jù)工資多少輸出工資收入的檔次。DECLARE@salaryfloat,@infochar(50)SET@salary=5766.9SET@info=CASEWHEN@salary<=5000THEN'工資1檔,收入偏低'WHEN@salary>5000AND@salary<=6000THEN'工資2檔'WHEN@salary>6000AND@salary<=8000THEN'工資3檔'WHEN@salary>8000AND@salary<=10000THEN'工資4檔'ELSE'高收入群體'
ENDPRINT@info結(jié)構(gòu)化查詢語句T-SQL的使用1.3.3流程控制語句任務(wù)1.35、循環(huán)語句用WHILE語句表示,表示循環(huán)執(zhí)行直到條件不成立為止。其格式是:WHILE條件BEGIN循環(huán)體語句END循環(huán)語句應(yīng)用舉例例1:求1到100之和。結(jié)構(gòu)化查詢語句T-SQL的使用1.3.3流程控制語句任務(wù)1.35、循環(huán)語句用WHILE語句表示,表示循環(huán)執(zhí)行直到條件不成立為止。其格式是:WHILE條件BEGIN循環(huán)體語句END代碼如下:DECLARE@nINT,@aINT,@bINT,@cINT--@a,@b,@c分別表示個(gè)位數(shù),十位數(shù),百位數(shù)SET@n=100WHILE(@n<1000)BEGINSET@a=@n/100;SET@b=@n/10%10;SET@c=@n%10;IF(@n=@a*@a*@a+@b*@b*@b+@c*@c*@c)BEGINPRINT@n;ENDSET@n=@n+1;END循環(huán)語句應(yīng)用舉例例2:輸出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)“水仙花數(shù)”,因?yàn)?53=13+53+33。結(jié)構(gòu)化查詢語句T-SQL的使用1.3.3流程控制語句任務(wù)1.35、循環(huán)語句用WHILE語句表示,表示循環(huán)執(zhí)行直到條件不成立為止。其格式是:WHILE條件BEGIN循環(huán)體語句END代碼如下:DECLARE@nINT,@iINT--@n表示整數(shù),@i表示循環(huán)變量SET@n=991SET@i=2WHILE(@i<=@n)BEGINIF@n%@i=0--若有因子,肯定不是素?cái)?shù),直接中止循環(huán)BREAKELSESET@i=@i+1ENDIF@i=@nSELECT@n,'是素?cái)?shù)'ELSESELECT@n,'不是素?cái)?shù)'在循環(huán)語句中,可以用CONTINUE語句忽略循環(huán)過程中的剩余語句,直接進(jìn)入下一輪循環(huán),用BREAK語句強(qiáng)制中止循環(huán)(退出循環(huán)),轉(zhuǎn)到執(zhí)行循環(huán)語句后面的語句。例3:判斷991是否是素?cái)?shù)。數(shù)據(jù)庫技術(shù)導(dǎo)論項(xiàng)目總結(jié)項(xiàng)目一1、主要內(nèi)容任務(wù)1.1了解數(shù)據(jù)庫技術(shù)任務(wù)1.2配置SQLServer2022運(yùn)行環(huán)境任務(wù)1.3結(jié)構(gòu)化查詢語句T-SQL的使用2、自測(cè)數(shù)據(jù)庫技術(shù)課程對(duì)應(yīng)的職業(yè)崗位有哪些?SQLServer2022工作界面由哪些部分構(gòu)成?如何用SQLServer2022編寫簡(jiǎn)單程序?用SQLServer2022編程,輸出100-1000內(nèi)所有素?cái)?shù)。項(xiàng)目二數(shù)據(jù)庫創(chuàng)建與管理任務(wù)2.1查看數(shù)據(jù)庫服務(wù)器信息任務(wù)2.2創(chuàng)建數(shù)據(jù)庫任務(wù)2.3管理數(shù)據(jù)庫123主要知識(shí)點(diǎn)SQLSERVER2022數(shù)據(jù)庫的基本組成運(yùn)用SSMS創(chuàng)建和管理數(shù)據(jù)庫使用T-SQL命令創(chuàng)建和管理數(shù)據(jù)庫數(shù)據(jù)庫的分離和附加學(xué)習(xí)目標(biāo)SQLSERVER2022數(shù)據(jù)庫的組成各個(gè)系統(tǒng)數(shù)據(jù)庫的功能會(huì)創(chuàng)建數(shù)據(jù)庫會(huì)查看和修改數(shù)據(jù)庫屬性會(huì)管理數(shù)據(jù)庫會(huì)分離數(shù)據(jù)庫會(huì)附加數(shù)據(jù)庫任務(wù)2.1查看數(shù)據(jù)庫服務(wù)器信息2.1.1
SQLServer2022體系結(jié)構(gòu)2.1.2SQLServer2022的數(shù)據(jù)庫組成2.1.3SQLSERVER2022服務(wù)器身份驗(yàn)證模式查看數(shù)據(jù)庫服務(wù)器信息2.1.1SQLServer2022體系結(jié)構(gòu)SQLServer以數(shù)據(jù)庫引擎為基礎(chǔ),通過集成界面提供數(shù)據(jù)存儲(chǔ)與分析、報(bào)表服務(wù)、數(shù)據(jù)挖掘、云存儲(chǔ)、人工智能等全方位服務(wù)。數(shù)據(jù)庫引擎SSDE是SQLServer的核心服務(wù),負(fù)責(zé)完成業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)、處理、查詢和安全管理,創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、執(zhí)行各種數(shù)據(jù)查詢、訪問數(shù)據(jù)庫等基礎(chǔ)操作,均由數(shù)據(jù)庫引擎完成,很多時(shí)候,使用數(shù)據(jù)庫系統(tǒng)主要是使用數(shù)據(jù)庫引擎服務(wù)。任務(wù)2.1查看數(shù)據(jù)庫服務(wù)器信息2.1.1SQLServer2022體系結(jié)構(gòu)集成服務(wù)(SSIS):用于提取、轉(zhuǎn)換和加載(ETL)操作的平臺(tái),使操作數(shù)據(jù)倉庫與其同步,數(shù)據(jù)倉庫里的數(shù)據(jù)來源于企業(yè)商業(yè)應(yīng)用所使用的孤立數(shù)據(jù)源。分析服務(wù)(SSAS):針對(duì)個(gè)人、團(tuán)隊(duì)和公司商業(yè)智能的分析數(shù)據(jù)平臺(tái)和工具集,提供了用于聯(lián)機(jī)分析處理(OnlineAnalyticalProcessing,OLAP)的引擎。報(bào)表服務(wù)(SSRS):數(shù)據(jù)輸出的報(bào)表解決方案,提供企業(yè)級(jí)Web報(bào)表功能,可以創(chuàng)建從多個(gè)數(shù)據(jù)源提取數(shù)據(jù)的表。分析服務(wù)(SSAS):用于數(shù)據(jù)建模和分析,根據(jù)數(shù)據(jù)倉庫表格設(shè)計(jì)、創(chuàng)建和管理多維數(shù)據(jù)集的功能,是商業(yè)智能戰(zhàn)略的基礎(chǔ)。主數(shù)據(jù)服務(wù)(MDS):針對(duì)主數(shù)據(jù)管理的SQLServer解決方案,通過配置MDS來管理任何領(lǐng)域,可包括層次結(jié)構(gòu)、各種級(jí)別的安全性、事務(wù)、數(shù)據(jù)版本控制和業(yè)務(wù)規(guī)則,可用于管理數(shù)據(jù)的Excel外接程序。SQLServer配置管理器:為SQLServer服務(wù)、服務(wù)器協(xié)議、客戶端協(xié)議和客戶端別名提供基本配置管理。數(shù)據(jù)庫引擎優(yōu)化顧問:用于優(yōu)化數(shù)據(jù)庫引擎,協(xié)助創(chuàng)建索引、索引視圖和分區(qū)。SQLServer代理服務(wù):是一項(xiàng)MicrosoftWindows服務(wù),允許自動(dòng)執(zhí)行某些管理任務(wù)??纱磉\(yùn)行作業(yè)、監(jiān)視SQLServer并警報(bào)。任務(wù)2.1查看數(shù)據(jù)庫服務(wù)器信息2.1.2SQLServer2022數(shù)據(jù)庫的組成安裝SQLServer2022軟件的機(jī)器稱為數(shù)據(jù)庫服務(wù)器,SQLServer2022的數(shù)據(jù)庫包括三類:系統(tǒng)數(shù)據(jù)庫、數(shù)據(jù)庫快照和用戶數(shù)據(jù)庫。系統(tǒng)數(shù)據(jù)庫是安裝后系統(tǒng)自動(dòng)建立的數(shù)據(jù)庫,存放系統(tǒng)的核心信息,SQLServer2022使用這些信息來管理和控制整個(gè)數(shù)據(jù)庫服務(wù)器系統(tǒng)。master:最重要的系統(tǒng)數(shù)據(jù)庫,記錄SQLServer系統(tǒng)的所有系統(tǒng)級(jí)信息包括登錄賬號(hào)、密碼、用戶和角色、權(quán)限設(shè)置、鏈接服務(wù)器和系統(tǒng)配置信息。model:模板數(shù)據(jù)庫,存儲(chǔ)可以作為模板的數(shù)據(jù)庫對(duì)象和數(shù)據(jù),用戶在創(chuàng)建數(shù)據(jù)庫時(shí),系統(tǒng)自動(dòng)調(diào)用此數(shù)據(jù)庫中的相關(guān)信息。msdb:與代理服務(wù)有關(guān)的數(shù)據(jù)庫,主要完成定時(shí)、預(yù)處理等操作,記錄有關(guān)作業(yè)、警報(bào)、操作員、調(diào)度等信息。tempdb:臨時(shí)數(shù)據(jù)庫,存儲(chǔ)查詢過程中所形成的中間數(shù)據(jù)或結(jié)果。任務(wù)2.1查看數(shù)據(jù)庫服務(wù)器信息2.1.2SQLServer2022數(shù)據(jù)庫的組成安裝SQLServer2022軟件的機(jī)器稱為數(shù)據(jù)庫服務(wù)器,SQLServer2022的數(shù)據(jù)庫包括三類:系統(tǒng)數(shù)據(jù)庫、數(shù)據(jù)庫快照和用戶數(shù)據(jù)庫。系統(tǒng)數(shù)據(jù)庫是安裝后系統(tǒng)自動(dòng)建立的數(shù)據(jù)庫,存放系統(tǒng)的核心信息,SQLServer2022使用這些信息來管理和控制整個(gè)數(shù)據(jù)庫服務(wù)器系統(tǒng)。系統(tǒng)數(shù)據(jù)庫的組成與用戶數(shù)據(jù)庫基本相同,包括表、視圖、同義詞、可編程性、ServiceBroker、存儲(chǔ)、安全性。數(shù)據(jù)庫快照SQLServer數(shù)據(jù)庫的只讀靜態(tài)視圖。自創(chuàng)建快照起,數(shù)據(jù)庫快照在事務(wù)上與源數(shù)據(jù)庫一致,始終與其源數(shù)據(jù)庫位于同一服務(wù)器實(shí)例上。數(shù)據(jù)庫快照在數(shù)據(jù)頁級(jí)運(yùn)行。在第一次修改源數(shù)據(jù)庫頁之前,先將原始頁從源數(shù)據(jù)庫復(fù)制到快照??煺沾鎯?chǔ)原始頁,保留它們?cè)趧?chuàng)建快照時(shí)的數(shù)據(jù)記錄。用戶數(shù)據(jù)庫是用戶通過SSMS窗口或T-SQL命令創(chuàng)建的數(shù)據(jù)庫,用戶可以創(chuàng)建多個(gè)數(shù)據(jù)庫。任務(wù)2.1查看數(shù)據(jù)庫服務(wù)器信息2.1.3SQLServer2022服務(wù)器驗(yàn)證模式系統(tǒng)提供Windows身份驗(yàn)證、SQLSERVER身份驗(yàn)證、Azure活動(dòng)目錄等8種身份驗(yàn)證模式,最常用的前兩種。(1)Windows身份驗(yàn)證:適合于域內(nèi)連接,SQLServer使用Windows用戶信息驗(yàn)證賬戶名和密碼,即SQLSERVER信任Windows用戶(2)SQLSERVER身份驗(yàn)證:是一種混合驗(yàn)證模式,允許用戶使用Windows身份驗(yàn)證,也允許遠(yuǎn)程用戶通過SQLServer身份驗(yàn)證進(jìn)行連接,這時(shí)需要輸入登錄名和密碼。任務(wù)2.1查看數(shù)據(jù)庫服務(wù)器信息2.1.3SQLServer2022服務(wù)器驗(yàn)證模式設(shè)置登錄賬號(hào)的方法是:右擊服務(wù)器名--【屬性】--【安全性】選項(xiàng)卡,在服務(wù)器身份驗(yàn)證方式欄中選擇一種驗(yàn)證模式。任務(wù)2.1創(chuàng)建數(shù)據(jù)庫2.2.1
文件與文件組創(chuàng)建數(shù)據(jù)庫有2種方法:通過SSMS管理器窗口的交互方式命令方式,命令方式用途更廣,適合于程序員開發(fā)軟件使用數(shù)據(jù)庫包括邏輯結(jié)構(gòu)和物理結(jié)構(gòu)兩部分,對(duì)應(yīng)的文件也有邏輯文件和物理文件之分。一個(gè)數(shù)據(jù)庫對(duì)應(yīng)的物理文件主要有3種類型。(1)主數(shù)據(jù)庫文件:類型名是.mdf,是最重要的數(shù)據(jù)庫文件,存儲(chǔ)數(shù)據(jù)庫啟動(dòng)信息和全部數(shù)據(jù),一個(gè)數(shù)據(jù)庫至少要有一個(gè)mdf文件。(2)輔助數(shù)據(jù)庫文件:也稱次要數(shù)據(jù)庫文件.ndf,用于存儲(chǔ)除了主數(shù)據(jù)庫文件之外的其它文件信息,保存主庫中沒有存貯的數(shù)據(jù),一個(gè)數(shù)據(jù)庫可以有一個(gè)或者多個(gè).ndf文件,也可以沒有.ndf文件。(3)事務(wù)日志文件:記錄對(duì)數(shù)據(jù)庫的操作情況,類型名是.ldf。一個(gè)數(shù)據(jù)庫至少包含一個(gè)主數(shù)據(jù)庫文件和一個(gè)事務(wù)日志文件。當(dāng)一個(gè)數(shù)據(jù)庫數(shù)據(jù)內(nèi)容非常多時(shí),數(shù)據(jù)文件也會(huì)有多個(gè),為方便管理,可以將文件分成若干組,稱為文件組filegroup,每一個(gè)數(shù)據(jù)文件必須屬于且只能屬于一個(gè)組,系統(tǒng)默認(rèn)的文件組是PRIMARY,即主文件組,主數(shù)據(jù)庫文件就放在這個(gè)組中,用戶還可以建立新文件組,并將其它文件存入進(jìn)來。日志文件不適用于文件組,它獨(dú)立存在。任務(wù)2.2創(chuàng)建數(shù)據(jù)庫2.2.2用SSMS管理器窗口建立數(shù)據(jù)庫新建數(shù)據(jù)庫時(shí),需指定數(shù)據(jù)庫名,對(duì)應(yīng)的邏輯名,物理文件名及存儲(chǔ)位置,初始大小,最大存儲(chǔ)容量及增長(zhǎng)速度等參數(shù),同一數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)庫名不允許相同,物理文件存放的文件夾要事先建立好。任務(wù)2.2例2-1:利用管理器窗口建立libsys數(shù)據(jù)庫。主要參數(shù)有:(1)主數(shù)據(jù)文件的邏輯名為libsys,對(duì)應(yīng)的物理文件存放在d:\data文件夾中,文件名為libsys_data.mdf,初始大小為10MB,最大容量是100MB,增長(zhǎng)速度為10MB。(2)日志文件的邏輯名為libsys_log,對(duì)應(yīng)的物理文件名libsys_log.ldf,初始容量5MB,增長(zhǎng)速度15%,最大容量50MB。創(chuàng)建數(shù)據(jù)庫2.2.2用SSMS管理器窗口建立數(shù)據(jù)庫說明:數(shù)據(jù)文件和日志文件最好保存在同一個(gè)文件夾,便于管理。文件大小的默認(rèn)單位是MB,必須為整數(shù)值,如果用MB作為容量單位,則MB可以省略,還可以用GB、TB作為單位。數(shù)據(jù)庫不允許重名,如果數(shù)據(jù)庫已經(jīng)存在,必須先刪除后才能建立。數(shù)據(jù)庫名和邏輯名都必須符合標(biāo)識(shí)符的規(guī)定,以英文字母或者漢字開頭,后面可以跟英文字母、數(shù)字、漢字、下劃線,最長(zhǎng)128個(gè)字符,不可用數(shù)字開頭,標(biāo)識(shí)符中不可出現(xiàn)其它標(biāo)點(diǎn)符號(hào)。任務(wù)2.2練習(xí):利用管理器窗口建立AddressBook(通信錄)數(shù)據(jù)庫。主要參數(shù):(1)主數(shù)據(jù)文件邏輯名為ABMIS,對(duì)應(yīng)的物理文件存放在d:\abdata文件夾中,文件名為ab_data.mdf,最大容量是150MB。(2)日志文件的邏輯名為ABMIS_log,對(duì)應(yīng)的物理文件名ab_log.ldf,初始容量15MB,增長(zhǎng)速度12%,最大容量75MB。(3)缺省參數(shù)全部取默認(rèn)值。創(chuàng)建數(shù)據(jù)庫2.2.3用SQL命令建立數(shù)據(jù)庫建立數(shù)據(jù)庫的SQL命令格式是:CREATEDATABASE數(shù)據(jù)庫名[ON[PRIMARY](主數(shù)據(jù)文件標(biāo)識(shí))……][LOGON(日志文件標(biāo)識(shí))……]其中:<文件標(biāo)識(shí)>包括5個(gè)參數(shù),即[NAME=邏輯名][,F(xiàn)ILENAME='磁盤文件名'][,SIZE=初始容量][,MAXSIZE={最大容量|UNLIMITED}][,F(xiàn)ILEGROWTH=增長(zhǎng)速度]任務(wù)2.2說明:(1)命令格式中的方括號(hào)[]表示本項(xiàng)可以缺省,但有和沒有的結(jié)果不同,缺省時(shí),系統(tǒng)會(huì)取默認(rèn)值,否則就是指定的值。(2)PRIMARY表示主數(shù)據(jù)庫文件,因?yàn)槭悄J(rèn)值,可以省略。(3)“……”表示可以有多個(gè)文件,各個(gè)文件的格式相同。(4)常量UNLIMITED表示最大容量無限制。(5)磁盤文件中可以帶路徑,表示存儲(chǔ)位置,如果不帶路徑,則存儲(chǔ)到默認(rèn)文件夾中。(6)增長(zhǎng)速度可以用百分?jǐn)?shù)n%表示,也可以是nMB。創(chuàng)建數(shù)據(jù)庫2.2.3用SQL命令建立數(shù)據(jù)庫例2-4建立一個(gè)庫company,主文件邏輯名為company_data,磁盤文件為company.mdf,初始大小為20M,最大不限,日志文件邏輯名為company_log,物理文件為company.ldf,初始大小為2M,最大10M,增加速度為1M。物理文件放在d:\mydb中,寫出SQL命令。先檢查D盤下有無mydb文件夾,若無,則建立。輸入建庫代碼。任務(wù)2.2CREATEDATABASEcompanyON(NAME=company_data,FILENAME='d:\mydb\company.mdf',SIZE=20,MAXSIZE=UNLIMITED)LOGON(NAME=company_log,FILENAME='d:\mydb\company.ldf',SIZE=2MB,FILEGROWTH=1,MAXSIZE=10)創(chuàng)建數(shù)據(jù)庫2.2.3用SQL命令建立數(shù)據(jù)庫練習(xí):建立數(shù)據(jù)庫libsys,主文件邏輯名為libsys,磁盤文件為libsysdata.mdf,初始大小為100M,增長(zhǎng)速度10MB,最大不限,日志文件邏輯名為libsyslog,物理文件為libsyslog.ldf,初始大小為20M,最大1GB,增加速度為默認(rèn)值,物理文件放在d:\data中,寫出SQL命令。任務(wù)2.2管理數(shù)據(jù)庫2.3.1修改數(shù)據(jù)庫修改數(shù)據(jù)庫是指修改數(shù)據(jù)庫名、修改物理文件對(duì)應(yīng)的參數(shù)、向數(shù)據(jù)庫添加文件及文件組、刪除文件及文件組等參數(shù)。修改數(shù)據(jù)庫有2種方法:用SSMS管理器的菜單方式+用命令方式。任務(wù)2.31、用SSMS管理器窗口方式修改數(shù)據(jù)庫在SSMS管理器窗口中,找到要修改的數(shù)據(jù)庫名,在其【屬性】對(duì)話框中修改。管理數(shù)據(jù)庫2.3.1修改數(shù)據(jù)庫任務(wù)2.32、用命令修改數(shù)據(jù)庫格式是:ALTERDATABASE<數(shù)據(jù)庫名>{ADDFILE<文件標(biāo)識(shí)>[,…n]|ADDLOGFILE<文件標(biāo)識(shí)>[,…n]|REMOVEFILE邏輯文件名|MODIFYFILE<文件標(biāo)識(shí)>|MODIFYNAME=新數(shù)據(jù)庫名}參數(shù)說明:(1)ADDFILE:指定要添加的主數(shù)據(jù)文件。(2)ADDLOGFILE:將日志文件添加到指定的數(shù)據(jù)庫。(3)REMOVEFILE:從數(shù)據(jù)庫系統(tǒng)表中刪除文件。(4)MODIFYFILE:指定要更改給定的文件,包括邏輯名、初始大小、增長(zhǎng)速度、最大容量和存儲(chǔ)位置。(5)不能夠在一個(gè)命令中同時(shí)修改2個(gè)文件的屬性,如果要修改兩個(gè)文件的屬性,要兩次使用ALTERDATABASE命令,每個(gè)命令只修改一個(gè)文件的屬性。(6)若要更改數(shù)據(jù)文件或日志文件的邏輯名稱,應(yīng)在NAME選項(xiàng)中指定要改名的邏輯文件名稱,并在NEWNAME選項(xiàng)中指定文件的新邏輯名稱。其格式是:ALTERDATABASE<數(shù)據(jù)庫名>MODIFYFILE(NAME=原邏輯名,NEWNAME=新邏輯名)管理數(shù)據(jù)庫2.3.1修改數(shù)據(jù)庫2、用命令修改數(shù)據(jù)庫例2-6:將數(shù)據(jù)庫company改名為comp,寫出SQL命令。ALTERDATABASEcompanyMODIFYNAME=comp任務(wù)2.3例2-7對(duì)于例2-3中建立的數(shù)據(jù)庫student,將數(shù)據(jù)文件的最大容量修改為200MB;每次以10MB的空間增長(zhǎng);日志文件修改為每次以15%的空間增長(zhǎng)。在寫SQL命令前,必須了解數(shù)據(jù)文件和日志文件的邏輯名(分別為student_data和student_log)。1. ALTERDATABASEstudent2. MODIFYFILE3. (NAME='student_data',4. MAXSIZE=200MB,5. FILEGROWTH=10MB6. )7. GO8. ALTERDATABASEstudent--此行不能省略9. MODIFYFILE
--此行也不能省略10. (NAME='student_log',11. FILEGROWTH=15%12. )管理數(shù)據(jù)庫2.3.2刪除數(shù)據(jù)庫1、用SSMS窗口刪除數(shù)據(jù)庫在SSMS管理器窗口中,找到要修改的數(shù)據(jù)庫名,右擊它,在彈出的快捷菜單中選擇【刪除】。任務(wù)2.32、用命令刪除數(shù)據(jù)庫命令是:DROPDATABASE數(shù)據(jù)庫名[,…n]可以用一條命令同時(shí)刪除多個(gè)數(shù)據(jù)庫。例2-9刪除用戶數(shù)據(jù)庫test。USEmasterGODROPDATABASEtestGO例2-10同時(shí)刪除數(shù)據(jù)庫test1和test2,假設(shè)test1和test2都已經(jīng)存在。DROPDATABASEtest,test2管理數(shù)據(jù)庫2.3.3查看數(shù)據(jù)庫1、用SSMS窗口查看數(shù)據(jù)庫在SSMS管理器窗口中,在指定數(shù)據(jù)庫的屬性窗口即可查看。任務(wù)2.32、用命令查看數(shù)據(jù)庫查看數(shù)據(jù)庫屬性的命令是sp_helpdb,格式是:EXECUTEsp_helpdb[數(shù)據(jù)庫名]例2-11查看數(shù)據(jù)庫libsys的屬性。
sp_helpdblibsys例2-12查看所有數(shù)據(jù)庫的屬性。EXECUTEsp_helpdb管理數(shù)據(jù)庫2.3.4分離與附加數(shù)據(jù)庫1、分離數(shù)據(jù)庫例2-13分離數(shù)據(jù)庫libsys。(1)用SSMS窗口實(shí)現(xiàn):在數(shù)據(jù)庫屬性窗口中,依次執(zhí)行【任務(wù)】-【分離】。任務(wù)2.3(2)用命令分離數(shù)據(jù)庫使用系統(tǒng)存儲(chǔ)過程sp_detach_db,其格式是:EXECUTEsp_detach_db數(shù)據(jù)庫名USEmasterGOEXECUTEsp_detach_dblibsys管理數(shù)據(jù)庫2.3.4分離與附加數(shù)據(jù)庫2、附加數(shù)據(jù)庫例2-14將例1-12中分離的數(shù)據(jù)庫libsys附加到SQLSERVER系統(tǒng),物理文件存放在D盤data文件夾中,分別是libsysdata.mdf和libsyslog.ldf。(1)用SSMS窗口實(shí)現(xiàn):在數(shù)據(jù)庫屬性窗口中,依次執(zhí)行【附加】-【定位數(shù)據(jù)庫】。任務(wù)2.3(2)用CREATEdatabase命令完成,格式是:CREATEDATABASE數(shù)據(jù)庫名ON(FILENAME=主數(shù)據(jù)庫物理文件名)FORATTACH
例2-14的命令是:CREATEDATABASElibsysON(FILENAME='D:\data\libsysdata.mdf')FORATTACH數(shù)據(jù)庫的創(chuàng)建與管理項(xiàng)目總結(jié)項(xiàng)目二1、主要內(nèi)容任務(wù)2.1查看數(shù)據(jù)庫服務(wù)器信息任務(wù)2.2創(chuàng)建數(shù)據(jù)庫任務(wù)2.3管理數(shù)據(jù)庫2、自測(cè)管理數(shù)據(jù)庫的系統(tǒng)存儲(chǔ)過程有哪些?創(chuàng)建數(shù)據(jù)庫時(shí),需要提供哪些參數(shù)?如何實(shí)現(xiàn)將數(shù)據(jù)庫轉(zhuǎn)移到其它機(jī)器上?在Windows中刪除對(duì)應(yīng)的文件以后,數(shù)據(jù)庫還能正常使用嗎?項(xiàng)目三數(shù)據(jù)表的創(chuàng)建與管理任務(wù)3.1數(shù)據(jù)完整性任務(wù)3.2創(chuàng)建表結(jié)構(gòu)任務(wù)3.3修改數(shù)據(jù)表結(jié)構(gòu)123主要知識(shí)點(diǎn)數(shù)據(jù)完整性及實(shí)現(xiàn)方法運(yùn)用SSMS創(chuàng)建表結(jié)構(gòu)運(yùn)用命令方式管理表結(jié)構(gòu)表的修改與維護(hù)學(xué)習(xí)目標(biāo)數(shù)據(jù)完整性類型數(shù)據(jù)完整性實(shí)現(xiàn)方法創(chuàng)建表修改表刪除表維護(hù)表結(jié)構(gòu)任務(wù)3.1數(shù)據(jù)完整性3.1.1
數(shù)據(jù)完整性類型3.1.2數(shù)據(jù)完整性約束實(shí)現(xiàn)數(shù)據(jù)完整性3.1.1
數(shù)據(jù)完整性類型數(shù)據(jù)完整性包括域完整性、實(shí)體完整性、參照完整性、自定義完整性。數(shù)據(jù)表,是數(shù)據(jù)庫的最主要組成成分,由若干欄目(列或字段)和若干行組成,每一行稱為一條記錄。所有列全部加起來組成表結(jié)構(gòu),表就是由結(jié)構(gòu)和記錄兩部分組成的。每個(gè)欄目均需要設(shè)置其名稱(即列名、字段名)、數(shù)據(jù)類型、長(zhǎng)度、約束,列名必須符合標(biāo)識(shí)符的要求,數(shù)據(jù)類型由系統(tǒng)規(guī)定,長(zhǎng)度是一個(gè)整數(shù),表示這個(gè)列最大可以輸入多少個(gè)字符,而約束是對(duì)這個(gè)列的值設(shè)置的限制條件,稱為域完整性約束。各個(gè)字段之間可能存在的關(guān)聯(lián)關(guān)系,稱為實(shí)體完整性約束。表與表之間也可能存在的相互關(guān)系,稱為參照完整性約束。任務(wù)3.1數(shù)據(jù)完整性3.1.1
數(shù)據(jù)完整性類型數(shù)據(jù)完整性包括4種類型:實(shí)體完整性、域完整性、參照完整性、自定義完整性。域完整性:作用的對(duì)象是列(字段),是給指定列的輸入設(shè)置有效性約束條件。強(qiáng)制域有效性的方法有:限制類型(通過數(shù)據(jù)類型)、格式(通過CHECK約束和規(guī)則)或可能值的范圍(通過FOREIGNKEY約束、CHECK約束、DEFAULT定義、NOTNULL定義和規(guī)則)。實(shí)體完整性:作用的對(duì)象是行(記錄),強(qiáng)制表的標(biāo)識(shí)符列或主鍵的完整性(通過UNIQUE約束、PRIMARYKEY約束或IDENTITY屬性約束)。參照完整性:作用的對(duì)象是關(guān)系(表)。在輸人或刪除記錄時(shí),參照完整性保持表之間已定義的關(guān)系。基于子表外鍵與主表主鍵之間或子表外鍵與主表唯一鍵之間的關(guān)系(通過FOREIGNKEY和CHECK約束)。用戶定義完整性:用戶可以定義不屬于其他任何完整性分類的特定業(yè)務(wù)規(guī)則,作用的對(duì)象可以是列,也可以是記錄或表。所有的完整性類型都支持用戶定義完整性,如CREATETABLE中的所有列級(jí)和表級(jí)約束、存儲(chǔ)過程和觸發(fā)器。任務(wù)3.1數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)增加約束的命令格式是:
addconstraint約束名約束內(nèi)容約束名的通用格式是:約束類型_列名,如:主鍵約束PK_,唯一性約束UQ_,外鍵約束FK_,檢查約束CK_,默認(rèn)值約束DF_等。以libsys數(shù)據(jù)庫的表bookinfo(BookID,BookName,BookType,Writer,Publisher,PublishDate,Price,BuyDate,BuyCount,AbleCount,Remark)為例,實(shí)現(xiàn)數(shù)據(jù)完整性約束。任務(wù)3.1數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)1、實(shí)體完整性約束的實(shí)現(xiàn)
包括PRIMARYKEY(主鍵約束)、UNIQUE(唯一性約束)和IDENTITY(標(biāo)識(shí)列約束)等。(1)PRIMARYKEY主鍵約束的實(shí)現(xiàn)。SSMS實(shí)現(xiàn):在表的設(shè)計(jì)窗口中,選擇主鍵列,單擊快捷菜單【設(shè)置主鍵】即可。任務(wù)3.1數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)1、實(shí)體完整性約束的實(shí)現(xiàn)
任務(wù)3.1用命令實(shí)現(xiàn)先定義一個(gè)約束PK_bookid,命令是:addconstrainPK_bookidprimarykeybookid,將以上命令加進(jìn)建表命令的后面。也可以在建立列bookid的命令中添加primarykey或者constrainPK_bookidprimarykey。如:createtablebookinfo(Bookidchar(20)constraintPK_bookidprimarykey,
--這樣也可以:Bookidchar(20)primarykey,……)如果要設(shè)置BookName和Writer兩列均為主鍵,則命令是:addconstraintPK_BookName_Writerprimarykey(BookName,Writer)數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)1、實(shí)體完整性約束的實(shí)現(xiàn)
任務(wù)3.1(2)UNIQUE唯一性約束的實(shí)現(xiàn)用SSMS實(shí)現(xiàn):任務(wù):BookID為唯一性約束在表設(shè)計(jì)器中,選擇【索引和鍵】,打開“索引/鍵”對(duì)話框,點(diǎn)擊【添加】按鈕,創(chuàng)建索引IX_bookinfo,選擇bookid列,將類型修改為“是唯一的”,關(guān)閉窗口后保存修改。數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)1、實(shí)體完整性約束的實(shí)現(xiàn)
任務(wù)3.1(2)UNIQUE唯一性約束的實(shí)現(xiàn)用命令實(shí)現(xiàn):任務(wù):BookID為唯一性約束用命令為表bookinfo創(chuàng)建“UNIQUE約束”:altertablebookinfoaddconstraintUQ_bookidunique(bookid)或者在建表時(shí)直接給bookid列增加UNIQUE約束:createtablebookinfo(
Bookidchar(20)constraintUQ_bookidunique(bookid),--Bookidchar(20)unique,……)數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)1、實(shí)體完整性約束的實(shí)現(xiàn)
任務(wù)3.1(3)標(biāo)識(shí)列約束的實(shí)現(xiàn)標(biāo)識(shí)列(identity)就是給表輸入記錄時(shí)此列自動(dòng)編號(hào),即流水號(hào),默認(rèn)從1開始編號(hào),稱為標(biāo)識(shí)種子,增量為1,標(biāo)識(shí)列要求是整數(shù),通常為int類型,標(biāo)識(shí)列的值不能手動(dòng)輸入,不能為空,不能修改。任務(wù):給表bookinfo增加一列no,要求自動(dòng)編號(hào)。用SSMS實(shí)現(xiàn)的方法:打開表設(shè)計(jì)窗口,選擇no列,在底部的列屬性窗格中,雙擊【標(biāo)識(shí)規(guī)范】欄的【是標(biāo)識(shí)】,即可在“是”與“否”之間進(jìn)行切換。數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)1、實(shí)體完整性約束的實(shí)現(xiàn)
任務(wù)3.1(3)標(biāo)識(shí)列約束的實(shí)現(xiàn)用命令實(shí)現(xiàn)的方法:createtablebookinfo(nointidentity(1,1),……)總結(jié):建立了約束后,如果要在SSMS窗口中以交互方式刪除約束,方法與建立時(shí)相同,如果用命令實(shí)現(xiàn),命令是dropconstraint約束名。數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)2、域完整性約束的實(shí)現(xiàn)
任務(wù)3.1(2)默認(rèn)值約束的實(shí)現(xiàn)假設(shè)要將bookinfo表的出版日期列publishdate的默認(rèn)值設(shè)為系統(tǒng)日期,對(duì)應(yīng)的系統(tǒng)函數(shù)是getdate(),處理方法是:用SSMS窗口:打開bookinfo表設(shè)計(jì)窗口,選擇列publishdate,在下方的列屬性窗格中,將屬性“默認(rèn)值或綁定”設(shè)為getdate()。用命令:建表窗口中,給列publishdate增加默認(rèn)值約束defaultgetdate(),即:PublishdatedatetimenullconstraintDF_publishdatedefaultgetdate()或者Publishdatedatetimenulldefaultgetdate()或者Publishdatedatetimenulldefault(getdate())數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)2、域完整性約束的實(shí)現(xiàn)
任務(wù)3.1(3)檢查約束的實(shí)現(xiàn)CHECK檢查約束通過限制輸入到列中的值來強(qiáng)制域的完整性。格式是:check邏輯表達(dá)式。任務(wù):將readerinfo表ReaderAge列的取值范圍限制在18~60歲之間,表示式為:checkReaderAge>=18andReaderAge<=60。用SSMS實(shí)現(xiàn):?jiǎn)螕艄ぞ邫谥械摹竟芾鞢HECK約束】按鈕,打開CHECK約束對(duì)話框。單擊【添加】按鈕,在名稱輸入框中把默認(rèn)名改為CK_ReaderAge,在表達(dá)式右端輸入表達(dá)式:checkReaderAgebetween18and60。數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)2、域完整性約束的實(shí)現(xiàn)
任務(wù)3.1(3)檢查約束的實(shí)現(xiàn)任務(wù):將readerinfo表ReaderAge列的取值范圍限制在18~60歲之間,表示式為:checkReaderAge>=18andReaderAge<=60。用命令實(shí)現(xiàn):如果作為表定義的一部分在創(chuàng)建表時(shí)創(chuàng)建檢查約束,命令是:ReaderAgeintconstraintCK_ReaderAgecheckReaderAge>=18andReaderAge<=60
或者ReaderAgeintcheckReaderAgebetween18and60也可以添加到現(xiàn)有表中。如:AddconstraintCK_ReaderAgecheckReaderAge>=18andReaderAge<=60數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)3、參照完整性約束的實(shí)現(xiàn)
任務(wù)3.1參照完整性指的是表與表之間存在的相互依賴性,如數(shù)據(jù)庫libsys中,有3張表,即bookinfo圖書信息表、readerinfo讀者信息表和borrowinfo借閱情況表,borrowinfo記錄的信息是哪些讀者在什么時(shí)候借閱了哪些書,因此borrowinfo表的readerID列(表示讀者號(hào))來自于borrowinfo表中的readerID,bookid列(表示書號(hào))來源于bookinfo表的bookid列,用外鍵約束(foreignkey)實(shí)現(xiàn),bookinfo和readerinfo稱為主鍵表,borrowinfo稱為外鍵表。用SSMS實(shí)現(xiàn):用表設(shè)計(jì)器打開外鍵表borrowinfo,單擊工具欄中的【關(guān)系】按鈕,打開【外鍵關(guān)系】對(duì)話框。單擊【添加】按鈕,添加一個(gè)關(guān)系,單擊【表和列規(guī)范】右端的按鈕,打開【表和列】對(duì)話框。主鍵表選擇表BookInfo,主鍵為字段BookID,外鍵表選擇borrowinfo,外鍵為字段BookID,點(diǎn)擊【確定】,返回關(guān)系對(duì)話框,將標(biāo)識(shí)名稱修改為FK_borrowinf_BookInfo_BookID。同樣的方法設(shè)置外鍵Readerid。數(shù)據(jù)完整性3.1.2
數(shù)據(jù)完整性約束的實(shí)現(xiàn)3、參照完整性約束的實(shí)現(xiàn)
任務(wù)3.1參照完整性指的是表與表之間存在的相互依賴性,如數(shù)據(jù)庫libsys中,有3張表,即bookinfo圖書信息表、readerinfo讀者信息表和borrowinfo借閱情況表,borrowinfo記錄的信息是哪些讀者在什么時(shí)候借閱了哪些書,因此borrowinfo表的readerID列(表示讀者號(hào))來自于borrowinfo表中的readerID,bookid列(表示書號(hào))來源于bookinfo表的bookid列,用外鍵約束(foreignkey)實(shí)現(xiàn),bookinfo和readerinfo稱為主鍵表,borrowinfo稱為外鍵表。用命令實(shí)現(xiàn):在建立外鍵表borrowinfo的命令中,設(shè)置列ReaderID時(shí),增加外鍵約束,命令是:ReaderIDchar(10)primarykeyforeignkeyreferencesReaderInfo(ReaderID)或者ReaderIDchar(10)primarykeyconstraintFK_BorrowInfo_ReaderInfo_ReaderIDforeignkeyreferencesReaderInfo(ReaderID)2.同樣建立外鍵表borrowinfo的外鍵BookID的命令是:BookIDchar(10)primarykeyforeignkeyreferencesBookInfo(BookID)或者ReaderIDchar(10)primarykeyconstraintFK_BorrowInfo_BookInfo_BookIDforeignkeyreferencesBookInfo(BookID)創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)3.2.1
用SSMS創(chuàng)建表結(jié)構(gòu)例3-1利用SSMS給libsys添加讀者信息表readerinfo。
任務(wù)3.2【數(shù)據(jù)庫】-【libsys】-【表】,右擊“表”,-【新建】-【表】。設(shè)置各列的列名、數(shù)據(jù)類型、允許Null值設(shè)置主鍵保存表創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)3.2.2
用CREATETABLE命令創(chuàng)建表結(jié)構(gòu)建立表的命令格式是:
任務(wù)3.2CREATETABLE表名(列名類型(長(zhǎng)度){列約束}[,…n][表約束])例3-2利用SQL命令給libsys數(shù)據(jù)庫添加讀者信息表ReaderInfo,要求如圖:
USElibsysGO--建立ReaderInfo表的結(jié)構(gòu)CREATETABLEReaderInfo(
ReaderIDchar(10)PRIMARYKEY,
ReaderNamechar(10)NOTNULL,
ReaderSexchar(2)NOTNULL,
ReaderAgeintNULL,
Departmentvarchar(30)NOTNULL,
ReaderTypechar(10)NOTNULL,
StartDatedatetimeNOTNULL,
Mobilevarchar(12)NULL,
Emailvarchar(40)NULL,
Memoryvarchar(50)NULL)GO創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)3.2.3
創(chuàng)建帶完整性約束的表任務(wù)3.2例3-4:建立一個(gè)工人信息表,包括編號(hào)、姓名、職務(wù)。要求主鍵為編號(hào)姓名具有唯一性,用constraint定義約束。createtable職工信息表(編號(hào)char(10),姓名char(8),職務(wù)char(12),constraintpk_職工信息表_編號(hào)primarykey(編號(hào)),constraintuq_職工信息表_姓名unique(姓名))創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)3.2.3
創(chuàng)建帶完整性約束的表任務(wù)3.2例3-5:建立一個(gè)職員基本信息表baseinfo,包括編號(hào)no、姓名name、性別sex、電話tele、Email要求:性別只接受男和女,默認(rèn)為男,電話必須是8位數(shù)字,Email中必須含有@符號(hào)。createtablebaseinfo(nochar(10),namechar(8),sexchar(2)default'男',constraintchk_sexcheck(sex='男'orsex='女'),telechar(8),constraintCK_telecheck(telelike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),Emailvarchar(30),constraintck_Emailcheck(Emaillike'%@%'))創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)3.2.3
創(chuàng)建帶完整性約束的表任務(wù)3.2例3-6外鍵的使用,用SQL命令為數(shù)據(jù)庫scoresys建立表Score,如表。其中SID字段是主鍵,也是外鍵約束,來源于Student表的SID字段,CourseID字段是主鍵,也是外鍵約束,來源于Course表的CourseID字段。USEscoresysGOCREATETABLEScore(SIDchar(12)foreignkeyreferencesstudent(SID),CourseIDchar(10)foreignkeyreferencescourse(CourseID),ExamTimedatetimeNOTNULL,Markdecimal(4,1)NULL,ExamPlacevarchar(20)NULL,Memoryvarchar(20)NULL,PRIMARYKEY(SID,CourseID,ExamTime))GO修改數(shù)據(jù)表結(jié)構(gòu)3.3.1
用SSMS修改表結(jié)構(gòu)任務(wù)3.3右擊表名,在彈出的快捷菜單中,執(zhí)行【設(shè)計(jì)】即可打開表結(jié)構(gòu),與建立表時(shí)的顯示內(nèi)容相同,可以直接修改。修改完成后,單擊【保存】按鈕或者關(guān)閉標(biāo)簽頁面使修改生效。如果表中已經(jīng)輸入了記錄,則修改結(jié)構(gòu)時(shí),可能會(huì)造成數(shù)據(jù)的損壞或者丟失,需要謹(jǐn)慎操作。比如某列的數(shù)據(jù)類型發(fā)生改變,則這列的數(shù)據(jù)可能會(huì)丟失,如果某列的長(zhǎng)度由長(zhǎng)變短,則原來記錄中超出此列現(xiàn)有長(zhǎng)度的數(shù)據(jù)將會(huì)被自動(dòng)截掉,且不可恢復(fù)。修改數(shù)據(jù)表結(jié)構(gòu)3.3.2
用命令修改表結(jié)構(gòu)任務(wù)3.3修改表結(jié)構(gòu)的命令是ALTERTABLE。ALTERTABLE表名{ALTERCOLUMN列名類型[列約束]ADD列名類型[列約束]ADDCONSTRAINT約束名約束內(nèi)容DROPCOLUMN列名[,…n]}例3-7假設(shè)已有數(shù)據(jù)庫factory,增加一個(gè)工人信息表employee。usefactorygocreatetableemployee(idchar(8)primarykey,namechar(20)notnull,departmentchar(20)null,ageint,cqint,)修改數(shù)據(jù)表結(jié)構(gòu)3.3.2
用命令修改表結(jié)構(gòu)任務(wù)3.3要求:在表中增加一個(gè)salary字段,刪除age字段,修改cq字段的數(shù)據(jù)類型。例3-7假設(shè)已有數(shù)據(jù)庫factory,增加一個(gè)工人信息表employee。usefactorygocreatetableemployee(idchar(8)primarykey,namechar(20)notnull,departmentchar(20)null,ageint,cqint,)altertableemployeeaddsalaryfloataltertableemployeedropcolumnagealtertableemployeealtercolumncqdecimal(4,1)例3-8在上例數(shù)據(jù)庫factory的工人信息表employee中,增加一個(gè)約束,將年齡(age)限制在20-60之間。altertableemployeeaddconstraintchk_agecheck(age>=20andage<=60)數(shù)據(jù)表的創(chuàng)建與管理項(xiàng)目總結(jié)項(xiàng)目三1、主要內(nèi)容任務(wù)3.1數(shù)據(jù)的完整性約束任務(wù)3.2創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)任務(wù)3.3修改數(shù)據(jù)表結(jié)構(gòu)2、自測(cè)數(shù)據(jù)的完整性約束有哪些?創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)時(shí),列的參數(shù)有哪些?創(chuàng)建帶約束的數(shù)據(jù)表結(jié)構(gòu),用SSMS和命令實(shí)現(xiàn),哪個(gè)更容易一點(diǎn)?刪除數(shù)據(jù)后,已建立數(shù)據(jù)表還存在嗎?項(xiàng)目四數(shù)據(jù)基本操作任務(wù)4.1向數(shù)據(jù)表中添加記錄任務(wù)4.3刪除數(shù)據(jù)表中的數(shù)據(jù)記錄任務(wù)4.2更新數(shù)據(jù)表中的數(shù)據(jù)記錄123任務(wù)4.1向數(shù)據(jù)表中添加記錄4.1.1用SSMS向數(shù)據(jù)庫表中添加記錄4.1.2用SQL命令向數(shù)據(jù)庫表中添加記錄向數(shù)據(jù)表中添加記錄4.1.1用SSMS向數(shù)據(jù)庫表中添加記錄在SSMS管理器窗口中,右擊表名,在表的快捷菜單中選擇“編輯前200行”,即可進(jìn)入記錄的輸入界面,如圖4-1所示,依次輸入各條記錄的內(nèi)容即可(必須一條記錄輸入完整后才能輸入下一條記錄)。在輸入記錄時(shí),當(dāng)前字段的值右邊會(huì)出現(xiàn)一個(gè)紅色的標(biāo)志,如圖4-2所示,表示數(shù)據(jù)已經(jīng)修改,提醒用戶保存數(shù)據(jù),單擊“保存”按鈕或者關(guān)閉窗口均可保存。任務(wù)4.1圖4-1數(shù)據(jù)表的快捷菜單圖4-2數(shù)據(jù)輸入輸入一條記錄后,系統(tǒng)會(huì)根據(jù)主鍵的值由小到大自動(dòng)重新排列記錄的順序。如果輸入記錄后,如果記錄后無法保存,一般原因是不符合約束要求,請(qǐng)ESC鍵取消后重新輸入,連續(xù)按ESC鍵可以取消當(dāng)前行的全部輸入。任務(wù)4.1圖4-3表BookInfo的記錄向數(shù)據(jù)表中添加記錄4.1.1用SSMS向數(shù)據(jù)庫表中添加記錄1、用INSERT添加數(shù)據(jù)記錄在SQLSERVER中,可以使用INSERT命令向數(shù)據(jù)庫表中添加記錄,其格式是:INSERT[INTO]表名[(列名1[,列名2…])]VALUES(值1[,值2…])在命令格式中INTO,可以省略;如果輸入所有列的內(nèi)容,則列名列表可以省略,如果只輸入部分列的值,則列名列表不可以省略,且VALUSE后面的值必須與列名列表要一一對(duì)應(yīng)。任務(wù)4.1向數(shù)據(jù)表中添加記錄4.1.2用SQL命令向數(shù)據(jù)庫表中添加記錄例4-1用SQL命令給表BookInfo輸入圖4-3所示的11條記錄。任務(wù)4.1圖4-3表BookInfo的記錄向數(shù)據(jù)表中添加記錄4.1.2用SQL命令向數(shù)據(jù)庫表中添加記錄例4-1用SQL命令給表BookInfo輸入圖4-3所示的11條記錄。-
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年新疆天山職業(yè)技術(shù)大學(xué)單招職業(yè)技能考試參考題庫含詳細(xì)答案解析
- 2026年菏澤家政職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年安徽商貿(mào)職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026貴州民族大學(xué)招聘52人考試重點(diǎn)題庫及答案解析
- 2026年江西建設(shè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考試題及答案詳細(xì)解析
- 2026四川廣安市前鋒區(qū)財(cái)政局招聘勞務(wù)派遣制從事相關(guān)專業(yè)施工圖設(shè)計(jì)評(píng)審工作者1人參考考試題庫及答案解析
- 2026年湖北國(guó)土資源職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試參考題庫含詳細(xì)答案解析
- 2026年山東藥品食品職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026年明達(dá)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試備考題庫含詳細(xì)答案解析
- 2026年貴州電子商務(wù)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬試題含詳細(xì)答案解析
- 山東省濟(jì)南市2024屆高三第一次模擬考試(濟(jì)南一模)化學(xué)試題附參考答案(解析)
- 建設(shè)工程施工專業(yè)分包合同(GF-2003-0213)
- 標(biāo)準(zhǔn)化在企業(yè)知識(shí)管理和學(xué)習(xí)中的應(yīng)用
- 高中思政課考試分析報(bào)告
- 發(fā)展?jié)h語中級(jí)閱讀教學(xué)設(shè)計(jì)
- 《異丙腎上腺素》課件
- 本質(zhì)安全設(shè)計(jì)及其實(shí)施
- 超聲引導(dǎo)下椎管內(nèi)麻醉
- 包裝秤說明書(8804C2)
- 濟(jì)青高速現(xiàn)澆箱梁施工質(zhì)量控制QC成果
- 管道對(duì)接施工方案正式版
評(píng)論
0/150
提交評(píng)論