項目4網(wǎng)上書城數(shù)據(jù)庫表的管理_第1頁
項目4網(wǎng)上書城數(shù)據(jù)庫表的管理_第2頁
項目4網(wǎng)上書城數(shù)據(jù)庫表的管理_第3頁
項目4網(wǎng)上書城數(shù)據(jù)庫表的管理_第4頁
項目4網(wǎng)上書城數(shù)據(jù)庫表的管理_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、工程四網(wǎng)上書城數(shù)據(jù)庫表的管理.工程知識要點單詞學(xué)習(xí)1Constraint:約束 2Primary Key:主鍵3Foreign Key:外鍵 4Binary:二進制5Check:檢查 6Unique:獨一7Alter:修正 8Insert:插入9Update:更新 10Delete:刪除掌握數(shù)據(jù)表的根底知識 表的定義 表是包含數(shù)據(jù)庫中一切數(shù)據(jù)的數(shù)據(jù)庫對象。在表中,數(shù)據(jù)成二維行列格式,每一行代表一個獨一的記錄,每一列代表一個域。 表4-1 顧客信息表掌握數(shù)據(jù)表的根底知識列名 列名是用來訪問表中詳細域的標(biāo)識符,列名必需遵照以下規(guī)那么:1列名是可以含有從1到128的ASCII碼字符,它的組成包括字母

2、、下劃線、符號以及數(shù)字。2不要給列名命名為與SQL關(guān)鍵字一樣的名字,比如SELECT,IN,DESC等。3列名應(yīng)該反映數(shù)據(jù)的屬性。SQL Server的數(shù)據(jù)類型分類備注和說明數(shù)據(jù)類型說明二進制數(shù)據(jù)類型存儲非子符和文本的數(shù)據(jù)Image可用來存儲圖像文本數(shù)據(jù)類型字符數(shù)據(jù)包括任意字母、符號或數(shù)字字符的組合Char固定長度的非 Unicode 字符數(shù)據(jù)Varchar可變長度非 Unicode 數(shù)據(jù)Nchar固定長度的 Unicode 數(shù)據(jù)Nvarchar可變長度 Unicode 數(shù)據(jù)Text存儲長文本信息Ntext存儲可變長度的長文本日期和時間日期和時間在單引號內(nèi)輸入Datetime 日期和時間數(shù)字?jǐn)?shù)

3、據(jù)該數(shù)據(jù)僅包含數(shù)字,包括正數(shù)、負數(shù)以及分?jǐn)?shù)intsmallint整數(shù)floatreal數(shù)字貨幣數(shù)據(jù)類型用于十進制貨幣值MoneyBit數(shù)據(jù)類型表示是/否的數(shù)據(jù)Bit存儲布爾數(shù)據(jù)類型思索號碼普通運用什么數(shù)據(jù)類型存儲?性別普通運用什么數(shù)據(jù)類型存儲?年齡信息普通運用什么數(shù)據(jù)類型存儲?照片信息普通運用什么數(shù)據(jù)類型存儲?薪水普通運用什么數(shù)據(jù)類型存儲?網(wǎng)上書城數(shù)據(jù)表的設(shè)計與創(chuàng)建 表的設(shè)計步驟1表的命名方式。2表中每一列的稱號、數(shù)據(jù)類型及其長度。3表中的列能否允許空值,能否獨一,能否要進展默許設(shè)置或添加用戶定義約束。4表間的關(guān)系,即確定哪些列是主鍵,哪些是外鍵。工程中的部分表 顧客信息表Customers

4、工程中的部分表 訂單信息表Orders 工程中的部分表訂單詳細表OrderDetails 創(chuàng)建數(shù)據(jù)庫表運用SSMS導(dǎo)游創(chuàng)建表 【例4-2-1】在SQL Server2005中運用“SQL Server Management Studio 創(chuàng)建BookShop數(shù)據(jù)庫中的Customers表顧客信息表。詳細步驟如下:1啟動SSMS,登錄效力器類型為【數(shù)據(jù)庫引擎】,并運用Windows或SQL Server身份認(rèn)證建立銜接。2在“對象資源管理器中依次展開【數(shù)據(jù)庫】節(jié)點、【BookShop】節(jié)點,右鍵單擊【表】節(jié)點,選擇【新建表】命令,如圖4-1所示。圖4-1 選擇“新建表 3翻開【表設(shè)計器】窗口,在

