计科110104_马依侬数据库_第1页
计科110104_马依侬数据库_第2页
计科110104_马依侬数据库_第3页
计科110104_马依侬数据库_第4页
计科110104_马依侬数据库_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告课程名称数据库系统基础实验项目创建数据库及关系表指导教师张鸿斌学 院 计算机学院系别专业计算机科学与技术班级/学号 计科1101/2011011043学生姓名 _马依侬成 绩错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签一. 实验目的二实验要求三. 实验内容四. 实验测试代码及结果五. 实验总结数据库系统基础实验指导书实验-创建数据库及关系表、实验目的1. 掌握SQL Server数据库管理系统的使用,能够中该环境中进行日常数据库操作;2. 掌握在SQL Server中使用图形化工具创建数据库的方法;3. 掌握建立关系表的语句,掌握定义主码约束

2、及外码约束的语句;4. 掌握修改表结构的语句。二、实验要求1了解SQL Server数据库的组成,会使用图形化工具创建数据库。2编写建立表及主、外码约束的T-SQL语句,并执行这些语句,在数据库中建立符合要求的关系表。3编写修改表结构的语句。三、实验内容1. 创建符合如下条件的数据库:数据库的名字为:Stude nts数据文件的逻辑文件名为:Students_dat ,存放在D:Test目录下(若D:盘中无此子目录,可先建立此目录,然后再创建数据库。);文件的初始大小为:5MB增长方式为自动增长,每次增加1MB日志文件的逻辑文件名字为:Students_log ,也存放在D:Test目录下;日

3、志文件的初始大小为:2MB日志文件的增长方式为自动增长,每次增加10%2在已建立的Students数据库中,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。Student表结构列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主码Sname姓名普通编码定长字符串,长度为10非空Ssex性别普通编码定长字符串,长度为2Sage年龄微整型(tinyint )Sdept所在系普通编码不定长字符串,长度为20Spec专业普通编码定长字符串,长度为10Course表结构列名说明数据类型约束Cno课程号普通编码定长字符串,长度为10主码Cname课程名普通编码不定长字符串,长度为20非空

4、Credit学时数整型Semester学分小整型SC表结构列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主码,引用Student的外码Cno课程号普通编码定长字符串,长度为10主码,引用Course的外码Grade成绩小整型Teacher表结构列名说明数据类型约束Tno教师号普通编码定长字符串,长度为8非空Tname教师名普通编码定长字符串,长度为10非空Dept所在部门普通编码不定长字符串,长度为20Salary工资定点小数,小数点前 4位,小数点后2位Birthday岀生日期小日期时间型(smallldatetime )3. 写出实现如下操作的 SQL语句,并查看执行结果:(1

5、) 在SC表中添加一个新的修课类别列:列名为:XKLB,类型为char(4)。Alter Table SCAdd XKLB char(4)(2) 将Course表中的Credit列的类型改为:tinyint(微整型,取值范围在 0255)。Alter Table CourseAlter Column Credit Tinyint(3) 删除Student表的spec列。Alter Table StudentDrop Column spec(4) 为Teacher表添加主码约束,其主码列为:Tno。Alter Table TeacherAdd constraint Tno Primary Key

6、(Tno)4. 执行下列语句,能否成功?为什么?INSERT INTO SC VALUES( S001 , C01 , 88,必修)不可以,虽然语法对,但是不符合参照完整性的定义。四实验测试代码及结果:2.MS Sql语句为:Create table Stude nt (Sno Char(7) Primary KEY,Sn ame Char(10) NOT NULL,Ssex Char(2),Sage Tinyint,Sdept VarChar(20),Spec Char(10)Create table Course (Cno Char(10) Primary KEY,Cn ame VarCh

7、ar(20) NOT NULL,Credit Int,Semester Smalli nt)Create table SC (Sno Char(7) NOT NULL,Cno Char(10) NOT NULL,Grade Smalli nt,Primary KEY(S no,C no),Foreig n Key(S no) Refere nces Stude nt(S no),Foreig n Key(C no) Refere nces Course(C no), )Create table Teacher (Tno Char(8) NOT NULL,Tn ame Char(10) NOT

8、NULL,Dept VarChar(20),Salary Decimal(4,2),Birthday SmallDateTime)执行结果:SQLQueryl. s. . at or (52)* Crea匸e veJole Studsnts (Sno Char(7) Primary KEY,Snane Char(10) NOT NULL,Ssex Char(2),Sage Tinyint,Sdep匸 VarChar(20),Spec Cher i:10)A Create 匸able Course ( Cno Char(10 Pr imary KEY,Cnauie VarChar f20) NO

9、T HULL, Credit IrxtjSemestei: Sma 11 int Crea匸亡 table SC (Sno Char(7) NOT NULL,Cno Char(10) MOT NULL,Gr ade Srtia 11 i nt,Primary KEY(SnofCnc)fForeign Key(Snoj References Student(Snoj tForeign Key(Cno) Relerences Course(Cno),Fl Create cajole Teacher ( Tno Char(8) NOT NULL, Tname Char!) NOT HULL, Dep

10、匸 VarChar 20), Salary Decimal(4,2), Birthday SmallDa匸呂Tim皂-)use st ude nts列名数据类型允许Null值gmcharC7)5namecharClO)5sexcharC2)5agetinyintSdeptvarchar(20)Specchar(10)列名数据类型允许Nul值Cnoi char(10)Cnamevarchar(20)Creditint0SemesterKnelrt0I列名数据类型 允许Null值网aschar(7)7 Cno匚 har(10)GradesmallintC64. students - dbo. Te

11、acher C64. students - dbo, SCC64. i列名数据类型允许Null ffik iOSchar Tnamechart 10)Deptvarchar(2O)0Salarydecimal(4j 2)0Birthdaysmalldatetime03. 执行结果:(A)在孔表中添加一个新的修类别列I列名为.XKLB,类型为血牡唆。3 Alter Table SC-Add KKLE char (4)(2)将Course中的Credit列的类型改为:匕inyint (微整型,取值范围在0255) Q3 Alter Tattle Course-Alter Column Credit

12、 TinyincCl)删除student表的specjl 03 Alter Table Student-Drop Column spec为Teacher添加主码约東,其主码列为:Tno63 Alter Table Teacher-Add constraint Tno Primary Key(Tno)列名数据类型 允许血II值列名数据类型 允许Null值 匚 har(lC)Cnamevarchar(20)CredittinyintSemestersmalfantC64. students - dbv. Student C64. students - dbo. Course C64.列名数据类型允

13、许Null信? 333char(6)Tnarmechar(10)Deptvarchar(ZO)Salarydecknal(4j 2)Birthdaysmallch 怕 time五实验总结:实验二数据操作语句一、实验目的理解数据操作语句的功能。二、实验要求1 根据实验一建立的数据库和关系表,导入部分数据;2. 编写实现数据操作功能的SQL语句。三、实验内容首先在SSMS工具中,选中Students数据库,执行数据插入语句.sql”文件,将数据插入到Students 数据库的三张表中(用实验二建立的三张表),然后编写出实现下述操作的SQL语句,执行并观察执行的结果。1. 查询计算机系年龄最大的三个

14、学生的姓名和年龄。2. 统计每个学生的选课门数,并按选课门数的递增顺序显示结果。3. 列出总成绩超过200分的学生,要求列出学号、总成绩。4. 查询成绩80分以上的学生的姓名、课程号和成绩,并将结果按成绩的降序排列。5. 查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。6. 列出“ VB课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。7. 查询哪些课程没有人选,要求列出课程号和课程名。8. 查询计算机系学生考试成绩高于全体学生的总平均成绩的学生的姓名、考试的课程名和考试成绩。9 查询VB考试成绩最低的学生的姓名、所在系和VB

15、成绩。10. 查询VB课程考试成绩高于 VB平均成绩的学生 的姓名。11. 查询平均成绩大于 80分的课程的名字和学分。12. 统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”;如果此门课程的选课人数在 40100,则显示“一般”;如果此门课程的选课人数在 140,则显示“人少”; 如果此门课程没有人选,则显示“无人选”。13查询至少选修了“ 9512102 ”号学生选修的全部课程的学生,列出学号和所选的课程号。14查询至少选修了第 2学期开设的全部课程的学生的姓名和所在系。15修改“V

16、B”课程的考试成绩,如果是计算机系的学生,则增加 4分;如果是信息系的学生则增加8分,其他系的学生增加 10分。16. 删除修课成绩小于 50分的学生的修课记录17. 删除信息系修课成绩小于50分的学生的修课纪录,分别用子查询和多表连接形式实现。18. 将所有选修了“ C01 ”课程的学生的成绩加10分。19. 将计算机系所有选修了计算机文化学课程的学生的成绩加10分,分别用子查询和多表连接 形式实现。20. 删除“ VB考试成绩最低的学生的VB修课记录。21. 修改高等数学的考试成绩,修改规则如下:如果是计算机系学生,则加10分,如果是信息系学 生则加5分,如果是数学系学生则分数不变。22查

