1.寫出定義滿足如下條件的表的sql語句,表結構為:
學生表(
學號:字元型,長度為6,主碼,
姓名:字元型,長度為6,取值不重,
性別:字元型,長度為2,取值只能是『男』和女』,
年齡:小整型,取值範圍為15~45,
所在系:字元型,長度為12,取值只能是『is』、『cs』和『ma』,
電子郵件
:字元型,長度為14,取值形式為:6位名字(每一位必須為字母)+『@263.net』)
create table sss
(學號 char(6) primary key,
姓名 char(6) unique,
性別 char(2) check(性別 in('男','女')),
年齡 **allint check(年齡 between 15 and 45),
所在系 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.用create table 語句建立如下表,並實現其全部約束。
教師表,結構為:
教師號:普通字元編碼定長字元型,長度為8,主碼,
教師名:普通字元編碼定長字元型,長度為8,非空,
職稱:普通字元編碼定長字元型,長度為6, 取值範圍為:,
工資:定點小數,小數點前4位,小數點後2位,大於1000
聯絡**
:普通字元編碼定長字元型,長度為14, 取值形式為:『(3位區號)-8位號碼』,除8位號碼中的第一位從1開始之外,其他號碼均為0~9
出生日期
:小日期時間型,小於等於當前日期,
參加工作日期
:小日期時間型,小於等於當前日期,
退休日期
:小日期時間型,大於參加工作日期 )
create table 教師表(
教師號 char(8) primary key,
教師名 char(8) not null,
職稱 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]'),
出生日期 **alldatetime check(出生日期<=getdate()),
參加工作日期 **alldatetime check(參加工作日期<=getdate()),
退休日期 **alldatetime,
check(參加工作日期《退休日期) )
3.建立乙個顧客購物資料庫,在此資料庫中建立如下兩張表:
顧客表(顧客id
字元型長度為10,
顧客名字元型
長度為10,
**字元型
長度為12,
位址字元型
最長為30,
社會保險號碼
字元型長度為15)
訂購表(商品id
字元型長度為15,
商品名稱
字元型長度為20,
顧客id
字元型長度為10,
訂購數量
整型,
訂購日期
短日期型,
交貨日期
短日期型)
使用圖形化工具或sql語句實現如下約束:
--1.為顧客表新增主碼約束,為訂購表新增主碼約束
--2.為訂購表新增外碼約束
--3.限制顧客表**號碼的形式:三位區號-8位**號碼,每位均為數字
--4.當顧客沒有提供位址時,使用預設值'unknown'
--5.限制訂購表的"訂購數量"必須大於0
--6.限制訂購表的"訂貨日期"必須早於"交貨日期"
--7.限制顧客表"社會保險號碼"取值不能重複
create table 顧客表 (
顧客id char(10) not null,
顧客名 char(12),
** char(12),
位址 varchar(30),
社會保險號碼 char(15))
drop table 訂購表
create table 訂購表 (
商品id char(20) not null,
商品名稱 varchar(20) not null,
顧客id char(10) not null,
訂購數量 int,
訂貨日期 **alldatetime not null,
交貨日期 **alldatetime )
--1.為顧客表新增主碼約束
alter table 顧客表
add constraint pk_id
primary key(顧客id)
--為訂購表新增主碼約束
alter table 訂購表
add constraint pk_dg
primary key(商品id,顧客id,訂貨日期)
--2.為訂購表新增外碼約束
alter table 訂購表
add constraint fk_dg
foreign key(顧客id) references 顧客表(顧客id)
--3.限制顧客表**號碼的形式:三位區號-8位,號碼,每位均為數字
alter table 顧客表
add constraint chk_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'
alter table 顧客表
add constraint df_dz
default 'unknown' for 位址
--5.限制訂購表的"訂購數量"必須大於0
alter table 訂購表
add constraint chk_dgsl
check (訂購數量》0)
--6.限制訂購表的"訂貨日期"必須早於"交貨日期"
alter table 訂購表
add constraint chk_1
check(訂貨日期《交貨日期)
--7.限制顧客表"社會保險號碼"取值不能重複
alter table 顧客表
add constraint un_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...
資料庫完整性
完整性約束條件 實體完整性給出了主鍵的取值的最低約束條件 規則是 主鍵的各個屬性都不能為空。參照完整性給出了在關係之間建立正確的聯絡的約束條件 規則是 外來鍵或者取空值 此時要求外來鍵的各個屬性均為空值 或者等於被參照關係中的主鍵的某個值。使用者自定義完整性 關係數控應用系統中的關係往往還應該滿足一...