如题、、、本人现在北大青鸟培训。刚学完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。现在就剩下那些约束表达式 不知道怎么写望高手指导一下。
本人真的很想知道、望高手耐心解答一下谢谢了、

解决方案 »

  1.   

    约束就分那么几种,主键约束,唯一约束,外键约束,CHECK约束,默认值参考一下
    http://wenku.baidu.com/view/800d7b6727d3240c8447ef7e.html
      

  2.   

    check(Banlance<=1000)
    check(onuse in [0,1])
    第三个要在插入数据时判断吧
      

  3.   

    check(Banlance<=1000)
    check(onuse in ('0','1'))--刚才忘了看数据类型
    第三个要在插入数据时判断吧
      

  4.   

    ---创建主键约束,唯一约束,检查约束
    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
      

  5.   

    alter table computer add constraint ck_sex check(OnUser='0' or OnUser='1')
    go
      

  6.   

    我把几个约束放到一个表里了,楼主看看
    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)
      

  7.   

    你不是学了那么多语言了嘛,约束表达式就是一个逻辑表达式,就是算术运算+比较运算+逻辑运算,这有什么难的,编程的最基础语句单元哪!Balance<=1000OnUser=1 or OnUser=0EndTime>BeginTime在表中添加约束:在表定义的最后,加上 CONSTRAINT tb_CK CHECK( 上面的逻辑表达式) 
      

  8.   

    T-SQL有很多不同写法可以实现相同结果.