5、【列名】下的編輯框中輸入列名“CID,然后點擊【數(shù)據(jù)類型】下的下拉框,拖動下拉框的滾動條,選擇“char(10),如圖4-2所示。圖4-2 表設(shè)計器 4 在“表設(shè)計器窗口的【列屬性】選項卡中的【長度】域的編輯框中輸入6,如圖4-3所示。輸入終了后,再看【數(shù)據(jù)類型】下的下拉框內(nèi)容由char(10)變?yōu)閏har(6)。5單擊“表設(shè)計器窗口的【允許空】列中的小方框,使得小方框中去掉,就符合了“CID列不允許為空的要求。圖4-3 修正字符類型長度6類似地,反復(fù)步驟25,在“表設(shè)計器窗口添加顧客信息表的其它7個字段,效果如圖4-4所示。圖4-4 顧客信息表8個字段 7設(shè)置主鍵。在“表設(shè)計器窗口中選定第一

6、個字段“CID,再執(zhí)行菜單命令【表設(shè)計器】【設(shè)置主鍵】即可按要求將字段“CID設(shè)為主鍵,如圖4-5所示。圖4-5 設(shè)置顧客信息表的主鍵8修正表稱號。在“表設(shè)計器窗口右側(cè)“屬性面板中【稱號】域的編輯框中輸入表稱號“Customers,如圖4-6所示。表稱號輸入完后不是立刻生效的,要在保管表后,表稱號修正才干生效。圖4-6 修正表稱號 9保管表。單擊工具欄中的【保管】按鈕即可以保管表。新表創(chuàng)建后,在“對象資源管理器中展開【數(shù)據(jù)庫】節(jié)點中的數(shù)據(jù)庫節(jié)點【BookShop】,可以查看到剛剛所建的表,如圖4-7所示。圖4-7 創(chuàng)建好的Customers表 運用CREATE TABLE語句創(chuàng)建表CREATE

7、 TABLE (列級完好性約束條件, 列級完好性約束條件., )運用CREATE TABLE語句創(chuàng)建表 【例4-2-3】為了保管顧客根本信息,需求在BookShop數(shù)據(jù)庫中創(chuàng)建一個名為“Customers的表,運用T-SQL語句完成創(chuàng)建表的過程。運用CREATE TABLE語句創(chuàng)建表詳細步驟如下:1勝利登錄SQL Server效力器后,在SSMS界面中,單擊【新建查詢】按鈕,翻開一個SQLQuery窗口。2在SQLQuery窗口輸入如下命令,然后單擊按鈕,分析輸入的T-SQL語法能否有錯,然后再點擊【執(zhí)行】按鈕,即能創(chuàng)建好顧客信息表。如圖4-13所示。運用CREATE TABLE語句創(chuàng)建表Us

8、e BookShop -翻開數(shù)據(jù)庫Go -批處置終了語句CREATE TABLE Customers ( CID char (6) NOT NULL PRIMARY KEY, -PRIMARY KEY表示主鍵 CTrueName varchar(30) NOT NULL,Cpassword varchar(30) NOT NULL,CSex char(2) NOT NULL,CAddress varchar(50) NULL,CMobile varchar(11) NOT NULL, CEmail varchar(50) NULL,CRegisterDate datetime NOT NULL

9、)運用CREATE TABLE語句創(chuàng)建表在SQLQuery窗口輸入T-SQL命令假設(shè)當(dāng)前數(shù)據(jù)庫中已存在Customers表,再次創(chuàng)建時系統(tǒng)將提示出錯 。如何處理呢?USE BookShop -將當(dāng)前數(shù)據(jù)庫設(shè)置為 BookShop ,以便在 BookShop 數(shù)據(jù)庫中建表GOIF EXISTSSELECT * FROM sysobjects WHERE name=Customers DROP TABLE CustomersCREATE TABLE Customers /*-創(chuàng)建顧客表-*/(.) GO標(biāo)識列表中沒有適宜的列作為主鍵怎樣辦?標(biāo)識列USE stuDB -將當(dāng)前數(shù)據(jù)庫設(shè)置為stuDB

