开发者社区> 科技探索者> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看
 
习题一学员成绩:
      1.创建一个名为学员成绩的数据库, 主要数据文件初始大小为10MB,最大空间为30MB,文件增长幅度为5MB,日志文件初始大小为5MB,最大为20MB,文件增长幅度为3MB,请自行设定文件的保存路径。
Student
Score
chengji
teacherInfo
   6.建立四个表间的主从表关系。       
     6.1 学生成绩表中能不能出现在学员信息表中不存在的学号?
     6.2 学生信息表中学生编号发生改变时应如何处理成绩表中的学生编号?
     6.3 可以任意删除学生信息表中的数据吗?
     6.4 学生成绩表中的课程编号可以随意添加吗?
 7. 对学生信息表添加检查约束,要求性别只能是男或者女,年龄必须在0100之间。
 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如需转载请自行联系原作者

叶子文文

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mybatis动态SQL语句
三、动态SQL语句         有些时候,sql语句where条件中,需要一些安全判断,例如按性别检索,如果传入的参数是空的,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息。
674 0
[20150803]无法通过sql_id找到sql语句3.txt
[20150803]无法通过sql_id找到sql语句3.txt --前一阵子,在做优化时遇到1个无法通过sql_id找到sql语句的情况: http://blog.itpub.net/267265/viewspace-1749265/ --就是因为共享池太小,执行次数少,没到取样时间,已经从共享池清除。
1057 0
[20150803]无法通过sql_id找到sql语句2.txt
[20150803]无法通过sql_id找到sql语句2.txt --前一阵子,在做优化时遇到1个无法通过sql_id找到sql语句的情况: http://blog.itpub.net/267265/viewspace-1749265/ --就是因为共享池太小,执行次数少,没到取样时间,已经从共享池清除。
992 0
[20150724]无法通过sql_id找到sql语句.txt
[20150724]无法通过sql_id找到sql语句.txt --前一阵子遇到一个奇怪的问题,要优化一个项目: http://www.itpub.net/thread-1930339-1-1.
1037 0
使用SQL语句创建SQL数据脚本(应对万网主机部分不支持导出备份数据)
原文:使用SQL语句创建SQL数据脚本(应对万网主机部分不支持导出备份数据) 1、查询待导出表Ad中的数据。 SELECT * FROM [DB_Temp].[dbo].[Ad] 2、编写存储过程。
883 0
[20150715]一条sql语句的优化.txt
[20150715]一条sql语句的优化.txt --生产系统发现一条语句。 update presc_check t set t.diagnosis=replace(t.diagnosis,',慢性病drugs','') --第1眼看到的感觉真的很想骂人,什么能没有where条件呢? --我把这个表拷贝过来。
882 0
使用mysql profiles 来查看sql 语句执行计划
 要使用该功能,mysql的版本必须在5.0.37版本以上。否则只能使用explain 的方式来检查。
783 0
T-SQL查询:语句执行顺序
原文:T-SQL查询:语句执行顺序 读书笔记:《Microsoft SQL Server 2008技术内幕:T-SQL查询》   ===============  T-SQL查询的执行顺序 ===============      =============== T-SQL查询的示意图...
791 0
5487
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载