數(shù)據(jù)庫原理及應用第04章第2部分_第1頁
數(shù)據(jù)庫原理及應用第04章第2部分_第2頁
數(shù)據(jù)庫原理及應用第04章第2部分_第3頁
數(shù)據(jù)庫原理及應用第04章第2部分_第4頁
數(shù)據(jù)庫原理及應用第04章第2部分_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、SQL Server 2005第1頁第第4章章數(shù)據(jù)庫表的操作(二)數(shù)據(jù)庫表的操作(二) SQL Server 2005第2頁回顧回顧 (1)創(chuàng)建表CREATE TABLE ( 列名1 列的數(shù)據(jù)類型及寬度等特征, 列名2 列的數(shù)據(jù)類型及寬度等特征,)SQL Server 2005第3頁回顧回顧 (2)數(shù)據(jù)完整性:n域完整性(Not null 、Default 、Check )n實體完整性(Primary key 、Unique )n參考完整性(Foreign key )SQL Server 2005第4頁回顧 (3)數(shù)據(jù)完整性控制(約束):n默認約束:Constraint DF_表名 defau

2、lt for n檢查約束:Constraint CK_表名 check(邏輯表達式)n主鍵約束:Constraint PK_表名 primary key (約束列1,約束列2,)n唯一性約束:Constraint UQ_表名 unique (約束列)n外鍵約束:Constraint FK_表名_參照表名 foreign key(約束列) references SQL Server 2005第5頁nALTER命令增加表的字段命令增加表的字段nALTER命令修改表的字段命令修改表的字段nALTER命令刪除表的字段命令刪除表的字段nALTER命令的增加表的約束命令的增加表的約束nALTER命令刪除表

3、的約束命令刪除表的約束nALTER命令啟用和暫停約束命令啟用和暫停約束n數(shù)據(jù)庫中表的數(shù)據(jù)插入、修改和刪除數(shù)據(jù)庫中表的數(shù)據(jù)插入、修改和刪除本章(2)目標 SQL Server 2005第6頁ALTER TABLE命令的語法如下:ALTER TABLE ADD 列約束 ,. n |WITH CHECK|WITH NOCHECK ADD ,. n |DROP COLUMN 列名|CONSTRAINT 約束名 ,. n |ALTER COLUMN 列名 新數(shù)據(jù)類型(新數(shù)據(jù)寬度,新小數(shù)位數(shù)) | CHECK|NOCHECK CONSTRAINT ALL 約束名 ,. n ALTER TABLE 命令增加

4、列增加列增加列約束增加列約束啟用或禁止約束新添加的外鍵或檢查約束啟用或禁止約束新添加的外鍵或檢查約束獨立增加約束獨立增加約束刪除列刪除列刪除約束刪除約束修改列修改列啟用或禁止約束啟用或禁止約束SQL Server 2005第7頁創(chuàng)建數(shù)據(jù)庫表(GoodsInfo)以以T-SQL語句建立商品類別表(語句建立商品類別表(GoodsClass)和商品信息表)和商品信息表(GoodsInfo)。)。任務2-1SQL Server 2005第8頁創(chuàng)建數(shù)據(jù)庫表(GoodsInfo)CREATE TABLE GoodsInfo(GoodsID varchar(50) PRIMARY KEY,ClassID v

5、archar(10) NOT NULL, GoodsName varchar(250) NOT NULL,BarCode varchar(20) NOT NULL,StoreNum int )主鍵主鍵對象類型對象類型表名表名列名列名列的數(shù)據(jù)類型及寬度列的數(shù)據(jù)類型及寬度SQL Server 2005第9頁創(chuàng)建數(shù)據(jù)庫表(GoodsClass)CREATE TABLE GoodsClass(ClassID varchar(10) PRIMARY KEY, ClassName varchar(50)SQL Server 2005第10頁增加列ALTER TABLE GoodsInfo ADD Good

6、sUnit varchar(4), Price money注意點:注意點:(1)讀者常犯的錯誤是將)讀者常犯的錯誤是將add GoodsUnit varchar(4)書寫成:書寫成:add column GoodsUnit varchar(4),多了,多了column部分,這是因為刪除列的部分,這是因為刪除列的格式是這樣的:格式是這樣的:drop column 。(2)向表中增加一列時,應使)向表中增加一列時,應使新增加新增加的列的列有有默認值默認值或或允許為允許為空值空值,否則表為應沒有數(shù)據(jù)可增加空值否則表為應沒有數(shù)據(jù)可增加空值。不能有!不能有!修改命令修改命令修改對象類型(表)修改對象類型

