《2022年数据库管理系统及其应用开发环境的创建使用归纳》由会员分享,可在线阅读,更多相关《2022年数据库管理系统及其应用开发环境的创建使用归纳(8页珍藏版)》请在金锄头文库上搜索。
1、学号:姓名:EMAIL: 学院:专业:数据库应用实践实验一:数据库管理系统及其应用开发环境的创建使用实验目的:了解数据库应用开发环境的建立与使用;掌握SQL 语言的使用;通过实践理解关系数据模型的相关概念;掌握数据库应用开发环境的使用;掌握创建、删除数据库的方法;掌握创建基本表、查看表属性、修改属性的方法;掌握向表中添加、删除以及修改数据的方法;掌握查询分析器的使用方法;掌握SELECT 语句在单表查询中的应用;掌握复杂查询、多表查询的方法;掌握视图的使用方法;巩固数据库的基础知识。实验环境:操作系统 : windows 8.1 64 bits 数据库管理系统 : Microsoft SQL
2、Server 2008 实验内容:1. 应用背景及设计的数据库名。a)应用背景:学生选课管理系统, 一门课可以由多个老师教授, 一个老师可以教多门课程,一个学生可以选修多门课程,一门可以有多个学生选修b)数据库名: mrsunday 2. 所设计的各张表结构说明,各表之间关系图说明。表结构说明:创建 4 张表, Student 表存储学生信息, Teacher 表存储教师信息, Course表存储课程信息, SC表存储学生选课信息及选课成绩。数据库各表之间关系图说明:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
3、- - - - - - - 第 1 页,共 8 页 - - - - - - - - - 3. 依据前面实验一实验内容(2),(3)的要求 , 写出实现相应操作的SQL 语句并给出运行结果的截图。(2) 以下内容使用 SQL 语句完成:1、设计一个应用场景,创建符合该应用需求的应用数据库。代码:createdatabasemrsudnay;截图:2、在该数据库中创建至少4 个相互关联的基本表,并设置主键、外键、自定义完整性约束(非空、唯一、默认值、check)。代码:1) Student 表createtableStudent(Snochar ( 20 )primarykey , Snamech
4、ar( 20 )notNULL, Ssexchar( 2)default 男 , SagesmallintnotNULLcheck( Sagebetween 0 and 90 ), Sdeptchar( 20 )notNULL ); 2) Teacher 表createtableTeacher (Tnochar ( 10 )primarykey , Tnamechar( 20 )notNULL, Tsexchar( 2)default 男 , TagesmallintnotNULLcheck( Tagebetween 20 and 60 ), Sdeptchar( 20 )notNULL);
5、3) Course 表createtableCourse (Cnochar ( 5)primarykey , Cnamechar( 20 )notNULL, Cpnochar( 5)NULL,- Cpno是先修课CcreditsmallintnotNULL, foreignkey ( Cpno )referencesCourse( Cno ) ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 4) SC 表createtab
6、leSC ( Snochar ( 20 ), Cnochar ( 5), Tnochar ( 10 ), Gradesmallintcheck( Gradebetween 0 and 100 ), primarykey ( Sno ,Cno ,Tno ), foreignkey ( Sno )referencesStudent( Sno ), foreignkey ( Cno )referencesCourse( Cno ), foreignkey ( Tno )referencesTeacher( Tno ) ); 截图:3、维护基本表的结构。1) 在 Student 表 Ssex 列增加完
7、整性约束代码:altertableStudentaddconstraintSsex_IDcheck( Ssexin( 男 , 女 ); 修改前为:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 修改后为:4、创建并查看索引对象。代码:createuniqueindexSCnoonSC( SnoASC,CnoASC,TnoDESC);截图:5、向表中录入若干数据,并维护表中数据。1) Student表insertintoStude
8、ntvalues( 031302428, mrsunday, 男 ,19 , CS); insertintoStudentvalues( 031302427,XJ, 男 , 20 ,CS); insertintoStudentvalues( 031302429,ahaha, 男 , 20 ,CS); insertintoStudentvalues( 031302426,qdl, 男 , 21 ,CS); 2) Teacher 表insertintoTeachervalues( 00001,aaa, 男 ,40,CS); insertintoTeachervalues( 00002,bbb, 男
9、 ,41,CS); insertintoTeachervalues( 00003,ccc, 男 ,42,CS); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 3) Course 表insertintoCoursevalues( 001,Chinese,NULL,2); insertintoCoursevalues( 002,database,NULL ,3); insertintoCoursevalues( 003,C La
10、nguage,NULL,3); insertintoCoursevalues( 004,data Struct,003,4); 4) SC 表insertintoSC values( 031302426,002,00002,89); insertintoSC values( 031302427,004,00003,78); insertintoSC values( 031302428,001,00001,70); insertintoSC values( 031302429,004,00003,97); 5) 维护表中数据项:将 Teacher表中所有老师的年龄都增加1 岁updateTeac
11、hersetTage= Tage+ 1 ;(3)数据库查询,视图使用在创建的表中自行设计实现以下查询:1、单表查询。1) 查询学生姓名为 mrsunday学号,姓名,年龄,所属院系selectSno ,Ssex ,Sage ,SdeptfromStudentwhereSname=mrsunday; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 2) 查询全体学生信息select*fromStudent; 2、多表连接查询并排序
12、输出。1) 查询大于 19 岁的学生及其选修课程的情况,以学号大小降序输出。selectStudent. Sno ,Sname ,Ssex ,Sage ,Sdept,Cno ,Tno ,Grade fromStudent,SC whereStudent. Sno= SC. SnoandSage 19 orderbySnoDESC;2) 查询每个学生的学号、姓名、选修课程以及选修成绩。selectStudent. Sno ,Sname ,Cname ,Grade fromStudent,SC,Course whereStudent. Sno= SC. SnoandSC. Cno= Course.
13、 Cno ; 3、使用聚集函数的查询。查询选修004 号课程的学生成绩中的最高成绩。selectMAX( Grade ) 最高成绩fromSC whereCno=004;4、分组查询。查询每门课程的课程编号及其选修人数。selectCno,COUNT( Sno )选修人数fromSC groupbyCno ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 5、嵌套查询。查询与 mrsunday 同系的所有学生的信息。selec
14、t* fromStudentwhereSdeptin( selectSdept fromStudentwhereSname=mrsunday ); 6、创建并查询视图。1) 创建系为 CS 的学生视图。createviewCS_Student as selectSno ,Sname ,Ssex ,Sage fromStudentwhereSdept= CS withcheckoption; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - -
15、 - - 2) 在系为 CS 的学生视图中查找年龄不小于20 的学生学号、姓名、年龄。selectSno ,Sname ,SagefromCS_StudentwhereSage= 20 ; 4实验小结:(对本次实验有何体会与收获)在这次实验中学会了使用创建数据库,为 SQL Server 语言有了一定的了解, 其中遇到不少困难,比如安装Microsoft SQL Server 2008 时无法连接本地数据库,在网上看了许多教程才搞好。查看数据库关系图时,无法直接创建,需要一个授权指令 ALTER AUTHORIZATION ON database: mrsunday TO sa,其后才能创建。此外创建数据库的时候肯定不可能考虑周全,在表的完整性约束总会有错误或者不合理,开始时不知道怎么搞,从开始的直接删除所有表再重新创建表格到后来可以直接用 SQL语句来修改,也算是自己进步的体现。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -