實驗名稱:建立模式、表和定義完整性約束。
實驗內容:在實驗1建立的資料庫的基礎上,參照圖3-4和表3-10建立表和定義完整性約束。
實驗目的:熟練掌握表的建立和資料完整性速描定義方法,實踐dbms提供的資料完整性功能,加深對資料完整性的理解。
實驗方法:在實驗一建立資料庫的基礎上用create table命令建立表並定義資料完整性約束,用alter table命令修改表結構。
實驗要求:
1.用create schema命令建立模式(自己命名模式名稱)。
2.在定義的模式下參照圖3-4和表3-10使用create table命令建立表並定義完整性約束。
3.使用alter table命令按如下要求修改表結構:
(1)為訂購單增加乙個新的字段「完成日期」,型別為日期時間型,預設是空值。
(2)為訂單明細表的「數量」字段重新定義約束:大於0、小於等於1000的正整數,不允許為空值。
(3)將**商表的**商名字段的型別修改為varchar(30)。
實驗者: 何小變
實驗一建立的資料庫:
**以上**必須在英文全形的狀態下輸入**
create database test1
on(name=test1,
filename='d:/he/data.mdf', //資料檔案的儲存位置。
size=5, //可帶單位可不帶,預設單位為mb。
maxsize=10,
filegrowth=5) //儲存空間的增長量,最大不能超過maxsize-size。
log on
(name=test_log,
filename='d:/he/log.ldf', //此次是單引號引出儲存位址。
size=10mb,
maxsize==20mb,
filegrowth=10mb)
1.注意:建立模式和使用資料庫的語句要一條一條的執行。建立模式:
create schema company
使用資料庫test1:
use test1 //需要使用資料庫才能建表。
2.開始建表:
倉庫表
create table company.倉庫
(倉庫號 char(6) primary key check(倉庫號 like'[a-z][a-z][0-9][0-9][0-9][0-9]'), //注意:「-」號不能寫成「~」號。
城市 char(10) unique not null,
面積 int check(面積》=50))
職工表
create table company.職工
(職工號 char(8) primary key check(職工號 like'[a-z][a-z][0-9][0-9][0-9][0-9][0-9][0-9]'), //此時另外對職工號進行約束,前兩位為大寫英文本母,後六位位數字字元。
倉庫號 char(6) foreign key references company.倉庫(倉庫號),
工資 money check(工資》=1000 and 工資<=10000))// 工資約束也可寫成(工資 between 1000 and 10000)
**商表
create table company.**商
(**商號 char(4) primary key check(**商號 like '[s][0-9][0-9][0-9]'),
**商名 char(16),
位址 char(30))
訂購單表
create table company.訂購單
(職工號 char(8) foreign key references company.職工(職工號) not null,
**商號 char(4) foreign key references company.**商(**商號), null
訂購單號 char(6) primary key check(訂購單號 like'[o][r][0-9][0-9][0-9][0-9]'),
訂購日期 datetime default getdate(),
金額 money null )
訂購單明細表
create table company.訂購單明細
(訂購單號 char(6) foreign key references company.訂購單(訂購單號) not null,
序號 char(2),
產品名稱 char(20),
單價 money check(單價》0) null,
數量 int check(數量》0) not null,
primary key(訂購單號,序號))
3.修改表結構:
(1)
alter table company.訂購單
add 完成日期 datetime null
(2)
alter table company.訂購單明細
add constraint 數量 check (數量 between 0 and 1000)
(3)
alter table company.**商
alter column **商名 varchar(30)
建立表和定義資料完整性
create database tsql2012 use tsql2012 查詢所有資料庫名 sysdatabases主資料庫伺服器中的資料庫 select name from sysdatabases order by name 查詢資料庫當前資料庫下所有表名 sysobjects系統表,在資料庫...
完整性約束的SQL定義
更新資料庫時,表中不能出現不符合完整性要求的記錄,以保證為使用者提供正確 有效的資料。實現該目的最直接的方法,是在編寫資料庫應用程式時,對每個更新操作都進行完整性檢查。但這種檢查往往是複雜 重複 低效的。sql把各種完整性約束作為資料庫模式定義的一部分,由資料庫管理系統維護,這樣即可有效防止對資料庫...
表的完整性約束 外來鍵約束
先建立父表 部門表 create table department dno int 4 primary key auto increment,dname varchar 10 not null,room char 4 注意 外來鍵約束只有表級約束,沒有列級約束 方法一 建立表的時候新增外來鍵約束 c...