数据库系统概论实验指导书.doc_第1页
数据库系统概论实验指导书.doc_第2页
数据库系统概论实验指导书.doc_第3页
数据库系统概论实验指导书.doc_第4页
数据库系统概论实验指导书.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

实验一 MSSQL SERVER 2000 环境及主要工具一、实验目的:1. 了解MSSQL SERVER 2000 提供的各种工具及其功能。2. 掌握企业管理器(Enterprise Manager)、服务管理器(Service Manager)、查询分析器(Query Analyzer)及联机文档(Books Online)的基本操作。3. 掌握通过企业管理器启动、关闭、注册和配置服务管理。二、实验内容及步骤:1 从开始菜单打开MSSQL SERVER 2000的服务管理器,设置其服务器为本机服务器,服务为SQL Server,并启动该服务器。练习SQL Server 2000服务的开始、暂停、继续、停止等操作。2 从开始菜单打开MSSQL SERVER 2000企业管理器,并将企业管理器与上述启动的服务器连接。3 对企业服务器进行配置,将其在操作系统启动时 自动启动SQL Server 的功能去掉;先将其身份验证修改为Windows和SQL Server 共同验证,再修改为Windows验证。4 观察企业管理器的各个组成部分,练习有关的操作。5 打开查询分析器,观察查询分析器的组成部分,练习有关的操作。6 练习SQL Server 2000的联机丛书的使用,并使用联机丛书学习自己感兴趣的知识。实验二 数据定义一、实验目的:1. 掌握使用SQL SERVER企业管理器及SQL语言创建数据库与表。2. 掌握使用SQL SERVER企业管理器及SQL语言修改数据库与表。3. 掌握使用SQL SERVER企业管理器及SQL语言删除数据库与表。二、实验内容及步骤:1 通过用企业管理器创建一个指定多个数据文件和日志文件的数据库,该数据库名称为jxsk,要求:有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为jxsk1和jxsk2,物理文件名为jxsk1.mdf和jxsk2.mdf。主文件是jxsk1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为jxsklog1和jxsklog2,物理文件名为jxsklog1.ldf和jxsklog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。2 用企业管理器修改数据库 要求:添加一个包含两个数据文件的文件组和一个事务日志文件到jxsk数据库中。3 用企业管理器在jxsk数据库中建立如下表: 学生表: Student名称列名数据类型说明学号SnoChar (5)NOT NULL 主键姓名SnameVarchar (20)NOT NULL性别SsexChar (2)年龄SageInt所在系SdeptVarchar (50)课程表: Course名称列名数据类型说明课程号CnoVarchar (3)NOT NULL 主键课程名CnameChar (10)NOT NULL先行课CponVarchar (3)学分CcreditSmallint选课表: SC名称列名数据类型说明学号SnoChar (5)NOT NULL 主键课程名CnameChar (10)NOT NULL 主键成绩GradeInt默认值为04 查看表格:显示当前数据库中所有对象的信息。5 利用企业管理器删除表:在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“除去表”选项,则会出现除去对象对话框。单击“全部删除”按钮,即可删除表。 6 利用企业管理器删除数据库jxsk。7 用SQL语言创建数据库jiaoxuedb:CREATE DATABASE jiaoxuedbON(NAME=jiaoxuedb_dat,FILENAME=d:jiaoxuedb_dat.mdf)LOG ON(NAME=jiaoxuedb_log,FILENAME=d:jiaoxuedb_log.ldf)GO8 用SQL语言创建jiaoxuedb中的表:USE jiaoxuedbCREATE TABLE Student(Sno CHAR(10) NOT NULL,Sname CHAR(10) NOT NULL,Sex CHAR(2) NULL,Age TINYINT NULL,Dept CHAR(10) NULL)CREATE TABLE Teacher(Tno CHAR(10) NOT NULL,Tname CHAR(10) NOT NULL,Sex CHAR(2) NULL,Age TINYINT NULL,Prof CHAR(10) NULL,Sal SMALLINT NULL,Comm SMALLINT NULL,Dept CHAR(10) NULL)CREATE TABLE Course(Cno CHAR(10) NOT NULL,Cname CHAR(10) NOT NULL,Chour TINYINT NULL,Ccredit TINYINT NULL)CREATE TABLE SC(Sno CHAR(10) NOT NULL,Cno CHAR(10) NOT NULL,SCORE TINYINT NULL)CREATE TABLE TC(Tno CHAR(10) NOT NULL,Cno CHAR(10) NOT NULL)9 用ALTER TABLE语句向学生表增加“入学时间”列,其数据类型为日期型,然后再间接删除该列。10 用ALTER TABLE语句将学生的年龄的数据类型改为半字长(Smallint),查看修改属性后再改回原数据类型。11 用DROP TABLE语句删除已有的表。12 用DROP DATABASE语句删除数据库jiaoxuedb。13 学习SQL SERVER在线文档中关于建立表、删除表,修改表的详细用法。实验三 数据更新一、 实验目的:掌握用SQL语句实现数据的插入、修改和删除。二、实验内容及步骤:1. 重建实验二中的数据库jiaoxuedb和其中的表,并插入相应数据值。插入jiaoxuedb库中各表值:USE jiaoxuedb/*Insert values to Student Table*/INSERT INTO Student VALUES(001101,宋大方,男,19,计算机)INSERT INTO Student VALUES(002102,李王,男,20,信息)INSERT INTO Student VALUES(991101,张彬,男,18,计算机)INSERT INTO Student VALUES(991102,王蕾,女,19,计算机)INSERT INTO Student VALUES(991103,张建国,男,18,电子商务)INSERT INTO Student VALUES(991104,李平方,男,18,计算机)INSERT INTO Student VALUES(991201,陈东辉,男,19,计算机)INSERT INTO Student VALUES(991202,葛鹏,男,21,电子商务)INSERT INTO Student VALUES(991203,潘桃芝,女,19,电子商务)INSERT INTO Student VALUES(991204,姚一峰,男,18,计算机)INSERT INTO Student VALUES(001102,许辉,女,22,电子商务)INSERT INTO Student VALUES(001201,王一山,男,20,计算机)INSERT INTO Student VALUES(001202,牛莉,女,19,计算机)INSERT INTO Student VALUES(002101,李丽丽,女,19,信息)/*Insert values to Teacher Table*/INSERT INTO Teacher VALUES(000006,许红霞,女,39,讲师,1100,1200,计算机)INSERT INTO Teacher VALUES(000007,许永军,男,57,教授,2000,3000,电子商务)INSERT INTO Teacher VALUES(000008,李贵青,女,65,教授,2000,3000,计算机)INSERT INTO Teacher VALUES(000009,王一凡,女,43,讲师,1200,1200,计算机)INSERT INTO Teacher VALUES(000010,田峰,男,33,助教,500,800,信息)INSERT INTO Teacher VALUES(000001,李英,女,39,副教授,1500,2000,电子商务)INSERT INTO Teacher VALUES(000002,张雪,女,51,教授,1900,3000,信息)INSERT INTO Teacher VALUES(000003,张朋,男,30,讲师,1000,1200,计算机)INSERT INTO Teacher VALUES(000004,王平,女,28,讲师,850,1200,信息)INSERT INTO Teacher VALUES(000005,李力,男,47,教授,1800,3000,计算机)/*Insert values to Course Table*/INSERT INTO Course VALUEs(01001,计算机基础,60,3)INSERT INTO Course VALUEs(01002,程序设计,80,5)INSERT INTO Course VALUEs(02003,数据结构,60,6)INSERT INTO Course VALUEs(02001,数据库,80,6)INSERT INTO Course VALUEs(02002,计算机网络,60,6)INSERT INTO Course VALUEs(01003,微机原理,60,8)INSERT INTO Course VALUEs(02004,操作系统,60,6)INSERT INTO Course VALUEs(03001,软件工程,60,3)INSERT INTO Course VALUEs(03002,大型数据库,48,2)INSERT INTO Course VALUEs(03003,图像处理,48,2)/*Insert values to SC Table*/INSERT INTO SC VALUES(991101,01001,88)INSERT INTO SC VALUES(991102,01001,93)INSERT INTO SC VALUES(991103,01001,90)INSERT INTO SC VALUES(991101,01002,90)INSERT INTO SC VALUES(991102,01002,98)INSERT INTO SC VALUES(991103,01002,74)INSERT INTO SC VALUES(991104,01002,85)INSERT INTO SC VALUES(001201,01002,64)INSERT INTO SC VALUES(991104,02001,33)INSERT INTO SC VALUES(991104,01001,35)INSERT INTO SC VALUES(991201,01001,76)/*Insert values to TC Table*/INSERT INTO TC VALUES(000001,02001)INSERT INTO TC VALUES(000008,02002)INSERT INTO TC VALUES(000003,02001)INSERT INTO TC VALUES(000011,02003)INSERT INTO TC VALUES(000001,01001)INSERT INTO TC VALUES(000002,01002)INSERT INTO TC VALUES(000002,01003)INSERT INTO TC VALUES(000004,02002)INSERT INTO TC VALUES(000005,01001)INSERT INTO TC VALUES(000006,01002)INSERT INTO TC VALUES(000003,01003)2. 重建实验二中的数据库jxsk和其中的表,并插入相应的数值。创建数据库jxsk:CREATE DATABASE jxskON(NAME=jxsk_dat,FILENAME=d:jxsk_dat.mdf)LOG ON(NAME=jxsk_log,FILENAME=d:jxsk_log.ldf)GO创建jxsk中的表:USE jxskCREATE TABLE S(SNO CHAR(2) NOT NULL,SN CHAR(8) NOT NULL,SEX CHAR(2) NULL,AGE TINYINT NULL,DEPT CHAR(10) NULL)CREATE TABLE T(TNO CHAR(2) NOT NULL,TN CHAR(8) NOT NULL,SEX CHAR(2) NULL,AGE TINYINT NULL,PROF CHAR(10) NULL,SAL SMALLINT NULL,COMM SMALLINT NULL,DEPT CHAR(10) NULL)CREATE TABLE C(CNO CHAR(2) NOT NULL,CN CHAR(10) NOT NULL,CT TINYINT NULL,ID_TC TINYINT NULL)CREATE TABLE SC(SNO CHAR(2) NOT NULL,CNO CHAR(2) NOT NULL,SCORE TINYINT NULL)CREATE TABLE TC(TNO CHAR(2) NOT NULL,CNO CHAR(2) NOT NULL)插入jxsk库中各表值:USE jxskINSERT INTO S VALUES(S2,钱尔,男,18,信息)INSERT INTO S VALUES(S3,孙姗,女,20,信息)INSERT INTO S VALUES(S4,李思,男,21,自动化)INSERT INTO S VALUES(S5,周武,男,19,计算机)INSERT INTO S VALUES(S6,吴丽,女,20,自动化)INSERT INTO S VALUES(S7,李奇,男,18,外语)INSERT INTO S VALUES(S8,古明,男,NULL,计算机)INSERT INTO S VALUES(S9,赵亦,女,17,计算机)INSERT INTO T VALUES(T5,张兰,女,39,副教授,1300,2000,信息)INSERT INTO T VALUES(T4,张雪,女,51,教授,1600,3000,自动化)INSERT INTO T VALUES(T3,刘伟,男,30,讲师,900,1200,计算机)INSERT INTO T VALUES(T2,王平,女,28,讲师,800,1200,信息)INSERT INTO T VALUES(T1,李力,男,47,教授,1500,3000,计算机)INSERT INTO C VALUES(C1,程序设计,60,1)INSERT INTO C VALUES(C2,微机原理,80,2)INSERT INTO C VALUES(C3,数字逻辑,60,3)INSERT INTO C VALUES(C4,数据结构,80,4)INSERT INTO C VALUES(C5,数据库,60,5)INSERT INTO C VALUES(C6,编译原理,60,6)INSERT INTO C VALUES(C7,操作系统,60,7)INSERT INTO SC VALUES(S2,C5,57)INSERT INTO SC VALUES(S2,C6,80)INSERT INTO SC VALUES(S2,C7,NULL)INSERT INTO SC VALUES(S3,C1,75)INSERT INTO SC VALUES(S3,C2,70)INSERT INTO SC VALUES(S3,C4,85)INSERT INTO SC VALUES(S4,C1,93)INSERT INTO SC VALUES(S4,C2,85)INSERT INTO SC VALUES(S4,C3,83)INSERT INTO SC VALUES(S5,C2,89)INSERT INTO SC VALUES(S9,C1,90)INSERT INTO SC VALUES(S9,C2,85)INSERT INTO TC VALUES(T2,C5)INSERT INTO TC VALUES(T3,C1)INSERT INTO TC VALUES(T3,C5)INSERT INTO TC VALUES(T4,C2)INSERT INTO TC VALUES(T4,C3)INSERT INTO TC VALUES(T5,C5)INSERT INTO TC VALUES(T5,C7)INSERT INTO TC VALUES(T1,C1)INSERT INTO TC VALUES(T1,C4)3. 将数据库jiaoxuedb中所有的课程课时量增加10%。4. 将数据库jiaoxuedb中信息系全体学生的成绩置0。5. 将数据库jiaoxuedb中电子商务系学生年龄增加1岁。6. 将数据库jiaoxuedb中所课程成绩不及格的记录删除。7. 将数据库jiaoxuedb中计算机系所有学生的选课记录删除。8. 用SQL SERVER企业管理器实现以上操作。9. 学习SQL SERVER在线文档中关于表数据插入、删除、修改的详细用法。实验四 数据完整性一、 实验目的:掌握关系数据库中的实体、参照及用户自定义完整性约束定义。二、实验内容及步骤:基于jiaoxuedb实验,需按实验三中的数据值建立数据库及其中的表。1. 对各表创建实体完整性。USE jiaoxuedbALTER TABLE StudentADD CONSTRAINT PK_SNO PRIMARY KEY(Sno)ALTER TABLE Teacher ADD CONSTRAINT PK_TNO PRIMARY KEY(Tno)ALTER TABLE CourseADD CONSTRAINT PK_CNO PRIMARY KEY(Cno)ALTER TABLE StudentADD CONSTRAINT UNIQUE_S UNIQUE(Sno)ALTER TABLE TeacherADD CONSTRAINT UNIQUE_T UNIQUE(Tno)ALTER TABLE CourseADD CONSTRAINT UNIQUE_C UNIQUE(Cno)2. 创建表之间的参照完整性。USE jiaoxuedbALTER TABLE SC WITH NOCHECKADD CONSTRAINT FK_S_SC FOREIGN KEY(Sno) REFERENCES Student(Sno)ON DELETE CASCADEALTER TABLE SC WITH NOCHECKADD CONSTRAINT FK_C_SC FOREIGN KEY(Cno) REFERENCES Course(Cno)ON DELETE CASCADEALTER TABLE TC WITH NOCHECKADD CONSTRAINT FK_T_TC FOREIGN KEY(Tno) REFERENCES Teacher(Tno)ON DELETE CASCADEALTER TABLE TC WITH NOCHECKADD CONSTRAINT FK_C_TC FOREIGN KEY(Cno) REFERENCES Course(Cno)ON DELETE CASCADE3. 用不同的方法创建下面约束。(1) “姓名”字段取唯一值:USE jiaoxuedbALTER TABLE StudentADD CONSTRAINT UNIQUE_SNA UNIQUE(Sname)ALTER TABLE TeacherADD CONSTRAINT UNIQUE_TNA UNIQUE(Tname)(2) “性别”字段取值为:男或女;默认值:男;USE jiaoxuedbALTER TABLE Teacher WITH CHECKADD CONSTRAINT CHECK_T_SEX CHECK(SEX=男 OR SEX=女)ALTER TABLE TeacherADD CONSTRAINT DF_T_SEX DEFAULT 男 FOR SexALTER TABLE Student WITH CHECKADD CONSTRAINT CHECK_S_SEX CHECK(SEX=男 OR SEX=女)ALTER TABLE StudentADD CONSTRAINT DF_S_SEX DEFAULT 男 FOR Sex(3)“年龄”和“分数”字段取值限定为:0100之间。USE jiaoxuedbALTER TABLE Student WITH CHECKADD CONSTRAINT CHECK_S_AGE CHECK(AGE0 AND AGE0 AND AGE=4)GO3. 查询其他系中比“信息系”所有学生年龄都打的学生名单及年龄,并按年龄降序输出。USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM StudentWHERE AgeALL (SELECT AgeFROM StudentWHERE Dept=信息)AND Dept 信息ORDER BY Age DESCGO4. 查询与学生张建国同岁的所有学生的学号、姓名和系别。/*方法一*/USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM StudentWHERE Age=ANY (SELECT AgeFROM StudentWHERE Sname=张建国)AND Sname 张建国ORDER BY Age DESCGO/*方法二*/USE jiaoxuedbSELECT s2.Sno,s2.Sname,s2.DeptFROM Student s1, Student s2WHERE s1.age=s2.age AND s1.Sname=张建国 AND s2.Sname 张建国5. 查询选修了2门以上课程的学生名单。USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM StudentWHERE Sno=ANY (SELECT SnoFROM SCGROUP BY SnoHAVING COUNT(*) =2)GO6. 查询至少有一门与“张建国”选课相同的学生的姓名、课程名和系别。USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM StudentWHERE Sno=ANY (SELECT SnoFROM SCWHERE Cno=ANY(SELECT CnoFROM SCWHERE Sno=991103)AND Sname 张建国GO7. 查询成绩比该课程平均成绩高的学生的成绩表。/*方法一*/USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM StudentWHERE Sno=ANY (SELECT SnoFROM SC xWHERE Score = (SELECT AVG(Score)FROM SC yWHERE y.Sno=x.Sno);GO/*方法二*/SELECT *FROM SC sc1WHERE Score (SELECT AVG(Score)FROM SC sc2)AND sc1.Cno=sc2.Cno;GO8. 查询选修课号为01001课程且成绩高于课程01002学生的姓名、此两门课程的k而成名和成绩。/*方法一*/USE jiaoxuedbSELECT Sname,Cname,ScoreFROM Student ,SC,CourseWHERE Student.Sno=(SELECT s1.SnoFROM SC s1,SC s2WHERE s1.Cno=01001 AND s2.Cno=01002 AND s1.Scores2.Score AND s1.Sno=s2.Sno)AND SC.Sno=Student.SnoAND Course.Cno=SC.CnoGO/*方法二*/USE jiaoxuedbSELECT Sname,C

温馨提示

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

最新文档

评论

0/150

提交评论