第九課--創(chuàng)建表與實(shí)施數(shù)據(jù)完整.ppt_第1頁(yè)
第九課--創(chuàng)建表與實(shí)施數(shù)據(jù)完整.ppt_第2頁(yè)
第九課--創(chuàng)建表與實(shí)施數(shù)據(jù)完整.ppt_第3頁(yè)
第九課--創(chuàng)建表與實(shí)施數(shù)據(jù)完整.ppt_第4頁(yè)
第九課--創(chuàng)建表與實(shí)施數(shù)據(jù)完整.ppt_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Copyright 2007 創(chuàng)智新程,創(chuàng)建表和實(shí)施數(shù)據(jù)完整性,Copyright2007-2009 創(chuàng)智新程,Copyright 2007 創(chuàng)智新程,創(chuàng)建表和實(shí)施數(shù)據(jù)完整性,目標(biāo) 創(chuàng)建和刪除表 向表中插入數(shù)據(jù) 數(shù)據(jù)完整性 約束 主鍵(PRIMARY KEY) 外鍵(FOREIGN KEY) 唯一(UNIQUE) 檢查(CHECK) 缺省(DEFAULT),Copyright 2007 創(chuàng)智新程,提出任務(wù) FOX公司需要將自己的客戶(Customer)的資料寫入到數(shù)據(jù)庫(kù)中去。,任務(wù)一: 創(chuàng)建表,Copyright 2007 創(chuàng)智新程,解題思路 步驟1:確定需要記錄的客戶的信息。 步驟2:確定存

2、儲(chǔ)客戶相關(guān)信息需要的數(shù)據(jù)類型和大小。 步驟3:編寫創(chuàng)建數(shù)據(jù)表的SQL語句。 步驟4:執(zhí)行語句。 步驟5:驗(yàn)證創(chuàng)建的數(shù)據(jù)表是否在數(shù)據(jù)庫(kù)中。,任務(wù)一: 創(chuàng)建表,Copyright 2007 創(chuàng)智新程,任務(wù)求解 步驟1:確定需要記錄的客戶的信息。 在客戶資料中必須要記錄的內(nèi)容有:客戶標(biāo)識(shí)、公司名稱、聯(lián)系人名稱、聯(lián)系人的職務(wù)、地址、城市、地區(qū)、郵編、國(guó)家、電話、傳真。,任務(wù)一: 創(chuàng)建表,Copyright 2007 創(chuàng)智新程,任務(wù)一: 創(chuàng)建表,步驟2:確定存儲(chǔ)客戶相關(guān)信息條目需要的數(shù)據(jù)類型和大小。,Copyright 2007 創(chuàng)智新程,任務(wù)一: 創(chuàng)建表,步驟3:編寫創(chuàng)建數(shù)據(jù)表的SQL語句。 創(chuàng)建新表

3、的語法如下所示:,CREATE TABLE database_name. owner .| owner. table_name ( column_name data_type NULL | NOT NULL IDENTITY ( seed , increment ) column_name data_type ) ON filegroup | DEFAULT ,Copyright 2007 創(chuàng)智新程,任務(wù)一: 創(chuàng)建表,步驟3:編寫創(chuàng)建數(shù)據(jù)表的SQL語句。 根據(jù)地上班那么,創(chuàng)建表名為Customers。,CREATE TABLE Customers( CustomerID nchar(5) NO

4、T NULL, CompanyName nvarchar(40) NULL, ContactName nvarchar(30) NULL, ContactTitle nvarchar(30) NULL, Address nvarchar(60) NULL, City nvarchar(15) NULL, Region nvarchar(15) NULL, PostalCode nvarchar(10) NULL, Country nvarchar(15) NULL, Phone nvarchar(24) NULL, Fax nvarchar(24) NULL ),Copyright 2007

5、創(chuàng)智新程,任務(wù)一: 創(chuàng)建表,步驟4:執(zhí)行語句。 用鼠標(biāo)選中上述語句,按F5執(zhí)行。 步驟5:驗(yàn)證創(chuàng)建的數(shù)據(jù)表是否在數(shù)據(jù)庫(kù)中。 在查詢分析器中執(zhí)行命令:sp_help 或者sp_help Customers, 驗(yàn)證Customers表是否存在于數(shù)據(jù)庫(kù)中。,Copyright 2007 創(chuàng)智新程,提出任務(wù) 我們要將FOX公司客戶的信息寫入到剛剛創(chuàng)建好的表Customer。,任務(wù)二:向表中插入數(shù)據(jù),Copyright 2007 創(chuàng)智新程,解題思路 步驟1:確定需要插入的數(shù)據(jù)和順序。 步驟2:編寫插入數(shù)據(jù)的的SQL語句。 步驟3:執(zhí)行語句。 步驟4:驗(yàn)證表中是否存在插入的數(shù)據(jù)。,任務(wù)二:向表中插入數(shù)據(jù),

