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