如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
数据库原理共NUMPAGES22页第页--======================================================================--中大计算机自学考试实践考核-8347-数据库原理题目及答案--本SQL脚本在MSSQLSERVER2000上执行通过--======================================================================--======================================================================--样题1.现在为学校建立一个数据库,学校院系机构设置如下;一个系有若干个专业,每个--专业一年只招一个班,每个班有若干学生.要求建立一个关于系,学生,班级的数据库,关--系模式为:--学生STUDENT(学号,姓名,年龄,办号)--班CLASS(班号,专业名,系名,入学年份)--系DEPARTMENT(系号,系名)--======================================================================--首先建立样题一使用的数据库--======================================================================IFEXISTS(SELECT*FROMmaster..sysdatabasesWHEREname=N'Q1')DROPDATABASEQ1GOCREATEDATABASEQ1GOUSEQ1GO--======================================================================--请用SQL语言完成以下功能:--======================================================================--1,使用查询分析器建表,要求声明:--(1)每个表的主外码.--(2)每个班级的人数不能超过20人.--(3)学生年龄介于16到30岁之间.--(4)学生姓名不能为空.--(5)只有班里没有学生的时候,才能删除该班.--======================================================================--以下建立三个基本表:DEPARTMENT,CLASS,STUDENT--======================================================================CREATETABLEDEPARTMENT(系号SmallintPrimarykey,--主码系名varchar(20)UNIQUE)GOCREATETABLECLASS(班号Smallintprimarykey,--主码专业名varchar(20),系名varchar(20)FOREIGNKEYREFERENCESDEPARTMENT(系名),--外码入学年份int)GOCREATETABLESTUDENT(学号Smallintprimarykey,--主码姓名varchar(10)notnull,年龄Smallintcheck(年龄>=16and年龄<=30),班号SmallintFOREIGNKEYREFERENCESCLASS(班号)ONDELETENOACTION--外码--CHECK(20>=ALL(SELECTCOUNT(学号)FROMSTUDENTGROUPBY班号)))GO--下面是实现约束条件"每个班级的人数不能超过20人"CREATEFUNCTIONdbo.f_check()RETURNSINTASBEGINDECLARE@numINTSELECT@num=MAX(A)FROM(SELECTCOUNT(学号)ASAFROMSTUDENTGROUPBY班号)ASBRETURN@numENDGOALTERTABLESTUDENTADDCONSTRAINT学号检查CHECK(dbo.f_check()<=20)GO--======================================================================--2,插入如下数据--CLASS(--101,软件,计算机,19