17、询每个系年龄最大的两个学生的姓名、所在系和年龄。四. 实验测试代码及结果:语句为:CREATE TABLE Stude nt (Sno CHAR(7) PRIMARY KEY,Sn ame NCHAR(5) NOT NULL,Ssex NCHAR(1),Sage TINYINT,Sdept NVARCHAR(20)CREATE TABLE Course (Cno CHAR(6),Cn ame NVARCHAR(20) NOT NULL,Credit TINYINT,Semester TINYINT,PRIMARY KEY(C no)CREATE TABLE SC (Sno CHAR(7) NO

18、T NULL,Cno CHAR(6) NOT NULL,Grade TINYINT,PRIMARY KEY (Sno, Cn o),FOREIGN KEY (Sno) REFERENCES Stude nt (S no),FOREIGN KEY (Cn o) REFERENCES Course (Cno)高等数学,4,1)大学英语,3,1)大学英语,3,2) 计算机文化学,2,2)数据库基础,4,5) 数据结构,4,4)计算机网络,4,4)in sert into stude nt values(0811101,李勇,男 ,21,计算机系)in sert into stude nt value

19、s(0811102,刘晨,男,20,计算机系)in sert into stude nt values(0811103,王敏,女,20,计算机系)in sert into stude nt values(0811104,张小红,女,19,计算机系)in sert into stude nt values(0821101,张立,男,20,信息管理系)in sert into stude nt values(0821102,吴宾 女,19,信息管理系)in sert into stude nt values(0821103,张海,男,20,信息管理系)in sert into stude nt v

