数据库实验多表查询实验报告

数据库实验多表查询实验报告
数据库实验多表查询实验报告

附页

实验内容:

针对实验数据库shiyan,完成以下单表查询操作:

1.查询为工程J1供应红色零件的供应商号码SNO。

2.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO。

3.查询至少选用了供应商S1所供应的全部零件的工程号JNO。

4.找出工程项目J2使用的各种零件的名称及其重量。

5.找出上海厂商供应的所有零件号码。

6.找出使用上海产的零件的工程名称。

7.找出没有使用天津产的零件的工程号码。

8.找出重量最轻的红色零件的零件编号PNO。

9.找出供应商与工程所在城市相同的供应商提供的零件号码。

10.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME。

11.重复第15题,但不检索两个CITY值相同的三元组。

12.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和。

实验方法、步骤以及实验结果:

操作1

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use ShiYan

go

select sno

from spj

where jno='j1'and pno in(select pno

from p

where color='红')

操作结果:

操作2

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select jno

from spj

where sno in (select sno

from s

where city<>'天津')

and

pno in (select pno

from p

where color='红')

操作结果:

操作3

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

select distinct jno

from spj as x

where not exists ( select *

from spj as y

where sno='s1'

and not exists (select *

from spj as z

where z.pno=y.pno and z.jno=x.jno))

操作结果:

操作4

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select pname,weight

from p,spj

where spj.jno='j2' and spj.pno=p.pno

或者

select pname,weight

from p

where pno in (select distinct pno from spj where jno='j2') 操作结果:

操作5

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct pno

from spj

where sno=(select sno

from s

where city='上海')

操作结果:

操作6

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct jname

from s,j,spj

where spj.jno=j.jno and spj.sno=(select sno

from s

where s.city='上海') 操作结果:

操作7

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct jno

from spj

where sno in (select sno

from s

where city<>'天津')

操作结果:

操作8

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select pno

from p

where weight=(select min(weight)

from p

where color='红')

或者

select top 1 pno

from p

where color='红'

order by weight

操作结果:

操作9

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct pno

from s,j,spj

where s.sno=spj.sno and j.jno=spj.jno and s.city=j.city 操作结果:

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct s.city CITYA, j.city CITYB,p.pname PNAME

from s,p,j,spj

where s.sno=spj.sno and j.jno=spj.jno and p.pno=spj.pno

操作结果:

操作11

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct s.city CITYA, j.city CITYB,p.pname PNAME

from s,p,j,spj

where s.sno=spj.sno and j.jno=spj.jno and p.pno=spj.pno and s.city<>j.city 操作结果:

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select sum(qty) TotalQTY

from spj

where sno='s1' and jno in(select jno

from j

where jname like '%厂%') 操作结果:

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

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 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的查

数据库系统实验报告 实验三 数据控制(安全性)..

《数据库系统概论》实验报告 题目:实验三数据控制(安全性) 班级姓名学号日期2014年6月6日 一、实验目的 1.通过SQL对数据库进行安全性控制 2.完成教材中例题的上机练习 二、实验平台 微软SQL Server 2000或以上版本。 对于SQL Server 2000,使用查询分析器运行SQL语句,对于SQL Server 2005以上的版本,使用SQL Server Management Studio运行SQL语句。 三、实验内容和要求 使用SQL对数据进行安全性控制,包括授权和权力回收。 操作完成后,查看授权用户是否真正具有所授予的数据操作权利,在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。 在前几次实验中已经建立了实验数据库,继续在此数据库上进行实验所要求的各项操作。认真填写实验报告,记录所有的实验用例。 四、实验步骤 1.以管理员sa登录数据库,新建DB数据库,然后运行如下SQL语句,创建 我们前几次实验所建立的表。 CREATE TABLE course ( Cno char(4) NOT NULL, Cname char(40) DEFAULT NULL, Cpno char(4) DEFAULT NULL, Ccredit smallint DEFAULT NULL, PRIMARY KEY (Cno) ) ; -- -- 转存表中的数据'course' -- INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('1', '数据库', '5', 4); INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('2', '数学', NULL, 2);