7、(表)修改表名修改表名增加列類型及寬度增加列類型及寬度增加關鍵字增加關鍵字SQL Server 2005第11頁修改列ALTER TABLE GoodsInfoALTER COLUMN BarCode char(13)ALTER TABLE GoodsInfoALTER COLUMN GoodsName varchar(100)注意點:注意點:(1)不允許能對)不允許能對主鍵列主鍵列進行修改。進行修改。(2)只能修改列的)只能修改列的數(shù)據(jù)類型數(shù)據(jù)類型和和寬度寬度及列值可否為空,默及列值可否為空,默認情況下,列是被設置為允許空值的,將一個原來允許為認情況下,列是被設置為允許空值的,將一個原來允許

8、為空的列設置為不允許為空,必須在列中沒有存放空值的記空的列設置為不允許為空,必須在列中沒有存放空值的記錄和在列上沒有創(chuàng)建索引都能滿足的前提下才能成功;不錄和在列上沒有創(chuàng)建索引都能滿足的前提下才能成功;不能修改列名,能修改列名,如果要如果要修改列名、數(shù)據(jù)類型及寬度,修改列名、數(shù)據(jù)類型及寬度,則需要則需要先先刪除該列,刪除該列,然后再添加這列然后再添加這列。(3)不能)不能同時修改兩列同時修改兩列 。不能少!不能少!不能少!不能少!SQL Server 2005第12頁刪除列ALTER TABLE GoodsInfoDROP COLUMN BarCode注意點:注意點:(1) T-SQL命令不能為

9、:命令不能為:alter table GoodsInfo drop BarCode。(2)不能刪除主鍵列不能刪除主鍵列GoodsID。(3)在刪除非普通列,)在刪除非普通列,例如例如具有約束的列或為其他列所具有約束的列或為其他列所依賴的列時,需要依賴的列時,需要先刪除相應的約束或依賴信息先刪除相應的約束或依賴信息,再刪除,再刪除該列。例如,該列。例如,假如假如某列具有默認約束,則需某列具有默認約束,則需先刪除默認約先刪除默認約束,再刪除該列束,再刪除該列。 不能少!不能少!SQL Server 2005第13頁ALTER TABLE GoodsInfoADD CONSTRAINT FK_Goo

10、dsInfo_ClassID FOREIGN KEY(ClassID) REFERENCES GoodsClass(ClassID),CONSTRAINT CK_GoodsInfo_BarCodecheck (BarCode LIKE 0-90-90-90-90-90-90-90-90-90-90-90-90-9),CONSTRAINT UQ_GoodsInfo_BarCode UNIQUE(BarCode),DEFAULT 0 FOR Price,DEFAULT 0 FOR StoreNum對表(GoodsInfo)添加約束不能不能少!少!唯一鍵約束唯一鍵約束外鍵約束名外鍵約束名外鍵約束外鍵

