数据库的完整性设计
有三张表
student表:
sno sname ssex sbirthday
108 小名 男 1980-0-1
105 张三 女 1982-0-15
110 混蛋 男 2000-12-24
course表:
cno cname
3-105 计算机
3-245 高数
3-500 模电
score表:
sno cno degree
108 3-105 60
105 3-245 90
现在要实现的功能是:
1、在表格student中插入的学生年龄值在16~25之间。
2、在表格score中插入记录时,其sno和cno的值必须分别在表格student和course中出现。(用CHECK约束和外键约束两种方式实现)
3、在表格course中删除一个记录时,必须同时把表格score中具有同样cno值的记录一起删除。
------解决方案--------------------add constraint c_1 check(age between 16 and 25)
add constraint c_2 foreign key sno references student(sno)
add constraint c_3 foreign key cno freferences score(cno) on delete cascade
------解决方案--------------------如上,增加约束即可
------解决方案--------------------第一个约束你可以将他们按下面的改改在查询分析器中执行,我推荐你在企业管理器中操作:
打开库找到表-设计-工具栏上有一个象表格的图标(带外框)-check约束--粘贴下面的内容-关闭-保存就完成了,其它类
datediff(yy,[sbirthday],getdate()) between 16 and 25
------解决方案--------------------第一个问题:加约束。
第二个问题:加外键。
第三个问题:加触发器。