10、GOCREATE TABLE stuInfo /*-創(chuàng)建學(xué)員信息表-*/( stuName VARCHAR(20) NOT NULL , -姓名,非空必填 stuNo CHAR(6) NOT NULL, -學(xué)號,非空必填 stuAge INT NOT NULL, -年齡,INT類型默以為4個字節(jié)stuSeat SMALLINT IDENTITY (1,1), -座位號,自動編號 stuAddress TEXT -住址,允許為空,即可選輸入) GOIDENTITY起始值,遞增量 思索標(biāo)識列允許為字符數(shù)據(jù)類型嗎?假設(shè)標(biāo)識列A的初始值為1,增長量為2,那么輸入三行數(shù)據(jù)以后,再刪除兩行,下次再輸入數(shù)據(jù)

11、行的時候,標(biāo)識值從多少開場?數(shù)據(jù)完好性數(shù)據(jù)完好性是指數(shù)據(jù)庫中數(shù)據(jù)的準(zhǔn)確性和一致性。假設(shè)兩個或更多的表由于其存儲的信息而相互關(guān)聯(lián),那么只需修正了其中一個表,與之相關(guān)的一切表都要做出相應(yīng)的修正,假設(shè)不這么做,存儲的數(shù)據(jù)就會不再準(zhǔn)確。也就是說,推進了數(shù)據(jù)的完好性。 數(shù)據(jù)完好性主要分為四類:實體完好性、域完好性、援用完好性和用戶定義完好性。 數(shù)據(jù)完好性數(shù)據(jù)存放在表中“數(shù)據(jù)完好性的問題大多是由于設(shè)計引起的創(chuàng)建表的時候,就該當(dāng)保證以后數(shù)據(jù)輸入是正確的錯誤的數(shù)據(jù)、不符合要求的數(shù)據(jù)不允許輸入創(chuàng)建表:保證數(shù)據(jù)的完好性 = 實施完好性約束完好性包括2-1輸入的類型能否正確?年齡必需是數(shù)字輸入的格式能否正確?身份證

12、號碼必需是18位能否在允許的范圍內(nèi)?性別只能是男或者女能否存在反復(fù)輸入?學(xué)員信息輸入了兩次能否符合其他特定要求?信譽值大于5的用戶才可以參與會員列表列值要求約束整行要求約束完好性包括2-2域完好性實體完好性援用完好性自定義完好性實體完好性河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012.地址姓名學(xué)號江西南昌雷銅0010014約束方法:獨一約束、主鍵約束、標(biāo)識列域完好性河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012.地址姓名

13、學(xué)號湖北江門李亮8700000000約束方法:限制數(shù)據(jù)類型、檢查約束、外鍵約束、默許值、非空約束援用完好性河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012地址姓名學(xué)號980010021數(shù)學(xué)約束方法:外鍵約束科目學(xué)號分?jǐn)?shù)數(shù)學(xué)001001288數(shù)學(xué)001001374語文001001267語文001001381數(shù)學(xué)001001698自定義完好性AV121322喬峰CV0016AV372133玄痛CV0015AV378291沙悟凈AV0014AV378290豬悟能AV0013AV378289孫悟空AV0012.會員證

14、用戶姓名用戶編號約束方法:規(guī)那么、存儲過程、觸發(fā)器帳號姓名信用.00192孫悟空700288豬悟能612333段譽890111虛竹4093000岳不群-10觸發(fā)器:檢查信譽值思索學(xué)員姓名允許為空嗎?家庭地址允許為空嗎?電子郵件信息允許為空嗎?考試成果允許為空嗎?思索在主鍵列輸入的數(shù)值,允許為空嗎?一個表可以有多個主鍵嗎?在一個學(xué)校數(shù)據(jù)庫中,假設(shè)一個學(xué)校內(nèi)允許重名的學(xué)員,但是一個班級內(nèi)不允許學(xué)員重名,可以組合班級和姓名兩個字段一同來作為主鍵嗎?選擇主鍵的原那么最少性盡量選擇單個鍵作為主鍵穩(wěn)定性盡量選擇數(shù)值更新少的列作為主鍵SQL Server的約束約束的目的:確保表中數(shù)據(jù)的完好型常用的約束類型:

