数据库原理实验报告模板-实验四高级查询

数据库原理实验报告模板-实验四高级查询
数据库原理实验报告模板-实验四高级查询

大连海事大学

数据库原理课程实验报告(2013-2014学年第二学期)

实验四高级查询

班级:软件工程四班

学号:2220121787

姓名:马跃

指导教师:曹志英

成绩:

大连海事大学软件工程系

2014年6 月23 日

目录

1实验目的 (3)

2实验内容 (3)

2.1掌握SQL高级查询使用方法 (3)

3实验要求 (3)

4实验步骤 (3)

4.1掌握SQL高级查询使用方法 (3)

5总结与体会 (6)

5.1实验中出现的问题及其解决方案 (6)

5.2总结 (7)

5.3体会 (7)

1实验目的

(1)掌握SQL的高级查询的使用方法,如分组统计、嵌套查询、集合查询等等。

2实验内容

2.1 掌握SQL高级查询使用方法

(1)分组统计。

(2)嵌套查询,包括IN查询、EXISTS查询。

(3)集合查询。

3实验要求

(1)深入复习教材第三章SQL有关高级查询语句。

(2)根据书上的例子,针对DBTestBed数据库模式设计分组统计查询、嵌套查询(IN、EXISTS)语句和集合查询语句,每种类型的基本查询至少要设计一个查询,描述清楚查询要求,运行你所设计的查询语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例查询做实验。

(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。

4实验步骤

4.1 掌握SQL高级查询使用方法

(1)不带分组过滤条件的分组统计查询。

统计2013-2014上学期信息学院(01)开设的每门课程的最高分,最低分,及平均成绩。

select C.coursename,avg(score)AVGS,max(score)MAXS,min(score)MINS from tb_select_course A,Tb_Cultivate_Scheme B,Tb_Course_info C

where A.schemeid=B.schemeid and B.cyear='2013'and B.term='上'and

C.courseid=B.courseid and C.deptid='01'

group by C.coursename

(2)带分组过滤条件的分组统计查询。

查询选修了1门以上课程的学生学号,姓名,年级,专业名称

select A.graduateid,graduatename,grade,specialityname

from tb_student_info A,tb_speciality_info B,tb_select_course C

where A.specialityid=B.specialityid and C.graduateid=A.graduateid group by A.graduateid,A.graduatename,grade,specialityname

having count(A.graduateid)>1

(3)单层IN查

查询学号为’1787’的学生信息。

select A.graduateid,graduatename,sex,city,email,tel,birthday

from tb_student_info A

where graduateid in(

select graduateid

from tb_student_info D

where D.graduateid='1787')

(4)IN嵌套查询。

查询“信息科学技术学院”学生姓名和学号和家庭地址。

select graduateid,graduatename,city

from tb_student_info

where specialityid in

(select specialityid

from tb_speciality_info

where deptid in

(select deptid

from tb_dept_info

where deptname='信息科学技术学院'

)

)

(5)带有比较运算符的子查询

查询指导教师为“曹志英”的所有学生学号姓名和电话。

select graduateid,graduatename,tel

from tb_student_info

where tutorid=

(select tutorid

from tb_tutor_info

where tutorname='曹志英'

)

(6)单层EXISTS嵌套查询。

所有选修培养方案号(SchemeID)为3的学生姓名

select graduatename

from tb_student_info A

where exists

(select*

from tb_select_course B

where B.schemeid='01'and A.graduateid=B.graduateid

)

(7)双层EXISTS嵌套查询。

查询选修了全部课程的学生姓名

select graduatename

from tb_student_info A

where not exists

(select*

from tb_course_info B,tb_cultivate_scheme D

where B.courseid=D.courseid and not exists

(select*

from tb_select_course C

where graduateid=A.graduateid and

schemeid=D.schemeid

))

(8)集合查询(交、并、差各设计一个)。

查询“曹志英”老师和“宗雪飘”老师都授过课的学生姓名学号。

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='01'

union

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='02'

查询“曹志英”老师和“宗雪飘”老师授过课的所有学生姓名学号。

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='01'

intersect

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='02'

查询选修过“曹志英”老师的课程,却没有听过“宗雪飘”课程的学生姓名学号。

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='01'

except

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='02'

5总结与体会

5.1 实验中出现的问题及其解决方案

在group by查询学号姓名时没有将,没有将姓名放在group by语句中,结果出现查询不正确,最后请教老师,在group by分组时应将查询的内容都包含。

5.2 总结

感觉这个实验相对于上几个实验比较难,尤其是双层EXISTS嵌套查询,自己的理解还不是很到位,但是慢慢参考书上的例子,将代码写了出来。

5.3 体会

感觉自己自己学习的数据库还不是很踏实,还应该继续努力脚踏实地,不要急于求成,自己不会时应该多向同学老师请教。

山东大学数据库第四次实验实验报告

實驗4 視圖操作 實驗目の:掌握創建、刪除視圖のSQL語句の用法,掌握使用企業管理器創建、視圖の方法。 實驗准備: 1)了解創建視圖方法。 2)了解修改視圖のSQL 語句の語法格式。 實驗內容: 1)使用企業管理器創建視圖 a)在pubs數據庫中以authors表為基礎,建立一個名為CA_authorの視圖, 使用該視圖時,將顯示所有state為CAの作者の基本信息。 2)使用SQL語句創建視圖 a)在查詢分析器中利用author表建立一個每個作者のID,lname,fname, phone,addressの視圖S_author。 b)建立一個employee_date視圖,利用employee表中信息,顯示1991年 1月1日之後雇傭の雇員のid,name,minit,job_id。 3)刪除視圖 a)使用企業管理器S_author視圖 b)使用SQL語句刪除CA_author、employee_date視圖 實驗要求: 用不同の方法創建視圖。 實驗步驟如下: 一、使用企業管理器創建視圖 a )在pubs數據庫中以authors表為基礎,建立一個名為CA_author の視圖,使用該視圖時,將顯示所有state為CAの作者の基本信息。