6、Copyright 2007 創(chuàng)智新程,任務(wù)求解 步驟1:確定需要插入的數(shù)據(jù)和順序。 在Customer中要插入的客戶的信息如右表:,任務(wù)二: 向表中插入數(shù)據(jù),Copyright 2007 創(chuàng)智新程,任務(wù)二: 向表中插入數(shù)據(jù),步驟2:編寫插入數(shù)據(jù)的的SQL語句。 向表中插入數(shù)據(jù)的語法如下: INSERT INTO table_name ( column_list ) VALUES (value_list),Copyright 2007 創(chuàng)智新程,任務(wù)二:向表中插入數(shù)據(jù),步驟2:編寫插入數(shù)據(jù)的SQL語句。,INSERT INTO Customers (CustomerID, CompanyNam

7、e, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax) VALUES ( 001,Mico, 張三, 經(jīng)理, 長(zhǎng)沙中南大學(xué), 長(zhǎng)沙, 中南, 410083, 中國(guó),731-8830232,731-8883295),Copyright 2007 創(chuàng)智新程,任務(wù)二:向表中插入數(shù)據(jù),步驟3:執(zhí)行語句。 用鼠標(biāo)選中上述語句,按F5執(zhí)行。 步驟4:驗(yàn)證表中是否存在插入的數(shù)據(jù)。 在查詢分析器中執(zhí)行命令: SELECT * FROM Customers WHERE CustomerID = 0

8、01,Copyright 2007 創(chuàng)智新程,課堂練習(xí),1.請(qǐng)創(chuàng)建一個(gè)帶有標(biāo)識(shí)列的學(xué)生表(Students),學(xué)生的編號(hào)從10號(hào)開始,以5遞增。學(xué)生表中要包含的學(xué)生信息:姓名,性別,年齡,專業(yè),來自何方。 2.向創(chuàng)建的Students表插入數(shù)據(jù)。,Copyright 2007 創(chuàng)智新程,任務(wù)三:刪除表,提出任務(wù) 現(xiàn)在刪除數(shù)據(jù)庫(kù)中的Jobs表。,Copyright 2007 創(chuàng)智新程,任務(wù)三:刪除表,解題思路 步驟1:確定要?jiǎng)h除的表名稱。 步驟2:確定要用的SQL語句。 步驟3:執(zhí)行語句。 步驟4:驗(yàn)證表是否被抹去了。,Copyright 2007 創(chuàng)智新程,任務(wù)三:刪除表,任務(wù)求解 步驟1:確

9、定要?jiǎng)h除的表名稱。 要?jiǎng)h除的表的名稱是Jobs。,Copyright 2007 創(chuàng)智新程,任務(wù)三:刪除表,步驟2:確定要用的SQL語句。 語法: DROP TABLE table_name 刪除表定義及該表的所有數(shù)據(jù)、索引、觸發(fā)器、約束和權(quán)限規(guī)范。 確定要使用的SQL語句為:DROP TABLE Jobs,Copyright 2007 創(chuàng)智新程,課堂練習(xí),1請(qǐng)將你創(chuàng)建的Students表從數(shù)據(jù)庫(kù)中抹去。,Copyright 2007 創(chuàng)智新程,數(shù)據(jù)完整性,數(shù)據(jù)完整性確保數(shù)據(jù)庫(kù)中的數(shù)據(jù)質(zhì)量。 一般通過兩個(gè)步驟來對(duì)實(shí)施數(shù)據(jù)完整性: 標(biāo)識(shí)列的有效值。 確定如何實(shí)施何種數(shù)據(jù)完整性。,Copyright

10、 2007 創(chuàng)智新程,數(shù)據(jù)完整性的類型,實(shí)體完整性 域完整性 引用完整性 用戶定義完整性,Copyright 2007 創(chuàng)智新程,約束的概念,約束是用戶自動(dòng)強(qiáng)制數(shù)據(jù)庫(kù)完整性的方式。約束定義關(guān)于列中允許值的規(guī)則,是強(qiáng)制完整性的標(biāo)準(zhǔn)機(jī)制。使用約束優(yōu)先于使用觸發(fā)器、規(guī)則和默認(rèn)值。,Copyright 2007 創(chuàng)智新程,約束的種類,NULL 和 NOT NULL PRIMARY KEY 約束 FOREIGN KEY 約束 UNIQUE 約束 CHECK 約束 DEFAULT 約束,Copyright 2007 創(chuàng)智新程,約束的類型,約束可以在列和表兩個(gè)層次上創(chuàng)建 列約束被指定為列定義的一部分,并且僅