20、alues(0831101,钱小平,女,21,通信工程系)in sert into stude nt values(0831102,王大力,男,20,通信工程系)in sert into stude nt values(0831103,张姗姗,女,19,通信工程系)in sert into course values(C001,in sert into course values(C002,in sert into course values(C003,in sert into course values(C004,in sert into course values(C005,VB,2,3)

21、in sert into course values(C006,in sert into course values(C007,in sert into course values(C008, in sert into sc values(0811101,C001,96)in sert into sc values(0811101,C002,80) insert into sc values(0811101,C003,84) in sert into sc values(0811101,C005,62) in sert into sc values(0811102,C001,92) in se

22、rt into sc values(0811102,C002,90) in sert into sc values(0811102,C004,84) in sert into sc values(0821102,C001,76) in sert into sc values(0821102,C004,85) in sert into sc values(0821102,C005,73) in sert into sc values(0821102,C007,NULL) in sert into sc values(0821103,C001,50) in sert into sc values(

23、0821103,C004,80) in sert into sc values(0831101,C001,50) in sert into sc values(0831101,C004,80) in sert into sc values(0831102,C007,NULL) in sert into sc values(0831103,C004,78) in sert into sc values(0831103,C005,65) in sert into sc values(0831103,C007,NULL) 执行结果:二錯果匕消息SnoSnameSsewSageSdept1 08111

24、01 !李勇男21计算机系20811102刘晨男20计算机累30G11103王鎮20计直机罢40011104张小红19计算机系508211C1张立男20信息管0821102吴宾女19宿息管708211C3张海男20信息管00B31101钱小平21通信工90831102王大力男20通信工100851103女19通信工3结果消息CnoCnameCreditSemester1i cm 高等数学412C002大学英语313C003大学英语324C0C4计倉机文化学225C005VB23SC006数据库基础457C007数据皓构44SC00B计豊机网路44二1结果消息SnoCnoGraden081110

25、1 :C0Q19S20911101C0Q28030811101C0038440811101C0056250911102C00192S081110200029070911102C00404S0821102C00176g0921102cm85100321102coos73110021102C007NULL120321103C00150130321103C00480140331101COM50150331101C00480IE0931102C007NULL170331103C004731G0331103C00565190331103C007NULL1.查询计算机系年龄最大的三个学生的姓名和年龄。se

26、lect top 3 sn ame,sage,sdeptfrom stude ntwhere Sdept in(计算机系)order by Sage desc结専區消息snamesagesdept李勇21计算机系2王敏20计算机系320计算机系2.统计每个学生的选课门数,并按选课门数的递增顺序显示结果。select sno 学号,COUNT(*) 选课门数from SC group by Snoorder by COUNT(*)3. 列出总成绩超过200分的学生,要求列出学号、总成绩。4. 查询成绩80分以上的学生的姓名、课程号和成绩,并将结果按成绩的降序排列。5. 查询学生的选课情况,要求列

27、出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。6. 列出“ VB课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。7. 查询哪些课程没有人选,要求列出课程号和课程名。8. 查询计算机系学生考试成绩高于全体学生的总平均成绩的学生的姓名、考试的课程名和考试成绩。9 查询VB考试成绩最低的学生的姓名、所在系和VB成绩。10. 查询VB课程考试成绩高于 VB平均成绩的学生 的姓名。11. 查询平均成绩大于 80分的课程的名字和学分。12. 统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人数及选课情况,其中选课情况为:如果此门课程的

28、选课人数超过100人,则显示“人多”;如果此门课程的选课人数在 40100,则显示“一般”;如果此门课程的选课人数在140,则显示“人少”:如果此门课程没有人选,则显示“无人选”。13查询至少选修了“ 9512102 ”号学生选修的全部课程的学生,列出学号和所选的课程号。14查询至少选修了第 2学期开设的全部课程的学生的姓名和所在系。15修改“VB”课程的考试成绩,如果是计算机系的学生,则增加 4分;如果是信息系的学生则增加 8分,其他系的学生增加10分。16. 删除修课成绩小于 50分的学生的修课记录17. 删除信息系修课成绩小于 50分的学生的修课纪录,分别用子查询和多表连接形式实现。18

29、. 将所有选修了“ C01 ”课程的学生的成绩加 10分。19. 将计算机系所有选修了计算机文化学课程的学生的成绩加10分,分别用子查询和多表连接 形式实现。20. 删除“ VB考试成绩最低的学生的VB修课记录。21 修改高等数学的考试成绩,修改规则如下:如果是计算机系学生,则加10分,如果是信息系学生则加5分,如果是数学系学生则分数不变。22查询每个系年龄最大的两个学生的姓名、所在系和年龄。五实验总结:实验三数据完整性约束实验目的理解数据完整性约束的功能。、实验要求1 .掌握建立声明性数据完整性约束的SQL语句;2 .掌握建立过程完整性约束的SQL语句。、实验内容及步骤SQL语句,执行并观1

30、在实验一建立的 Students数据库中,编写建立满足完整性要求的定义表的 察执行结果。(说明:表名、列名均用给出的中文)(1)图书表,结构如下:书号: 统一字符编码定长类型,长度为6,主码,书名: 统一字符编码可变长类型,长度为 30,非空,第一作者:普通编码定长字符类型,长度为10,非空,出版日期:小日期时间型,小于等于当前系统日期,印刷数量:小整型,取值范围:10005000,默认为4000,价格:定点小数,小数部分一位,整数部分3位。(2)书店表,结构如下:书店编号: 统一字符编码定长类型,长度为 6,主码,店名:统一字符编码可变长类型,长度为 30,非空,电话: 普通编码定长字符类型

31、, 12位长,取值形式:010-8位数字 地址: 普通编码可变长字符类型, 40位长。前两个字符必须是:北京。(3)图书销售表(XSB),结构如下:书号: 统一字符编码定长类型,长度为 6,非空,书店编号:统一字符编码定长类型,长度为 6,非空,销售日期:小日期时间型,非空,默认值为系统当前日期,销售数量: 微整型,取值大于 0,主码(书号,书店编号,销售日期);书号为引用“图书表”的外码;书店编号为引用“书店表”的外码。2. 执行下列两条数据插入语句,是否都能执行成功?为什么?INSERT INTO 图书表VALUES( T0001,数据库系统基础, 张三,20102- 13000,28.0)INSERT INTO 图书表VALUES( T0002,计算机网络,张三,2010-1- 1 , 500,36.0)3. 执行下列两条数据插入语句,是否执行成功?为什么?INSERT INTO 书店表 VALUES( S001,新华书店,12345678,北京市海淀区)4. 执行下列两条数据插入语句,是否执行成功?为什么?INSERT INTO 图书销售表(书号,书店编号,销售数量 )VALUES( T0 001 , S001 ,20)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论