①右鍵點擊pubs數據庫文件下の視圖,選擇“新建視圖”,在彈出來の“添加表”中添加表authors。 ②在“添加表”一欄中添加表authors後點擊“關閉”,並全選author表中所有項目。 ③點擊保存,從彈出來の“選擇名稱”框中輸入視圖名稱“CA_author”。

④添加名為CA_author の視圖成功。 ⑤顯示所有state為CAの作者の基本信息。

数据库实验报告

合肥工业大学实验报告一 课程名称:数据库系统原理及应用学号: 20095382 姓名:魏泽民 专业班级:电子商务09-1班 指导教师:马华伟 二零一一年十月

一、实验目的: (1)熟练掌握数据更新语句,灵活地操作插入数据、修改数据和删除数据; (2)熟练掌握关系数据库中的完整性概念的应用; (3)了解数据录入的方法和过程。 (4)掌握单表查询的基本方法; (5)掌握连接查询的基本方法; (6)熟练掌握以下练习,并进行以下各类查询: ①选择表中的若干列、查询全部列、查询经过计算的值; ②选择表中的若干元组,即消除取值重复的行与查询满足指定条件的元组(包 括:比较大小、确定范围、确定集合、字符匹配、涉及空值和多种条件查询); ③对查询结果排序; ④使用集函数; ⑤对查询结果分组 (7)熟练掌握以下练习,并进行下列各类连接查询: ①等值与非等值连接查询; ②自身连接; ③外连接; ④复合条件连接; (8)掌握嵌套查询的基本方法; (9)掌握集合查询的基本方法; (10)熟练掌握查询视图操作 (11)熟练掌握更新视图操作 (12)熟练关系的完整性概念,领会视图的用途 (13)练习以下各类查询: ①带有IN谓词的子查询; ②带有比较运算符的子查询; ③带有ANY或ALL谓词的子查询; ④带有EXISTS谓词的子查询; ⑤视图查询与更新操作; 二、实验要求: (1)为了便于程序正确性测试,需要对自己建立起来的数据表录入一些模拟数据(模拟数据是指符合数据格式要求的假数据),然后按照教材中结构化查询语言SQL章节例题和习题自己组织SQL语句:

