實訓資料庫開發應用 資料完整性

2021-08-22 14:28:41 字數 3199 閱讀 4311

1.寫出定義滿足如下條件的表的sql語句,表結構為:

學生表( 學號

:字元型,長度為6,主碼, 姓名

:字元型,長度為6,取值不重, 性別

:字元型,長度為2,取值只能是『男』和女』, 年齡

:小整型,取值範圍為15~45,

所在系:字元型,長度為12,取值只能是『is』、『cs』和『ma』,

電子郵件

:字元型,長度為14,取值形式為:6位名字(每一位必須為字母)+『@263.net』)

createtablesss

(學號char(6)primarykey,

姓名char(6)unique,

性別char(2)check(性別in('男','女')),

年齡smallintcheck(年齡between15and45),

所在系char(12)check(所在系in('is','cs','ma')),

電子郵件char(14)check(電子郵件like

'[a-z][a-z][a-z][a-z][a-z][a-z]@26

3.net'))

2.用createtable語句建立如下表,並實現其全部約束。

教師表,結構為:

教師號:普通字元編碼定長字元型,長度為8,主碼,

教師名:普通字元編碼定長字元型,長度為8,非空, 職稱

:普通字元編碼定長字元型,長度為6,取值範圍為:, 工資

:定點小數,小數點前4位,小數點後2位,大於1000

聯絡**

:普通字元編碼定長字元型,長度為14,取值形式為:『(3位區號)-8位號碼』,除8位號碼中的第一位從1開始之外,其他號碼均為0~9

出生日期

:小日期時間型,小於等於當前日期,

參加工作日期

:小日期時間型,小於等於當前日期,

退休日期

:小日期時間型,大於參加工作日期)

createtable教師表(

教師號char(8)primarykey,

教師名char(8)notnull,

職稱char(6)check(職稱in('教授','副教授','講師')),

工資numeric(6,2)check(工資》1000),

聯絡**char(14)check(聯絡**like'([0-9][0-9][0-9])-[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),

出生日期smalldatetimecheck(出生日期<=getdate()),

參加工作日期smalldatetimecheck(參加工作日期<=getdate()),

退休日期smalldatetime,

check(參加工作日期《退休日期) )

3.建立乙個顧客購物資料庫,在此資料庫中建立如下兩張表:

顧客表(顧客id

字元型長度為10,

顧客名字元型長度為10, **

字元型長度為12, 位址

字元型最長為30,

社會保險號碼

字元型長度為15)

訂購表(商品id

字元型長度為15,

商品名稱

字元型長度為20,

顧客id

字元型長度為10,

訂購數量

整型,

訂購日期

短日期型,

交貨日期

短日期型)

使用圖形化工具或sql語句實現如下約束:

--1.為顧客表新增主碼約束,為訂購表新增主碼約束

--2.為訂購表新增外碼約束

--3.限制顧客表**號碼的形式:三位區號-8位**號碼,每位均為數字

--4.當顧客沒有提供位址時,使用預設值'unknown'

--5.限制訂購表的"訂購數量"必須大於0

--6.限制訂購表的"訂貨日期"必須早於"交貨日期"

--7.限制顧客表"社會保險號碼"取值不能重複

createtable顧客表(

顧客idchar(10)notnull,

顧客名char(12),

**char(12),

位址varchar(30),

社會保險號碼char(15))

droptable訂購表

createtable訂購表(

商品idchar(20)notnull,

商品名稱varchar(20)notnull,

顧客idchar(10)notnull,

訂購數量int,

訂貨日期smalldatetimenotnull,

交貨日期smalldatetime)

--1.為顧客表新增主碼約束

altertable顧客表

addconstraintpk_id

primarykey(顧客id)

--為訂購表新增主碼約束

altertable訂購表

addconstraintpk_dg

primarykey(商品id,顧客id,訂貨日期)

--2.為訂購表新增外碼約束

altertable訂購表

addconstraintfk_dg

foreignkey(顧客id)references顧客表(顧客id)

--3.限制顧客表**號碼的形式:三位區號-8位,號碼,每位均為數字

altertable顧客表

addconstraintchk_phone

check(**like'[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

--4.當顧客沒有提供位址時,使用預設值'unknown'

altertable顧客表

addconstraintdf_dz

default'unknown'for位址

--5.限制訂購表的"訂購數量"必須大於0

altertable訂購表

addconstraintchk_dgsl

check(訂購數量》0)

--6.限制訂購表的"訂貨日期"必須早於"交貨日期"

altertable訂購表

addconstraintchk_1

check(訂貨日期《交貨日期)

--7.限制顧客表"社會保險號碼"取值不能重複

altertable顧客表

addconstraintun_1

unique(社會保險號碼)

實訓資料庫開發應用 資料完整性

1 寫出定義滿足如下條件的表的sql語句,表結構為 學生表 學號 字元型,長度為6,主碼,姓名 字元型,長度為6,取值不重,性別 字元型,長度為2,取值只能是 男 和女 年齡 小整型,取值範圍為15 45,所在系 字元型,長度為12,取值只能是 is cs 和 ma 電子郵件 字元型,長度為14,取...

資料庫 資料完整性

更安全的資料型別可參考 型別 位元組大小 有符號範圍 sigened 無符號範圍 unsigned tinyint 1 128 127 0 255 smallint 2 32768 32767 0 65535 mediumint 3 8388608 8388607 0 16777215 int in...

資料庫完整性

完整性約束條件 實體完整性給出了主鍵的取值的最低約束條件 規則是 主鍵的各個屬性都不能為空。參照完整性給出了在關係之間建立正確的聯絡的約束條件 規則是 外來鍵或者取空值 此時要求外來鍵的各個屬性均為空值 或者等於被參照關係中的主鍵的某個值。使用者自定義完整性 關係數控應用系統中的關係往往還應該滿足一...