数据库原理与应用实验报告十五

合集下载

《数据库原理及应用》实验报告

《数据库原理及应用》实验报告

《数据库原理及应用》实验报告实验报告:《数据库原理及应用》一、实验目的通过本次实验,掌握数据库原理及应用的相关知识,并能够熟练运用数据库软件进行数据的存储、查询和管理。

二、实验内容1.数据库的概念和基本原理的学习2.数据库设计和规范化的理解和实践3.数据库的建立和配置4.数据的插入、查询和删除操作5.数据库的备份和恢复操作三、实验步骤及结果1.数据库的概念和基本原理的学习根据教材和相关资料,了解数据库的概念和基本原理,并能够用自己的语言进行简单的表述。

2.数据库设计和规范化的理解和实践根据所学知识,对给定的需求进行数据库设计和规范化的实践,包括实体、属性和关系的定义,并通过ER图进行可视化展示。

3.数据库的建立和配置使用数据库软件,如MySQL或Oracle,按照设计要求建立数据库并进行相应的配置。

4.数据的插入、查询和删除操作通过SQL语句,将设计好的数据插入到数据库中,并进行相关的查询和删除操作,验证数据的正确性和完整性。

5.数据库的备份和恢复操作学习数据库的备份和恢复操作方法,并进行实践,保证数据库的安全性和可靠性。

四、实验结果分析根据实验步骤进行数据库的建立、数据插入和查询操作,并比对预期结果,可以得出实验结果的正确性和可行性。

五、实验总结通过本次实验,我对数据库原理及应用有了更深入的了解和掌握,熟练运用相关数据库软件进行数据的存储、查询和管理。

同时,我也发现了在实际操作中可能出现的问题和解决方法,在数据库的设计和维护方面有了更深入的认识和思考。

六、实验心得本次实验让我对数据库有了更直观和深入的认识,通过实际操作和实践,我逐渐掌握了数据库的设计和管理方法,并学会了利用SQL语句进行数据的插入、查询和删除操作。

通过对数据库的备份和恢复操作的实践,我也认识到了数据库的安全性和可靠性的重要性。

总之,本次实验让我收获颇丰,通过实际操作和实践,我对数据库原理及应用有了更深入的了解和掌握,也提高了自己的实际操作能力和问题解决能力。

数据库原理及应用实验报告

数据库原理及应用实验报告

数据库原理及应用实验报告数据库原理及应用实验报告一、引言数据库是计算机科学中的重要概念,它是用于存储、管理和检索大量有组织数据的系统。

数据库的应用广泛,从个人电脑上的简单数据文件到大型企业级数据仓库,都离不开数据库的支持。

本实验报告将介绍数据库的原理和应用,并通过实际实验来验证其有效性。

二、数据库原理1. 数据库的定义和特点数据库是一个有组织的数据集合,它具有持久性、共享性、独立性和可变性等特点。

持久性指数据可以长期保存;共享性指多个用户可以同时访问和使用数据库;独立性指数据库的逻辑结构和物理结构相互独立;可变性指数据库可以随时更新和修改。

2. 数据库管理系统(DBMS)数据库管理系统是用于管理数据库的软件,它提供了数据定义、数据操纵、数据控制和数据查询等功能。

常见的DBMS有MySQL、Oracle和SQL Server等。

3. 数据库模型数据库模型是用于描述数据库的结构和组织方式的概念模型。

常见的数据库模型有层次模型、网络模型和关系模型等。

其中,关系模型是最为常用的模型,它使用表格来表示数据,表格中的每一行表示一个记录,每一列表示一个属性。

三、数据库应用实验为了验证数据库的应用效果,我们进行了以下实验。

1. 数据库设计首先,我们根据实际需求设计了一个简单的学生信息管理系统。

该系统包含了学生的基本信息、课程信息和成绩信息。

2. 数据库创建在MySQL数据库中,我们创建了一个名为"student"的数据库,并在其中创建了三张表格,分别是"student_info"、"course_info"和"score_info"。

3. 数据库插入通过SQL语句,我们向数据库中插入了一些样本数据,包括学生的姓名、学号、课程名称和成绩等信息。

4. 数据库查询为了验证数据库的查询功能,我们编写了一些SQL查询语句,如查询某个学生的所有成绩、查询某门课程的平均成绩等。

数据库技术与应用实验报告