15、主鍵約束Primary Key Constraint:要求主鍵列數(shù)據(jù)獨一,并且不允許為空獨一約束Unique Constraint:要求該列獨一,允許為空,但只能出現(xiàn)一個空值。檢查約束Check Constraint:某列取值范圍限制、格式限制等,如有關(guān)年齡的約束默許約束Default Constraint:某列的默許值,如我們的男性學(xué)員較多,性別默以為“男外鍵約束Foreign Key Constraint:用于兩表間建立關(guān)系,需求指定援用主表的那列約束名的取名規(guī)那么引薦采用:約束類型_約束字段主鍵Primary Key約束:如 PK_stuNo獨一Unique Key約束:如 UQ_stu

16、ID默許Default Key約束:如 DF_stuAddress檢查Check Key約束:如 CK_stuAge外鍵(Foreign Key)約束:如 FK_stuNo PRIMARY KEY約束 PRIMARY KEY約束 表的一列或幾列的組合的值在表中獨一地指定一行記錄,這樣的一列或多列稱為表的主鍵PRIMARY KEY,經(jīng)過它可強迫表的實體完好性。 【例4-3-1】運用PRIMARY KEY約束對數(shù)據(jù)庫BookShop實施數(shù)據(jù)完好性。 1運用SQL Server Management Studio管理PRIMARY KEY約束1啟動SSMS,進入新建表,假設(shè)表曾經(jīng)建立好,那么進入修正

17、表的形狀,如圖4-11所示。2單擊要設(shè)置的PRIMARY KEY約束的列,例如:CID,選擇工具欄上的按鈕也可以右鍵選擇【設(shè)置主鍵】選項,創(chuàng)建主鍵約束。如圖4-12所示。3創(chuàng)建主鍵終了后,在對應(yīng)的列名前有標(biāo)志,此時,該列的【允許空】也改動為“非空,如圖4-13所示。圖 4-11 選擇修正表 圖 4-12 選擇設(shè)置主鍵 圖 4-13 創(chuàng)建PRIMARY KEY約束 運用T-SQL管理PRIMARY KEY約束CREATE TABLE Customers ( CID char (6) NOT NULL Constraint PK_CID PRIMARY KEY, CTrueName varchar

18、(30) NOT NULL,Cpassword varchar(30) NOT NULL,CSex char(2) NOT NULL,CAddress varchar(50) NULL,CMobile varchar(11) NOT NULL,CEmail varchar(50) NULL,CRegisterDate datetime NOT NULL)假設(shè)在訂單概略表中不設(shè)置編號,那么可以將表中“訂單編號+商品編號作為訂單概略的獨一標(biāo)識,在創(chuàng)建數(shù)據(jù)表OrderDetails時,為OID和GID的組合設(shè)置PRIMARY KEY約束。完成語句如下所示。USE BookShopGOCREATE T