数据库数据查询实验报告

师学院数学与计算机科学学院 《数据库》实验报告 实验序号:07 实验项目名称:数据查询 学号2014210758 姓名邹业安专业、班级14信科 实验地点222 指导教师褚万军时间2017.6.07 一、实验目的及要求 ?掌握从简单到复杂的各种数据查询。包括:单表查询、多表连接查询、嵌套查询、集合查询。 ?掌握用条件表达式表示检索条件。 ?掌握用聚合函数计算统计检索结果。 二、实验设备(环境)及要求 1、环境要求: 硬件:PC(PII以上,128M以上存)、因特网接入; 软件:在SQL Server 2000中 三、实验容与步骤 1、一般简单查询 (1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。select distinct 学号 from 选课 select 学号 from 选课

(2)查询某个表中的所有记录查询教师表中的所有记录 (3)使用单个条件的简单查询查询成绩大于50的学生的学号select 学号 from 选课where 成绩>50

(4)使用多个条件(AND关系)的查询 select工资 from教师 where工资>200 and工资<500 (5)使用多个条件(OR关系)的查询 select工资 from教师 where工资<200 or工资>500 (6)使用多个条件(混合AND和OR关系)的查询 select*from学生 where (院系='2'and生源='')or(院系='6'and生源='') (7)使用带NOT运算的查询

where not (生源='') (8)使用BETWEEN???AND???的查询 select * from 选课 where 成绩 between 86 and 93 (9)使用NOT???BETWEEN???AND???的查询select * from 选课 where 成绩 not between 76 and 93 (10)使用LIKE运算符的字符串匹配查询。

数据库创建数据库和数据表实验报告

的方法。 二、实验环境 Windows7操作系统,SQL Server软件。 三、实验内容 在SQL Server中创建数据库的方法主要有两种:一是在SQL Server Management Studio窗口中使用可视化界面,通过方便的图形化向导创建,二是通过执行Transact-SQL语句创建。

应外码做CASCADE操作。 四、实验步骤 创建数据库 CREATE DATABASE teacher 创建数据表 sno char(10) not null primary key, sex char(2) check(sex in('男','女')) not null, canme varchar(8) not null , DOB datetime, dept varchar(10), telno char(11) not null, ) create table COURSE( con char(5) not null primary key, cname varchar(10) not null, Cpno char(5), teacher varchar(8) not null, credit smallint, ) create table SC( son char(10) not null primary key, con char(5) not null primary key, score decimal(6,2) check(score in(score<'100'||score>'0')), )

五、实验心得 在这次数据库实验中,我初步的了解到了SQL的一些基本的操作,例如查询分析器的界面用法,也明白了大写小写并不影响数据查询,也知道了如何去创建数据库和数据表。虽然在实验中出现了bug,不过通过书本都找解决了。

数据库实验报告

数据库实验报告

武汉理工大学 学 生 实 验 报 告 书 实验课程名称 数据库系统概论 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 学生学号 实验课成绩

2013 — 2014 学年第二学期实验课程名称:数据库系统概论 实验项目名称SQL SEVER 2000的系 统工具及用户管理 实验 成绩 实验者专业班 级 组别 同组者实验 日期 2014年4 月24日

第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000工具创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 二、实验基本原理与设计(包括实验方案设计,实 验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (2)创建数据库和查看数据库属性。 (3)创建表、确定表的主码和约束条件。 (4)查看和修改表的结构。 (5)向数据库输入数据,观察违反列级约束时出现的情况。 (6)修改数据。 (7)删除数据,观察违反表级约束时出现的情况。 三、主要仪器设备及耗材 Windows XP SQL SERVER 2000

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录, 实验现象记录,实验过程发现的问题等) 没有错误 错误:未能建立与WORKEPLACE\XUMENGXING的链接SQL Server 不存在或访问被拒绝 原因:未启动数据库服务 二、实验结果及分析(包括结果描述、实验现象分 析、影响因素讨论、综合分析和结论等) 实验结果部分截图:

