實驗2 建立表和定義完整性約束

2021-09-22 21:06:27 字數 3176 閱讀 4201

實驗名稱:建立模式、表和定義完整性約束。

實驗內容:在實驗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...