Presentation is loading. Please wait.

Presentation is loading. Please wait.

第七章: 建立資料表.

Similar presentations


Presentation on theme: "第七章: 建立資料表."— Presentation transcript:

1 第七章: 建立資料表

2 章節概覽 7.1 利用管理工具建立資料表 7.2 設定條件約束維持資料的一致性 7.3 修改與刪除資料表 7.4 使用暫存資料表
7.5 資料表的特殊屬性

3 7.1 利用管理工具建立資料表 7.1.1 利用EM建立資料表

4 7.1.2 利用Query Analyzer建立資料表
範例7-2 USE Samples CREATE TABLE Employees ( empid char(3) not null, empname varchar(10) not null, department char(1) null, salary int, salary_commer int )

5 利用Query Analyzer查詢資料表

6 7.2 設定條件約束維持資料的一致性 7.2.1 資料一致性 預設值 CHECK條件約束 主索引鍵條件約束 唯一鍵值條件約束
外來主索引鍵條件約束 1. 資料型別 2. 條件約束

7 7.2.2 設定預設值 使用者可能忘了輸入或沒有輸入值時 使用者根本不需要輸入值 其他...

8 設定預設值注意事項 一個欄位只能有一個default設定 不是每個欄位的資料型別都可以設定
如:Identity , rowversion 不可設定default 預設值可以是任何值,甚至是系統函數 如:GETDAY ( )

9 預設值範例 預設薪水為20000元 ALTER TABLE Employees ADD CONSTRAINT default_salary
範例7-3 預設薪水為20000元 ALTER TABLE Employees ADD CONSTRAINT default_salary DEFAULT 20000 FOR Salary

10 7.2.3 設定CHECK條件約束 限定使用者的輸入值 一個欄位可以設定多個CHECK條件約束 可使用系統函數 可與同資料表的欄位比較

11 CHECK條件約束範例(1/2) 檢查年齡在20到65歲之間 ALTER TABLE Employees1 ADD
範例7-6 檢查年齡在20到65歲之間 ALTER TABLE Employees1 ADD CONSTRAINT check_age check (age >= 20 and age <=65)

12 CHECK條件約束範例(2/2) 限制每一個位元所輸入的資料 ALTER TABLE Employees1 ADD
範例7-9 限制每一個位元所輸入的資料 ALTER TABLE Employees1 ADD CONSTRAINT check_empid check (empid like '[A-Z][0-9][0-9]')

13 7.2.4 設定Primary Key條件約束 一個資料表只能有一個 PK 條件約束 確保列的資料不重覆 欄位定義不能有NULL
SQL Server會自動加上Unique Index

14 Primary Key條件約束範例 設定學號為primary key ALTER TABLE Student ADD
範例7-12 設定學號為primary key ALTER TABLE Student ADD CONSTRAINT pk_studentid primary key(studentid)

15 設定Unique Key條件約束 一個資料表只能多個 確保列的資料不重覆 欄位定義可以有NULL(PK 不可是NULL)
SQL Server會自動加上Unique Index 在資料庫定義中,為候選主索引鍵

16 Unique Key條件約束範例 設定身份證字號為unique key ALTER TABLE Student ADD
範例7-13 設定身份證字號為unique key ALTER TABLE Student ADD CONSTRAINT uk_public unique(publicid)

17 7.2.5 設定Foreign Key條件約束 避免資料表與資料表間的不一致性 是別的欄位的主索引鍵 設定後,彼此有關連的資料無法刪除

18 Foreign Key條件約束設定範例 設定學生與老師的關係 ALTER TABLE 學生 ADD
範例7-14 設定學生與老師的關係 ALTER TABLE 學生 ADD CONSTRAINT fk_teacherid foreign key (導師編號) references 導師(導師編號)

19 刪除Detail資料表,無法刪除Master 資料表
設定串聯更新與串聯刪除 將Mater資料表刪除時順便刪除Detail資料表 刪除Detail資料表,無法刪除Master 資料表 簡化了刪除資料的動作

20 串聯更新與刪除設定範例 設定學生與老師的關係是串聯更新與刪除 ALTER TABLE 學生 ADD
範例7-15 設定學生與老師的關係是串聯更新與刪除 ALTER TABLE 學生 ADD CONSTRAINT fk_teacherid foreign key (導師編號) references 導師(導師編號) ON UPDATE CASCADE ON DELETE CASCADE

21 修改與刪除資料表欄位 修改資料表欄位 ALTER TABLE 學生 ADD 姓別 CHAR(1) NULL 刪除資料表欄位
範例7-16 修改資料表欄位 ALTER TABLE 學生 ADD 姓別 CHAR(1) NULL 刪除資料表欄位 DROP TABLE 學生

22 7.4 使用暫存資料表 不是真正的資料表,是存在tempdb中 CREATE TABLE #TABLE1 (Orderid int,
範例7-18 不是真正的資料表,是存在tempdb中 CREATE TABLE #TABLE1 (Orderid int, Customerid char(10))

23 7.5 資料表的特殊屬性 7.5.1 Identity欄位 自動編號,可用來自動產生數字 建立方式
範例7-19 CREATE TABLE Employees (employeeid int IDENTITY(1,2) NOT NULL, employeename varchar(10)) INSERT方式,IDENTITY欄位空白不用輸入 INSERT Employees values ('楊先民') INSERT Employees values ('張智凱') 範例7-20

24 IDENTITY語法 IDENTITY [ ( seed , increment ) ] Seed:是載入到資料表的第一個資料列所使用的值
您必須同時指定初始值及遞增值,或都不指定。如 果不指定,預設為 (1,1)。

25 7.5.2 公式欄位 利用公式算出另一個欄位的值 怕使用者輸入錯資料 IDENTITY欄位空白不用輸入
範例7-22 利用公式算出另一個欄位的值 怕使用者輸入錯資料 IDENTITY欄位空白不用輸入 CREATE TABLE Author ( 作者身份證字號 char(10), 作者姓名 varchar(10), 作者版稅 money, 作者預扣稅 as 作者版稅 /10 )

26 學習成果回顧 資料表是實際儲存資料的地方 建立一個資料表時,需要指定欄位名稱、資料型 別,以及是否允許NULL值
每個資料表都可以依資料表的特性設定條件約束 資料表可以設定自動編號與公式欄位 可以利用INSERT指令新增資料、UPDATE修改資 料、DELETE刪除資料


Download ppt "第七章: 建立資料表."

Similar presentations


Ads by Google