用自定义函数,实现约束条件

--原贴:

http://community.csdn.net/Expert/topic/4402/4402384.xml?temp=.2275965

问题:
 现要为学校建立一个数据库,学校院系机构设置如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生,要求建立一个关于系、学生、班级的数据库,关系模式为:
学生STUDENT (学号,姓名,年龄,班号)
班CLASS (班号,专业名,系名,入学年份)
系DEPARTMENT (系号,系名)
  请用SQL语文完成以下功能:
1、使用查询分析器建表,要求声明:
(2)每个班级的人数不能超过20人。
(3)学生的年龄介于16到30岁之间。

  请大虾帮忙怎样写这个约束语句。

--创建环境

Create Table STUDENT (
   学号 varchar(10),
   姓名 varchar(10),
   年龄 int,
   班号 int
)
go
Create Table CLASS (
   班号 int,
   专业名 varchar(10),
   系名 varchar(10),
   入学年份 int
)
go
Create Table DEPARTMENT (
   系号 int,
   系名 varchar(10)
)
go

--函数
--创建函数
create function f_check()
returns int
as
begin
      declare @num int
      select @num=count(学号) from STUDENT
             GROUP BY 班号
      return @num
end
go

--添加约束
alter table STUDENT add constraint student_学号_check
check(dbo.f_check()<=20)

alter table STUDENT add constraint student_年龄_check
check(年龄>=16 and 年龄<=30)


--删除环境
Drop table STUDENT,CLASS,DEPARTMENT

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值