11、約束檢查約束檢查約束默認約束默認約束SQL Server 2005第14頁注意點:(1)我們在書中任務中創(chuàng)建的表時,列Goodsinfo是允許為空的,這樣在創(chuàng)建主鍵約束時就不能創(chuàng)建,因此,在創(chuàng)建主鍵約束,該列(或組合列)不能為空。(2)在對GoodsInfo表的列GoodsID創(chuàng)建外鍵約束時,必須保證該列與參照表(GoodsClass)表中的列ClassID類型及寬度要保持一致,否則不予創(chuàng)建。(3)增加約束時,如果表中原有的數(shù)據(jù)和新增的約束沖突,將導致異常,終止命令執(zhí)行。如果想忽略對原有數(shù)據(jù)的約束檢查,可在命令中使用WITH NOCHECK選項,使新增加的約束只對以后更新或插入的數(shù)據(jù)起作用。系

12、統(tǒng)默認自動使用WITH CHECK選項,即對原有數(shù)據(jù)進行約束檢查。注意,不能將WITH CHECK或WITH NOCHECK作用于主鍵約束和唯一性約束。對表(GoodsInfo)添加約束SQL Server 2005第15頁為供應商表(SupplierInfo)添加默認約束、檢查約束,刪除創(chuàng)建的默認約束、檢查約束。序號列名數(shù)據(jù)類型長度列名含義說明1SupplierIDvarchar20供應商編號主鍵2SupplierNamevarchar250供應商名稱非空供應商表如表供應商表如表4.13所示。所示。任務2-6刪除約束SQL Server 2005第16頁ALTER TABLE Supplie

13、rInfoDROP CONSTRAINT DF_SupplierInfo_Address,CK_SupplierInfo_E_Mail,CK_SupplierInfo_PostCode,COLUMN Address,EMail,PostCode刪除約束刪除約束T-SQL語句命令為:ALTER TABLE DROP CONSTRAINT 刪除的列,以逗號分開刪除的列,以逗號分開逗號分開!逗號分開!自定義約束名自定義約束名不能少!不能少!SQL Server 2005第17頁示例:alter table GoodsInfo nocheck constraint all啟用或暫停約束啟用和暫停約束的

14、T-SQL命令語法:alter table GoodsInfo check|nocheck constraint 使用說明:all表示所有約束表示所有約束。All僅代表外鍵和檢查約束,對其他約束無效。約束關鍵字約束關鍵字約束名或約束名或all暫停約束暫停約束不能少!不能少!SQL Server 2005第18頁T-SQL管理平臺中表數(shù)據(jù)的插入圖4.31 打開GoodsInfoSQL Server 2005第19頁圖4.32 向表中插入、修改、刪除數(shù)據(jù)T-SQL管理平臺中表數(shù)據(jù)的插入!符號標志,表示還沒有保存!符號標志,表示還沒有保存!數(shù)據(jù)插入行數(shù)據(jù)插入行SQL Server 2005第20頁T

15、-SQL命令INSERT語法如下:INSERT INTO 列名列表VALUES(數(shù)據(jù)列表)T-SQL語句命令插入數(shù)據(jù)SQL Server 2005第21頁使用使用INSERT命令向商品類別表(命令向商品類別表(GoodsClass)插入一條記錄。)插入一條記錄。如表4.14所示。T-SQL語句命令插入數(shù)據(jù)任務3-2表表4.14 GoodsClass(商品類別表)(商品類別表)ClassIDClassNameSPLB06汽車SPLB07房產(chǎn)SQL Server 2005第22頁INSERT INTO GoodsClass(ClassID,ClassName)VALUES(SPLB07,汽車)IN

16、SERT INTO GoodsClass(ClassID,ClassName)VALUES(SPLB08,房產(chǎn))T-SQL語句命令插入數(shù)據(jù)插入命令,插入命令,into可省略可省略表名表名插入值關鍵字,單詞必須加插入值關鍵字,單詞必須加S后綴后綴注意單引號、逗號、括號和數(shù)字的顏色注意單引號、逗號、括號和數(shù)字的顏色SQL Server 2005第23頁使用使用INSERTINSERT命令向商品信息表(命令向商品信息表(GoodsInfoGoodsInfo)插入表三條記錄。)插入表三條記錄。如表如表4.154.15所示。所示。GoodsIDClassIDGoodsNameBarCodeGoodsUn