SQL查询—— 简单查询实验报告书

实验题目:SQL查询——简单查询 【实验目的与要求】 一、实验目的 1. 熟练掌握单表查询的SELECT语法结构; 2. 通过观察查询结果, 体会SELECT语句的实际应用。 二、实验要求 1.实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验 内容的预习准备工作。 2.能认真独立完成实验内容。 3.实验后做好实验总结,根据实验情况完成实验报告。 【实验环境】 PC机、Windows XP系统+SQL Server 2005 【实验内容】 基于实验一建立的EDUC 数据库,用Transact-SQL 语句实现如下查询: 1.选修了课程的学生学号; 2.计算机系的学生; 3.计算机系学生的学号和姓名; 4.计算机系和信息系的男生信息;(提示:逻辑运算符的优先级顺序) 5.选修上课编号为1且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出; (提示:新输出项要命名列标题) 6.没有成绩的学生的学号和上课编号; 7.选修上课编号为1或4的学生的学号和成绩,并要求对查询结果按成绩的降序 排列,如果成绩相同则按学号的升序排列;(提示:查询输出哪几项) 8.1995年1月1日(含)以后出生的学生信息,并按姓氏拼音字母顺序从前往后排列(注: 默认排序规则通常是Chinese_PRC_CI_AS,汉字按照汉语拼音的字典顺序来排序:首先按拼音,拼音相同按声调,声调相同按笔画数。)

9.姓李和刘的学生的信息; 10.不姓张王李刘的学生的学号、姓名和性别; 11.选修课程的学生人数; 12.选修上课编号为1的学生的最高分; 13.每位学生所修课程的平均分; 14.选修两门以上课程的学生; 15.总成绩大于200 分的学生的学号和总成绩。(提示:group by分组统计)【实验方法和步骤】 1.新建查询,在查询编辑器中依次按照如上实验内容编写SELECT语句完成查询。

数据库系统设计实验报告

数据库系统设计实验报告 ――教务管理系统 学院:计算机科学与技术 专业:软件工程 班级: 学号: 姓名: 指导老师:

一、概述 项目背景:数据库课程设计 系统名称:教务管理系统 开发环境:SQL Server 2008 二、需求分析 1、系统的概述 ?一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或 者多个班级。一个学生只属于1个班级,学生有姓名、学号、性别、身 份证号、入学时间等属性。 ?每个专业的每个年级都有对应的教学计划。教学计划指定了这个专业这 个年级的某门课程在那个学期上,学分、学时是多少。每个学院都设置 有1个教务秘书,这些信息都由教务秘书进行输入。每个院系的课程都 有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言, 虽然都是同一门课,但是编码是不同的。但是同一个院系中的相同的课 程,课程代码是唯一的。比如计算机学院的07计算机软件专业和计算机 学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相 同的。 ?教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的内容 根据教学计划,比如08计算机软件专业的学生,在2009-2010年第2 学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程 安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点 (理工楼234),有的课程是单周上,有的双周,也有是每周都上的。 ?在每个学期期末,学生登录到网站上选择下一个学期需要上的课,选择 的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能 给任何学生选择了。 ?学生根据选择的课程进行上课,参加考试。每个老师可以用自己的用户 名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多 个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考 试成绩、平时成绩、实验成绩以及总评成绩。这些成绩都需要进行存储。 ?为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而 是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成 绩表中。

实验报告 数据库的基本查询'

