資料庫實驗11 SQL語言 資料庫完整性

2021-09-29 13:07:38 字數 3215 閱讀 3764

一.實驗環境:

​ mysql workbench

二.實驗內容與完成情況:

5.建立乙個教職工表teacher(tno,tname,tage,telphone,t***,id),將教工號tno設定為主鍵,性別預設值為"男"

create

table teacher

( tno char(7

)primary

key,

#設定主鍵

tname varchar(10

),tage int

, telphone char(12

),t*** char(2

)default

'男',

#性別預設值為"男"

tid varchar(20

))engine

=innodb

;

6.

根據教職工表teacher完成以下內容:

設定telphnoe預設值為00000000

alter

table teacher modify telphone char(12

)default

'0000000'

;

alter

table teacher change column telphone telphone char(12

)default

'00000000'

;

設定t***的check檢查約束為:輸入值只能是「男」或「女」

alter

table teacher modify t*** char(2

)default

'男'check

(t***=

'男'or t***=

'女')

;

設定check後,進行檢驗,發現check並沒有起效果:

主要原因在於mysql不支援check操作,因此在這裡用enum設定只能是"男"或「女」:

alter

table teacher change column t*** t*** enum

('男'

,'女'

)default

'男';

再次檢驗:

可知設定成功。

設定id的位數為15位或者18位,每位都是數字

delimiter

//create

trigger tr_id after

insert

on teacher #建立觸發器

for each row

begin

declare iresult int

default0;

if(length(new.tid)

!=15

and length(new.tid)

!=18

)#如果id長度不為15或18則報錯

then

signal sqlstate'45000'

set message_text =

'the length is not allowed'

;endif;

select new.tid regexp

'^[0-9]*$'

into iresult;

#如果id內容存在非數字則報錯

if(iresult=0)

then

signal sqlstate'45000'

set message_text =

'id must be consisted of nums'

;endif;

end//

檢查:

插入長度不為15和18的元素:插入失敗

插入長度為15和18的元素但包含非數字:插入失敗

插入長度為15且均為數字的資料:插入成功

7設有訂報管理子系統資料庫dingbao中的表*****,表內容如下:

請在掌握資料庫完整性知識的基礎上,根據表的內容設定盡可能多的完整性規則用於該錶,用於保障該錶的正確性和完整性。

約束性:

**如下(其中一種實現):

create

table *****

( pno char(7

)primary

key,

pna char(20

)unique

notnull

, ppr float

notnull

)engine

=innodb

;delimiter

//create

trigger trig after

insert

on ***** #建立觸發器

for each row

begin

declare iresult int

default0;

if(length(new.pno)!=6

or ppr<0)

then

signal sqlstate'45000'

;endif;

select new.pno regexp

'^[0-9]*$'

into iresult;

#如果id內容存在非數字則報錯

if(iresult=0)

then

signal sqlstate'45000'

;endif;

end//

Sql資料庫語言

我今天學習了一下資料庫簡單的sql 語言。1.建立資料庫 cerate database users 2.建立資料庫的位置 on primary filename d data data mdf size 50mb,maxsize 100mb,filegrowth 2mb log on name u...

資料庫分類 SQL資料庫 NoSQL資料庫

一 資料庫產品 二.sql資料庫 sql 是所有關係型資料庫的公共語言 關係型資料庫,是建立在關係模型基礎上的資料庫,借助於集合代數等數學概念和方法來處理資料庫中的資料,我們平常使用的資料庫,像mysql,oracle,sql server等都是傳統的關係型資料庫。關係模型指的就是二維 模型,而乙個...

SQL資料庫 管理資料庫

建立完資料庫,如何對它進行管理呢?管理資料庫包括對資料庫修改大小 新增資料檔案或日誌檔案 分離和附加資料庫等,同樣有語句和ssms兩種方法。接下來主要展示用sql語句方法更改,用介面的方式只需要在屬性裡更改就可以 將乙個新的事務日誌檔案xscjl log,初始大小100mb加入xscj中。alter...