17、itPriceG050003SPLB05長虹空調(diào)892031978832332300G050004SPLB05長虹電視機892031978832435000G050005SPLB05長虹電扇89203197883253400任務3-4表表4.15 GoodsInfo表中的三條記錄數(shù)據(jù)表中的三條記錄數(shù)據(jù)SQL Server 2005第24頁INSERT INTO GoodsInfo(GoodsID,ClassID,GoodsName, BarCode,GoodsUnit, Price)VALUES(G050003,SPLB05,長虹空調(diào),8920319788323,3,2300)INSERT I

18、NTO GoodsInfo(GoodsID,ClassID,GoodsName, BarCode,GoodsUnit, Price)VALUES(G050004,SPLB05,長虹電視機,8920319788324,3,5000)INSERT INTO GoodsInfo(GoodsID,ClassID,GoodsName, BarCode,GoodsUnit, Price)VALUES(G050005,SPLB05,長虹電扇,8920319788325,3,400)插入部分列數(shù)據(jù)插入值關鍵字插入值關鍵字插入命令,插入命令,into可省略可省略插入列表,用逗號分開插入列表,用逗號分開注意單引號

19、、逗號、括號和數(shù)字的顏色注意單引號、逗號、括號和數(shù)字的顏色SQL Server 2005第25頁向供應商表(向供應商表(SupplierInfo)中插入含有)中插入含有默認值和默認值和nullnull值數(shù)據(jù)記值數(shù)據(jù)記錄。如表錄。如表4.164.16所示。所示。SupplierIDSupplierNameAddressPostcodeEMailHomePageGYS0008淮安五星電器DEFAULThttp:/GYS0009淮安三星電器NULLhttp:/GYS0010淮安格力專賣店承德南路23號http:/任務3-4表表4.16 SupplierInfo表中的三條記錄數(shù)據(jù)表中的三條記錄數(shù)據(jù)SQ

20、L Server 2005第26頁INSERT into supplierInfo(SupplierID,SupplierName,Address,PostCode,EMail,HomePage)values(GYS0008,淮安五星電器,DEFAULT,223001,http:/)INSERT into SupplierInfo(SupplierID,SupplierName,Address,PostCode,EMail,HomePage)values(GYS0009,淮安三星電器,NULL,223002,http:/)INSERT into SupplierInfo(SupplierID,

21、SupplierName,Address,PostCode,EMail,HomePage)values(GYS0010,淮安格力專賣店,承德南路號,223003,http:/)SQL Server 2005第27頁T-SQL命令UPDATE語法如下:UPDATE SET =,. nWHERE 更新數(shù)據(jù)SQL Server 2005第28頁UPDATE SupplierInfoSET SupplierName=楚州三星電器,Address=西長街號WHERE SupplierName=淮安三星電器UPDATE SupplierInfoSET SupplierName=淮安格力電器, Addres

22、s=DEFAULT,PostCode=NULLWHERE SupplierName=淮安格力專賣店更新數(shù)據(jù)對供應商表(對供應商表(SupplierInfo)中的記錄進行修改。)中的記錄進行修改。任務3-5SQL Server 2005第29頁UPDATE SupplierInfoSET SupplierName=楚州三星電器,Address=西長街號WHERE SupplierName=淮安三星電器UPDATE SupplierInfoSET SupplierName=淮安格力電器, Address=DEFAULT,PostCode=NULLWHERE SupplierName=淮安格力專賣店更新數(shù)據(jù)更新的表名更新的表名更新命令更新命令set關鍵字關鍵字設置為空值設置為空值設置為默認值設置為默認值修改列名修改列名更新條件更新條件SQL Server 2005第30頁注意點:(1)當省略WHERE子句時,表示對所有滿足的列都進行修改,否則只對滿足邏輯表達式的列進

溫馨提示

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

評論

0/150

提交評論