一、实验目的: 通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。 二、实验原理 数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询。 SELECT[ALL|DISTINCT] <目标列表达式〉[,<目标列表达式〉]... FROM<表名或视图名〉[,<表名或视图名〉]... [WHERE<条件表达式>] [GROUP BY<列名1〉[HA VING<条件表达式>]] [ORDERBY<列名2〉[ASC|DESC]] 三、实验内容和方法 实验用的数据库:用实验二建立的数据库:School 1. 投影查询 (1) 查询SC表的sno的不重复记录。 使用SQL语句:“select distinct Sno from SC”,得出结果如下图所示: (2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。 使用SQL语句:“select Sno 学号,Sname 姓名,Ssex 性别,Sdept 系名from Student”,得出结果如下图所示:

(3) 查询STUDENT表的前3条记录(top 3)。 使用SQL语句:“select top 3 * from Student”,得出结果如下图所示: 3. 选择查询 (1) 查询成绩在60-80之间的姓名、系名和成绩。 使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade>60 and Grade<80 and Student.Sno=SC.Sno”,结果如下图所示: 若使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade between 60 and 80 and Student.Sno=SC.Sno”,则结果如下图所示: (2) 查询信息系和计算机系的姓名和成绩。 使用SQL语句:“select Sname,Grade from Student,SC where Sdept='IS' and Student.Sno=SC.Sno or Sdept='CS' and Student.Sno=SC.Sno”,结果如下图所示:

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

《数据库技术与应用》上机实验报告 目录: 一、概述 二、主要上机实验内容 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界面,数据库和表的创建,维护与操作 完成了创建表,向表中输入不同类型的数据,创建和编辑表之间的关系,进行了表的维护,修改了表的结构、内容、外观,最后进行了表的操作,查找、替换、排序、筛选等。 已完成 第八周:练习创建各种查询 练习选择查询、参数查询、交叉表查询,然后练习并操作查询,生成查询、删除查询、更新查询、追加查询等。 已完成 第十周:练习创建各种类型的窗体 自动创建纵栏式窗体和表格式窗体,向导创建主|子窗体和图表窗体,练习通过设计器创建窗体,美化窗体。 基本完成 第十三周:练习创建各种类型的报表 自动创建纵栏式报表和表格式报表,向导创建报表,练习通过设计视图创建报表,在报表中添加计算字段和分组汇总数据。 已完成 第十五周:综合应用

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告 班级:计科*** 班 学号: **** 姓名: *** 2011年12月

数据库应用系统的初步开发 一、实验类别:综合型实验 二、实验目的 1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统概念和特点的理解。 2.初步掌握基于C/S 的数据库应用系统分析、设计和实现方法。 3.进一步提高学生的知识综合运用能力。 三、实验内容 在SQL Server2000数据库管理系统上,利用 Microsoft Visual C++ 6.0开发工具开发一个学生成绩管理系统的数据库应用系统。 四、实验过程 (一.)系统需求说明 1 系统功能要求设计:此系统实现如下系统功能: (1)使得学生的成绩管理工作更加清晰、条理化、自动化。 (2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。 容易地完成学生信息的查询操作。 (3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。 2 系统模块设计 成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图: 登陆失败 退出系统 用户 验证 登陆成功

3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下: 数据库中用到的表: 数据库表名关系模式名称备注 Student 学生学生学籍信息表 Course 课程课程基本信息表 Score 成绩选课成绩信息表 Student基本情况数据表,结构如下: 字段名字段类型Not Null 说明 Student _sno Char Primary key 学号 Student _sn char Not Null 学生姓名 Student _sex char ‘男’或‘女’性别 Student _dept char 系别 Student_age char 年龄 Student_address char 地址 course数据表,结构如下: 字段名字段类型约束控制说明 course_cno char 主键(primary key)课程号 char not null 课程名称course_cnam e course_hour int not null 课时 course_score numeric(2,1) not null 学分 score情况数据表,结构如下: 字段名字段类型约束控制说明 score_id int not null 成绩记录号 course_cno char 外部键课程号 student_sno char 外部键学号 score int 成绩 (二)数据库结构设计 1.概念结构设计 由需求分析的结果可知,本系统设计的实体包括: (1)学生基本信息:学号,姓名,性别,地址,年龄,专业。 (2)课程基本信息:课程名,课程号,分数,学时,学分。

华南农业大学大数据库系统概念实验报告材料五

实用文档 《数据库系统》实验报告五

实用文档 salary表中表具有查询权限,A.course对A.instructor对设置同学同学2. AB 使用命令检查授权是否成功。B字段具有更新权限;同学grant select on course to cs113; 实用文档

表具有插入数据、删除数据的权限,同对B. instructorB3. 同学授权同学A 用命令试验能否完成相应操作。学Aselect * from cs113.instructor; insert into cs113.instructor values(21313,'JDY','Comp. Sci.',745363); select * from cs113.instructor; cs113.instructor where salary = 92000; delete from select * from cs113.instructor; 实用文档

表具有增、删、改、查的权限,并允许他对B. studentB5. 同学授权同学A并试验能否将权限授予A将权限授权给其它同学。同学验证授权是否成功,。C其它同学(例如同学) 实用文档select * from cs113.student; insert into cs113.student values(13221,'KJDFH','Comp. Sci.',123); update cs113.student set tot_cred = 456 where ID = 13221; select * from cs113.student; delete from cs113.student where ID = 13221; select * from cs113.student;

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

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

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)按要求完成实验报告。

数据库上机实验报告

实验一:建立数据库及基本表 一、实验目的 1、了解SQL Server数据库的逻辑结构和物理结构; 2、了解SQL Server的基本数据类型; 3、学会在企业管理器中创建数据库和表; 4、使用SQL查询分析器用CREATE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。 二、实验内容 1、创建数据库和查看数据库属性。 2、创建表。 3、查看和修改表结构。 4、熟悉企业管理器和查询分析器工具的使用方法 三、实验步骤 1、在企业管理器中创建数据库和数据表。 (1) 使用企业管理器建立图书管理数据库,数据库名为BM,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名和物理文件名均采用默认值。 详细步骤: (2) 在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。 (3) 通过企业管理器,在建好了图书管理数据库BM中建立图书(book)、读者(reader)和借阅(borrow)3个表,其结构为: 图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话); 借阅(书号,读者编号,借阅日期)。 (4) 利用企业管理器向表中输入数据。 2、在查询分析器中创建数据库和数据表 (1) 创建数据库S-C 的sql语句: create database s_c (2) 在数据库S-C下,创建基本表学生表student(sno,sname,ssex,sage,sdept)的sql语句: create table student( sno c(8),sname c(10),ssex c(2),sage(4),sdept c(8) ) 创建基本表课程表course(cno,cname, ccredit)的sql语句: create table course( cno c(4),cname c(10),ccredit c(2) ) 创建基本表成绩表sc(sno,cno,grade)的sql语句: create table sc( sno c(8),cno c(4),grade n(4) )

数据库系统实验报告 触发器

实验4 触发器 1、通过序列和触发器实现借阅表中借阅流水号字段的自动递增。 Create or replace sequence bwnum_id Minvalue 1 Maxvalue 1.0E28 Start with 1 Increment by 1 Cache 20; Create or Replace Trigger tri_bwnum_id Before Insert On borrow For Each Row Begin Select bwnum_id.Nextval Into :new.bwnum From DUAL; End;

2、通过序列和触发器实现预约表中预约流水号字段的自动递增 Create sequence pnum_id Minvalue 1 Maxvalue 1.0E28 Start with 1 Increment by 1 Cache 20; Create or Replace Trigger tri_pnum_id Before Insert On preborrow For Each Row Begin Select pnum_id.Nextval Into :new.pnum From DUAL; End;

3、修改实验三借书功能的存储过程。 该存储过程要求: (1)借书时输入借书证号,图书编号。(即该函数有2个输入参数) (2)借书时,借书日期为系统时间。 *该存储过程主体部分只有insert into语句。 create or replace Procedure p_borrow (P_BNUM IN BORROW.BNUM%TYPE, P_RNUM IN BORROW.RNUM%TYPE) as begin insert into BORROW (BNUM,RNUM,BDATE) values(P_BNUM,P_RNUM,TO_CHAR(SYSDATE(),'YY/MM/DD')); commit; end; 4、建立与借书存储过程相对应的触发器,当借阅表中加入借阅信息时,该触发器触发,自动修改所借图书的是否借出改为‘是’。 Create or Replace Trigger tri_borrow_insert

数据库系统原理实验报告_SQL查询语句

数据库系统原理 实验报告 :xxx 学号:xxxxxxxx 专业:xxxxx 日期:xxxxx

Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1)Windows 10 2)SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。 表1 学生表 表2 课程表 表3 学生作业表