数据库技术与应用实验报告

数据库技术与应用实验报告《数据库技术与应用》上机实验报告目录:一、概述二、主要上机实验内容1.数据库的创建2.表的创建3.查询的创建4.窗体的创建5.报表的创建6.宏的创建三、总结一、概述(一)上机内容:第七周:熟悉Access界面,数据库和表的创建,维护与操作1. 熟悉Access的启动,推出,界面,菜单,工具栏等;2. 练习使用向导创建数据库、创建空数据库;3. 练习创建表结构的三种方法(向导、表设计器、数据表)、表中字段属性设置;4. 练习向表中输入不同类型的数据;5. 练习创建和编辑表之间的关系;6. 练习表的维护(表结构、表内容、表外观)7. 练习表的操作(查找、替换、排序、筛选等)第八周:练习创建各种查询1.选择查询(单表、多表、各种查询表达式)2.参数查询3.交叉表查询4.操作查询(生成查询、删除查询、更新查询、追加查询)第十周:练习创建各种类型的窗体1.自动创建纵栏式窗体和表格式窗体;2.向导创建主|子窗体3.图表窗体的创建4.练习通过设计器创建窗体5.练习美化窗体第十三周:练习创建各种类型的报表1.自动创建纵栏式报表和表格式报表;2.向导创建报表(多表报表、图表报表、标签报表)3.练习通过设计视图创建报表(主|子报表、自定义报表)4.练习在报表中添加计算字段和分组汇总数据第十五周:综合应用1.了解Access数据库系统开发的一般方法;2.课程内容的综合练习;3.编写上机实验报告、答疑(二)上机完成情况第七周:熟悉Access界面,数据库和表的创建,维护与操作完成了创建表,向表中输入不同类型的数据,创建和编辑表之间的关系,进行了表的维护,修改了表的结构、内容、外观,最后进行了表的操作,查找、替换、排序、筛选等。

已完成第八周:练习创建各种查询练习选择查询、参数查询、交叉表查询,然后练习并操作查询,生成查询、删除查询、更新查询、追加查询等。

已完成第十周:练习创建各种类型的窗体自动创建纵栏式窗体和表格式窗体,向导创建主|子窗体和图表窗体,练习通过设计器创建窗体,美化窗体。

数据库原理与应用实验报告

数据库原理与应用实验报告

《数据库原理及应用》
实验报告
一、实验目的
掌握多表连接查询的方法
二、实验要求
三、实验结果
1、采用自然连接的方法,列出每个学生及其班级的详细情况。

2、采用自连接的方法,查找不同课程成绩相同的学生的学号、课程和成绩。

3、采用复合条件连接方法,查找选修了“汇编语言”课程且成绩在70分以上的学生的学号/姓名/课程名/成绩。

4、查找每个学生的基本情况以及班级情况。

5、查找选修了课程编号为“2”的课程且成绩在60分以上的学生的姓名和成绩。

6、查找选修了“汇编语言”课程且成绩在70分以上的学生的学号/姓名/课程名/成绩。

7、查找不同课程成绩相同的学生的学号/课程号/成绩。

8、采用左外连接,查找200001班所有学生的学号/姓名以及他们选修的课程号,同时也列出该班没选课的学生的学号/姓名。

9、采用右外连接,查找所有学生的学号/姓名以及他们选修的课程号,同时也列出没选课的学生的学号/姓名。

10、使用子查询来查询学生“张小强”所在的班级。

11、查找选修了课程号为13的课程的学生情况。

12、查找200001班没选修课程号为13的课程的学生情况。

13、创建表stu,包括学号/姓名/性别/家庭住址,然后将student_info表中相应字段信息全部插入到stu中,最后显示插入的记录。

14、将200001边的全体学生的成绩加10分。

15、删除没选修任何一门课的学生的信息。

数据库原理及应用实验报告

数据库原理及应用实验报告

数据库原理及应用实验报告一、实验目的通过本次实验,深入理解数据库的原理与应用,掌握数据库的基本操作和常见应用场景。

二、实验内容1.数据库的基本概念与原理:关系型数据库与非关系型数据库的区别,数据库的组成要素,关键概念解释等。

2. 数据库的设计与建模:根据需求设计数据库的ER图,熟悉数据库建模工具的使用,如Eclipse、PowerDesigner等。