(2)设计的SQL程序应该涵盖数据更新操作的全部内容不,包括插入、修改、删除; (3)综合运用SQL语句实现数据插入、修改、删除等操作的综合运用能力。 (4)按照SQL语言编程要求,实现各类查询和检索操作; (5)利用后台的SQL平台环境,编程验证数据库的控制保护功能。 (6)将查询视图命令等价改写为对数据表的查询操作命令,利用SQL编程设计完成并进行效率分析。 三、实验内容: (1)根据以下给定的数据表信息分别对student, course, score, teacher, teching 表进行数据插入和修改,以完成给定的数据录入,同时要求输入班级同学名录模拟客观真实情况,给student、score表添加30条以上记录,以便以后查询应用方便。 Student表:

数据库原理实验报告

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验一SQL Server 2005常用服务与实用工具实验 所在院(系):数学与信息技术学院 班级:14软工5班 学号:14551204 14551206 姓名:花元凯罗文波 1.实验目的 (1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。 (2)了解SQL Server 2005的主要组件、常用服务和系统配置。 (3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。 2.实验要求 (1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。 (2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。 (3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获得 所感兴趣的相关产品主题/技术文档。

(4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL查 询语句。 (5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。 (6)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 (1) 简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能(BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。目前最新版本是SQL SERVER 2014。 1,SQL Server 2005学习版当保护和管理应用系统内外部的信息变得至关重要时,通过提供一套免费、易于使用和健壮的数据库,学习版帮助开发人员建立强健的和可靠的应用系统。

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与 管理实验 南京晓庄学院 《数据库原理与应用》 课程实验报告 实验三数据表的创建与管理实验 所在院(系): 数学与信息技术学院班级: 学号: 姓名: 1.实验目的 (1) 理解SQL Server 20xx常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2) 熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构,插入及更新数据的方法。 (3) 熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方 法。 2.实验要求 基本实验:

(1) 在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2) 依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据 库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3) 依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验 使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4) 找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5) 按要求完成实验报告。 扩展实验: (1) 在“TM”数据库中补充设计以下各表结构:

数据库实验报告 (4)

一实验题目 .索引的建立和删除操作 .视图的创建、修改、更新和查询操作 二实验目的 .掌握数据库索引建立与删除操作,掌握数据库索引的分类,并了解建立数据库索引的意义、作用。 .掌握视图的创建和查询操作,理解视图的使用,理解实图在数据库安全性中的作用。 三实验内容 1.索引的建立和删除操作 (1)在表中,建立按照升序的惟一性索引。 (2)在表中,建立按照学号升序和课程号降序的唯一性索引。 (3)在表中,按照生日建立一个非聚簇索引。 (4)在表中,建立一个按照课程名升序的聚簇索引。 (5)删除索引。 2.视图的创建、修改、更新和查询操作 (1)建立一个关于所有女生信息的视图。 (2)将各系学生人数,平均年龄定义为视图 (3)建立一个视图反映学生所选课程的总学分情况。 (4)建立一个所有学生课程成绩的视图,包括基本学生信息,课程信息和成绩。 (5)在视图基础之上,建立一个两门课以上成绩不及格的学生情况视图。 (6)建立一个至少选修了门课及门课以上的学生信息的视图。 (7)修改视图,要求只显示年以前出生的女生信息。 (8)在视图查询不及格超过门课的学生信息。 (9)删除视图。 (10)通过视图,将“王丹”的名字修改为“汪丹”,并查询结果。 (11)通过视图,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,),并查询结果。 (12)通过视图,删除年出生的女生信息,并查询结果。 (13)通过视图,将“汪丹”的名字修改为“王丹”,是否可以实现,请说明原因。 (14)通过视图,将“”学生的平均分改为分,是否可以实现,请说明原因。 四实验要求 .要求掌握索引的类型,以及创建索引时的注意事项,例如每个表只能创建一个聚集索引,可以创建非聚集索引最多为个,等等。 .理解创建视图的目的和意义。掌握创建视图时需要考虑的原则:只能在当前数据库中创建视图、视图名不得与该用户的表名相同、可在视图上建立视图、定义视图不能包括等关键字、不能建立临时视图,等等。 .报告中由同学写明具体的操作意图(文字描述)、操作命令(语句)、和执行结果(文字描述适当截图)。

数据库原理实验报告(数据查询)

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 1.掌握SQL的单表查询操作

2.掌握SQL的连接查询操作 3.掌握SQL的嵌套查询操作 4.掌握SQL的集合查询操作 二、[实验内容] 本实验的主要内容是: 1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。 2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 4.组合查询与统计查询。 (1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 (2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。 (3)组合查询实验。 (4)计算和分组计算查询的实验。 三、[实验方法] 1.将查询需求用Transact-SQL语言表示。 2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。 3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5 查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 图5- 错误!未定义书签。SQL Server 2000查询分析器 查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查

数据库上机实验报告4

数据库上机实验报告 4 学号:姓名:日期:年月日 实验目的:(1)练习连接查询;(2)练习视图的创建与使用;(3)学习使用ODBC的方法;(4)体验T-SQL的功能;体验存储过程的功能;体验表值函数、标量值函数的作用;体验ranking等功能。 1 练习视图及连接查询。 (1)创建一个视图,视图名为viNF,视图内容为select id,count(*) as nf from friends group by id。执行成功后,将SQL语句复制到下方。 (2)基于viNF视图,查找拥有最多好友的用户、最少好友的用户。执行成功后,将SQL语句复制到下方。 (3)基于users表和viNF视图进行连接查询。分别进行内连接、全外连接、左外连接、右外连接四种操作。执行成功后,将SQL语句复制到下方,并回答:四种结果表,哪两个的结果是一致的,为什么? (4)将题(3)中全外连接保存为一个新的视图viUAF。 2 通过ODBC用Excel打开users表。 3 体验T-SQL。 回顾实验2中的题目: 定义最低价格为成本价;依据此成本价做如下计算: 连接Goods,Goods_Extent,Sellers表,按照总利润,输出前10名;要求输出表的格式为(商品名称,卖家名称,商品价格,运费,卖家信誉,卖家好评率,历史销量,历史利润,期内销量,期内利润,总销量,总利润) 利用如下语句进行查询,体会和之前有什么不同。如感兴趣,自己可以仿照写一个变量定义、赋值及应用的例子。 declare @cost as float; select @cost=min(good_price)from goods; select top 10 good_name as商品名称, goods.seller_name as卖家名称, good_price as商品价格, good_shipping as运费,

数据库原理实验报告

数据库原理 实验报告 系别电子信息系 专业计算机科学与技术班级学号4080522 姓名龚敏 指导教师李爱英

一.概要设计 1.教学数据库各表的关系模式:(加下线的属性为主键) 学生 (学号,姓名,性别, 出生日期,所在系) 英文缩写对照:student(s_no,s_name,s_sex,s_age,s_birthday,s_department) 课程 (课程号,课程名,学分) 英文缩写对照:course(c_no,c_name,c_score) 教师 (职工号,姓名,性别,职称) 英文缩写对照:teacher(t_no,t_name,t_sex,t_duty) 选课 (学号,课程号,成绩) 英文缩写对照:choice(s_no,c_no,score) 讲授 (职工号,课程号) 英文缩写对照:teaching(t_no,c_no) 2.教学数据库E-R 图: 实体:课程,学生,选课 联系:选课(学生同课程之间多对多的联系m:n),讲授(教师同课程之间多对多的联系m:n)。 二.逻辑设计 代码: use master go create database stu go use stu go n m m n 课程 教师 讲授 选课 学号 姓名 性别 出生日期 成绩 职工号 姓名 性别 职称 学分 课程号 课程名 学生

create table student (s_no char(8) not null primary key, s_name char(8) not null , s_sex varchar(8) not null, s_birthday smalldatetime not null, s_department varchar(13) not null) drop table student use stu go create table teacher (t_no char(8) not null primary key, t_name char(8) not null, t_sex varchar(8) not null, t_duty char(8) not null) create table course (c_no char(8) not null primary key, c_name char(8) not null, c_score varchar not null) create table choice( s_no char(8) not null primary key, c_no char(8) not null primary key, score varchar not null) create table teaching( t_no char(8) not null primary key, c_no char(8) not null primary key) insert student values('101','袁敏','女','1982-2-3','机电') insert student values('102','李志强','男','1983-4-5','计算机') insert student values('103','张亮','男','1984-10-9','建筑') insert student values('104','李平','女','1984-5-6','计算机') insert student values('105','王丽','女','1983-2-1','机电') insert student values('106','刘明耀','男','1982-4-16','计算机') select* from student insert course values('1011','C语言','6') insert course values('1012','数据结构','4') insert course values('1013','微机原理','6') insert course values('1014','数字电路','5') insert course values('1015','高等数学','6') select* from course insert teacher values('0511','张大维','男','副教授') insert teacher values('0512','林楠','女','讲师') insert teacher values('0513','韩晓颖','女','副教授') insert teacher values('0514','李辉','男','讲师') insert teacher values('0515','孙丽','女','助教') select* from teacher insert choice values('101','1011','82.5') insert choice values('101','1012','79') insert choice values('102','1012','92.5') insert choice

数据库实验报告4

数据库实验报告4

《数据库原理》实验报告 题目:实验四视图与索引学号姓名班级日期Xxxx Xx xxxxx 2016.10.20 一. 实验内容、步骤以及结果 1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是 1986年出生的学生的视图,视图中包括学号,性别,成绩三个信息。 2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ) 方法一: create view V_SP as select sno,pno,qty from spj where spj.jno in (select jno from j where j.jname='

三建') 方法二: create view V_SPJ as select sno,pno,qty from spj,j where j.jno=spj.jno and j.jname='三建'

INTO V_SPJ(SNO,PNO,QTY) VALUES( 's5','p3',900) 提示: -SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由 于JNO为NULL,所以视图中没有该 条数据。 -SPJ表中JNO不能为空时,可以使用instead of触发器实现。 (1)修改视图V_SPJ中的任意一条数据的供 应数量。 update V_SPJ set qty=111 where sno='s1' and pno='p1'

(2)删除视图V_SPJ中的任意一条数据(注意 所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用 instead of触发器实现)。 DELETE V_SPJ where sno='s1' and pno='p1' and qty=111 用instead of触发器实现 CREATE TRIGGER trdV_SPJ ON V_SPJ INSTEAD OF DELETE AS BEGIN Delete from V_SPJ WHERE sno='s1' and pno='p1' and qty=111 END

数据库实验报告4

数据库-实验报告4 学号:11122604 姓名:陆亮 第4周(第四章:数据更新、视图、嵌入式SQL部分自学) 一、实验课: 1.建立计算机学院总评不及格成绩学生的视图,包括学生学号、姓名、性别、手机、所选 课程和成绩。 2.在E表中插入记录,把每个学生没学过的课程都插入到E表中,使得每个学生都选修每 门课。 3.求年龄大于所有女同学年龄的男学生姓名和年龄。 4.在E表中修改08305001课程的平时成绩,若成绩小于等于75分时提高5%,若成绩大于 75分时提高4%。 5.删除没有开课的学院。//删除记录而不是表。删除表要用其他。 6.查询优、良、中、及格、不及格学生人数 二,代码: create view student_fail(xh,xm,xb,sjhm,kh,zpcj)as(select distinct S.xh,S.xm,S.xb,S.sjhm,E.kh,E.zpcj from S,E where S.xh=E.xh and E.zpcj<'60'); insert into E select distinct S.xh,O.xq,O.kh,O.gh ,null,null,null from S,O where not exists(select*from E where E.xh =S.xh and E.kh =O.kh ); select S.xm,S.csrq from S where S.csrq<(select min(csrq)from S group by S.xb having xb ='女') update E set pscj = pscj*1.04 where pscj>75; update E set pscj = pscj*1.05 where pscj<75; delete from D where yxh not in(select yxh from T ,O where T.gh = O.gh)

数据库原理实验报告分析

2013级数据库原理实验报告 专业:_______计算机___ 班级:________________ 学号:______________ 姓名:_______________ 2015年5月

实验一 SQL Server 2005基本操作 一、实验目的 了解SQL Server 2005组件; 了解SQL Server数据库组成; 掌握SQL Server 2005界面基本操作。 二、实验内容 (1)开始->程序->Microsoft SQL Server 2005-> SQL Server Management Studio,打开后进入到SQL Server 2005主体界面 (2)点击?数据库?前面的?+?,可以展开查看数据库,并且可以继续展开下级目录,查看数据库中的表、视图等。 (3)了解SQL Server 2005菜单栏的一些主要工具的使用。 (4)学生动手操作SQL Server 2005,打开数据库,打开表,打开查询界面;查看数据库的属性、表的属性等。 三、实验总结 进行这次实验有遇到什么问题?怎么解决的? 答:此次实验我们一步一步按照实验内容操作的,基本上没有遇到问题。

实验二数据定义 一、实验目的 掌握SQL Server 2005的数据库创建; 掌握SQL Server数据定义语言; 掌握SQL Server 2005数据定义的SQL语言定义与管理器定义两种方式。 二、实验内容 (1)创建、修改、删除数据库。 创建要求:数据库Employee中包含一个数据库文件Empdat1.mdf和一个日志文件Emplog.ldf。其中,数据文件大小为10MB,最大为50MB,以5MB速度增长;日志文件大小为5MB,最大为25MB,以5%速度增长。 修改要求:增加第二个数据库文件Empdat2.ndf,其中,数据文件大小为5MB,最 大为25MB,以2MB速度增长。 (2)利用SQL创建人员表person、月薪表salary及部门表dept。 见上页图 要求:按表2-1、表2-2及表2-3中的字段说明创建。

数据库原理实验报告四(有答案)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验四查询设计实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。 (2)掌握数据排序和数据联接查询的方法。 (3)掌握SQL Server查询分析器的使用方法。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询 操作,并将将调试成功的T-SQL命令,填入实验报告中。 a)查询所有课程的详细情况。 b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。 c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。 d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降 序排列,如果成绩相同则按学号升序排列。 e)查询所有学生的学号、姓名和年龄。 f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并 将成绩乘以0.7输出。 g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院 (DEPT_ID为09)姓张的学生的信息。。 h)查询所有核心课程(课程名中带*的)的情况。 i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。 (2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作: a)查询每个学生的情况以及他(她)所选修的课程。 b)查询学生的学号、姓名、选修的课程名及成绩。 c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。 d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。 e)分别用等值联接和内联接查询有授课记录的老师的姓名。 f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院 系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该 老师没有授课历史,在课程号和授课的学期中显示空值 (3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL编 辑器工具栏中各快捷按钮的作用。 (4)按要求完成实验报告。

数据库4实验报告

太原理工大学学生实验报告 (1)了解SQL Serer数据库系统中数据完整性控制的基本方法 (2)熟练掌握常用CREATE 或ALTER 在创建或修改表时设置约束 (3)了解触发器的机制和使用 (4)验证数据库系统数据完整性控制 二、实验内容和原理 结合school 数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。设计一些示例数据,验证完整性检查机制。 3.1要求包括如下方面的内容: 使用 SQL 语句设置约束 使用 CREATE 或 ALTER 语句完成如下的操作,包括: 1.设置各表的主键约束 2.设置相关表的外键 3.设置相关属性的非空约束、默认值约束、唯一约束 4.设置相关属性的 CHECK 约束 3.2使用触发器 创建一个触发器,实现如下的完整性约束: (1)当向 SC 表中插入一行数据时,自动将学分累加到总学分中。 (2)记录修改学分的操作。 3.3检查约束和触发器 分别向相关表插入若干条记录,检查你设置的完整性约束是否有效: 1.插入若干条包含正确数据的记录,检查插入情况 2.分别针对设置的各个约束,插入违反约束的数据,检查操作能否进行 3.向 SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。

三、主要仪器设备(必填) HP6460 SQL SERVER2008 四、方法与实验步骤(可选) 一、声明完整性约束 创建学生选课数据库 TEST,包括三个基本表,其中 Student 表保存学生基本信息,Course 表保存课程信息,SC 表保存学生选课信息,其结构如下表: 表 1. Student 表结构 表 2. Course 表结构 表 3. SC 表结构

数据库实验三实验报告

数据库___课程实验报告实验名称:交互式SQL(二) 姓名班级学号 实验台 编号 同组学生 实验课表现出勤、表现得分25% 实验报告 得分50% 实验总分操作结果得分25% 实验目的: 1.学会熟练使用INSERT语句对数据表进行数据插入操作。 2.学会使用UPDATE语句对数据表中的数据进行修改操作。 3.学会使用DELETE语句对数据表中的数据进行删除操作。 4.了解使用视图的目的与好处,掌握视图与基本表的关系,掌握如何使用SQL语句创建、修改、删除和查询视图。 实验内容: 一、数据的插入、删除和修改 创建表XS1(包括学号、姓名、性别和出生日期字段,各个字段属性自定),然后使用SELECT子句向表XS1中插入多行数据(专业为“电子”的学生数据)。 create view xs1() as select学号,姓名,性别,出生日期from xs where专业='电子'; 修改XS1表的结构,增加1个“平均成绩”字段,并根据XS_KC表修改每个学生的“平均成绩”。 alter table xs1 add平均成绩int; update xs1 set平均成绩=( select avg(成绩)from xs_kc where xs_kc.学号=xs1.学号group by学号); 将XS表中计算机专业的学生的总学分增加10分。 update xs set总学分=总学分+10 where专业='计算机'; 将XS表中学号为“4102101”的同学的总学分增加4分,备注改为“提前修完一门课程”。 update xs set总学分=总学分+4,备注='提前修完一门课程' where学号='4102101'; 将XS_KC表中学号为“4102101”的同学的“计算机基础”课程的成绩增加10分。 update xs_kc set成绩=成绩+10 where学号='4102101'and课程号= (select课程号from kc where kc.课程名='计算机基础'); 修改XS1表的结构,增加1个“总学分”字段,并使其值为该学生所学各门功课的学分之和。 alter table xs1 add总学分tinyint; update xs1 set总学分= (select sum(学分)from kc,xs_kc where xs_kc.学号=xs1.学号and xs_kc.课程号= kc.课程号

(完整版)数据库实验报告

数据库实验报告姓名学号

目录 一.实验标题:2 二.实验目的:2 三.实验内容:2 四.上机软件:3 五.实验步骤:3 (一)SQL Server 2016简介3(二)创建数据库 4 (三)创建数据库表 7(四)添加数据17 六.分析与讨论: 19

一.实验标题: 创建数据库和数据表 二.实验目的: 1.理解数据库、数据表、约束等相关概念; 2.掌握创建数据库的T-SQL命令; 3.掌握创建和修改数据表的T-SQL命令; 4.掌握创建数据表中约束的T-SQL命令和方法; 5.掌握向数据表中添加数据的T-SQL命令和方法三.实验内容: 1.打开“我的电脑”或“资源管理器”,在磁盘空间以自己的姓名或学号建立文件夹; 2.在SQL Server Management Studio中,使用create database命令建立“学生-选课”数据库,数据库文件存储在步骤1建立的文件夹下,数据库文件名称自由定义; 3.在建立的“学生-选课”数据库中建立学生、课程和选课三张表,其结构及约束条件如表所示,要求为属性选择合适的数据长度; 4.添加具体数据;

四.上机软件: SQL Server 2016 五.实验步骤: (一)SQL Server 2016简介 1.SQL Server 2016的界面 2.启动和退出SQL Server 2016 1)双击图标,即出现SQL Server2016的初始界 2)选择“文件”菜单中的“退出”命令,或单击控制按钮中的“×”即可 注意事项: 1.在退出SQL Server 2016之前,应先将已经打开的数据库进行保存, 2.如果没有执行保存命令,系统会自动出现保存提示框,根据需要选择相应的操作