K001 0433 60 75 75 K001 0529 70 70 60 K001 0531 70 80 80 K001 0591 80 90 90 K002 0496 80 80 90 K002 0529 70 70 85 K002 0531 80 80 80 K002 0538 65 75 85 K002 0592 75 85 85 K006 0531 80 80 90 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80 写出如下SQL语句: 1.查询数据库中有哪些专业班级。(5分) Sql语句: SELECT专业班级 FROM学生表; 查询结果截图: 2.查询在1986年出生的学生的学号、和出生日期。(5分) Sql语句: SELECT学号,,出生日期 FROM学生表 WHERE出生日期LIKE'1986%'; 查询结果截图:

3.查询05级的男生信息。(5分) Sql语句: SELECT* FROM学生表 WHERE学号LIKE'05%'AND性别='男'; 查询结果截图: 4.查询没有作业成绩的学号和课程号。(5分) Sql语句: SELECT学号,课程号 FROM学生作业表 WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL; 查询结果截图: 5.查询选修了K001课程的学生人数。(5分) Sql语句: SELECT COUNT(DISTINCT学号) FROM学生作业表 WHERE课程号='K001'; 查询结果截图:

数据库原理实验报告2012

《数据库原理》实验报告书 班级: 学号: 姓名: 指导教师: 实验成绩: 中南林业科技大学涉外学院理工系