3.数据库语言与操作:学习SQL语言,包括数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)等,通过SQL语句对数据库进行增删改查操作。

4.索引的使用与优化:了解数据库索引的原理和作用,学习索引的创建、使用和优化技巧,提高数据库查询性能。

5.数据库的备份与恢复:掌握数据库的备份与恢复的方法,学会使用数据库备份工具进行数据的完整备份和恢复操作。

三、实验步骤1.确定数据库需求,设计ER图。

2.使用数据库建模工具创建数据库表,定义字段和关系。

3.使用SQL语句创建数据库和表结构。

4.插入数据并进行增删改查操作,验证数据库的正常使用。

5.创建索引并对查询语句进行优化,提高查询性能。

6.使用数据库备份工具进行数据备份,测试数据的完整恢复。

四、实验结果与分析本次实验中,我选择了一个简单的学生管理系统作为实验的对象。

首先,根据需求设计了ER图,确定了数据库表的结构和关系。

然后使用数据库建模工具创建了对应的数据库表。

接下来,使用SQL语句对数据库进行了初始化和插入数据,并通过增删改查操作验证了数据库的正常使用。

在插入大量数据后,使用索引对查询语句进行了优化,提高了查询性能。

最后,使用数据库备份工具对数据进行了完整备份,并进行了测试恢复操作,确保数据的可靠性和完整性。

通过本次实验,我深入了解了数据库的基本概念与原理,掌握了数据库的设计与建模技巧。

同时,我也学会了使用SQL语言进行数据库的增删改查操作,并掌握了索引的使用和优化方法。

数据库的备份与恢复操作也让我加深了对数据库安全性的认识。

数据库原理及应用实践报告

数据库原理及应用实践报告

数据库原理及应用实践报告1 数据库功能描述基本实现学生信息的管理,包括系统的登录、学生信息的录入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除。

2 数据库设计2.1 系统需求分析通过设计一个简单学生成绩管理系统来方便成绩的管理,主要内容是能够在学生表、教师表、班级表、课程表、成绩表等添加记录;能够查询到学生基本情况、全局情况(浏览表)、按学生查询、课程浏览、多项组合查询等功能;能够统计按个人统计成绩、按单科成绩统计成绩等;能够修改课程信息、学生信息、成绩信息等。

最后通过主表单或顶层表单的菜单等方法将各模块表单合理地连接,形成完整的系统。

整个系统中包含四个功能模块:添加模块、查询模块、统计模块、修改模块。

2.2 数据库逻辑结构设计3 数据库实施3.1 数据库架构图3.2 数据表生成脚本初始数据录入脚本学生数据表如表1所示。

表1学生数据表(student.dbf)字段名类型宽度索引索引名索引类型索引表达式学号字符型10 升序学号主索引学号姓名字符型8性别字符型 2出生日期日期型8班级字符型 4 升序班级普通索引班级表2班级数据表(classes.dbf)字段名类型宽度小数位索引索引名索引类型索引表达式班级字符型 4 升序班级主索引班级年级x 字符型 2专业字符型10系代码字符型 1学制字符型 1类型字符型 4表3教师数据表(teacher.dbf)表4课程数据表(course.dbf)表5 学习成绩数据表(score.dbf)3.3初始录入脚本4 应用程序设计表一:登录用户名和密码存放在数据表中,使用时不能连续输入错误3次的登录表单。

步骤为:1、首先在项目管理器的界面中选择创建一个表单,命名为:登陆.Scx2、在空白表单界面上用常用工具绘制相应控件,属性如下图所示:表单中对象的属性设置其中需要在表单的数据环境中添加密码表。

密码表设有两个字段,YHM和MM。

3、为对象添加代码。

在form1的load事件中添加public nn=0Command1的click事件locate for alltrim(mm.yhm)==alltrim(bo1.value)if found()if alltrim(thisform.text1.value)==alltrim(mm.mm)thisform.releasedo form 主控表单.scxelsemessagebox('你输入的密码不正确,请重新输入',48,'登录信息')thisform.text1.value=''n=n+1if n=3messagebox('登录失败!',16,'提示信息')quitendifendifelsemessagebox('对不起,你不是合法用户')endifCommand2的click事件bo1.value=''thisform.text1.value=''Command3的click事件answer=messagebox('确认退出吗?',1+32+0,'确认退出')if answer=1thisform.releasequitendif表二:以表单向导开发信息录入新表单。

