1、东北大学秦皇岛分校数据库实验报告数据库原理实验报告学 号:姓 名:提交日期:成 绩: 东北大学秦皇岛分校【实验内容】实验一:1、分别使用上述方法启动sqlserver的服务。2、在企业管理器中创建一个数据库,要求如下:(1)数据库名称 Test1。(2)主要数据文件:逻辑文件名为Test1_data1,物理文件名为Test1_data1.mdf,初始容量(3)为1MB,最大容量为10MB,增幅为1MB。(4)次要数据文件:逻辑文件名为Test1_data2,物理文件名为Test1_data2.ndf,初始容量(5)为1MB,最大容量为10MB,增幅为1MB。(6)事务日志文件:逻辑文件名为Te
2、st1_log1,物理文件名为Test1_log1.ldf,初始容量为1MB,最大容量为5MB,增幅为512KB。3、在查询分析器中创建一个数据库,要求如下:(1)数据库名称 Test2。(2)主要数据文件:逻辑文件名为Test2_data1,物理文件名为Test2_data1.mdf,初始容量为1MB,最大容量为10MB,增幅为1MB。(3)次要数据文件:逻辑文件名为Test2_data2,物理文件名为Test2_data2.ndf,初始容量为1MB,最大容量为10MB,增幅为1MB。(4)事务日志文件:逻辑文件名为Test2_log1,物理文件名为Test2_log1.ldf,初始容量为1
3、MB,最大容量为5MB,增幅为1MB。代码:create database teston primary (name=test_data, filename=d:sqlextest_data.mdf,size=1, maxsize=10, filegrowth=1), (name=test_data1, filename=d:sqlextest_data1.ndf,size=1, maxsize=10, filegrowth=1)log on(name=test_log, filename=d:sqlextest_log.ldf,size=1,maxsize=5,filegrowth=1)4、
4、在查询分析器中按照下列要求修改第3题中创建的数据库test2(1)主要数据文件的容量为2MB,最大容量为20MB,增幅为2MB。(2)次要数据文件的容量为2MB,最大容量为20MB,增幅为2MB。(3)事务日志文件的容量为1MB,最大容量为10MB,增幅为2MB。阿lterdatabasetest2modifyfile(name=Test2_data1,size=2,maxsize=20,filegrowth=2)alterdatabasetest2modifyfile(name=Test2_data2,size=2,maxsize=20,filegrowth=2)alterdatabaset
5、est2modifyfile(name=Test2_log1,size=2,maxsize=10,filegrowth=2)5、数据库更名:把test1数据库更名为new_test1Sp6、在企业管理器中删除new_test1数据库,在查询分析器中实验二:1、创建数据库studentInfo,包含如下表,创建这些表并按要求定义约束:表2.1 student(学生表)结构字段名说明数据类型约束说明Student_id学号字符串,长度为10主键Student_name姓名字符串,长度为10非空sex性别字符串,长度为1非空值,取F或Mage年龄整数允许空值department所在系名字符串,长度为
6、15默认值为电子信息系表2.2 course (课程表)结构字段名说明数据类型约束说明Course_id课程号字符串,长度为6主键Course_name课程名字符串,长度为20非空值PreCouId先修课程号字符串,长度为6允许空值Credits学分十进制数,精度3,小数位1非空值表2.3 score (选课表)结构字段名说明数据类型约束说明Student_id学号字符串,长度为10外键,参照student的主键Course_id课程号字符串,长度为6外键,参照course的主键Grade成绩十进制数,精度3,小数位1允许空值联合主键:(Student_id ,Course_id )以下为各个
7、表的数据;Students表数据Student_idStudent_namesexagedepartment20010101JoneM19Computer20010102SueF20Computer20010103SmithM19Math20030101AllenM18Automation20030102deepaF21ArtCourse表数据Course_idCourse_namePreCouIdCreditsC1English4C2MathC52C3databaseC22Score表数据Student_idCourse_idGrade20010101C19020010103C1882001
8、0102C29420010102C262代码:create table student1(student_id char(10)not null ,Student_name char(8)not null,Sex char(1) not null,Age tinyint null,Department char(20) default computer,constraint SPK primary key(student_id),constraint CK check (Sex in(f,m)create table course(course_id char(6),course_name c
9、har(20) not null,preCNo char(6),credits int,constraint CPK primary key(course_id)create table score(Student_id char(10)not null references Students(SNo),Course_id char(6) not null,Grade int,constraint EPK primary key(Student_id,Course_id),constraint ELINK foreign key (Course_id) references course(co
10、urse_id)insert into student values(20010101,Jone,m,19,computer) insert into student values(20010102,Sue,f,20,computer) insert into student values(20010103,Smith,f,19,math) insert into student values(20030101,Allen,m,18,automation) insert into student values(20030102,Deepa,f,21,art) insert into cours
11、e values(C1,English,null ,4) insert into course values(C2,Math,C5 ,2) insert into course values(C3,database,C2 ,2)insert into score values(20010101,C1,90)insert into score values(20010103,C1,88)insert into score values(20010102,C2,94)insert into score values(20010102,C3,62)2、增加、修改、删除字段,要求:(1)为表stude
12、nt增加一个memo(备注)字段,类型为varchar(200)。(2)将memo字段的数据类型更改为varchar(300)。(3)删除memo字段alter table student add memo varchar(200) nullsp_help student alter table student alter column memo varchar(300) alter table student drop column memo3、向表中插入数据验证约束useStudentInfogoaltertablescoreaddconstraintchkGradecheck(grade
13、0andgrade100)altertablestudentaddconstraintchkSexcheck(sexin(m,f)4、分别使用企业管理器和查询分析器删除表usestudentInfogodroptablescore实验三:1、向students表添加一个学生记录,学号为20010112,性别为男,姓名为stefen,2、年龄25岁,所在系为艺术系art。insert into student values(20010112,Stefen,f,25,art) 3、向score表添加一个选课记录,学生学号为20010112,所选课程号为C2。insert into score va
14、lues(20010112,C2,null)4、建立临时表tempstudent,结构与students结构相同,其记录均从student表获取Selectstudent_id,student_name,sex,age,departmentintotempstudentfromstudentswherestudent_idbetween20090112and200901185、将所有学生的成绩加5分update score set grade=grade+56、将姓名为sue的学生所在系改为电子信息系update student set department=电子信息系 where stude
15、nt_name=sue7、将选课为database的学生成绩加10分update score set grade=grade+10 where course_id=(select course_id from course where course_name=database)8、删除所有成绩为空的选修记录delete score where grade is null9、删除学生姓名为deepa的学生记录delete student where student_name =deepa10、删除计算机系选修成绩不及格的学生的选修记录。delete score where student_id=
16、(select student_id from student where department=computer)and grade 1913、求学号为4090105的学生总成绩selectsum(grade)总成绩fromscorewherestudent_id=409010514、求每个选课学生的学号,姓名,总成绩selectstudent.student_id,student_name,score.gradefromstudent,scorewherestudent.student_id=score.student_id15、查询所有姓李且全名为3个汉字的学生姓名,学号,性别selec
17、tstudent_id,student_name,sexfromstudentwherestudent_name=李_16、求课程号及相应课程的所有的选课人数selectcourse_id,count(*)Sumfromscore,studentwherestudent.student_id=score.student_idgroupbycourse_id17、查询选修了3门以上课程的学生姓名学号一、多表连接查询1、查询美国学生基本信息及选课情况2、查询每个学生学号姓名及选修的课程名、成绩3、求电子信息系选修课程超过2门课的学生学号姓名、平均成绩并按平均成绩降序排列4、查询与sue在同一个系学
18、习的所有学生的学号姓名5、查询所有学生的选课情况,要求包括所有选修了课程的学生和没有选课的学生,显示他们的姓名学号课程号和成绩(如果有)1.selectstudent_id,student_namefromstudentwhereEXISTS(select*fromscore wherescore.student_id=student.student_idgroupbystudent_idhavingcount(*)=32.select*fromstudent,course3. selectstudent.student_id,student.student_name,course_id,gr
19、adefromstudentscorewherestudent.student_id=score.student_id4. selectstudent.student_id,student.student_namefromstudentwheredepartment=(selectdepartmentfromstudentwherestudent_name=sue)5.selectstudent.student_id,student.student_name,score.course_id,score.gradefromstudent,score wherestudent.student_id
20、=score.student_id实验五:实验内容:1、分别使用企业管理器和查询分析器为northwind数据库中products表建立一个聚集索引,索引字段为产品类型和产品编号。Use northwindCreate clustered Index IX_pd on products(ProductID,CategoryID)2、查询分析器中使用表categories和products创建视图对象view_cate_prod,查询每种类型的产品总库存(库存为products表中unitinstock列)。create view dbo.view_cate_prod(产品类型编号,类型名称,产
21、品总库存)as selectcategories.CategoryID,categories.Categoryname,sum(products.UnitsInStock)from products inner join categorieson products.CategoryID=categories.CategoryIDgroup by categories.CategoryID,categories.Categoryname3.在已经建立的studentInfo数据库的3个表基础上,完成下列操作:(1)建立数学系的学生视图;(2)建立计算机系选修了课程名为database的学生的视图
22、,视图名为compStudentview,该视图的列名为学号、姓名、成绩(3)创建一个名为studentSumview的视图,包含所有学生学号和总成绩(4)建立一个计算机系学生选修了课程名为database并且成绩大于80分的学生视图,视图名为CompsutdentView1,视图的列为学号姓名成绩。(5)使用sql语句删除compsutdentview1视图。1.createviewmathsthdentviewasselect*fromstudentwherestudent.department=math2. createviewcompstudentviewasselectstudent
23、.student_id学号,student_name姓名,grade成绩fromstudent,scorewherestudent.department=computerandstudent.student_id=score.student_idandscore.course_id=C3tudent_idandscore.course_id=C33.createviewstudentSumviewasselectstudent.student_id,sum(grade)sumfromstudent,scorewherestudent.student_id=score.student_idgro
24、upbystudent.student_id4. createviewCompstudentview1asselectstudent.student_id,student_name,gradefromstudent,scorewherestudent.department=computerandscore.course_id=C3andgrade80andstudent.student_id=score.student_idstudent,scorewherestudent.department=computerandscore.course_id=C3andgrade80andstudent.student_id=score.student_id5.dropviewCompstudentview1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1