目录 数据库原理实验安排 (3) 实验一数据库和表的建立、数据操作 (4) 实验二 SQL语言的使用 (9) 实验三完整性、安全性实现 (16) 实验四数据库编程 (18) 附录一SQL Server的安装 (20)

数据库原理实验安排 一、实验目的 通过实验,使学生熟悉并掌握数据库的基本概念、基本原理、和基本技术;能够应用这些理论和技术设计合理的数据库;更重要的是通过教学活动,使学生能够把与数据库相关的先修后继知识融会贯通,初步具有开发完整可用的数据库系统的能力。 二、实验安排 本门课程共分4个实验,8学时 实验一数据库和表的建立、数据操作 2学时 实验二 SQL语言的使用2学时 实验三完整性、安全性实现 2学时 实验四数据库编程 2学时 三、实验考核 实验成绩通过实验报告及每次实验后的验机给出,每次实验结束后都必须写出实验报告。

实验一数据库和表的建立、数据操作 一、实验目的: 掌握使用SQL语言进行数据定义和数据操纵的方法。 二、实验要求: 建立一个数据库stumanage,建立三个关系表students,course,grade。向表中插入数据,然后对数据进行删除、修改等操作,对关系、数据库进行删除操作。 三、实验步骤: 1、在SQL Server中输入本机器的名字,选择“windows身份验证”。点击确定连接SQL Server数据库服务器。 2、新建查询分析器。 3、在查询分析器中输入SQL语句------建立数据库stumanage。然后单击上面的绿色三角形右箭头。下部的空白区显示该语句的运行情况。 4、选择数据库stumanage为当前数据库。 5、如下图建立表students: 列名数据类型允许空主键说明 (1) sno Char(8) 否是学号 (2) sname Varchar(20) 是否姓名 (3) sex Char(2) 是否性别 (4) dept Varchar(20) 是否所在系 如下图建立表:course 列名数据类型允许空主键说明 (1) cno Char(6) 否是课程号 (2) cname Varchar(20) 是否课程名 如下图建立表sc:(注:包括两个外键,sno和cno共同组成主键)列名数据类型允许空主键外键说明 (1) sno Char(8) 否是 students(sno) 学号 (2) cno Char(6) 否是 course(sno) 课程号 (3) grade int 否否否成绩 6、使用SQL语句完成建表操作并以截屏的方式将建表操作过程粘贴在下方表格中。