数据库原理实验报告-实验四-视图与索引

《数据库原理》实验报告 题目:实验四视图与索引学号班级日期 2016.10.20 一、实验内容、步骤以及结果 1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5分) 2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。 --第一种方法 CREATE VIEW V_SPJ AS SELECT sno,pno,qty FROM SPJ WHERE jno=( SELECT jno FROM J WHERE jname ='' ); GO --删除建好的视图 DROP VIEW V_SPJ; GO --第二种方法

CREATE VIEW V_SPJ AS SELECT sno,pno,qty FROM SPJ,J WHERE J.jno=SPJ.jno AND J.jname=''; 3.用SQL语句完成第五版教材第三章第11题中的视图查询(10分,每小题5分)。 11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码 (PNO)、供应数量(QTY)。 针对该视图VSP完成下列查询: (1)找出三建工程项目使用的各种零件代码及其数量。 (2)找出供应商S1的供应情况。

4.用SQL语句完成视图的数据更新。(15分,每题5分) (1)给视图V_SPJ中增加一条数据。 提示: -SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于JNO 为NULL,所以视图中没有该条数据。 -SPJ表中JNO不能为空时,可以使用instead of触发器实现。 (2)修改视图V_SPJ中的任意一条数据的供应数量。

数据库实验报告一