数据库原理与应用实验报告

数据库原理与应用实验报告实验目的:1.了解数据库的基本概念和原理;2.掌握数据库的设计和实现方法;3.学会使用SQL语言进行数据库操作;4.实践数据库应用开发的基本步骤。

实验过程:1.实验环境搭建:a.安装MySQL数据库服务器;b.安装MySQL的客户端工具;c.创建一个新的数据库。

2.数据库设计和实现:a.设计数据库的表结构和字段;b.使用SQL语句创建表;c.插入测试数据。

3.SQL语言操作:a.使用SELECT语句查询数据;b.使用INSERT语句插入数据;c.使用UPDATE语句更新数据;d.使用DELETE语句删除数据。

4.数据库应用开发:a. 使用Python连接数据库;b.查询和显示数据;c.实现数据的增删改操作。

实验结果:1.数据库的设计和实现:a. 创建了一个名为"student"的数据库;b. 在数据库中创建了一个名为"score"的表,包含字段:学号、姓名、数学成绩、英语成绩、物理成绩;c.插入了三条测试数据。

2.SQL语言操作:a.使用SELECT语句查询学号为"001"的学生的成绩;b.使用INSERT语句插入一条新的学生记录;c.使用UPDATE语句将学生"001"的数学成绩更新为90分;d.使用DELETE语句删除学号为"003"的学生记录。

3.数据库应用开发:a. 使用Python连接到数据库;b. 使用Python编写查询和显示数据的程序;c. 使用Python编写增删改数据的程序。

实验总结:通过此次数据库原理与应用的实验,我对数据库的基本概念和原理有了更深的理解,掌握了数据库的设计和实现方法,也学会了使用SQL语言进行数据库操作。

同时,我还实践了数据库应用开发的基本步骤,学会了使用Python连接数据库,并编写了查询和显示数据的程序,以及增删改数据的程序。

在实验中,我发现数据库的设计和表结构的合理性对数据的查询和操作十分重要。

数据库原理与应用综合实验报告.