数据库实验报告

课程设计报告题目:数据库实验上机实验报告 专业班级:计算机科学与技术1210班 学号:U201215079 姓名:候宝峰 指导教师: 报告日期:2015-06-04 计算机科学与技术学院

目录 一、基本SQL操作(部分选做) (1) 1)数据定义 (1) 2)数据更新 (3) 3)用SQL语句完成下述查询需求: (4) 二、DBMS综合运用(部分选做) (8) 1)学习sqlserver的两种完全备份方式:数据和日志文件的脱机备份、系统的备份功能(选做)。 (8) 2)学习系统的身份、权限配置操作 (9) 3)了解SQLSERVER的存储过程、触发器、函数实现过程 (14) 三、实验总结 (17) 1)实验问题及解决 (17) 2)实验心得 (18)

一、基本SQL操作(部分选做) 1)数据定义 参照下面的内容建立自己实验所需的关系数据 创建三个关系: 商品表【商品名称、商品类型】 GOODS【GNAME char(20),GTYPE char(10)】 主关键字为(商品名称)。商品类型为(电器、文具、服装。。。) 商场【商场名称,所在地区】 PLAZA【PNAME char(20),PAREA c har(20)】 主关键字为商场名称。所在地区为(洪山、汉口、汉阳、武昌。。。) 销售价格表【商品名称、商场名称、当前销售价格、目前举办活动类型】 SALE【GNAME char(20),PNAME char(20),PRICE FLOAT,ATYPE c har(10)】 主关键字为(商品名称、商场名称)。举办活动类型为(送券、打折),也可为空值,表示当前未举办任何活动。表中记录如(‘哈森皮靴’,‘亚贸广场’,200,‘打折’),同一商场针对不同的商品可能采取不同的促销活动。 create table goods(gname char(20) primary key,gtype char(10)); create table plaza(pname char(20) primary key,parea char(20)); create table sale (gname char(20), pname char(20), price FLOAT, atype char(10)check (atype in('送券','打折','')), primary key(gname,pname), foreign key(gname)references goods(gname), foreign key(pname)references plaza(pname));

《数据库系统概论》实验报告

《数据库系统概论》实验报告 题目:实验三存储过程/触发器/ODBC编程 姓名班级学号日期 郭智超10010507 052626 2007-10-14 一. 实验内容和步骤结果 1.在查询分析器中使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) 源程序:create view V_SPJ as select jno,sno from spj where jno='j2' exec sp_rename 'V_SPJ','V_SPJ_三建' 执行结果: 变为 2.存储过程的创建与使用:(45分) (1)使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程—jsearch。 该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME) 源程序:create procedure jsearch @jno char(4) as select sname,pname,jname from spj,s,p,j where j.jno=@jno and spj.jno=j.jno

and spj.sno=s.sno and spj.pno=p.pno (2) 执行jsearch存储过程,查询“J1”对应的JNAME,SNAME和PNAME。 源程序:exec jsearch j1 执行结果: (3)使用系统存储过程sp_helptext查看存储过程jsearch的文本信息。 源程序:sp_helptext jsearch 执行结果: (4)使用SPJ数据库中的S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。 源程序:create procedure jmsearch with encryption as select sno,sname,status,city from s where s.city='北京' (5)执行jmsearch存储过程,查看北京供应商的情况。 源程序:exec jmsearch. 执行结果:

实验三--数据库中的数据查询及视图操作实验报告

实验三--数据库中的数据查询及视图操作实验报告