19、ABLE OrderDetails ( OID char (14) NOT NULL, GID char(6) NOT NULL,OdPrice float NOT NULL,OdNumber int NOT NULL,CONSTRAINT PK_OID_GID PRIMARY KEY(OID,GID)圖 4-14 組合主鍵 FOREIGN KEY約束 FOREIGN KEY約束標(biāo)識表之間的關(guān)系,用于強迫參照完好性,為表中一列或者多列數(shù)據(jù)提供參照完好性。FOREIGN KEY約束也可以參照本身表中的其他列,這種參照稱為自參照。主外鍵關(guān)系-1演示建立數(shù)據(jù)庫關(guān)系圖主外鍵關(guān)系-2演示建立主-外鍵關(guān)系

20、主外鍵關(guān)系-3當(dāng)主表中沒有對應(yīng)的記錄時,不能將記錄添加到子表訂單表中不能出如今顧客表中不存在的客戶;不能更改主表中的值而導(dǎo)致子表中的記錄孤立把顧客表中的客戶編號改動了,訂單表中的顧客編號也該當(dāng)隨之改動;子表存在與主表對應(yīng)的記錄,不能從主表中刪除該行不能把有訂單的顧客刪除了刪除主表前,先刪子表先刪訂單表、后刪除顧客表創(chuàng)建檢查約束演示建立檢查約束運用T-SQL管理CHECK約束 CREATE TABLE Customers ( CID char (6) NOT NULL Constraint PK_CID PRIMARY KEY, CTrueName varchar(30) NOT NULL,Cp

21、assword varchar(30) NOT NULL,CSex char(2) NOT NULL CHECK(CSex=男 or CSex=女),CAddress varchar(50) NULL,CMobile varchar(11) NOT NULL,CEmail varchar(50) NULL,CRegisterDate datetime NOT NULL)UNIQUE約束 為了保證商品類別稱號表Category中的稱號不反復(fù),在創(chuàng)建數(shù)據(jù)表Category時,為CaName設(shè)置UNIQUE約束。完成語句如下所示。CREATE TABLE Category (CaID char(2)

22、 NOT NULL PRIMARY KEY,CaName varchar(20) NOT NULL,CaDeleted bit NOT NULL,CONSTRAINT UN_CaName UNIQUE(CaName) DEFAULT約束 需求Customers表中輸入數(shù)據(jù)時,為CRegisterDate提供一個默許值為當(dāng)天時間,以保證非空性或簡化用戶輸入,其完成語句如下所示。CREATE TABLE Customers ( CID char (6) NOT NULL Constraint PK_CID PRIMARY KEY, CTrueName varchar(30) NOT NULL,Cp

23、assword varchar(30) NOT NULL,CSex char(2) NOT NULL CHECK(CSex=男 or CSex=女),CAddress varchar(50) NULL,CMobile varchar(11) NOT NULL,CEmail varchar(50) NULL,CRegisterDate datetime NOT NULL DEFAULT(GetDate( )數(shù)據(jù)表的操作 運用T_SQL語句修正表構(gòu)造 ALTER TABLE ALTER COLUMNADD DROP 1運用ADD子句添加新列或新的完好性約束條件 在Customers表中添加出生日期

24、“CBirth列,其數(shù)據(jù)類型為datetime類型。該操作運用T-SQL語句完成如下: 在Orders表中添加外鍵約束,CID列為外鍵與Customers表的主鍵CID對應(yīng)。該操作運用T-SQL語句完成如下: ALTER TABLE CustomersADD CBirth datetimeALTER TABLE OrdersADD CONSTRAINT FK_Orders_Customers FOREIGN KEY(CID) REFERENCES Customers(CID)2運用DROP子句刪除指定的完好性約束條件。 3運用ALTER COLUMN子句修正根本表的列定義或約束 將Custom

25、ers表CTrueName列的數(shù)據(jù)類型改為char型,寬度為30,且該列允許為空值。該操作運用T-SQL語句完成如下:ALTER TABLE Category DROP CONSTRAINT UN_CaNameALTER TABLE Customers ALTER COLUMN CTrueName char(30) NULL數(shù)據(jù)表的刪除 思索到不需求BookShop數(shù)據(jù)庫的購物車表ShopCar,要將該表從BookShop數(shù)據(jù)庫中刪除,該操作運用T-SQL語句完成,完成語句如下所示。DROP TABLE ShopCar管理網(wǎng)上書城系統(tǒng)數(shù)據(jù)表的數(shù)據(jù) 【例4-3-6】在SQL Server2005

26、的SQL Server Management Studio中完成Customers表中記錄的添加、刪除和修正等操作。INSERT INTO ,VALUES,1插入一切列。 新顧客信息錄入,顧客信息如表所示,添加到Customers表中。2插入指定列 新顧客信息錄入,顧客信息地址CAddress和電子郵箱CEmail尚缺,只能將該顧客的部分信息如表所示添加到Customers表中。INSERT INTO CustomersVALUES(C0011,李平,123456,女,廣東中山市,1543876,liping163,2021-9-6)INSERT INTO Customers (CID, CTrueName, Cpassword, CSex, CMobile, CRegisterDate)VALUES(C0012, 張先明, 123456, 男, 13452312, 2021-10-6)3插入多條記錄多名顧客信息錄入,顧客信息如表所示,添加到Customers表中。USE BookShopGOINSER

溫馨提示

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

最新文檔

評論

0/150

提交評論