太原理工大学数据库实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

太原理工大学学生实验报告学院名称专业班级课程名称学号学生姓名实验日期实验成绩实验题目交互式SQL实验一认识DBMS一、实验目的1.通过对某个商用数据库管理系统的安装使用,初步了解DBMS的工作环境和系统构架。在此推荐SQLSERVER2005。2.熟悉DBMS的安装、配置及使用。3.搭建今后实验的平台。二、实验平台操作系统:WindowsXP。数据库管理系统:SQLSERVER2005。选择安装各个数据库管理系统之前,请仔细看清硬件的配置要求。三、实验内容和要求1.根据安装文件的说明安装数据库管理系统。在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。2.学会启动和停止数据库服务。在正确安装SQLSERVER2005后,SQLSERVER数据库引擎服务会在系统启动时自动启动。如果要手动地启动和停止数据库引擎服务,可以通过SQLSERVER配置管理器(SQLSERVERCONFIGURATIONMANAGER)来进行管理。SQLSERVER配置管理器综合了SQLSERVER2000中的服务管理器、服务器网络适用工具和客户端网络实用工具的功能。打开SQLSERVER配置管理器工具,单击“SQLSERVER2005服务”节点,其中的“SQLSERVER”服务就是我们所说的数据库引擎。与SQLSERVER2000一样,可以通过这个配置管理器来启动、停止所安装的服务,如“SQLSERVER(MSSQLSERVER)”。3.了解RDBMS系统的体系结构。实验二交互式SQL一.数据定义(一)基本表的操作1.建立基本表例如,建立一个学生表:createtableStudent(Snochar(9)primarykey,Snamechar(20)unique,Ssexchar(2),Sagesmallint,Sdeptchar(20))建立一个课程表:createtableCourse(Cnochar(4)primarykey,Cnamechar(40),Cpnochar(4),Ccreditsmallint,foreignkey(Cpno)referencesCourse(Cno))createtablesc(Snochar(9),Cnochar(4),Gradesmallint,primarykey(Sno,Cno),foreignkey(Sno)referencesstudent(Sno),foreignkey(Cno)referencescourse(Cno));2.修改基本表例如,像student表加一个入学时间列:altertableStudentaddS_entrancedatetimealtertableStudentaltercolumnSageintaltertableCourseaddunique(Cname)3.删除基本表例如,删除已经建立的学生表:droptableStudentdroptableCourse(二)索引操作1.建立索引例如,为学生课程数据库中的student,course,sc三个表建立索引。其中student表按学号升序建唯一索引,course表按课程号升序建唯一索引,sc表按学生升序和课程号升序建唯一索引:createuniqueindexStusnoonStudent(Sno);createuniqueindexCoucnoonCourse(Cno);createuniqueindexSCnoonSC(SnoASC,CnoDESC)2.删除索引例如,删除student表的Stusno索引:dropindexStusname(三)数据操作一.更新操作1.插入数据例如,在student表中插入下列数据:200215125,张立,男,19,IS代码如下insertintostudent(Sno,Sname,Ssex,Sage,Sdept)values('200215125','张立','男',19,'IS')插入后,结果如下:在Course表中插入以下数据:1,数据库,5,42,数学,null,26,数据处理,null,24,操作系统,6,37,PASCAL语言,6,45,数据结构,7,41,数据库,5,43,信息系统,1,4insertintocourse(Cno,Cname,Cpno,Ccredit)values('1','数据库','5',4);insertintocourse(Cno,Cname,Ccredit)values('2','数学',2);insertintocourse(Cno,Cname,Ccredit)values('6','数据处理',2);insertintocourse(Cno,Cname,Cpno,Ccredit)values('4','操作系统','6',3);insertintocourse(Cno,Cname,Cpno,Ccredit)values('7','PASCAL语言','6',4);insertintocourse(Cno,Cname,Cpno,Ccredit)values('5','数据结构','7',4);insertintocourse(Cno,Cname,Cpno,Ccredit)values('1','数据库','5',4);insertintocourse(Cno,Cname,Cpno,Ccredit)values('3','信息系统','1',4);2.修改数据例如,将学生200215121的年龄改为22岁:updatestudentsetSage=22whereSno='200215121'修改前:修改后:3.删除数据例如,删除学号为200215128的学生记录:deletefromstudentwhereSno='200215128'删除所有学生的选课记录:deletefromsc删除计算机科学系所有学生的选课记录:deletefromscwhere'CS'=(selectSdeptfromstudentwherestudent.Sno=SC.Sno)二.查询操作1.单表查询例如,查询全体学生的学号与姓名:selectSno,Snamefromstudent再例如,查询全体学生的详细记录select*fromstudent;查询所有年龄在20岁以下的学生姓名及其年龄。selectSname,SagefromstudentwhereSage20;查询所有姓刘的学生的姓名、学号和性别。selectSname,Sno,SsexfromstudentwhereSnamelike'刘%';2.连接查询例如,查询每个学生及其选修课程的情况:selectstudent.*,sc.*fromstudent,scwherestudent.Sno=sc.Sno查询每一门课的间接先修课:selectfirst.Cno,second.Cpnofromcoursefirst,coursesecondwherefirst.Cpno=second.Cno查询每个学生及其选修课程的情况,用外连接来完成。selectstudent.Sno,Sname,Ssex,Sage,Sdept,Cno,Gradefromstudentleftouterjoinscon(student.Sno=sc.Sno);3.嵌套查询例如,查询与“刘晨”在同一个系学习的学生。selectSno,Sname,SdeptfromstudentwhereSdeptin(selectSdeptfromstudentwhereSname='刘晨');查询选修了课程名为“信息系统”的学生学号和姓名.selectSno,SnamefromstudentwhereSnoin(selectSnofromscWhereCnoin(selectCnofromcoursewhereCname='信息系统'));4.集合查询例如,查询计算机科学系的学生以及年龄不及十九岁的学生:Select*FormstudentWheresdept=‘cs’UnionSelect*FromstudentWheresage19三.视图操作1.建立视图例如,建立信息系学生的视图:CreateviewIS_studentAsSelectsno.sname,sageFormstudentWheresdept=‘IS’将学生的学号和他的成绩定义为一个视图2.删除视图例如,删除视图BT_SDropviewBT_S3.查询视图在信息系学生中找出年龄小于20岁的学生Select*FormIS_StudentWheresage204.更新视图将信息系统学生IS_student中学号为200215122的学生姓名改为“刘辰”UpdateIS_studentSetsname=‘l刘辰’Wheresno=‘200215122’删除信息系学生视图IS_studnet中学号为200215129的记录DeleteFromIS_studentWheresno=‘200215129’实验三数据库完整性一、实验目的(1)了解SQLSerer数据库系统中数据完整性控制的基本方法(2)了解使用SSMS设置约束(3)熟练掌握常用CREATE或ALTER在创建或修改表时设置约束(4)了解触发器的机制和使用(5)验证数据库系统数据完整性控制二、实验平台使用SQLServer数据库管理系统提供的SSMS。三、实验内容及要求结合图1—ST数据库中的各个表,设置相关的约束,并设置一个触发器,实现学生选课总学分的完整性控制,并验证完整性检查机制。要求包括如下方面的内容:1.使用SSMS的图形界面设置约束使用SSMS的图形界面设置各种约束,按如下图示进入表设计窗口:在表设计窗口中,鼠标右击,选择设置约束(按如下图示)2.使用SQL语句设置约束使用CREATE或ALTER语句完成如下的操作,包括:1)设置各表的主键约束2)设置相关表的外键3)设置相关属性的非空约束、默认值约束、唯一约束4)设置相关属性的CHECK约束Createtablestudent(snochar(6)primarykey,--主键约束Snamechar(10)unique,--唯一约束Sumcintcheck(sumc=0),--用户自定义约束,初值为0Sdeptchar(2)notnull)--非空约束Createtablesc(snochar(6),Cnochar(3)notnull,--非空约束Gradeint,Creditint,Primarykey(sno,cno),--主键约束Foreignkey(sno)referencesstudent(sno))--外键约束3.使用触发器创建一个触发器,实现如下的完整性约束:1)当向SC表中插入一行数据时,自动将学分累加到总学分中。定义触发器createtriggerstu_insertonscafterinsertasbegindeclare@snochar(8),@xfintifexists(select*frominsertedwheregrade60)thenbeginselect@sno=sno,@xf=creditfrominsertedupdatestudentsetsumc=sumc+@xfwheresno=@snoprint'success'endelseprint'fail'end2)在表student中建立删除触发器,实现表student和表sc的级联删除CreatetriggersdeleteOnstudentinsteadofdeleteAsDeletefromscWheresnoin(selectsnofromdeleted)DeletefromstudentWheresnoin(selectsnofromdeleted)4.检查约束和触发器分别向相关表插入若干条记录,检查你设置的完整性约束是否有效:1)插入若干条包含正确数据的记录,检查插入情况2)分别

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功