长春大学计算机学院科学与技术专业 数据库原理实验报告 实验 名称: 实验三数据库中的数据查询及视图操作(1) 班级: 姓 名: 学 号: 实验地点: 日期: 一、实验目的: 1.继续熟练SQL SERVER 2005/2008系统或KingBase ES V7.0的使用; 2.掌握SELECT语句的使用。 3.掌握单表查询,多表查询以及嵌套查询。 二、实验内容、要求和环境: 【实验要求】 注:将完成的实验报告重命名为:班级+学号+姓名+(实验三),(如:041540538张三(实验三)),提交到SPOC学堂。 1.实验课要携带教材、学习辅导、老师下发的实验报告文档等。 2.课前要对实验内容和步骤部分进行预习。 【实验环境】 1.SQL SERVER 2005/2008; 2.KingBase ES V7.0 ,人大金仓。 【实验内容和步骤】

针对实验一建立的数据库的表,用select语句完成如下查询操作,写出select语句,并给出操作结果。 1.针对SPJ数据库中的四个表,实现如下查询: (1)求供应工程J1零件的供应商号码SNO; (2)求供应工程J1零件P1的供应商号码SNO; (3)求供应工程J1零件的供应商名SNAME; (4)求供应工程J1零件P1的供应商名SNAME; (5)求供应工程J1零件为红色的供应商号码 SNO; (6)求没有使用天津供应商生产的红色零件的 工程号JNO; (7)求至少用了供应商S1所供应的全部零件的 工程号JNO; (8)找出使用上海产的零件的工程名称; 2.针对学生-课程数据库中的三个表,用嵌套方法查询实现如下查询: (1)查询选修了数据库的学生姓名。 (2)查询比计算机系CS所有学生年龄都大的学生信息。 (3)列出“李勇”选修的所有课程的课名和成绩。(4)查询数据库的先行课的课程名。 3.针对实验一建立的SPXS数据库中的三个表,实现如下查询: (1)查询与商品“电视”颜色相同的商品名; (2)查询不销售商品P2的商店名; (3)查询至少销售商品P1、P2两种商品的商店名; (4)所有商店都销售的商品号。 (5)只销售一种商品P4的商店名。 三、实验结果与分析: 写出操作语句,粘贴查询结果(粘贴结果要求粘贴SQL Server Managemet Studio整个窗口):

数据库实验一基本表的定义实验报告

实验一基本表的定义、删除与修改 一、实验目的: 熟练掌握SQL语句中数据库的创建、基本表的定义、删除与修改,为后继学习作准备。 二、实验属性(验证性) (1)、了解并掌握SQL SERVER 2008管理控制器的使用; (2)、掌握数据库和基本表的定义、删除与修改。 三、实验仪器环境与要求 1.每人一台计算机。 2.计算机安装有SQL SERVER2008。 四、实验要求(预习、实验前、实验中、实验后等要求) 1.预习教材第三章,熟悉SQL语句。 2.熟悉SQL SERVER 2008,能使用管理控制器的使用。 3.能够熟练使用SQL语句进行数据库、表的创建、删除与修改等。 五、实验原理 SQL语言基本应用。 六、实验步骤:

(1) 启动SQL SERVER 2008。 (2) 启动SQL SERVER 2008查询分析器; (3) 创建数据库”学生选课管理数据库”; CREATE DATABASE 学生选课管理数据库; (4) 在此数据库下创建如下表: 1 定义基本表 1.1、学生表Student,每个属性名的意义为Sno-学号字符型长度为12、Sname-姓 名字符型长度为20、Ssex-性别字符型长度为4、默认为“男”,Sage-年龄 为整型、Sdept-所在系字符型长度为15。这里要求Sno为主码,Sname不能 为空值,且取值唯一。 CREATE TABLE Student( Sno CHAR(12) PRIMARY KEY, Sname CHAR(20) UNIQUE NOT NULL, Ssex CHAR(4) DEFAULT '男', Sage INT,Sdept CHAR(15) ); 1.2、建立表课程表Course,其属性名意义分别为Cno-课程号、字符型长度为15, Cname-课程名、字符型长度为20, Pre_Cno-先修课程号、字符型长度为15,

相关文档
最新文档