數(shù)據(jù)庫技術(shù)與應(yīng)用第04章.ppt
《數(shù)據(jù)庫技術(shù)與應(yīng)用第04章.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫技術(shù)與應(yīng)用第04章.ppt(48頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
第4章數(shù)據(jù)庫管理本章導(dǎo)讀本章主要介紹了有關(guān)數(shù)據(jù)表的操作,包括表的創(chuàng)建、修改、刪除和建立索引等操作以及表中數(shù)據(jù)維護(hù)的有關(guān)操作和方法,基本掌握使用SQLServerManagementStudio和T-SQL語句對表的操作和表的數(shù)據(jù)操作,包括創(chuàng)建表、刪除表、對表中字段建立索引、向表中增加數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)等。要對SQLServer2005中的數(shù)據(jù)類型有一個(gè)清楚的認(rèn)識。,4.1數(shù)據(jù)庫的創(chuàng)建與管理,4.1.1SQLServer系統(tǒng)數(shù)據(jù)庫1.系統(tǒng)數(shù)據(jù)庫1)Master數(shù)據(jù)庫2)Model數(shù)據(jù)庫3)Msdb數(shù)據(jù)庫4)Tempdb數(shù)據(jù)庫5)Resource數(shù)據(jù)庫6)Distribution數(shù)據(jù)庫2.?dāng)?shù)據(jù)庫快照,4.1數(shù)據(jù)庫的創(chuàng)建與管理,4.1.2數(shù)據(jù)庫的創(chuàng)建,1.準(zhǔn)備創(chuàng)建數(shù)據(jù)庫(學(xué)生選課),,1)確定數(shù)據(jù)庫的名稱、所有者(創(chuàng)建數(shù)據(jù)庫的用戶)數(shù)據(jù)庫名稱:studentcourse2)確定存儲該數(shù)據(jù)庫的數(shù)據(jù)文件的大小及文件空間增長方式,確定關(guān)系、索引,及系統(tǒng)存儲參數(shù)的配置,確定數(shù)據(jù)庫的存取方法。主數(shù)據(jù)文件:邏輯名稱studentcourse;物理文件名:C:\Data\studentcourse.mdf,初始大小:3MB,最大空間:UNLIMITED,空間增加量:1MB,屬于文件組primary。次數(shù)據(jù)文件:邏輯名稱secondsc;物理文件名:C:\mydb\secondsc.ndf,初始大?。?MB,最大空間:50MB,空間增加量:1MB,屬于文件組group1。日志文件:邏輯名稱studentcourse_log;物理文件名:C:\Log\studentcourse_log.ldf,始初大?。?MB,最大空間:20MB,空間增加量:10%索引:每一數(shù)據(jù)表關(guān)于主關(guān)鍵字建立索引文件。,2.使用SQLServerManagementStudio創(chuàng)建數(shù)據(jù)庫,3.1關(guān)系數(shù)據(jù)庫設(shè)計(jì)思路,,圖4.1【創(chuàng)建數(shù)據(jù)庫】界面,圖4.2【新建數(shù)據(jù)庫】對話框,3.使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫,1)命令格式CREATEDATABASE[ON[PRIMARY][[,…N]][,[,…N]]][LOGON{[,…N]}]其中,[[,…N]]表示設(shè)置文件屬性,格式如下。([NAME=邏輯文件名,]FILENAME=‘物理文件名稱’[,SIZE=數(shù)據(jù)庫文件的初始容量值][,MAXSIZE={物理文件的最大容量值|UNLIMITED}][,F(xiàn)ILEGROWTH=增加容量值])[,…N]其中[[,…N]]表示設(shè)置文件組屬性,格式如下。FILEGROUP文件組名稱[DEFAULT][,…N],2)參數(shù)說明(1)放在“[]”中的“”表示整個(gè)“[]”括起來的選項(xiàng)都可省略,如果不省,則“”括起的選項(xiàng)不能省。使用“|”分隔的多個(gè)選項(xiàng),表示只能選擇其中一個(gè)。(2)數(shù)據(jù)庫的名稱必須符合標(biāo)識符規(guī)則,最長為128個(gè)字符。數(shù)據(jù)庫名稱在SQLServer的實(shí)例中必須唯一。數(shù)據(jù)庫的邏輯文件名是數(shù)據(jù)庫在SQLServer中的標(biāo)識符。FILENAME指定數(shù)據(jù)庫物理文件名稱和路徑,它和數(shù)據(jù)庫邏輯名稱一一對應(yīng)。文件組的邏輯名稱必須在數(shù)據(jù)庫中唯一,不能是系統(tǒng)提供的名稱PRIMARY和PRIMARY_LOG。(3)“ON”定義數(shù)據(jù)文件;“PRIMARY”定義主文件組中的文件;“LOGON”定義日志文件。一個(gè)數(shù)據(jù)庫只能有一個(gè)主文件,如果沒有定義主文件,列在數(shù)據(jù)文件項(xiàng)的第一個(gè)文件就是主文件。,3.使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫,(4)數(shù)據(jù)庫文件容量單位可以是KB,MB,GB,TB,缺省值為MB,長度必須為整數(shù),主文件的,最小容量是Model數(shù)據(jù)庫的主文件長度;對于其他類型文件,最小長度為512KB。(5)MAXSIZE:指定物理文件的最大容量。如果不設(shè)置文件的最大尺寸,那么文件的增長最大值將是磁盤的所有空間。UNLIMITED選項(xiàng)允許文件增長到磁盤已滿。(6)FILEGROWTH:指定文件每次增加容量的大小或百分比,基數(shù)為當(dāng)前文件大小。當(dāng)FILEGROWTH=0時(shí),表示文件不增長。(7)DEFAULT:指定命名文件組為數(shù)據(jù)庫中的默認(rèn)文件組。,圖4.11用命令創(chuàng)建Studentcourse數(shù)據(jù)庫界面,CREATEDATABASEstudentcourseONPRIMARY(NAME=studentcourse,FILENAME=C:\DATA\studentcourse.mdf,SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB),FILEGROUP[group2](NAME=secondsc,FILENAME=C:\mydb\secondsc.ndf,SIZE=3072KB,MAXSIZE=51200KB,FILEGROWTH=1024KB)LOGON(NAME=studentcourse_log,FILENAME=C:\LOG\studentcourse_log.ldf,SIZE=1024KB,MAXSIZE=20480KB,FILEGROWTH=10%),3)創(chuàng)建學(xué)生選課數(shù)據(jù)庫,4.1.3管理數(shù)據(jù)庫,1.查看數(shù)據(jù)庫信息,1)命令格式EXECsp_helpdb[數(shù)據(jù)庫名]2)功能查看指定數(shù)據(jù)庫的相關(guān)數(shù)據(jù)文件信息、數(shù)據(jù)庫擁有者、創(chuàng)建時(shí)間等信息。若缺省數(shù)據(jù)庫名,則顯示所有數(shù)據(jù)庫信息。【例4.1】查看學(xué)生選課“studentcourse”數(shù)據(jù)庫的信息。方法一:使用SQLServerManagementStudio查看數(shù)據(jù)庫信息方法二:使用系統(tǒng)存儲過程命令查看數(shù)據(jù)庫信息。EXECsp_helpdbstudentcourse【例4.2】查看所有數(shù)據(jù)庫信息。EXECsp_helpdb,4.1.3管理數(shù)據(jù)庫,2.打開數(shù)據(jù)庫,1)命令格式USE2)功能使指定數(shù)據(jù)庫成為當(dāng)前數(shù)據(jù)庫【例4.3】打開學(xué)生選課“studentcourse”數(shù)據(jù)庫。方法一:使用SQLServerManagementStudio打開數(shù)據(jù)庫方法二:使用命令。USEstudentcourse,3.修改數(shù)據(jù)庫,1)命令格式AlterDatabase數(shù)據(jù)庫名{AddFile[,…N][ToFilegroup文件組名稱]|AddLogFile[,…N]|RemoveFile邏輯文件名稱[WithDelete]|ModifyFile|ModifyName=新數(shù)據(jù)庫名稱|AddFilegroup新增文件組名稱|RemoveFilegroup文件組名稱|ModifyFilegroup原文件組名稱{文件組屬性|Name=新文件組名稱}}2)功能AddFile:向數(shù)據(jù)庫添加文件。AddLogfile:向數(shù)據(jù)庫添加日志文件。RemoveFile:從數(shù)據(jù)庫中刪除文件。ModifyFile:對文件進(jìn)行修改,包括SIZE、FILEGROWTH和MAXSIZE,每次只能對一個(gè)屬性進(jìn)行修改。ModifyName:重新命名數(shù)據(jù)庫。Add|Remove|ModifyFilegroup:向數(shù)據(jù)庫中添加刪除修改文件組,【例4.4】向數(shù)據(jù)庫Studentcourse中添加一個(gè)名為group2的文件組,并在該文件組中添加一個(gè)名為Studentcourse2、路徑為默認(rèn)的次數(shù)據(jù)文件,初始值大小為2MB,最大值為50MB,文件以1MB增長;再添加一個(gè)名為Studentcourse_Log2的日志文件,初始值大小為1MB,最大值為100MB,文件以10%增長。然后對數(shù)據(jù)庫中Studentcourse2文件重命名為Studentcourse_2,最后把該文件從數(shù)據(jù)庫中移除。方法一:使用SQLServerManagementStudio方法二:使用SQL語言修改數(shù)據(jù)庫。命令如下所示:alterDATABASEstudentcourseaddfilegroupgroup2--新增group2文件組GO,3.修改數(shù)據(jù)庫,4.1.3管理數(shù)據(jù)庫,4.1.3管理數(shù)據(jù)庫,alterDATABASEstudentcourseaddfile(NAME=‘studentcourse2’,--新增studentcourse2次數(shù)據(jù)文件FILENAME=C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\studentcourse2.ndf,SIZE=2MB,MAXSIZE=50MB,FILEGROWTH=1MB)tofilegroupgroup2GoalterDATABASEstudentcoursemodifyfile--修改studentcourse主數(shù)據(jù)文件的文件增長為2MB(NAME=studentcourse,FILEGROWTH=2MB)GoalterDATABASEstudentcourseaddLOGfile--新增studentcourse_log2日志文件(NAME=Nstudentcourse_log2,FILENAME=C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\studentcourse_log2.ldf,SIZE=1MB,MAXSIZE=100MB,FILEGROWTH=10%)GoalterDATABASEstudentcoursemodifyfile(name=studentcourse2,newname=studentcourse_2)--對數(shù)據(jù)庫中studentcourse2次數(shù)據(jù)文件重命名成studentcourse_2GoalterDATABASEstudentcourseremovefilestudentcourse_2--從數(shù)據(jù)庫中移除studentcourse_2次要數(shù)據(jù)文件,1)命令格式DBCCSHRINKDATABASE(數(shù)據(jù)庫名[,Target_Percent])[{Notruncate|Truncateonly}]2)功能壓縮指定數(shù)據(jù)庫?!纠?.6】壓縮學(xué)生選課studentcourse數(shù)據(jù)庫,使其最大可用空間為30%。方法一:使用SQLServerManagementStudio壓縮數(shù)據(jù)庫方法二:使用SQL命令壓縮數(shù)據(jù)庫DBCCSHRINKDATABASE(Studentcourse,30),4.1.3管理數(shù)據(jù)庫,5.壓縮數(shù)據(jù)庫,4.1.3管理數(shù)據(jù)庫,【例4.7】壓縮學(xué)生選課數(shù)據(jù)庫studentcourse中的一個(gè)secondsc次數(shù)據(jù)文件,將其壓縮為2MB。方法一:使用SQLServerManagementStudio方法二:使用SQL命令。DBCCSHRINKFILE(secondsc,2),5.壓縮數(shù)據(jù)庫,4.2.1數(shù)據(jù)系統(tǒng)視圖,1.Sysobjects系統(tǒng)視圖2.Syscolumns系統(tǒng)視圖3.Sysindexes系統(tǒng)視圖4.Sysusers系統(tǒng)視圖5.Sysdatabases系統(tǒng)視圖6.Sysdepends系統(tǒng)視圖7.Sysconstraints系統(tǒng)視圖,4.2數(shù)據(jù)表的創(chuàng)建,1.?dāng)?shù)據(jù)類型及其確定原則2.SQLServer的九大類數(shù)據(jù)類型1)整型數(shù)據(jù)類型(Integer)2)精確數(shù)字?jǐn)?shù)據(jù)類型(ExactNumeric)3)近似數(shù)字?jǐn)?shù)據(jù)類型(ApproximateNumeric)4)貨幣數(shù)據(jù)類型(Monetary)5)日期和時(shí)間數(shù)據(jù)類型(DateTime)6)字符數(shù)據(jù)類型(Character)7)二進(jìn)制數(shù)據(jù)類型8)特殊數(shù)據(jù)類型9)自定義數(shù)據(jù)類型(UDT)EXEC,4.2.2數(shù)據(jù)類型,【例4.10】建一個(gè)以Datetime為基礎(chǔ)的出生日期(Birthday)可為空的數(shù)據(jù)類型。方法一:使用SQLServerManagementStudio方法二:使用SQL命令。EXECSP_ADDTYPEBirthday,Datetime,Null,4.2.2數(shù)據(jù)類型,4.2.3創(chuàng)建數(shù)據(jù)表結(jié)構(gòu),1.熟悉CREATETABLE語句的格式1)CREATETABLE語句的簡化格式CREATETABLE[{服務(wù)器名.[數(shù)據(jù)庫名].[架構(gòu)名].|數(shù)據(jù)庫名.[架構(gòu)名].|架構(gòu)名.}]數(shù)據(jù)庫表名(列名數(shù)據(jù)類型[NOTNULL][identity(初值,步長)][DEFAULT默認(rèn)值][UNIQUE][PRIMARYKEY][CLUSTERED|NONCLUSTERED][,列名數(shù)據(jù)類型[NOTNULL][DEFAULT默認(rèn)值][UNIQUE][,…n]][,列名AS計(jì)算列值的表達(dá)式[,…n]][,[CONSTRAINT主鍵約束名]PRIMARYKEY(屬性名)][,[CONSTRAINT檢查約束名]CHECK(邏輯表達(dá)式)[,n]][,[FOREIGNKEY(外鍵屬性)REFERENCES參照表(參照屬性)[,…n]])[ON{文件組|默認(rèn)文件組}],2)CREATETABLE語句的說明,【例4.11】創(chuàng)建數(shù)據(jù)庫“book_shop”的數(shù)據(jù)表book,數(shù)據(jù)表由書號、書名、出版社、出版日期、單價(jià)、數(shù)量、總價(jià)(單價(jià)*數(shù)量)、電子郵件地址和數(shù)據(jù)庫表使用者字段組成。其中書號列定義為主鍵并且為系統(tǒng)自動(dòng)編號即標(biāo)識列,種子值(起始值)為1000,增量為1,要求出版社字段的值只能是高教、浙大、電子和中央四個(gè)之一,電子郵件地址字段中必須包含@符號,單價(jià)必須大于0,數(shù)量必須大于等于0,出版日期的默認(rèn)值設(shè)置為當(dāng)前日期函數(shù)。(1)標(biāo)識IDENTITY屬性(2)計(jì)算所得的列(3)空值NULL約束(4)PRIMARYKEY約束(5)UNIQUE約束(6)DEFAULT約束(7)CHECK約束(8)FOREIGNKEY約束,方法一:使用SQLServerManagementStudio方法二:使用命令。EXECsp_helpdbstudentcourseCREATEdatabasebookshopGoCREATETABLEbook(書號intidentity(1000,1)NOTFORREPLICATIONPRIMARYKEYCLUSTERED,書名char(20)notnull,出版社char(20),出版日期datetimeDEFAULT(getdate()),單價(jià)smallintcheck(單價(jià)>0),數(shù)量smallintcheck(數(shù)量>=0),總價(jià)as單價(jià)*數(shù)量,電子郵件地址varchar(25),check(電子郵件地址like%@%),check(出版社in(高教,浙大,電子,中央))),2)CREATETABLE語句的說明,【例4.12】創(chuàng)建數(shù)據(jù)庫學(xué)生選課“studentcourse”的數(shù)據(jù)表S、C、SC,數(shù)據(jù)表結(jié)構(gòu)如表3.6,表3.7,表3.8所示。各表的完整性約束如表3.9,表3.10,表3.11所示。方法一:使用SQLServerManagementStudio創(chuàng)建數(shù)據(jù)表方法二:使用SQL命令。1)創(chuàng)建課程表C的語句如下:CREATETABLEC(課程號Char(3)NOTNULL,課程名Varchar(20)NOTNULL,學(xué)分SmallintNULL,預(yù)選課程號Char(3)NULL,教師Char(8)NULL,CONSTRAINTFK_PcnoFOREIGNKEY(預(yù)選課程號)REFERENCESC(課程號),CONSTRAINTCK_CnoCHECK(課程號Like[0-9][0-9]),CONSTRAINTPK_CPRIMARYKEYCLUSTERED(課程號ASC))ON[PRIMARY],2)CREATETABLE語句的說明,【例4.12】創(chuàng)建數(shù)據(jù)庫學(xué)生選課“studentcourse”的數(shù)據(jù)表S、C、SC,數(shù)據(jù)表結(jié)構(gòu)如表3.6,表3.7,表3.8所示方法二:使用SQL命令。2)創(chuàng)建學(xué)生基本信息表S的語句如下:CREATETABLES(學(xué)號Char(6)NOTNULLDEFAULT(J0400),姓名Char(8)NOTNULL,性別Char(2)NOTNULL,出生日期DatetimeNOTNULLDEFAULT(19800101),系Varchar(20)NOTNULL,電話Char(8)NULL,CHECK(學(xué)號Like[A-Z][0-9][0-9][0-9][0-9]),CHECK(性別=女OR性別=男),CHECK(電話Like[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]),CONSTRAINTPK_SPRIMARYKEYCLUSTERED(學(xué)號ASC))ON[PRIMARY],2)CREATETABLE語句的說明,【例4.12】創(chuàng)建數(shù)據(jù)庫學(xué)生選課“studentcourse”的數(shù)據(jù)表S、C、SC,數(shù)據(jù)表結(jié)構(gòu)如表3.6,表3.7,表3.8所示各表的完整性約束如表3.9,表3.10,表3.11所示。方法二:使用SQL命令。3)創(chuàng)建學(xué)生選課數(shù)據(jù)表SC的語句如下:CREATETABLESC(學(xué)號Char(6)NOTNULL,課程號Char(3)NOTNULL,成績SmallintNULL,FOREIGNKEY(課程號)REFERENCESC(課程號),FOREIGNKEY(學(xué)號)REFERENCESS(學(xué)號),CHECK(成績>=(0)AND成績<=(100)OR成績ISNULL),PRIMARYKEYCLUSTERED(學(xué)號ASC,課程號ASC)),2)CREATETABLE語句的說明,【例4.13】返回有關(guān)所有對象的信息。USEMaster;GOEXECSp_Help;GO【例4.14】返回學(xué)生選課“studentcourse”中學(xué)生表的信息。USEStudentcourseGOEXECSp_Helps,4.2.5查看數(shù)據(jù)表,1.修改表的結(jié)構(gòu),1)命令格式ALTERTABLE{ALTERCOLUMN類型(寬度)[NULL|NOTNULL]|ADD類型(寬度)[NULL|NOTNULL][完整性約束][,…n]|DROPCOLUMN[[CASCADE︱RESTRICT]][,…n]|DROP[CONSTRAINT|ALL][,…n]}2)功能ALTERTABLE:將要修改的當(dāng)前數(shù)據(jù)庫中的指定數(shù)據(jù)表的表名。ALTERCOLUMN:修改當(dāng)前數(shù)據(jù)庫中的指定數(shù)據(jù)表的指定屬性。ADD:向當(dāng)前數(shù)據(jù)庫中的指定數(shù)據(jù)表增加指定屬性或列級完整性約束。DROPCOLUMN:刪除當(dāng)前數(shù)據(jù)庫中的指定數(shù)據(jù)表中的指定屬性。DROP:刪除當(dāng)前數(shù)據(jù)庫中的指定數(shù)據(jù)表中的指定列級完整性約束。,4.2.6修改數(shù)據(jù)表,【例4.15】修改當(dāng)前數(shù)據(jù)庫“studentcourse”中S表的系屬性改成char(25),增加一個(gè)入學(xué)時(shí)間字段,它的數(shù)據(jù)類型為datetime,并設(shè)置默認(rèn)值為getdate(),最后刪除入學(xué)時(shí)間字段。方法一:使用SQLServerManagementStudio方法二:使用命令。EXECsp_helpdbstudentcourseALTERTABLEsALTERCOLUMN系char(25)GoALTERTABLEsADD入學(xué)時(shí)間datetimeGoALTERTABLEsADDCONSTRAINTDF_sjDEFAULT(getdate())for入學(xué)時(shí)間,4.2.6修改數(shù)據(jù)表,2.修改表的名稱,1)命令格式Sp_rename,2)功能重命名當(dāng)前數(shù)據(jù)庫中的指定數(shù)據(jù)表名。【例4.16】重命名數(shù)據(jù)庫bookshop的數(shù)據(jù)表book名稱,改為“書籍資料”。方法一:使用SQLServerManagementStudio方法二:使用SQL命令。Sp_rename‘book’,‘書籍資料’,4.2.6修改數(shù)據(jù)表,1)命令格式DROPTABLE表名2)功能刪除表【例4.17】刪除當(dāng)前數(shù)據(jù)庫中的表S。方法一:使用SQLServerManagementStudio方法二:使用SQL命令。DROPTABLES,4.2.7刪除數(shù)據(jù)表,4.3.1使用SQLServerManagementStudio插入、修改與刪除數(shù)據(jù),4.3數(shù)據(jù)庫表的操作,4.3.2使用T-SQL語句進(jìn)行插入、修改和刪除數(shù)據(jù),1.插入數(shù)據(jù)2.更新數(shù)據(jù)3.刪除記錄,插入數(shù)據(jù)記錄的方法有三種,第一種是利用SQLServerManagementStudio,第二種是使用SELECT查詢語句(本節(jié)暫不介紹),第三種是使用INSERT命令。1)命令格式INSERTINTO數(shù)據(jù)表名(列名表)VALUES(元組值)INSERTINTO數(shù)據(jù)表名(列名表)SELECT查詢語句INSERTINTO數(shù)據(jù)表名(列名表)DEFAULTVALUES2)功能向指定數(shù)據(jù)表的屬性列插入數(shù)據(jù),VALUES后跟的元組值為屬性列提供數(shù)據(jù)。其中列名表中的屬性排列順序和VALUES后跟的元組值的排列順序要一致。對應(yīng)的數(shù)據(jù)類型要一致。如果沒有指定列名表,則表示數(shù)據(jù)表中的所有屬性列。“DEFAULTVALUES”選項(xiàng)會(huì)將默認(rèn)值插入到該屬性列中,如果某列沒有默認(rèn)值,允許則向該列插入空值NULL,如果某列不允許空值也沒有默認(rèn)值,則會(huì)出錯(cuò)。,1.插入數(shù)據(jù),【例4.19】以下示例使用屬性列顯式指定插入到每個(gè)列的值。方法一:使用SQLServerManagementStudio方法二:使用SQL命令。USEStudentcourseGOINSERTINTOs(學(xué)號,姓名,性別,出生日期,系)VALUES(L0401,張?jiān)讫?男,1987-11-11,路橋系)GOSELECT*FROMs,1.插入數(shù)據(jù),【例4.20】將查詢結(jié)果插入數(shù)據(jù)表,如將學(xué)號‘L0401’、成績80以及課程表中所有課程號插入到sc中。方法一:使用SQLServerManagementStudio方法二:使用SQL命令。USEStudentcourseGOINSERTINTOscSELECTL0401,課程號,80FROMcGOSELECT*FROMsc,1.插入數(shù)據(jù),1)命令格式UPDATE基本表名SET列名=值表達(dá)式[,列名=值表達(dá)式…][WHERE條件表達(dá)式]2)功能更新指定基本表,滿足WHERE子句條件的記錄的指定屬性值。其中值表達(dá)式可以是常量、變量、表達(dá)式。若缺省WHERE,則修改表中的所有元組。但在進(jìn)行修改操作時(shí),需注意數(shù)據(jù)庫的一致性。【例4.21】更新s表中的所有行出生日期列中的值變?yōu)樵錾掌谥导?。方法一:使用SQLServerManagementStudio方法二:使用SQL命令USEStudentcourseGOUPDATEsSET出生日期=出生日期+1,2.更新數(shù)據(jù),【例4.22】將選C01課程的學(xué)號是L0401的學(xué)生的成績改成85分。USEStudentcourseGOUPDATEscSET成績=85WHERE課程號=C01AND學(xué)號=L0401‘GOSELECT*FROMscGO【例4.23】將張?jiān)讫垖W(xué)生的成績減少5分。USEStudentcourseGOUPDATEscSET成績=成績-5WHERE學(xué)號IN(SELECT學(xué)號FROMsWHERE姓名=張?jiān)讫?GOSELECT*FROMsc,2.更新數(shù)據(jù),1)命令格式DELETEFROM基本表名[WHERE條件表達(dá)式]2)功能刪除表【例4.24】刪除學(xué)號為L0401的學(xué)生選課信息。USEStudentcourseGODELETEFROMscWhere學(xué)號=L0401‘GOSELECT*FROMsc【例4.25】從SC表中刪除所有行USEStudentcourseGODELETEFROMscGOSELECT*FROMsc,3.刪除記錄,4.刪除所有行,1)命令格式TRUNCATETABLE[{數(shù)據(jù)庫名.[架構(gòu)名].|架構(gòu)名.}]表名[;]2)功能使用TRUNCATETABLE命令刪除所有行?!纠?.26】從學(xué)生選課數(shù)據(jù)表SC中刪除所有行。TRUNCATETABLEstudentcourse.DBO.scGOSELECT*FROMsc,1.索引的作用1)加速數(shù)據(jù)檢索2)優(yōu)化查詢3)強(qiáng)制數(shù)據(jù)完整性2.索引的分類1)聚集索引2)非聚集索引3)唯一索引,4.4索引管理,4.4.1索引概述,1)命令格式CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX索引名ON數(shù)據(jù)表名|視圖名(字段名表[ASC|DESC][,…n])[WITH[PAD_INDEX][[,]FILLFACTOR=填充因子][[,]IGNORE_DUP_KEY][[,]STATISTICS_NORECOMPUTE]][ON文件組名]2)功能只有在指定的索引名稱存在時(shí),才能使用DROP_EXISTING選項(xiàng),該項(xiàng)說明首先刪除指定表的索引后再重新構(gòu)造它。“UNIQUE”表示建立唯一索引。CLUSTERED表示建立聚集索引,NOCLUSTERED表示建立非聚集索引。,4.4.2創(chuàng)建索引,4.4.2創(chuàng)建索引,表4.11“studentcourse”索引情況表,【例4.28】使用SQL命令,在數(shù)據(jù)庫“studentcourse”中的數(shù)據(jù)表S中,關(guān)于“學(xué)號”建立聚集索引,關(guān)于“姓名”建立非聚集索引。CREATEINDEXIN_姓名ons(姓名)CREATEuniqueclusteredINDEXIN_學(xué)號ons(學(xué)號)WITHpad_index,fillfactor=100--填充因子為100【例4.29】為數(shù)據(jù)庫“studentcourse”中的數(shù)據(jù)表關(guān)于c.課程名降序建立唯一索引IN_課程名。IFEXISTS(selectnamefromsysindexeswherename=IN_課程名)DROPINDEXc.IN_課程名GoUSEstudentcourseCREATEuniqueINDEXIN_課程名onc(課程名desc)。,4.4.2創(chuàng)建索引,1)命令格式DROPINDEX索引名[,…n]2)功能刪除指定的索引??梢粤谐龆鄠€(gè)要?jiǎng)h除的索引名。利用DROPINDEX命令刪除通過定義PRIMARYKEY或UNIQUE約束創(chuàng)建的索引,必須先刪除指定的約束。在系統(tǒng)表的索引不能使用DROPINDEX刪除。刪除表中的聚集索引,將使表中的所在非聚集索引重建。【例4.32】刪除數(shù)據(jù)庫“studentcourse”中,數(shù)據(jù)表sc中的索引IN_成績、數(shù)據(jù)表c中的索引IN_課程名。UsestudentcourseDROPINDEXsc.IN_成績,c.IN_課程名,4.4.3刪除索引,1.查看表中的索引1)命令格式sp_helpindex[@objname=]表或視圖的名稱‘2)功能報(bào)告有關(guān)表或視圖上索引的信息,當(dāng)前數(shù)據(jù)庫中表或視圖的名稱的數(shù)據(jù)類型為nvarchar(776)。【例4.33】查看“studentcourse”數(shù)據(jù)庫中的數(shù)據(jù)表S上索引的類型。運(yùn)行結(jié)果如圖4.59所示。UsestudentcourseGOsp_helpindexs,4.4.4查看索引,【例4.36】修改在【例4.27】中創(chuàng)建的索引IX_teacher,修改后的索引基于“教師”和“課程名”,成為組合索引。,4.4.5修改索引,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)庫技術(shù) 應(yīng)用 04
鏈接地址:http://www.820124.com/p-11536455.html