11、適用于那個(gè)列。 表約束的聲明與列的定義無關(guān),可以適用于表中一個(gè)以上的列。,Copyright 2007 創(chuàng)智新程,約束的語法,用CREATE TABLE 創(chuàng)建約束的語法 CREATE TABLE table_name column_name CONSTRAINT constraint_name constraint_type ,constraint_name constraint_type 用ALTER TABLE增加約束的語法 ALTER TABLE table_nameWITH CHECK | WITH NOCHECK ADD CONSTRAINT constraint_name cons

12、traint_type 用ALTER TABLE 撤消約束的語法 ALTER TABLE table_name DROP CONSTRAINT constraint_name,Copyright 2007 創(chuàng)智新程,任務(wù)四:實(shí)施約束,提出任務(wù) FOX公司要將本公司銷售的產(chǎn)品的數(shù)據(jù)放入到數(shù)據(jù)庫(kù)中,對(duì)表中的各個(gè)屬性有如下要求:,Copyright 2007 創(chuàng)智新程,任務(wù)四:實(shí)施約束,Copyright 2007 創(chuàng)智新程,任務(wù)四:實(shí)施約束,要求為該表實(shí)施下述約束。 1)在 SupplierID 上有兩個(gè)非聚集索引。 2)在 CategoryID 上有兩個(gè)非聚集索引。 3)UnitPrice 的

13、CHECK 約束被定義為 (UnitPrice =0)。 4)UnitsInStock 的 CHECK 約束被定義為 (UnitsInStock=0)。 5)UnitsOnOrder 的 CHECK 約束被定義為 (UnitsOnOrder=0)。 6)ReorderLevel 的 CHECK 約束被定義為 (ReorderLevel=0)。,Copyright 2007 創(chuàng)智新程,任務(wù)四:實(shí)施約束,解體思路 步驟1:確定要?jiǎng)?chuàng)建表的表名稱和屬性。 步驟2:確定創(chuàng)建一個(gè)簡(jiǎn)單表要用的SQL語句。 步驟3:在步驟2的基礎(chǔ)上增加相關(guān)約束。 步驟4:執(zhí)行新的SQL語句。 步驟5:驗(yàn)證表是否滿足要求。,C

14、opyright 2007 創(chuàng)智新程,任務(wù)四:實(shí)施約束,任務(wù)求解 步驟1:確定要?jiǎng)?chuàng)建表的表名稱和屬性。 步驟2:確定創(chuàng)建一個(gè)簡(jiǎn)單表要用的SQL語句。,CREATE TABLE Products ( ProductID INT NOT NULL IDENTITY(1,1), ProductName NVARCHAR(40) NOT NULL, SupplierID INT NULL, CategoryID INT NULL, QuantityPerUnit NVARCHAR(20) NULL, UnitPrice MONEY NULL CONSTRAINT defUnitPrice DEFAUL

15、T(0), UnitsInStock SMALLINT NULL CONSTRAINT defUnitInStock DEFAULT(0), UnitsOnOrder SMALLINT NULL CONSTRAINT defUnitOnOrder DEFAULT(0), ReorderLevel SMALLINT NULL CONSTRAINT defReorderLevel DEFAULT(0), Discontinued BIT NOT NULL ),Copyright 2007 創(chuàng)智新程,任務(wù)四:實(shí)施約束,步驟3:在步驟2的基礎(chǔ)上增加相關(guān)約束。 修改表增加聚集索引的主鍵約束 修改表,對(duì)P

16、roductName增加非聚集索引 增加外鍵約束 增加CHECK約束,Copyright 2007 創(chuàng)智新程,任務(wù)四:實(shí)施約束,步驟4:執(zhí)行SQL語句。 逐步執(zhí)行相關(guān)的SQL語句。 步驟5:驗(yàn)證表是否滿足要求。 執(zhí)行命令:sp_help Products 檢查相關(guān)的輸出是否滿足要求。,Copyright 2007 創(chuàng)智新程,課堂練習(xí),1. 按照如下要求在數(shù)據(jù)庫(kù)中創(chuàng)建表Orders。,Copyright 2007 創(chuàng)智新程,課堂練習(xí),Copyright 2007 創(chuàng)智新程,課堂練習(xí),1) 在 CustomerID 上有兩個(gè)非聚集索引。 2) 在 EmployeeID 上有兩個(gè)非聚集索引。 3)

17、在 ShipVia 上有一個(gè)非聚集索引。,2.請(qǐng)描述并執(zhí)行下表的表的定義。,CREATE TABLE Jobs ( JobId SMALLINT IDENTITY(1,1) PRIMARY KEY CLUSTERED, JobDescription VARCHAR(50) NOT NULL DEFAULT New Position , MinLevel TINYINT NOT NULL CHECK (MinLevel = 10), MaxLevel TINYINT NOT NULL CHECK (MaxLevel = 250) ),Copyright 2007 創(chuàng)智新程,小結(jié),在本章中,你學(xué)習(xí)到了: 用CREATE TABLE 來創(chuàng)建表。 表的列默認(rèn)可以為NULL。 用IDENTITY(int

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論