物电学院综合性实验实验报告课程名称数据库原理与应用实验学期 2015学年第 2 学期学生所在院部物理与电子科学学院年级 2013级专业班级xxxxxx 班学生姓名xxx学号xxxxxxxxxx任课教师xxxxxxx实验成绩试验时间:2015年6月《数据库原理与应用D》课程综合性实验报告开课实验室:学校机房2015 年 6月 10 日【一】实验目的(1 培养学生数据库分析和设计能力;(2 培养学生软件结构和功能模块分析能力;(3 培养提高学生自学能力和独立进行软件开发能力;(4 培养学生的创新意识和协作精神;(5 培养学生文字论述规范、清晰、严谨的能力。

【二】设备与环境硬件:多媒体计算机软件:Windows 2003操作系统,SQL Server 2008 数据库管理系统,应用程序开发环境Tomcat6.0,EditPlus, JSP【三】实验内容教室管理信息系统一、系统概述教室管理信息化是学校教务系统应用信息技术及其产品的过程,是信息技术应用于教室管理的过程。

教育信息化的实施,自上而下而言,必须与学校的制度创新、组织创新和管理创新结合;自下而上而言,必须以作为学校主体的工作人员使用信息技术水平的逐步提高为基础。

学校信息系统是现存信息系统中较为复杂的一类,这是由学校本身的目标、任务和性质决定的;它应用于学校的学生管理、教师管理、教室管理以及招生就业管理等各个方面,牵涉的信息种类十分庞杂。

它融合了学校的管理思想和各职能部门的工作经验,是学校当前运作方式和业务流程的具体体现,同时又在一定程度上反作用于学校当前的运作方式和业务流程。

而教室管理信息系统正是这样庞大的系统中的一个系统。

教室之于教师、学生、教学,都有极其重要的作用。

因此,学校信息化建设工作具有长期性、复杂性和内容的多变性;正因为如此,教室管理信息系统也不是一个简单的、封闭的、静止的系统,而是一个复杂的、开放的、在应用的深度和广度上,随着时间的推移会逐步变化和发展的系统。

数据库原理及应用实验报告

徐州工程学院管理学院实验报告实验课程名称:数据库原理及应用实验地点:经济管理实验教学中心2012—2013学年(一)学期2012 年 9月至 2012 年 12 月专业信息管理与信息系统班级学生姓名学号指导老师蒋秀莲实验一实验名称:熟悉SQL Server 2008的工作环境成绩:实验目的1.熟悉企业管理器、查询管理器的使用。

2.熟悉SQL Server 2008给出的样例数据库的内容。

实验内容和步骤1.练习企业管理器的使用。

熟练掌握SQL Server服务管理器和企业管理器的启动及参数配置等方法。

2.熟悉样例数据库。

在企业管理器中,依次打开两个样例数据库:Pubs、Northwind,查看其所拥有的数据对象,主要包括表、试图、存储过程、角色、规则、默认值、定义的数据类型、定义的函数等。

3.练习查询分析器的使用。

(1)打开企业管理器的工具菜单,如下图所示:4.熟悉系统数据库的结构。

(1)在企业管理器中展开Master数据库节点。

(2)熟悉Master数据库中的所有表。

(3)找出名为sysservers的表,右击该表名,选择“打开表”—“返回所有行”命令。

(4)按照此方法查看其他表的内容。

实验二实验名称:创建数据库和数据表成绩:实验目的1.了解SQL Server 2008数据库的逻辑结构和物理结构。

2. 了解表的结构特点。

3. 熟悉SQLServer的基本数据类型。

4. 了解数据库、数据表、约束等相关的概念。

5. 实现在企业管理器中创建数据库和表。

6. 掌握使用Transact-SQL语句创建数据库和表的方法。

实验内容和步骤练习创建数据库和数据表。

(1)打开“我的电脑”或“资源管理器”,在磁盘中以自己的姓名或学号建立文件夹。

(2)创建名为“学生-选课”(即名为JWGL)的数据库,并存储在地(1)步建立的文件下。

(3)在建立的JWGL数据库中按照表9-1~表9-3所示创建student、course和sc表9-1 student表9-2 course表9-3 sc(4)在数据表中输入数据。

数据库原理及应用实验报告

数据库原理及应用实验报告《数据库原理及应用实验报告》数据库是计算机科学领域中的重要概念,它是用于存储和管理数据的系统。

数据库原理及应用实验报告是对数据库理论和实际应用进行系统性研究和实验的总结和分析。

本文将从数据库原理和应用实验两个方面进行探讨,以期为读者提供对数据库的深入理解和应用实践的指导。

首先,数据库原理是数据库技术的基础,它包括数据库的概念、结构、模型、语言和设计等内容。

在数据库原理的学习中,我们需要了解数据库的基本概念,包括数据、数据库、数据库管理系统(DBMS)等。

数据库的结构包括数据的逻辑结构和物理结构,逻辑结构包括数据的组织方式,物理结构包括数据在存储介质上的存储方式。

数据库模型是描述数据的抽象工具,常用的数据库模型包括层次模型、网状模型和关系模型等。

此外,数据库语言包括数据定义语言(DDL)和数据操纵语言(DML),它们分别用于定义数据库的结构和操作数据库中的数据。

数据库设计是数据库应用的关键,它包括概念设计、逻辑设计和物理设计三个阶段,通过数据库设计可以实现对数据的有效管理和利用。

其次,数据库应用实验是数据库理论的实践应用,它包括数据库的建立、管理和应用等内容。

在数据库应用实验中,我们需要学习数据库的建立和管理,包括数据库的创建、表的设计、数据的插入和查询等操作。

数据库的应用包括数据的增删改查、事务处理、数据的备份和恢复等功能,这些功能对于实际的数据库应用非常重要。

此外,数据库的安全性和性能优化也是数据库应用实验的重点内容,通过实验可以学习到如何保护数据库的安全和提高数据库的性能。

综上所述,数据库原理及应用实验报告是对数据库理论和实践进行系统性研究和实验的总结和分析。

通过学习数据库原理和进行数据库应用实验,可以帮助我们深入理解数据库的概念和原理,掌握数据库的设计和应用技能,从而为实际的数据库应用提供理论和实践的支持。

希望本文可以为读者提供对数据库的深入理解和应用实践的指导,促进数据库技术的发展和应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机工程系实验报告学生信息系别计算机学院专业计算机科学与技术班级17计科2+2 姓名徐浩俊学号*************实验信息课程名称数据库原理与应用实验名称实验15 存储过程与触发器指导教师文琦批改情况成绩评阅教师文琦实验目标:1.通过实验掌握存储过程的概念、功能。

2.掌握用户自定义存储过程的创建、修改、删除和执行。

3.掌握触发器的创建、删除、修改及其使用方法。

4.掌握触发器的功能。

实验结果:一、自行完成实验8、实验9。

二、利用shiyan15.sql完成下列内容。

1.创建并使用存储过程,注意创建存储过程前一定要先用IF EXISTS判断一下是否已创建同名的存储过程,若有先删除在创建。

①创建一存储过程利用学生姓名查询该生选修的课程名、成绩、以及任课教师姓名(涉及的表可能有s、sc、t、c、tc),并调用存储过程查询王青山的选修的课程名、成绩以及任课教师姓名,结果如图所示。

USE jxskIF EXISTS(SELECT*FROM SYSOBJECTS WHERE NAME='PRO_SN'AND TYPE='P')DROP PROC PRO_SNGOCREATE PROC PRO_SN@SN CHAR(8)ASSELECT SN AS学生,CN AS选修课程,SCORE AS分数,TN AS教师FROM S,SC,T,C,TCWHERE S.SNO=SC.SNO AND O=O AND TC.TNO=T.TNO AND O=O AND SN=@SNGODECLARE@SNAME_IN CHAR(8)SET@SNAME_IN='赵亦'EXEC PRO_SN@SNAME_IN②创建一存储过程利用系名查询某系的学生的最大年龄和最小年龄。

调用存储过程查询信息系的学生最大年龄和最小年龄。

(涉及的表可能有s)USE jxskIF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='PRO_AGE_MAX_IN' AND TYPE='P')DROP PROC PRO_AGE_MAX_INGOCREATE PROC PRO_AGE_MAX_IN@DEPT_IN CHAR(10),@AGE_MAX TINYINT OUTPUT,@AGE_MIN TINYINT OUTPUTASSELECT@AGE_MAX=MAX(AGE),@AGE_MIN=MIN(AGE)FROM SWHERE S.DEPT=@DEPT_INGODECLARE@DEPT_IN CHAR(10),@AGE_MAX TINYINT,@AGE_MIN TINYINT SET@DEPT_IN='信息'EXEC PRO_AGE_MAX_IN@DEPT_IN,@AGE_MAX OUTPUT,@AGE_MIN OUTPUT SELECT@DEPT_IN系别,@AGE_MAX最大年龄,@AGE_MIN最小年龄③创建一存储过程利用学生姓名和课程名检索该生该课程的成绩,涉及的表可能有s,sc,c。

调用该存储过程查询李思程序设计的成绩,结果如下图所示。

USE jxskIF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='PRO_QSCORE'AND TYPE='P')DROP PROC PRO_QSCOREGOCREATE PROC PRO_QSCORE@SNAME_IN CHAR(10),@CNAME_IN CHAR(10),@GRADE_OUT TINYINT OUTPUTASSELECT@GRADE_OUT=SCOREFROM S,SC,CWHERE S.SN=@SNAME_IN AND S.SNO=SC.SNO AND O=O AND =@CNAME_INGODECLARE@SNAME_IN CHAR(10),@CNAME_IN CHAR(10),@GRADE_OUT TINYINT SET@SNAME_IN='李思'SET@CNAME_IN='程序设计'EXEC PRO_QSCORE@SNAME_IN,@CNAME_IN,@GRADE_OUT OUTPUT SELECT@SNAME_IN姓名,@CNAME_IN课程,@GRADE_OUT成绩④创建一存储过程利用系名检索该系教师的平均年龄和学生人数。

调用该存储过程,查询计算机系的教师平均年龄和学生人数,结果如下图所示。

USE jxskIF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='PRO_DEPT_COUNT' AND TYPE='P')DROP PROC PRO_DEPT_COUNTGOCREATE PROC PRO_DEPT_COUNT@DEPT_IN CHAR(10)ASSELECT A.DEPT系别,平均年龄,学生人数FROM (SELECT DEPT,COUNT(TNO)AS教师人数,AVG(AGE)AS平均年龄FROM T GROUP BY DEPT)A,(SELECT DEPT,COUNT(SNO)AS学生人数FROM S GROUP BY DEPT) BWHERE A.DEPT=B.DEPT AND A.DEPT=@DEPT_INGODECLARE@DEPT_IN CHAR(10)SET@DEPT_IN='计算机'EXEC PRO_DEPT_COUNT@DEPT_IN⑤利用教师姓名和课程名检索该教师该课的课程名、选课人数、平均成绩、最高成绩、并查询教师“张雪”的“微机原理”课程的情况记录及教师“张朋”的“数据库”课程,结果如图所示。

USE jxskIF EXISTS(SELECT NAME FROM SYSOBJECTS WHERENAME='PRO_TNAME_CNAME1'AND TYPE='P')DROP PROC PRO_TNAME_CNAME1GOCREATE PROC PRO_DEPT_COUNT1@TNAME_IN CHAR(10),@CNAME_IN CHAR(10),@STUDENT_SUM INT OUTPUT,@GRADE_AVG INT OUTPUT,@GRADE_MAX INT OUTPUTASSELECT@STUDENT_SUM=COUNT(SNO),@GRADE_AVG=AVG(SCORE),@GRADE_MAX=MAX(SCORE)FROM T,C,SC,TCWHERE O=O AND O=O AND TC.TNO=T.TNO andT.TN=@TNAME_IN AND O=@CNAME_INGROUP BY TN,CNGODECLARE@TNAME_IN CHAR(10),@CNAME_IN CHAR(10),@STUDENT_SUM INT, @GRADE_AVG INT,@GRADE_MAX INTSET@TNAME_IN='张雪'SET@CNAME_IN='微机原理'EXEC PRO_DEPT_COUNT1@TNAME_IN,@CNAME_IN,@STUDENT_SUM OUTPUT, @GRADE_AVG OUTPUT,@GRADE_MAX OUTPUTIF(@STUDENT_SUM IS NULL)PRINT'没有学生选微机原理这门课程,故总课时数,选课人数,平均成绩等统统为0'ELSESELECT@TNAME_IN教师姓名,@CNAME_IN学生姓名,@STUDENT_SUM选课总人数,@GRADE_AVG平均成绩,@GRADE_MAX总成绩2.创建并使用触发器,注意创建触发器前一定要先用IF EXISTS判断一下是否已创建同名的触发器,若有先删除在创建。

①为表sc创建一触发器:当插入或修改一个记录时,确保此记录的成绩在0~100分之间。

(思路:新的数据行就会被插入inserted表,通过检查该表判断插入的行是否在0~100之间,如果在正常插入,否则不做插入,回滚至插入的状态。

)●插入数据行('s5','c1','101'),是否弹出如图所示的错误。

请问该行数据是否插入到sc表中●将s5的c1成绩更新至101,能否更新成功?USE jxskIF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='SCORE_SC_TRI' AND TYPE='TR')DROP TRIGGER SCORE_SC_TRIGOCREATE TRIGGER SCORE_SC_TRION SC FOR INSERT,UPDATEASDECLARE@SCORE_IN TINYINTSELECT@SCORE_IN=SCORE FROM INSERTEDIF@SCORE_IN<0 OR@SCORE_IN>100BEGINPRINT'成绩超出0-100!请重新输入.'ROLLBACK TRANSACTIONENDGOINSERT INTO SC VALUES ('s5','c1','101')/*触发器激活,插入失败*/UPDATE SC SET SCORE=101 WHERE SNO='s5'AND CNO='c1'/*触发器激活,更新失败*/②为数据库表T创建一触发器:当职称从“讲师”晋升为“副教授”时,津贴自动增加500元,从“副教授”晋升为“教授”时,岗位津贴自动增加900元。

更新前:更新后:USE jxskIF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='UT'AND TYPE='TR')DROP TRIGGER UTGOCREATE TRIGGER UTON T FOR UPDATEASDECLARE@PROF_OLD CHAR(10)DECLARE@PROF_NEW CHAR(10)DECLARE@TNO CHAR(2)SELECT@PROF_OLD=PROF FROM DELETEDSELECT@PROF_NEW=PROF FROM INSERTEDSELECT@TNO=TNO FROM DELETEDIF@PROF_OLD='讲师'AND@PROF_NEW='副教授'BEGINUPDATE T SET COMM=COMM+500 WHERE TNO=@TNOENDIF@PROF_OLD='副教授'AND@PROF_NEW='教授' BEGINUPDATE T SET COMM=COMM+900 WHERE TNO=@TNO ENDGOUPDATE T SET PROF='副教授'WHERE TN='刘伟'。

相关文档
最新文档