实验成绩 《数据库系统原理及应用》实验报告 实验一 SQL Server数据库和表 专业班级:软件1402 姓名魏振方学号201416920306 完成时间:2016.10.17_ 一、实验目的 熟悉SQL Server Management Studio(SSMS)的工作环境;掌握图形化和命令建立数据库的两种方法;熟练掌握T-SQL语句创建、修改和删除表;熟练掌握T-SQL语句插入、修改和删除表数据 二、实验内容及要求 1. 采用图形化方式创建学生—课程数据库,要求: 1) 使用SSMS创建测试数据库test,数据文件初始大小为5MB,最大大小50MB,按5MB增长;日志文件初始为2MB,最大可增长到10MB,按2MB增长;其余参数取默认值。 2.以下操作全部采用命令即T-SQL语句进行 1)用T-SQL语句删除创建的数据库test。 2) 用T-SQL语句创建数据库stu,所有选项取默认值。 3)在stu数据库中创建三个表,关系模式如下所示: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit),其中Cpno为外码 学生选课表:SC(Sno,Cno,Grade),其中Sno为外码,Cno为外码 3.用图形化的方式向student、course和sc表添加记录,每个表至少5条记录 4.用T-SQL语句分别对三张表执行增删改操作,操作例子自己设计 三、实验步骤和结果

