資料庫 實驗5

2021-08-28 09:27:59 字數 2161 閱讀 7103

一、實驗目的:

1、掌握資料庫約束的概念;

2、熟悉sql server 的完整性約束技術。

3、了解sql server 的違反完整性處理措施。

二、實驗準備

1、了解資料庫完整性約束的基本概述 

2、了解sql server完整性約束技術。 包括實體完整性、參照完整性、使用者定義完整性等。

3、了解主鍵(primary key)約束 

4、了解外來鍵(foreign key)約束 

5、了解唯一性(unique)約束 

6、了解檢查(check)約束 

7、了解default 約束 

8、了解允許空值約束 

9、了解觸發器的使用

、實驗內容:

1.在前幾次實驗所使用的資料庫中新建乙個教師資訊表,表名為teacher,字段包括tno(教師編號),tname(姓名),t***(性別),ttitle(職稱),完整性包括:設定tno為主鍵,tname非空,t***的取值範圍為「男」或「女」。

create

table teacher

(tno char

(9)primary

key,

tname char

(20)

notnull,

t*** char

(2)check

(t*** in

('男'

,'女'

)),

ttitle char

(10), );

2. 用insert語句插入如下記錄,觀察實驗結果:

insert into teacher values('2016001','王明','男','講師')

insert into teacher values('2016001','王英','女','助教')

insert into teacher values('2016002','張方','a','講師')

級別14,狀態1,第2 行

違反了primary key 約束'pk__teacher__0ad2a005'。不能在物件'dbo.teacher' 中插入重複鍵。

語句已終止。

級別16,狀態0,第3 行

insert 語句與check 約束"ck__teacher__t***__0bc6c43e"衝突。該衝突發生於資料庫"sql",表"dbo.teacher", column 't***'。

語句已終止。

3.對teacher表增加乙個約束,ttitle屬性的取值範圍為('助教','講師','副教授','教授'),並插入一條記錄:

insert into teacher values('2016003','劉陽','男','研究員'),觀察實驗結果。

insert 語句與 check 約束"ck__teacher__ttitle__108b795b"衝突。該衝突發生於資料庫"sql",表"dbo.teacher", column 'ttitle'。

語句已終止。

4.為學生表student增加乙個約束,s***的取值範圍為「男」或「女」。

create

table student

(sno char

(9)primary

key,

sname char

(20)

unique,

s*** char

(2)check

(s*** in

('男'

,'女'

)),

sage smallint,

sdept char

(20) );

5.為選課表sc增加乙個約束,grade的取值在0至100之間。

create

table sc

(sno char

(9),

cno char

(4),

grade smallint

check

(grade>=0 and grade<=100),

primary

key(sno,cno))

資料庫(實驗2 資料庫表)

建立資料庫 建立資料庫資料檔案 create database testbase2 on name testbase2 data,filename d 張小山資料庫 lianxi2 testbase2 data.mdf size 5mb,maxsize 50mb,filegrowth 20 建立資料...

資料庫實驗2

1.dbms 登入帳號管理 create login sqluser with password pswdforuser 1 create login sqluser2 with password pswdforuser 123 create login uselessuser with passw...

資料庫索引實驗

上週客戶的系統有乙個網頁反應超級緩慢,最後幫客戶定位到原因是sql慢查詢,在這兒簡單總結一下。當資料庫中的資料量非常大的時候,資料庫訪問的速度會越來越慢,cpu和記憶體消耗變大,影響使用者體驗,可以通過建立索引來解決。我做了乙個實驗驗證了一下,效果非常明顯。首先建立了乙個資料表,通過指令碼插入了14...