教学思路SQL之入门习题《学员成绩》 一、建表

 
习题一学员成绩:
       1.创建一个名为学员成绩的数据库, 主要数据文件初始大小为10MB,最大空间为30MB,文件增长幅度为5MB,日志文件初始大小为5MB,最大为20MB,文件增长幅度为3MB,请自行设定文件的保存路径。
Student
Score
chengji
teacherInfo
   6.建立四个表间的主从表关系。         
     6.1  学生成绩表中能不能出现在学员信息表中不存在的学号 ?
     6.2  学生信息表中学生编号发生改变时应如何处理成绩表中的学生编号 ?
     6.3  可以任意删除学生信息表中的数据吗?
     6.4  学生成绩表中的课程编号可以随意添加吗?
 7.   对学生信息表添加检查约束,要求性别只能是男或者女,年龄必须在 0 100 之间。
 8.对学生信息表的入学日期字段添加默认约束,使其默认值为当前日期。
 9.教师信息表中教师编号(teacherId)使用自动增长序列,初始编号为1001.
 
答案:
6.1 不能
6.2 不能
6.3不能
6.4不能
参照完整性约束
  限制(Restrict)。不允许进行修改或删除操作。若修改或删除主表的主键时,如果子表中存在子记录,系统将产生一个错误提示。这是缺省的参照完整性设置。
  置空(Set Null)。如果外键列允许为空,若修改或删除主表的主键时,把子表中参照的外键列设置为空值(NULL)。
  置为缺省(Set Default)。如果指定了缺省值,若修改或删除主表的主键时,把子表中参照的外键设置为缺省值(Default)。
  级联(Cascade)。把主表中主键修改为一个新的值时,相应修改子表中外键的值;或者删除主表中主键的记录时,要相应删除子表中外键的记录。
 
建库
 
创建student表
CREATE  TABLE [dbo].[student]( 
        [number] [ int] IDENTITY(1,1)  NOT  NULL
        [ name] [ nchar](10)  COLLATE Chinese_PRC_CI_AS  NOT  NULL
        [sex] [ nvarchar](1)  COLLATE Chinese_PRC_CI_AS  NULL  CONSTRAINT [DF_student_sex]     DEFAULT ( '男'), 
        [age] [ smallintNULL
        [ datetime] [ datetimeNULL  CONSTRAINT [DF_student_datetime]     DEFAULT ( getdate()), 
        [diqu] [ varchar](50)  COLLATE Chinese_PRC_CI_AS  NOT  NULL
        [lianxidianhua] [ intNULL
CONSTRAINT [PK_student]  PRIMARY  KEY  CLUSTERED    

        [number]  ASC 
) WITH (PAD_INDEX    =  OFF, IGNORE_DUP_KEY =  OFFON [ PRIMARY
ON [ PRIMARY

GO 
SET ANSI_PADDING  OFF 
GO 
ALTER  TABLE [dbo].[student]     WITH  CHECK  ADD     CONSTRAINT [CK_student]  CHECK    (([age]>(0)  AND [age]<=(100))) 
GO 
ALTER  TABLE [dbo].[student]  CHECK  CONSTRAINT [CK_student] 
GO 
ALTER  TABLE [dbo].[student]     WITH  CHECK  ADD     CONSTRAINT [CK_student_sex]  CHECK    (([sex]= '男'  OR[sex]= '女')) 
GO 
ALTER  TABLE [dbo].[student]  CHECK  CONSTRAINT [CK_student_sex]
 
创建teacherinfo表
 
创建score表
 
创建chengji表
CREATE  TABLE [dbo].[chengji]( 
        [number] [ intNOT  NULL
        [scorenumber] [ intNOT  NULL
        [score] [ floatNOT  NULL 
ON [ PRIMARY

GO 
ALTER  TABLE [dbo].[chengji]     WITH  CHECK  ADD     CONSTRAINT [FK_chengji_score]  FOREIGN  KEY([scorenumber]) 
REFERENCES [dbo].[score] ([scorenumber]) 
GO 
ALTER  TABLE [dbo].[chengji]  CHECK  CONSTRAINT [FK_chengji_score] 
GO 
ALTER  TABLE [dbo].[chengji]     WITH  CHECK  ADD     CONSTRAINT [FK_chengji_student]  FOREIGN  KEY([number]) 
REFERENCES [dbo].[student] ([number]) 
GO 
ALTER  TABLE [dbo].[chengji]  CHECK  CONSTRAINT [FK_chengji_student]
关系图如下:
本文转自叶子文文博客51CTO博客,原文链接http://blog.51cto.com/leafwf/185783如需转载请自行联系原作者

叶子文文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值