数据库系统原理与设计实验教程实验1
- 格式:doc
- 大小:383.50 KB
- 文档页数:28
实验报告〔201 5 / 201 6 学年第二学期〕课程名称数据库系统与设计实验名称数据库系统程序设计与分析实验时间201 6年6月3/17/22/24 日指导单位指导教师学生班级学号学院(系) 电脑学院专业实验报告实验报告insert into PC values(1010,,2048,300,770);insert into PC values(1011,,2048,160,959);insert into PC values(1012,,1024,160,649);insert into PC values(1013,,512,80,529);insert into Laptop values(2001,,2048,240,,3673);insert into Laptop values(2002,,1024,80,,949);insert into Laptop values(2003,,512,60,,549);insert into Laptop values(2004,,512,60,,1150);insert into Laptop values(2005,,1024,120,,2500);insert into Laptop values(2006,,2048,80,,1700);insert into Laptop values(2007,,1024,120,,1429);insert into Laptop values(2008,,1024,100,,900);insert into Laptop values(2009,,512,80,,680);insert into Laptop values(2010,,2048,160,,2300);insert into Printer values(3001,'true','ink_jet',99); insert into Printer values(3002,'false','laster',239); insert into Printer values(3003,'true','laster',899); insert into Printer values(3004,'true','ink_jet',120); insert into Printer values(3005,'false','laster',120);insert into Printer values(3006,'true','ink_jet',100); insert into Printer values(3007,'true','laster',200);insert into Product values('A',1001,'pc');insert into Product values('A',1002,'pc');insert into Product values('A',1003,'pc');insert into Product values('A',2004,'laptop');insert into Product values('A',2005,'laptop');insert into Product values('A',2006,'laptop');insert into Product values('B',1004,'pc');insert into Product values('B',1005,'pc');insert into Product values('B',1006,'pc');insert into Product values('B',2007,'laptop');insert into Product values('C',1007,'pc');insert into Product values('D',1008,'pc');insert into Product values('D',1009,'pc');insert into Product values('D',1010,'pc')insert into Product values('D',3004,'printer');insert into Product values('D',3005,'printer');insert into Product values('E',1011,'pc');insert into Product values('E',1012,'pc');insert into Product values('E',1013,'pc');insert into Product values('E',2001,'laptop');insert into Product values('E',2002,'laptop');insert into Product values('E',2003,'laptop');insert into Product values('E',3001,'printer');insert into Product values('E',3002,'printer');insert into Product values('E',3003,'printer');insert into Product values('F',2008,'laptop');insert into Product values('F',2009,'laptop');insert into Product values('G',2010,'laptop')insert into Product values('H',3006,'printer');insert into Product values('H',3007,'printer');实验二A〕SELECT maker,speedFrom Product,Laptopwhere Laptop.hd>=30 AND Laptop.model=Product.modelB〕SELECT Product.model,priceFrom Product,PCWhere Product.maker='B'AND Product.model=PC.model UNIONSELECT Product.model,priceFrom Product,LaptopWhere Product.maker='B'AND Product.model=Laptop.model UNIONSELECT Product.model,priceFROM Product,PrinterWHERE Product.maker='B'AND Product.model=Printer.modelC〕SELECT makerFrom Product PWhere P.type='laptop'EXCEPTSELECT makerFrom Product PWhere P.type='pc'D〕SELECT DISTINCT p.hdFROM PC p,PC qWHERE q.hd=p.hd AND p.model>q.modelE〕SELECT p.model AS MODEL1,q.model AS MODEL2FROM PC p,PC qWHERE p.speed=q.speed AND p.ram=q.ram AND p.model>q.modelF〕SELECT p.makerFROM (SELECT E.maker,F.modelFROM Product E,PC FWHERE F.speed> 3.0 AND E.model=F.modelUNIONSELECT G.maker,H.modelFROM Product G,Laptop HWHERE H.speed> 3.0 AND G.model=H.model)pGROUP BY p.makerHAVING COUNT(p.model)>= 2实验三A〕SELECT makerFROM Product,(SELECT modelFROM PCWHERE PC.speed>)pWHERE Product.model=p.modelSELECT makerFROM Product JOIN PCON Product.model=PC.modelWHERE speed>B〕SELECT p.priceFROM Printer pWHERE p.price>=ALL(SELECT priceFROM Printer)SELECT MAX(price)AS price FROM PrinterC〕SELECT p.modelFROM Laptop pWHERE p.speed<=(SELECT MIN(speed)FROM PC)SELECT p.modelFROM Laptop pWHERE p.speed<=ALL(SELECT speedFROM PC)D〕SELECT p.modelFROM (SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer)pWHERE p.price>=ALL(SELECT priceFROM PCUNIONSELECT priceFROM LaptopUNIONSELECT priceFROM Printer)E〕SELECT makerFROM ProductWHERE model=(SELECT modelFROM PrinterWHERE price=(SELECT MIN(price)AS priceFROM Printer))SELECT p.makerFROM Product p,Printer qWHERE p.model=q.model AND q.price<=ALL(SELECT priceFROM Printer)F〕SELECT makerFROM Product p,PC qWHERE p.model=q.modelAND q.ram<=ALL(SELECT ramFROM PC)AND q.speed>=ALL(SELECT speedFROM PC)实验四A〕SELECT AVG(speed)AS AVGSPEEDFROM PCB〕SELECT AVG(speed)AS AVGSPEEDFROM PCWHERE price> 1000C〕SELECT AVG(price)AS AVGPRICEFROM PCWHERE model IN(SELECT modelFROM ProductWHERE maker='A')D〕SELECT AVG(p.price)AS AVGPRICEFROM (SELECT model,priceFROM PCUNIONSELECT model,priceFROM Laptop)pWHERE p.model IN(SELECT modelFROM ProductWHERE maker='D')E〕SELECT speed,AVG(price)AS AVGPRICEFROM PCGROUP BY speedF〕SELECT maker,AVG(screen)AS AVGSCREENFROM Product p JOIN Laptop q ON p.model=q.model GROUP BY makerG〕SELECT makerFROM ProductWHERE type='PC'GROUP BY makerHAVING COUNT(model)>= 3H〕SELECT maker,MAX(price)AS MAXPRICEFROM Product p JOIN PC q ON p.model=q.model GROUP BY makerI〕SELECT speed,AVG(price)AS AVGPRICEFROM PCWhere speed>GROUP BY speedJ〕SELECT AVG(hd)AS AVGHDFROM Product p JOIN PC q ON p.model=q.model WHERE maker IN(SELECT makerFROM ProductWhere type='Printer')实验报告。
以下是一个基本的SQL Server数据库应用与实践教程(第2版)实验文档的大纲示例,具体内容可能会根据实际教材和实验要求有所不同:实验一:SQL Server的安装和配置1. 实验目标:理解并掌握SQL Server的安装过程和基本配置。
2. 实验环境:Windows操作系统,SQL Server安装介质。
3. 实验步骤:准备安装环境。
运行SQL Server安装程序。
选择安装类型和功能。
设置服务器配置(如实例名称、账户、密码等)。
完成安装并验证安装结果。
4. 实验问题与思考:如何根据实际需求选择合适的安装选项?实验二:SQL Server Management Studio的使用1. 实验目标:熟悉SQL Server Management Studio(SSMS)的界面和基本操作。
2. 实验环境:已安装SQL Server的计算机,SSMS软件。
3. 实验步骤:启动SSMS并连接到SQL Server实例。
浏览对象资源管理器中的服务器对象。
创建新的数据库和表。
插入、查询、更新和删除数据。
使用Transact-SQL编写和执行简单查询。
4. 实验问题与思考:如何利用SSMS提高数据库管理的效率?实验三:数据库设计与ER图1. 实验目标:学习并实践数据库设计的基本原则和方法。
2. 实验环境:数据库设计工具(如Visio、PowerDesigner等)。
3. 实验步骤:确定业务需求和数据实体。
设计实体关系图(ER图)。
将ER图转换为数据库模型。
根据数据库模型创建实际的数据库和表。
4. 实验问题与思考:如何处理数据库设计中的冗余和异常情况?实验四:事务与并发控制1. 实验目标:理解事务的概念和作用,掌握并发控制的方法。
2. 实验环境:SQL Server实例,多用户环境。
3. 实验步骤:创建并执行包含多个操作的事务。
观察事务的ACID特性(原子性、一致性、隔离性和持久性)。
探讨并发访问可能导致的问题(如脏读、不可重复读、幻读)。
“数据库系统原理”课程教材建设与教学改革摘要:本文介绍“数据库系统原理”课程的目标与体系,给出自编教材《数据库系统原理与设计》及其配套实验教材《数据库系统原理与设计实验教程》的内容与结构安排,分析教材的主要特色,包括重视数据库模式导航、数据库设计、数据库管理系统和数据库应用开发等,并对该课程教学过程中开展的大作业教学改革进行了探讨。
关键词:数据库系统原理;教材建设;大作业教学数据库系统是计算机系统的重要组成部分,是企业、机构、互联网乃至整个信息社会赖以运转的基础,在当今信息社会中扮演着越来越重要的角色。
正是由于数据库具有重要的基础地位,数据库理论与技术教育已成为现代计算机科学和相关学科教育中的核心部分,所有计算机相关专业的学生都有必要掌握和熟悉数据库理论与技术。
通过多年的数据库课程教学,我们发现学生在学习了数据库课程之后,仍然不会“用”数据库——不会设计数据库,不会管理数据库,不会开发数据库应用程序。
带着这些问题,我们进行了一系列数据库课程教学改革探索与实践,并取得了一定的成绩。
如我校的“数据库系统及应用”于2007年立项为国家精品课程;清华大学出版社于2009年出版了我们的研究成果——《数据库系统原理与设计》及其配套实验教材《数据库系统原理与设计实验教程》。
本文主要对“数据库系统原理”课程目标及课程体系,出版教材的内容、结构及特色,大作业教学改革等方面进行分析与探讨。
1课程目标与课程体系1.1目标我校“数据库系统原理”课程教学主要面向计算机科学与技术专业、信息管理与信息系统专业的本科生。
根据由教育部高等学校计算机科学与技术教学指导委员会最新编制的《高等学校计算机科学与技术专业核心课程教学实施方案》中数据库教学实施方案的分类(科学型、工程型和应用型),并结合我校培养特色,我们主要培养应用型复合性人才。
该课程强调理论与实践相结合,主要培养目标为:(1) 培养学生具有较强的数据抽象和数据建模能力,能够深刻理解不同数据模型的特点和适用范围,并具备利用某种数据模型构建实际应用逻辑模型的能力;(2) 培养学生具有一定的系统分析与设计能力,能够理解数据库系统的体系结构和系统组成,能对数据库管理系统的实现原理进行简单分析;(3) 培养学生具有较强的数据库设计和应用开发能力,能够灵活运用一种数据库语言及应用开发工具解决实际应用问题;(4) 培养学生自主学习能力、创新能力和团队协作精神,从应用中发现问题、提出问题、分析问题和解决问题的能力——问题求解能力;(5) 培养学生使用和维护数据库能力,能够在掌握数据库基本原理的基础上,掌握一种主流数据库管理系统的使用和维护方法。
数据库原理与技术实验报告
一、实验目的
本次实验的主要目的是了解和学习数据库原理与技术,具体要求是:
1.熟悉数据库系统的基本概念;
2.理解数据库管理系统(DBMS)的核心功能;
3.掌握数据库系统的创建,维护和应用技术;
4.掌握基于SQL查询语言(SQL)的SQL语句的使用;
5.学习SQL语言的基本知识;
6.学习和应用数据库的实用技术;
7.掌握数据库的安全保护技术;
8.熟悉数据的事务处理;
9.掌握数据的并发控制等。
二、实验环境
本次实验所使用的系统环境为Oracle Database,版本为11g。
三、实验内容
1.概念部分:
(1)数据库概念:数据库概念主要是指数据库的概念、特点、应用领域、数据库结构与模式等;
(2)数据库管理系统:数据库管理系统(DBMS)是一种综合的数据管理软件,它有助于保护组织内的数据,并帮助实现全面的数据管理;
(3)数据库应用:数据库应用是一种以数据库管理系统为基础的应用程序,它主要是用来收集、组织、存储、操作和检索数据,以满足组织内的信息需要;
(4)SQL查询语言:SQL查询语言(SQL)是一种关系型数据库管理系统的标准化数据库查询语言。
《数据库系统原理》实验指导书《数据库系统原理》实验指导书实验1 熟悉SQL Server 2000环境及数据库⽂件管理⼀、实验⽬的1、掌握登录SQL Server 2000的⽅法,熟悉SQL Server实⽤⼯具的使⽤;2、了解SQL Serve数据库的存储结构,掌握估算数据库⼤⼩技术;3、掌握创建数据库技术,掌握扩⼤和压缩数据库技术;4、掌握使⽤企业管理器⼯具和T-SQL语句及系统存储过程对数据库进⾏管理。
⼆、实验要求1、熟悉SQL Server 2000的⼯作环境,了解SQL Server主要管理⼯具的⽤途和使⽤⽅法。
2、掌握在SQL Server 2000环境下,利⽤企业管理器和T-SQL语⾔创建和管理数据库的⽅法。
三、实验设备、环境设备:奔腾II或奔腾II以上计算机环境:WINDOWS 98或WINDOWS NT、SQL SERVER 2000中⽂版四、实验原理、⽅法上机操作五、实验步骤及内容(⼀)实验步骤1、教师讲授2、教师演⽰3、学⽣实际操作(⼆)实验内容1、熟悉SQL Server 2000管理⼯具(1)企业管理器(Enterprise Manager)(2)查询分析器(Query Analyzer)(3)服务管理器(Service Manager)(4)事件探查器(Profiler)(5)导⼊和导出数据(Import and Export Data)(6)SQL Server其他管理⼯具2、数据库⽂件管理(1)数据库的创建和删除。
①在企业管理器中建⽴⼀个图书读者库。
图书读者数据库中将包括⼀个数据⽂件和⼀个⽇志⽂件,各⽂件的属性见表1-1。
②删除上题所建的数据库然后⽤T-SQL语句重新创建。
(2)修改数据库①查看图书读者数据库的属性及数据⽂件和⽇志⽂件的空间使⽤情况。
②在企业管理器中,⾸先扩⼤图书读者数据库的主数据⽂件的⼤⼩,然后查看扩⼤后的数据库属性,接着收缩主数据⽂件到定义时的⼤⼩。
数据库原理及应用实验教案一、实验目的1. 理解数据库的基本概念,掌握数据库的基本操作。
2. 熟悉数据库管理系统,了解数据库设计原则。
3. 学会使用SQL语言进行数据的增、删、改、查等操作。
4. 掌握数据库的索引、视图和存储过程等高级功能。
5. 培养实际操作数据库的能力,提高解决实际问题的技能。
二、实验内容1. 数据库的创建与管理创建新数据库打开现有数据库数据库的备份与恢复2. 表的创建与管理表的创建表结构的修改表的删除表的数据插入、删除和修改3. SQL语言基础数据定义语句(CREATE、ALTER、DROP)数据查询语句(SELECT)数据操纵语句(INSERT、UPDATE、DELETE)数据控制语句(GRANT、REVOKE)4. 索引与约束索引的创建、修改和删除主键、外键的设置与维护唯一约束和检查约束的设置5. 视图与存储过程视图的创建、修改和删除存储过程的创建、修改和删除存储过程的调用三、实验环境1. 硬件环境:计算机实验室,每台计算机配备数据库管理系统软件。
2. 软件环境:数据库管理系统软件(如MySQL、Oracle、SQL Server 等),编程语言环境(如Python、Java等),文本编辑器或集成开发环境(如Visual Studio Code、Eclipse等)。
四、实验步骤1. 实验准备:安装并配置数据库管理系统软件,了解实验内容和要求。
2. 实验一:数据库的创建与管理创建一个名为“实验数据库”的新数据库。
打开已存在的数据库,进行备份和恢复操作。
3. 实验二:表的创建与管理创建一个名为“学生”的表,包括学号、姓名、年龄、性别等字段。
插入、删除和修改表中的数据。
4. 实验三:SQL语言基础使用SELECT语句查询学生表中的数据。
使用INSERT、UPDATE和DELETE语句操作学生表数据。
5. 实验四:索引与约束为学生表的学号字段创建索引。
设置主键、外键、唯一约束和检查约束。
实验一数据库及表的操作实验类型:验证性实验课时: 6 学时指导教师:时间:2013 年月日课次:第节教学周次:第周实验分室:实验台号:实验员:一、实验目的1.掌握数据库的创建及其它简单操作2.熟练掌握数据表建立、数据表维护、数据表的操作二、实验内容与要求1.数据库的创建、打开、关闭2.数据表的创建:建立表结构、设置字段属性、建立表之间关系、数据的输入3.数据表维护:打开表、关闭表、调整表外观、修改表结构、编辑表内容4.数据表的操作:查找替换数据、排序记录、筛选记录三、实验步骤案例一:创建数据库1.创建空数据库要求:建立“教学管理。
accdb”数据库,并将建好的数据库文件保存在“E:\实验一”文件夹中。
操作步骤:图1—1创建教学管理数据库(1)在Access 2010启动窗口中,在中间窗格的上方,单击“空数据库”,在右侧窗格的文件名文本框中,给出一个默认的文件名“Database1.accdb”.把它修改为“教学管理”如图1-1所示.(2)单击按钮,在打开的“新建数据库"对话框中,选择数据库的保存位置,在“E\实验一"文件夹中,单击“确定"按钮,如图1-2所示。
(3)这时返回到access启动界面,显示将要创建的数据库的名称和保存位置,如果用户未提供文件扩展名,access将自动添加上。
(4)在右侧窗格下面,单击“创建”命令按钮,如图1—1所示。
(5)这时开始创建空白数据库,自动创建了一个名称为表1的数据表,并以数据表视图方式打开这个表1,如图1—3所示。
图1-2“文件新建数据库”对话框(6)这时光标将位于“添加新字段”列中的第一个空单元格中,现在就可以输入添加数据,或者从另一数据源粘贴数据。
图1-3表1的数据表视图2.使用模板创建Web数据库要求:利用模板创建“联系人Web数据库。
accdb”数据库,保存在“E:\实验一”文件夹中.操作步骤:(1)启动Access.(2)在启动窗口中的模板类别窗格中,双击样本模板,打开“可用模板”窗格,可以看到Access提供的12个可用模板分成两组.一组是Web数据库模板,另一组是传统数据库模板——罗斯文数据库。
实验六数据库原理综合实验1实验目的(1)运用所学的数据库设计技术,针对一个具体的应用系统,完成系统数据库的概念模型、逻辑模型和物理模型的设计。
以巩固理论课程上所学的知识,更好地掌握数据库设计技术方法。
(2)对前面章节所学的知识加以综合应用。
2实验内容给定一个应用环境,如学生选课系统、超市管理系统、某企业库存管理系统、学校图书管理系统、学校综合积分管理系统等等。
(同学们课从上述选定一个题目,也可以选取一个自己较熟悉的应用环境)。
完成下面的工作2.1 数据库概念模型设计(1)进行需求分析。
-对系统的语义进行描述(包括功能、所需的数据及他们之间的关系和处理方法)(2)识别系统中的实体及实体的属性,分析实体之间的联系。
(3)设计数据库概念模型,画出E-R图。
2.2 数据库逻辑模型设计(1)根据数据库概念模型设计数据库的逻辑模型。
-将E-R模型转化到逻辑模型(2)根据应用需要和规范化理论对逻辑模型进行优化。
2.3 数据库物理模型设计(1)针对某种DBMS,设计数据库物理模型,包括表空间、表和索引等于物理存储有关的设计。
(2)优化物理模型(3)生成某种DBMS的SQL语句,创建数据库及其表。
2.4 装载数据(1)收集真实数据或者生成模拟数据。
(2)批量加载数据到数据库中。
(3)设计一系列SQL语句,尤其是连接查询、嵌套查询等SQL语句,以测试数据库性能。
3实验要求(1)可以借助POWERDESIGNER等系统分析与设计辅助工具进行数据库设计,也可以使用WORD文件直接生成各种设计文档。
(2)选择的数据库应用系统应该规模适中,不宜太大太复杂,可能做不完;也不宜太小太简单,甚至仅有三两个表组成。
(3)要设计良好的数据库完整性约束。
(4)思考题:数据库设计通常由哪些辅助工具?各有哪些优缺点?4实验步骤4.1 数据库概念模型设计(1)进行需求分析。
学生需要有学号、姓名、性别、年龄、专业等信息。
选课需要有学号、课号、成绩等信息课程需要有课程号、课程名、先修课、学分等信息(2)设计数据库概念模型,画出E-R图。
实验一 SQL Server 2005 的安装和环境介绍一.实验目的与要求:1.掌握SQL Server 2005 服务器的安装方法2.了解SQL Server 2005 的环境3.了解数据库及其对象二.实验准备1.了解SQL Server 2005的版本2.了解SQL Server 2005各版本对硬件和软件的需求三.实验要求1.写出SQL SERVER 2005的功能与特点, 使用方法, 应用状况的报告2.完成SQL SERVER 2005的安装、启动、登录。
四.实验内容1.安装SQL Server 2005实验一 SQL Server 2005 的安装和环境介绍●实验指导——安装SQL Server 20051.根据安装机器软硬件的要求,选择一个合适的版本,以下以开发版为例2.将 SQL Server 2005 DVD 插入 DVD 驱动器。
如果DVD驱动器的自动运行功能无法启动安装程序无法启动安装程序,请导航到 DVD 的根目录然后启动splash.hta。
3.在自动运行的对话框中,单击“运行 SQL Server 安装向导”。
4.在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。
接受许可协议后即可激活“下一步”按钮。
若要继续,请单击“下一步”若要结束安装程序,请单击“取消”。
如下图:5.在“SQL Server 组件更新”页上,安装程序将安装 SQL Server 2005 的必需软件。
有关组件要求的详细信息,请单击该页底部的“帮助”按钮。
若要开始执行组件更新,请单击“安装”。
更新完成之后若要继续,请单击“完成”。
6.在 SQL Server 安装向导的“欢迎”页上,单击“下一步”以继续安装。
7.在“系统配置检查 (SCC)”页上,将扫描安装计算机,以检查是否存在可能妨碍安装程序的条件。
8.在“注册信息”页上的“姓名”和“公司”文本框中,输入相应的信息。
数据库原理及应用教程(MySQL版)- 实验素材及答案第一章数据库的基本概念实验素材•数据库系统是由数据库和数据库管理系统(DBMS)组成的,数据库是用于存储和管理数据的集合,而DBMS是用于管理数据库的软件。
•数据是描述事物的符号记录,可以是数字、文字、图像等形式。
•数据库的特点包括永久存储、面向用户的数据抽象、数据的共享与并发控制等。
•数据库的应用领域非常广泛,包括企业管理、电子商务、金融服务等。
实验答案1.数据库系统是由数据库和数据库管理系统组成的。
数据库是用于存储和管理数据的集合,而数据库管理系统是用于管理数据库的软件。
2.数据是描述事物的符号记录,可以是数字、文字、图像等形式。
3.数据库的特点包括永久存储、面向用户的数据抽象、数据的共享与并发控制等。
4.数据库的应用领域非常广泛,包括企业管理、电子商务、金融服务等。
第二章数据库的逻辑结构实验素材•数据库的逻辑结构包括三层模式,分别是外模式、概念模式和内模式。
•外模式是用户对数据库的视图,它描述了用户所需要的数据的逻辑结构。
•概念模式是全局的逻辑结构描述,它描述了整个数据库的逻辑结构,是数据库设计的产物。
•内模式是数据库在存储介质上的存储结构,它是数据库管理系统的内部表示,对用户不可见。
实验答案5.数据库的逻辑结构包括三层模式,分别是外模式、概念模式和内模式。
6.外模式是用户对数据库的视图,它描述了用户所需要的数据的逻辑结构。
7.概念模式是全局的逻辑结构描述,它描述了整个数据库的逻辑结构,是数据库设计的产物。
8.内模式是数据库在存储介质上的存储结构,它是数据库管理系统的内部表示,对用户不可见。
第三章数据库的物理结构实验素材•数据库的物理结构指的是数据在存储介质上的存储方式,包括存储单位、磁盘存储和索引结构等。
•存储单位是数据库管理系统分配存储空间的最小单元,通常是一个数据块。
•数据库的物理结构设计是为了提高数据库的访问效率,如磁盘存储可以减少磁盘I/O操作,索引结构可以加快数据的查找速度。
《数据库系统原理》课程实验姓名:班级:学号:佛山科学技术学院计算机系2012年12月目录一、实验所需表格 (3)二、实验内容 (3)2.1实验一SQL数据定义 (3)2.2实验二SQL数据查询 (7)2.3实验三连接、嵌套和集合查询 (14)2.4实验四SQL的数据更新 (21)2.5实验五视图的建立和维护 (24)2.6实验六触发器和存储过程 (330)三、实验感想 (37)参考资料1.王珊萨师煊.《数据库系统概论》(第四版).高等教育出版社,20062.李存斌.数据库应用技术---SQL Server2000简明教程.中国水利水电出版社,2001一、实验所需表格学生-课程数据库xskc中用到的三个表文件如下:学生表:StudentSno(学号)Sname(姓名)Ssex(性别)Sage(年龄)Sdept(所在系)200215121李勇男20CS(计算机科学系)200215122刘晨女19CS(计算机科学系)200215123欧阳原野女18MA(数学系)200215125刘阳光男19IS(信息系)课程表:CourseCno(课程号)Cname(课程名)Cpno(先修课)Ccredit(学分)1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL64学生选课表:SCSno(学号)Cno(课程号)Grade(成绩)200215121192200215121285200215121388200215122290200215122380二、实验内容2.1实验一SQL数据定义一、实验目的和要求1.掌握利用SQL查询分析器和企业管理器进行数据库及基本表的定义、删除与修改;2.掌握索引的建立与删除的方法。
二、实验内容及结果(一)建立数据库通过查询分析器或企业管理器建立学生-课程数据库xskc。
create database xskcon(name=xskc_data,filename='e:\sjksy\xskc_data.mdf')log on(name=xskc_log,filename='e:\sjksy\xskc_log.ldf')注:先在E:盘上建立一个文件夹(例如:E:\sjksy),数据库文件保存到自建的文件夹中。
创新源于实践《数据库原理与应用》课程实验教学手册专业:数字媒体技术班级:2011 级 1 班学号:***********名:**任课教师:***学期:13141综合成绩:信息工程学院《数据库原理与应用》课程组许昌学院信息工程学院《数据库原理与应用》课程实验手册前言一、实验目的:《数据库原理与应用》是一门应用性很强的课程,上机实验是该课程的重要环节。
本实验是结合《数据库原理与应用》的学习而开设的实验。
本实验目的如下:1. 通过上机实验,加深对数据库基本理论知识的理解,增加对SQL Server数据库管理系统的感性认识和实际操作能力;2. 学习使用T-SQL语言,加深对T-SQL语言的认识和理解,提高T-SQL语言的实际应用能力;3. 加强对数据完整性、数据库编程等概念的认识和理解。
二、适应专业:数字媒体技术专业三、实验内容及学时安排:四、教材及参考文献1、《数据库系统概论》王珊、萨师煊主编,高等教育出版社,2006.2、《SQL Server 使用教程(第3版)》郑阿奇主编,电子工业出版社,2009.五、成绩考核上机实验考核采取实验报告和上机抽查检验相结合的方式。
每次实验结束后都必须写出实验报告。
实验一实验名称表与表数据操作、实验性质设计性、实验学时4学时姓名、学号、成绩四、实验过程实验过程、存在的问题及解决办法:1.创建YGGL数据库和相应的表语句:结果:2.将Sex列默认值设为0,语句:3.建立表Slary1如下:删除列ActIncome后:4.向表中插入数据,如下图:5.(1)将编号为000001的职工收入修改为2890原来修改后(2)将所有职工的收入增加100;(原图如上,修改后如下)代码:(3)删除编号为000001的职工的信息;代码为:结果如下:(4)删除所有女性员工的信息。
代码及结果如下:五、实验总结建立数据库时,注意数据库的位置以及Log文件。
保存时,应先关闭运行的管理器。
然后保存,再次打开时。
数据库系统原理与设计实验教程实验1实验一简单查询在订单数据库中,完成如下的查询:(1) 查询所有业务部门的员工姓名、职称、薪水。
select employeeName,headShip,salaryfrom employeewhere department='业务科'(2) 查询名字中含有“有限”的客户姓名和所在地。
select CustomerName,addressfrom Customerwhere CustomerName like '%有限%'(3) 查询出姓“王”并且姓名的最后一个字为“成”的员工。
select *from employeewhere employeeName like '王%成'没有结果(4) 查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示。
selectemployeeName,department,headship,address,sex= Case sexwhen 'M'then '男'when 'F'then '女'endfrom employeewhere address like'%上海%' or address like '%南昌%' and sex='F'(5) 在订单明细表OrderDetail中挑出销售金额大于等于10000元的订单。
select orderNofrom OrderDetailgroup by orderNohaving sum(quantity*price)>=10000(6) 选取订单金额最高的前10%的订单数据。
SELECT TOP 10 PERCENT orderNoFROM OrderdetailGROUP BY orderNoORDER BY sum(quantity*price) DESC(7) 查询出职务为“职员”或职务为“科长”的女员工的信息。
select *from employeewhere (headship='职员' or headship='科长') and sex='F'(8) 查找定单金额高于8000的所有客户编号。
1)查询总金额高于8000元的客户编号select CustomerNofrom OrderMaster a,Orderdetail bwhere a.orderNo=b.orderNogroup by CustomerNohaving sum(quantity*price)>80002)查找定单金额高于8000的所有客户编号select CustomerNofrom OrderMasterwhere orderNo in ( select orderNofrom OrderDetailgroup by orderNohavingsum(quantity*price)>8000 )(9) 选取编号界于“C20050001”和“C20050004”的客户编号、客户名称、客户地址。
select CustomerNo,CustomerName,addressfrom Customerwhere CustomerNo between 'C20050001' and 'C20050004'(11) 找出同一天进入公司服务的员工。
Selecta.employeeNo,a.employeeName,b.employeeNo,b.employeeNamefrom Employee a,Employee as bwhere a.employeeNo!=b.employeeNo anda.employeeName>b.employeeNameand (a.hireDate=b.hireDate)(12) 在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
1)首先计算订单主表的订单金额update OrderMaster set orderSum=totalSumfrom OrderMaster a,(select orderNo,sum(quantity*price) totalSumfrom OrderDetailgroup by orderNo) bwhere a.orderNO=b.orderNo2)SELECT *FROM OrderMasterWHERE orderSum>any(SELECT orderSumFROM OrderMasterWHERE salerNo='E2005002' AND orderDate='20080109' )(13) 查询既订购了“52倍速光驱”商品,又订购了“17寸显示器”商品的客户编号、订单编号和订单金额。
Select customerNo,orderNo,orderSumfrom OrderMasterwhere customerNo in(select customerNofrom OrderMaster a,OrderDetail b,Product cwhere a.orderNo=b.orderNo and b.productNo=c.productNo andproductName='52倍速光驱') and customerNo in(select customerNofrom OrderMaster a,OrderDetail b,Product cwherea.orderNo=b.orderNo andb.productNo=c.productNo andproductName='17寸显示器')(14) 查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务。
Selectb.employeeName,b.sex,b.department,b.headS hipfrom Employee a,Employee bwhere a.department=b.department and a.employeeName='陈诗杰'(15) 查询每种商品的商品编号、商品名称、订货数量和订货单价。
SELECTa.productNo,productName,quantity,priceFROM Product a, OrderDetail bWHERE a.productNo=b.productNoORDER BY productName,price(16) 查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
SELECTa.productNo,productName,quantity,priceFROM Product a, OrderDetail bWHERE a.productNo=b.productNo AND price>400ORDER BY productName(17) 分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
左外连接命令:SELECTa.productNo,productName,quantity,priceFROM Product a LEFT OUTER JOIN OrderDetail bON a.productNo=b.productNo WHERE price>400, b.quantity,b.priceFrom OrderDetail As b left JOIN Product As aON (a.productNo=b.productNo)and price>400Order by a.productNo右外连接命令:SELECTa.productNo,productName,quantity,priceFROM Product a RIGHT OUTER JOIN OrderDetail bON a.productNo=b.productNo WHERE price>400Select a.productNo , a.productName , b.quantity,b.priceFrom OrderDetail As b RIGHT JOIN Product As aON (a.productNo=b.productNo)and price>400Order by a.productNo全连接命令:SELECTa.productNo,productName,quantity,priceFROM Product a FULL OUTER JOINOrderDetail bON a.productNo=b.productNo WHERE price>400Select a.productNo , a.productName , b.quantity,b.priceFrom OrderDetail As b full JOIN Product As aON (a.productNo=b.productNo)and price>400Order by a.productNo(18)分别使用左外连接、右外连接、完整外部连接查询客户编号、客户名称、订货金额和订单编号,并分析比较检索的结果。
SELECTa.customerNo,customerName,orderSum,orderN oFROM Customer a left OUTER JOIN OrderMaster bON a.customerNo=b.customerNoSELECTa.customerNo,customerName,orderSum,orderN oFROM Customer a right OUTER JOIN OrderMaster bON a.customerNo=b.customerNoSELECTa.customerNo,customerName,orderSum,orderN oFROM Customer a full OUTER JOIN OrderMaster bON a.customerNo=b.customerNo从上述结果可知:若表a和表b做外连接,且b表是外码表,则a和b表左外连接可能会出现空值,但是右连接一定不会出现空值,全外连接与左外连接一样的结果。