如题、、、本人现在北大青鸟培训。刚学完JAVA、C#基础、这几天开始接触数据库、、用的是SQL Server
关于那个约束表达式啊、、、完全看不懂望高手给点经验、这个怎么学、有好资料的、麻烦分享一下、、先在这谢谢大家
以下是我遇到的第一个题目、麻烦帮解、
=====================================
上网卡表(Card)的结构
列名 数据类型 长度 是否允许为空 列说明
ID Varchar 10 否 主键、不允许有相同值
PassWord Varchar 50 否 密码
Balance Int 是 卡上的余额
UserName Varchar 50 是 持卡人的姓名
注:该表用于存储上网卡信息、其主键为ID
=====================================
Card表中、卡上余额不能超过1000=====================================计算机表(Computer)的结构
列名 数据类型 长度 是否允许为空 列说明
ID varchar 10 否 主键、不允许有相同值
OnUse varchar 1 否 是否正在使用
Note varchar 100 是 备注和说明信息
注:该表用于存储计算机及状态信息、其主键为ID
=====================================
Computer表中、OnUser只能是0或者1=====================================
上机信息表(Record)的结构
列名 数据类型 长度 是否允许为空 列说明
ID numeric 否 主键、不允许有相同值
CardID Varchar 10 否 外键、--Card
ComputerCard Varchar 10 否 外键、--Computer
BeginTime smalldatatime 是 开始上机时间
EndTime smalldatatime 是 下机时间
Fee numeric 是 本次上机费用
注:该表用于存储每次上机的信息、其主键为ID
======================================
Record表中、EndTime不能早于BeginTime。
就是以上这些。。表什么的我都做好了Card表中、卡上余额不能超过1000
Computer表中、OnUser只能是0或者1
Record表中、EndTime不能早于BeginTime。现在就剩下那些约束表达式 不知道怎么写望高手指导一下。
本人真的很想知道、望高手耐心解答一下谢谢了、
关于那个约束表达式啊、、、完全看不懂望高手给点经验、这个怎么学、有好资料的、麻烦分享一下、、先在这谢谢大家
以下是我遇到的第一个题目、麻烦帮解、
=====================================
上网卡表(Card)的结构
列名 数据类型 长度 是否允许为空 列说明
ID Varchar 10 否 主键、不允许有相同值
PassWord Varchar 50 否 密码
Balance Int 是 卡上的余额
UserName Varchar 50 是 持卡人的姓名
注:该表用于存储上网卡信息、其主键为ID
=====================================
Card表中、卡上余额不能超过1000=====================================计算机表(Computer)的结构
列名 数据类型 长度 是否允许为空 列说明
ID varchar 10 否 主键、不允许有相同值
OnUse varchar 1 否 是否正在使用
Note varchar 100 是 备注和说明信息
注:该表用于存储计算机及状态信息、其主键为ID
=====================================
Computer表中、OnUser只能是0或者1=====================================
上机信息表(Record)的结构
列名 数据类型 长度 是否允许为空 列说明
ID numeric 否 主键、不允许有相同值
CardID Varchar 10 否 外键、--Card
ComputerCard Varchar 10 否 外键、--Computer
BeginTime smalldatatime 是 开始上机时间
EndTime smalldatatime 是 下机时间
Fee numeric 是 本次上机费用
注:该表用于存储每次上机的信息、其主键为ID
======================================
Record表中、EndTime不能早于BeginTime。
就是以上这些。。表什么的我都做好了Card表中、卡上余额不能超过1000
Computer表中、OnUser只能是0或者1
Record表中、EndTime不能早于BeginTime。现在就剩下那些约束表达式 不知道怎么写望高手指导一下。
本人真的很想知道、望高手耐心解答一下谢谢了、
http://wenku.baidu.com/view/800d7b6727d3240c8447ef7e.html
check(onuse in [0,1])
第三个要在插入数据时判断吧
check(onuse in ('0','1'))--刚才忘了看数据类型
第三个要在插入数据时判断吧
create table test
(
id int,
testname varchar(50),
sex bit,
class varchar(50),
score float default(0)
constraint pk_test primary key/*这里可以指定是创建聚集或非聚集索引clustered|nonclustered可选项*/(id)
constraint ix_test unique(testname)
constraint ck_test check/*这里可以使用 not for replication可选项,用于指定当从其他表中复制数据时,不检查约束条件*/(score>=0)
)
go
go
create table tb
(Balance Int,
OnUse varchar(1),
BeginTime datetime,
EndTime datetime
)alter table tb add check(BeginTime<=EndTime)
alter table tb add check(onuse in ('0','1'))
alter table tb add check(Balance<=1000)