1、使用SSMS创建测试数据库test,数据文件初始大小为5MB,最大大小50MB,按5MB 增长;日志文件初始为2MB,最大可增长到10MB,按2MB增长;其余参数取默认值 图 1 2、用T-SQL语句删除创建的数据库test。 T-SQL语句: USE master GO drop database test; 图 2 3、用T-SQL语句创建数据库stu,所有选项取默认值。 T-SQL语句:create database stu;

数据库实验报告

实验一 SQL Server基本使用与数据定义一.实验目的 1.掌握“服务管理器”、“企业管理器”及“查询分析器”基本使用方法;2.熟悉数据库建模及E/R图的画法; 3.掌握SQL Server 中数据库、及数据表的建立与管理方法; 4.掌握数据的导入/导出及数据库备份/还原方法。 二.实验内容 一、SQL Server 基本使用 1.启动SQL SERVER。 2.注册服务器 3.企业管理器属性 4.查询分析器介绍 5.查看数据库及浏览表中记录 二、数据库的建立与管理 1.数据库建模 2.启动、并打开SQL Server 3.使用图形界面创建数据库和表 4.使用查询分析器创建表 5.数据库的备份与还原

实验二 SQL查询 一.实验目的: 1.掌握SQL语言中SELECT语句的多种查询方式。 2.掌握对表建立与删除索引的方法。 3.掌握聚焦函数的使用方法。 4.掌握集合查询方法。 二.实验内容: 1.建立与删除[索引]的方法。 在各表中,分别按代理商编号、客户编号、产品编号及订单编号建立索引。 CREATE INDEX 代理商No ON 代理商(代理商编号) CREATE INDEX 客户No ON 客户(客户编号) CREATEINDEX产品No ON产品(产品编号) CREATEINDEX订单No ON订单(订单编号) 2.单表查询, ①从产品表中查询现有产品的库存量。 SELECT COUNT(*) FROM产品 ②从客户表中查询“王五”的地址及代理商编号。 SELECT地址,代理商编号 FROM客户 WHERE姓名='王五' ③从代理商表中查询代理商“惠普”的提成金额。 SELECT提成金额 FROM代理商 WHERE姓名='惠普' ④从订货项目表中查询编号为“444”的订单所订购的商品编号及数量。 SELECT产品编号,订购数量 FROM订货项目 WHERE订单编号='444' ⑤分别求代理商和客户的总数。 SELECT COUNT(*)代理商数 FROM代理商 SELECT COUNT(*)客户数 FROM客户 ⑥从订货项目表中,查询编号为0033的产品定货总数量。 SELECT COUNT(*)订货总数量 FROM订货项目 WHERE订单编号='0033' 3.多表查询 ①查询编号为300的客户通过的代理商的姓名和地址。 SELECT代理商.姓名,代理商.地址

相关文档
最新文档