1、数据库实验报告 1计算机与信息学院 数据库系统 实验报告专 业 班 级计算机科学与技术13-3班 学生姓名及学号李可 2013211687 课程教学班号0002 任 课 教 师沈明玉 实验指导教师沈明玉 实验地点合工大第二机房 2014 2015 学年第 二 学期实验1 数据库的创建和删除一、实验目的1. 了解SQL Server 2005数据库的逻辑结构和物理结构。2. 掌握使用SQL 语句创建和删除数据库。二、实验要求1. 熟练利用查询分析器进行交互式SQL语句的使用方法。 2. 理解SQL Server中的共享架构dbo。3. 注意操作结果的截图与保存,供撰写实验报告使用。三、实验内容1
2、. 使用SQL语句创建数据库userdb1。 数据库的参数要求: 数据库名称:EDUC 数据库存储路径:将数据库文件存储在D:jxgl目录中。 其他参数要求: 数据文件的初始大小:10M 最大:60M 按5%的比例自动增长。 日志文件的初始大小:4M 最大:10M 增量为1M。 2. 将新创建的数据库设置为当前数据库。四、实验步骤1创建数据库EDUC的SQL语句:Create database 数据库名on (name=数据文件的逻辑文件名,filename=数据文件的物理文件名(含有具体存储路径),Size=文件初始大小,maxsize=文件可以增长到的最大大小,filegrowth=文件的
3、增长增量)log on( name=日志文件的逻辑文件名(注意不能和数据文件的逻辑名相同), filename=日志文件的物理文件名(含有具体存储路径) ,size=文件初始大小,maxsize=文件可以增长到的最大大小,filegrowth=文件的增长增量)2. 根据步骤1的sql语句,写出创建数据库EDUC的sql语句,点击执行按钮建立数据库EDUC。3. 按照上述相同的要求创建数据库userdb。4. 用SQL语句删除步骤1建立的数据库userdb。五、实验总结1.代码Create database EDUCon ( name = EDUC_data, filename = D:jxgl
4、EDUC.MDF, size = 10MB, maxsize = 60MB, filegrowth = 5% )log on ( name = EDUC_log, filename = D:jxglEDU.LDF, size = 1MB, maxsize = 10MB, filegrowth = 1MB )2.截图通过这次实验,我学会了数据库系统的建立与删除,体验了数据库系统的应用,实现了把理论和实践相结合的学习过程实验二 使用SQL语句创建和删除基本表一实验目的1了解SQL Server的基本数据类型。2学会使用Create table语句创建基本表。二实验要求1.在查询分析器中使用SQL语
5、句完成基本表的创建、修改、删除。2.实现基本表定义中有关完整性约束的要求。3.注意操作结果的截图与保存,供撰写实验报告使用。三. 实验内容在数据库EDUC中,创建如下四个表: Class、student、course、sc表的具体要求如下:1.class表的结构要求班级号: clsNO, 字符型(定长),长度为6,主码班级名称:clsName,字符型(变长),长度16,非空辅导员: Director,字符型(变长),长度10专业: Specialty,字符型(变长),长度302.student表的结构要求学号:sno,字符型(定长),长度为8,主码姓名:sname,字符型(变长),长度为10,
6、非空性别:ssex,字符型(定长),长度为2,性别只能为男或女班级号:clsNO,字符型(定长),长度为6,外键住址:saddr,字符型(变长),长度为20年龄:sage,数值型(整数),长度为3,年龄要求1030之间身高:height,数值型(长度为4,含两位小数)3.course表的结构要求课程号:cno,字符型(定长),长度为4,主键课程名:cname,字符型(变长),长度为16,非空先修课程号:cno,字符型(定长),长度为4,外键学分:Ccredit,数值型(长度为2,含1位小数)4.sc表的结构要求 学号:sno,字符型(定长),长度为8课程号:cno,字符型(定长),长度为4成绩
7、:grade,数值型(长度为3,含一位小数)注意:本表主码与外码的定义。四实验步骤1. 创建基本表 打开查询分析器,在其编辑窗口中输入基本表的创建语句,点击“执行”按钮,分别完成四个基本表的创建。2. 修改表结构 按照student的要求创建表student1,修改基本表student1:1)增加“入学时间”列s_entrance,其数据类型为日期型。2)将年龄属性值的限制由1030改为1040之间。3)将住址(saddr)的长度改为40。3删除基本表 删除基本表student1。五实验总结1.代码CREATE TABLE Class(clsNO char(6) PRIMARY KEY,cls
8、Name char(16) UNIQUE,Director char(10),Specialty char(30)CREATE TABLE student(sno char(8) PRIMARY KEY,sname char(10) NOT NULL,ssex char(2) check(ssex=男or ssex=女),clsNO char(6) Foreign key(clsNO) References class(clsNO),saddr varchar(20),sage int check(sage10 and sage 10 and sage 10 and sage 40); ALT
9、ER TABLE student1 ALTER COLUMN saddr VARCHAR(40);DROP TABLE student1;2.截图通过这次的实验,我学会了数据库系统基本表的创建与应用实验三 数据更新操作一. 实验目的1掌握INSERT/UPDATE/DELETE语句的使用。2体会数据更新操作对完整性约束的影响。二. 实验要求1实验内容中要求的数据必须插入到相关基本表中,在此基础上每个表需另插入不少于3个元组。2注意操作结果的截图与保存,供撰写实验报告使用。三. 实验内容1. 数据插入操作(1)向表(Class)中插入数据ClsNOClsNameDirectorSpecialty
10、CS01计算机一班张宁计算机应用CS02计算机二班王宁计算机应用MT04数学四班陈晨数学PH08物理八班葛格物理GL01地理一班张四应用地理插入数据之后使用命令:Select * from Class; 检查插入数据的正确性(2) 向表(Student)中插入数据SnoSnameSsexClsNOSaddrSageHeight20090101王军男CS01下关40#201.7620090102李杰男CS01江边路96#221.7220090306王彤女MT04中央路94#191.6520090107吴杪女PH08莲化小区74#181.60插入数据之后使用命令:Select * from Stu
11、dent; 检查插入数据的正确性(3)向表(Course )中插入数据CnoCnameCpnoCredit0001高等数学Null60003计算机基础000130007物理00014插入数据之后使用命令:Select * from Course; 检查插入数据的正确性(4)向表(SC )中插入数据SNOCNOGrade20090101000190200901010007862009010200018720090102000376200903060001872009030600039320090106000785200903060007902.数据修改与删除操作首先在student表中插入一条新
12、记录:学号:20091101、姓名:张三、性别:男、年龄:19、班级编号:CS01。1)对于student表,将所有班级号为CS01的,并且年龄小于20岁的学生的班级号改为CS02。2)对于student表,删掉所有年龄小于20岁,并且专业号为CS02的学生的记录。四、实验步骤: 在查询分析器中完成实验内容。五实验总结1.代码INSERTINTO Class (clsNO,clsName,Director,Specialty)VALUES(CS01,计算机一班,张宁,计算机应用)VALUES(CS02,计算机二班,张宁,计算机应用)VALUES(CS03,数学四班,陈晨,数学)INSERTIN
13、TO student (sno,sname,ssex,ClsNO,saddr,sage,height)VALUES(20090101,王军,男,CS01,下关40#,20,1.76)INSERTINTO course (cno,cname,cpn,Ccredit)VALUES(0003,计算机基础,0001,3)INSERTINTO sc (sno,cno,grade)VALUES(20090102,0007,86)UPDATE studentSET ClsNO=CS02WHERE (sage20and ClsNO=CS01)select*from studentDELETEFROM stud
14、entWHERE (sage(select grade from student,scwhere student.sno = sc.snoand sname = 张三 and cno = 0001);select snamefrom studentwhere sno IN( SELECT sno from scwhere cno != 0002);2.截图通过这次学习,我 体会SELECT语句实际应用,学习了在查询分析器中使用SELECT语句进行简单查询。掌握了简单表的数据查询、数据排序和数据连接查询的操作方法。实验七 使用聚集函数的SELECT语句一、实验目的1. 熟练掌握数据查询中的分组、
15、统计、计算和组合的操作方法。2. 进一步掌握SQL Server 查询分析器的使用,加深对SQL语言的嵌套查询语句的理解。二、实验要求1.在实验之前做好准备。2.注意操作结果的截图与保存,供撰写实验报告使用。三、实验内容在数据库EDUC中用SQL语句实现如下查询:1) 查询学生的总人数。2) 查询选修了课程的学生人数。3) 查询课程的课程号和选修该课程的人数。4) 查询选修课程超过2 门课的学生学号和姓名。四. 实验步骤在查询分析器中完成上述所有查询。五实验总结1.代码SELECT COUNT(*)FROM studentSELECT COUNT(DISTINCT sno)FROM scSEL
16、ECT cno,COUNT(sno)FROM scGROUP BY cnoSELECT sno,snameFROM studentWHERE sno IN(SELECT sno FROM sc GROUP BY sno HAVING COUNT(*)2)2.截图 通过这次学习,掌握,数据查询中的分组、统计、计算和组合的操作方法。进一步掌握SQL Server 查询分析器的使用,加深对SQL语言的嵌套查询语句的理解。实验八 视图的定义与使用一实验目的1.熟悉和掌握对数据表中视图的查询操作和SQL语句的使用;2.熟悉和掌握对数据表中视图的更新操作和SQL语句的使用,并注意视图更新与基本表更新的区别
17、与联系;3.学习灵活熟练的进行视图的操作,认识视图的作用。二实验要求1.在实验开始之前做好准备工作。2.思考视图和基本表的区别。3.注意操作结果的截图与保存,供撰写实验报告使用。三实验内容1.定义视图在EDUC数据库中,已Student、Course 和SC表为基础完成一下视图定义:1)定义视图V_SC_G:该视图包含Student、 Course 和SC表中学生的学号、姓名、课程号、课程名和成绩;2)定义一个反映学生出生年份的视图V_YEAR,该视图要求使用系统函数来获取当前日期及转换;3)定义视图V_AVG_S_G:该视图将反映学生选修课程的门数及平均成绩;4)定义视图V_AVG_C_G:
18、该视图将统计各门课程的选修人数及平均成绩。2.使用视图1)查询以上所建的视图结果。2)查询平均成绩为90分及以上的学生学号、姓名和成绩;3)查询科目成绩大于平均成绩的学生学号、课程号、成绩和平均成绩;4)查询1995年出生的学生学号和姓名。四、实验步骤 在查询分析器中完成所有实验内容。五实验总结1.代码CREATE VIEW V_SC_G SELECT student.sno,sname,o,sname,sc.sno,cno,gradeFROM student,course,scWHERE sc.sno=o=sc.snoCREATE view V_YEARasSELECT sno,sname,
19、YEAR(getdate()-sage birthfrom studentCREATE VIEW V_AVG_C_G(cno,num,average2)ASselect cno,count(*),AVG(grade)from scgroup by cnocreate view V_AVG_S_G(sno,num,average1)ASselect sno,count(cno),avg(grade)from scgroup by snoALTER TABLE ClassADD c_total int DEFAULT 02.截图熟悉和掌握对数据表中视图的查询操作和SQL语句的使用;熟悉和掌握对数据
20、表中视图的更新操作和SQL语句的使用,并注意视图更新与基本表更新的区别与联系;学习灵活熟练的进行视图的操作,认识视图的作用。实验九 触发器的创建与使用一、实验目的本实验的目的是使学生进一步掌握SQL Server触发器的创建及使用方法,加深SQL触发器的理解。通过对数据的更新操作体会其触发器的作用。二、实验要求1. 掌握T-SQL创建触发器语句Create trigger的使用。2. 完成所规定的触发器定义要求。3. 通过数据查询检查触发器的使用效果。4. 注意操作结果的截图与保存,供撰写实验报告使用。三、实验内容1. 在班级表class中增加班级人数(c_total)字段。2. 为学生表(s
21、tudent)创建INSERT触发器t_inst_stu:新增一名学生时,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动加1。3. 为学生表(student)创建DELETE触发器t_dele_stu:删除一名学生时,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动减1。4. 为学生表(student)创建UPDATE触发器t_update_stu: 当某学生所在班号发生变化时(即调到另一班级后),将其原先所在班级的人数(c_total)减1,将新调入的班级班级的人数(c_total)加1。5. 体会触发器的作用。四、实验步骤 在查询分析器中完成实验内容。1. 使用alter table语句在班级表class中增加班级人数(c_total)字段,默认值(DEFAULT)是0;2. 为学生表(student)分别创建:INSERT触发器t_inst_stuDELETE触发器t_dele_stuUPDATE
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1