实验三单表查询实验报告
实验三 数据库查询

12、在“学生成绩表”中列出已登记成绩的学生个数;
13、在学生成绩表中,显示所有学生记录,按照平时成绩和期末成绩降序排列;
四、分析与讨论
通过本次实验,基本掌握了数据的一些基本查询,可以对单表的简单查询和复杂查询,两表的连接查询和嵌套查询等等,在实验中要注意一下几点:
1、在写查询语句时,要注意查询的属性名称要与原表中的属性名称要一样,否则会出现错误,导致无法查询;
2、编写select语句,显示“课程信息表”中的所有字段;
3、在学生档案表中,显示“XXXX.XX.XX”的格式显示出生日期。
4、在学生档案表中查询所有湖北学生的基本信息;
5、在教学任务表中列出所有任课教师ID,将重复的记录去掉;
6、在学生档案表中列出所有学生籍贯,将重复的记录去掉;
7、在学生成绩表中,显示学生所有记录,并期末成绩降序排列;
实验内容三
实验序号:三 实验项目名称:数据库查询Βιβλιοθήκη 实验地点指导教师李晖
实验时间
一、实验目的及要求
熟练掌握SQL SELECT语句,能够运用该语句完成各种查询。
二、实验设备(环境)及要求
台式机、SQLServer2005
三、实验内容与步骤
1、编写select语句,显示“教师档案表”中的姓名、性别、职称、单位字段:
8、在学生成绩表中,求平时成绩的最大值、最小值、平均值;
9、将学生成绩表中所有期末成绩大于80分的学生的学号、课程ID、平时成绩和期末成绩的查询结果输出到“优等生成绩表”的新建表中,然后对“优等生成绩表”进行查询。
10、列出所有女教师的ID、姓名以及所带课程;
11、查询北京学生的学号、课程ID和选课类别;
实验三(查询)

实验三1-3为投影查询1. 查询student表中所有记录的sname、ssex和sclass列use schoolselect sname,ssex,sclassfrom student----------------------------------- 2. 查询教师所在的单位(不重复)select distinct tdepfrom teacher----------------------------------- 3. 查询student表的所有记录select *from student或者是select sno as '学号',sname as '姓名',ssex as '性别',sbirthday as '出生年月',sclass as '所在班级'from student-----------------------------------4-8为选择查询4. 查询score表中成绩在~之间的所有记录select *from scorewhere degree between 60 and 80----------------------------------- 5. 查询score表中成绩为、或的记录select *from scorewhere degree=85 or degree=86 ordegree=88或者是select *from scorewhere degree in(85,86,88)----------------------------------- 6. 查询student表中“信管”班或性别为“女”的学生记录select *from studentwhere sclass='信管' or ssex='女'----------------------------------- 7. 以sclass降序查询student表中的所有记录select *from studentorder by sclass desc---------------------------------- 8. 以cno升序、degree降序查询score表的所有记录select *from scoreorder by cno,degree desc----------------------------------- 9-13为聚合函数9. 查询“信管”班的学生人数select count(*) as '信管班人数'from studentwhere sclass='信管'----------------------------------- 10.查询score表中的最高分的学生的学号、课程号和成绩select sno as '学号',cno as '课程号',degree as '最高分'from scorewhere degree=(select max(degree) from score)----------------------------------- 11.查询编号是“080305”的课程的平均分select avg(degree) as '课程平均分' from scorewhere cno='080305'----------------------------------- 12.查询score表中至少有名学生选修并以0开头的课程号的平均分select cno,avg(degree) as '平均分' from scorewhere cno like '0%'group by cnohaving count(*)>5----------------------------------- 13.查询最低分大于,最高分小于的学号select snofrom scoregroup by snohaving min(degree)>70 and max(degree)<90-----------------------------------14 -19为连接查询14.查询所有学生的sname、cno和degree(等值连接)Selectstudent.sname,o,score.degree from student,scorewhere student.sno=score.sno------------------------------------- 15.查询所有学生的sno、cname和degree(等值连接)select x.sno,ame,x.degreefrom score x,course ywhere o=o或者是selectscore.sno,ame,score.degree from score,coursewhere o=o------------------------------------- 16.查询“信管”班所选课程的平均分(等值连接) select o,avg(degree) as '平均分' from student x,score ywhere x.sno=y.sno and x.sclass='信管' group by o------------------------------------- 17.使用下列命令建立一个grade表,并查询所有学生的sno、cno和rank(非等值连接)create table grade(low int,upp int,rank char(1))insert grade values(90,100,'A')insert grade values(80,89,'B')insert grade values(70,79,'C')insert grade values(60,69,'D')insert grade values(0,59,'E')select sno,cno,rankfrom score,gradewhere degree between low and upporder by rank------------------------------------ 18.查询选“080301”课程的成绩高于“080107”号学生成绩的所有学生成绩记录,并按成绩降序排(自连接)select o,x.sno,x.degreefrom score x,score ywhere o='080301' andx.degree>y.degree and y.sno='080107' and o='080301'order by x.degree desc或者是select cno,sno,degreefrom scorewhere cno='080301' and degree>(select degree from score where sno='080107'and cno='080301')-----------------------------------。
数据库原理实验报告(数据查询)

数据库原理实验报告实验三数据查询班级:×××姓名:×××学号:×××数据查询一、[实验目的]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的查询语句;右下方为结果区,用于显示查询结果和分析结果。
SQL数据的查询和更新实验报告报告

SQL数据的查询和更新实验报告报告实验三、SQL的数据查询1、实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2、实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:单表查询查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
使用DISTINCT保留字消除重复行。
对查询结果排序和分组。
集合分组使用集函数进行各项统计。
连接查询笛卡儿连接和等值连接。
自连接。
外连接复合条件连接。
多表连接。
嵌套查询通过实验验证对子查询的两个限制条件。
体会相关子查询和不相关子查询的不同。
考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况集合运算使用保留字UNION进行集合或运算。
采用逻辑运算符AND或OR来实现集合交和减运算。
3、实验步骤以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。
在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。
在表Reports中保存学生的选课记录和考试成绩。
1请先输入如下元组,再对数据库进行有关的查询操作:图、Students表图、Teachers表图、Courses表图、Reports表2查询性别为“男”的所有学生的名称并按学号升序排列。
查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
积分的计算公式为:[1+(考试成绩-60)*]*Ccredit。
考试成绩>=60。
查询学分是3或4的课程的名称。
查询所有课程名称中含有“算法”的课程编号。
查询所有选课记录的课程号。
统计所有老师的平均工资。
数据库实验答案

实验3 使用T-SQL语言完成单表查询一、实验目的掌握使用T—SQL语言完成单表查询掌握常用谓词的用法掌握where子句的用法掌握order by 子句的用法掌握group by 子句和having短语的用法二、实验环境Microsoft SQL Server 2000。
三、实验内容和要求1.查询全体学生的详细信息。
2.查询所有课程的详细信息.3.查询所有选课记录的详细信息,要结果表中的列名以中文的形式显示,分别为:学号,课程号,成绩。
4.查询已被学生选修了的课程的编号。
5.查询系别编号为“d002”的学生的姓名和性别。
6.查询年龄在19至21岁或者性别为“女”的学生的学号和所在系别编号。
7.查询系别编号为d001、d002和d003的学生的学号和姓名。
8.查询课程名为“C_”开头的课程名和学分.9.某些学生入学后还没有确定所在的系,查询还没有确定系的学生的姓名。
10.查询成绩大于60分的学生的学号、课程号和成绩,并将查询结果按课程编号升序排列,同一课程的成绩按分数降序排列。
11.查询学校所开设的总的课程数.12.计算2号课的学生成绩总和以及平均成绩,对应的列名分别为“总成绩”和“平均成绩”。
13.查询选修了3号课程的学生的最高分和最低分,对应的列名分别为“最高分”和“最低分"。
14.求各个系别的编号以及各系的人数。
15.查询选课人数大于等于2人的课程编号以及选课的人数。
16.查询学生200215122选修课程的总成绩对应的列名为“总成绩”,并显示出学号。
17.查询有2门以上课程是80分以上的学生的学号及课程数。
18.查询选修了1号课的学生的学号和成绩,结果按成绩降序、学号升序排列.实验1 使用T-SQL语言建库、建表实验2 向表中增、删、改数据四、实验目的掌握使用T-SQL建库、建表、修改表;掌握使用T-SQL对表中数据进行插入、删除和修改.五、实验环境Microsoft SQL Server 2000.六、实验内容和要求19.建立数据库STDB20.在数据库STDB中建立四个表:Student表Department表Course表21.分别向以上四个表中增加数据。
实验三 数据库的查询

实验三数据库的查询一、目的与要求1、掌握数据库对象的操作过程,包括创建、修改、删除2、熟悉表的各种操作,包括插入、修改、删除、查询3、熟练掌握常用SQL 语句的基本语法,加深对SQL和Transact-SQL语言的查询语句的理解。
二、实验设备与环境使用SQL Server 数据库管理系统提供的SSMS 和查询编辑器。
三、实验内容1、创建教材P82中的学生-课程数据库,并创建相应的数据表及完整性约束。
(需要在表中添加相应的记录(10条以上),请自行设计)2、在定义的“学生-课程数据库”中,使用T-SQL语句完成以下查询:(1)求计算机系(CS)学生的学号和姓名。
(2)求选修了数学的学生学号、姓名和成绩。
(3)求选修1号课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学生的学号。
(5)查询计算机系的姓刘且单名的学生的信息。
(6)查询至少选修两门课程的学生学号。
(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。
(8)查询选修“数据库”课程,且成绩在80分以上的学生的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。
(请分别用exists和in完成该查询)(10)查询选修了全部课程的学生的姓名。
(请至少写出两种查询语句)(11)求选修了学生“200215121”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与“张立”同性别并位于同一个系的所有同学的姓名。
(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。
(17)对被两名以上学生所选修的课程统计每门课的选课人数。
要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。
数据库原理实验报告

计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级:2012级本科班学号:07173姓名:指导教师:2014年06月18 日实验项目列表计算机与信息学院实验报告纸实验一数据库创建与管理一、实验目的与要求1、熟练掌握SSMS中界面方式创建和管理数据库。
2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。
3、熟练掌握备份和还原数据库。
二、实验内容1、界面方式创建和管理数据库(1)创建数据库(2)修改数据库(3)删除数据库2、利用企业管理器备份和还原数据库(1)备份数据库(2)还原数据库3、T-SQL语句方式创建和管理数据库(1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJON(NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' ,SIZE = 3,MAXSIZE = 10,FILEGROWTH = 10%)LOG ON(NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,SIZE = 1,FILEGROWTH = 10%)(2)修改SPJ数据库:在查询分析器中输入以下语句并运行ALTER DATABASE SPJMODIFY FILE(NAME='SPJ_Data',SIZE=4,ALTER DATABASE SPJADD FILE(NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1,MAXSIZE=10,FILEGROWTH=10%)(3)删除SPJ数据库:DROP DATABASE SPJ4、界面方式创建数据库XSBOOK,写出操作过程。
单表查询实验报告

《数据库系统概论》实验报告实验名称:单表查询实验人:实验地点:实验楼317实验日期:2009-10-5一、实验准备1.硬件及软件环境要求为了使该实验顺利进行,需要有一台计算机,计算机必须安装Windows 2000、Windows XP或Windows NT操作系统,还必须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)。
实验开始之前,必须将实验1.2节中创建好的SCDB数据库和ShiYan数据库附加到当前SQL数据库服务器中。
2.本实验涉及的主要SQL语句的语法格式(1) SELECT子句指定由查询返回的列。
SELECT [ ALL | DISTINCT ][ TOP n [ PERCENT ] [ WITH TIES ] ]< select_list >< select_list > ::={ * |{table_name|view_name|table_alias}.*|{column_name|expression|IDENTITYCOL|ROWGUIDCOL}[[AS]column_alias] | column_alias = expression } [ ,...n ]【说明】ALL:默认设置,指定在查询结果集中可以显示重复行。
DISTINCT:指定在查询结果集中不显示重复行,空值被认为相等。
TOP n:指定只从查询结果集中输出前n行。
PERCENT:指定只从查询结果集中输出前n%行,当指定时带PERCENT,则n 的值必须介于0~100之间。
WITH TIES:指定从基本查询结果集中返回附加的行。
如果使用了ORDER BY 子句,则只能使用TOP或WITH TIES选项。
select_list:指定查询列或列表达式(即查询列表)。
各查询列表之间以逗号分隔。
*:指定在FROM 子句内返回所有表和视图内的所有列。
列按FROM 子句所指定的由表或视图返回,并按它们在表或视图中的顺序返回。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实 验 报 告
专业:计算机应用技术 班级:08计专(1)班 学号:200813131134 姓名:熊少容 课程名称:数据库原理与应用 学年200 9-201 0学期1 /2 课程类别 专业必修 限选 任选 实践 实验时间2010 年 05月 20日 实验名称
实验三 单表查询
实验目的和要求
1. 了解查询的概念和方法
2. 掌握查询分析器的使用方法
3. 掌握select 子句,from 子句的用法
4. 掌握where 子句,order by 子句,group by 子句的用法
5. 掌握top ,distinct ,in ,between 和link 等关键字的用法
6. 掌握select 语句在单表查询中的应用
7. 掌握利用企业管理器对表进行简单数据查询的实现方法
实验软硬件要求
安装windows xp 操作系统和 SQL Server 2000的计算机
实验内容、方法和步骤(可附页)
见附页
实验结果(可附页)
见附页
小结
通过本次实验,我了解了查询的概念和方法,掌握查询分析器的使用方法,对select 子句,from 子句, where 子句,order by 子句,group by 子句的用法有了一定的了解,也掌握了top ,distinct ,in ,between 和link 等关键字的用法以及select 语句在单表查询中的应用,还学会了利用企业管理器对表进行简单数据查询。
评定成绩: 批阅教师: 年 月 日
√
√
实验内容,方法和步骤:
实验内容:
针对实验数据库shiyan,完成以下单表查询操作:
查询为工程J1供应商零件的供应商号SNO。
1.查询为工程J1供应商零件J1的供应商号SNO。
2.找出所有供应商的名称和所在城市。
3.找出零件的所有信息,以及仅找出零件的颜色和重量。
4.找出使用供应商S1所供应零件的工程号码。
5.找出为供应商零件的总数量不低于500的供应商号码及供应总数量结果按供应商号码分类并且按供应总数量降序排列。
6.从J表中分别检索出第1条及前33%的工程信息。
7.统计P表中颜色为红色的零件个数,并指定该查询列的名称为“红色零件数”
8.查询P表中个零件的编号,名称及重量按86%计算后的信息,其中重量按86%计算后的查询列名改为“零件净重”。
9.查询SPJ表,要求查询结果式样为“供应商S1为工程项目J1供应零件P1的数量为300。
10.Chaxun S表STATUS值大于20且小于40,或SNAME字段值的第一个字为“精”或第三个字为“益”或“民”的供应商信息。
11.查询J表中JNAME值为三建和机车厂的工程项目信息。
12.利用企业管理器检索出SPJ表中前5条记录,检索结果按QTY值见序排列。
实验方法,步骤以及实验结果:
实验1
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
select distinct sno
from spj
where jno='j1'
执行以上脚本程序,显示实验结果为:
实验2
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select sno
from spj
where jno='j1'and pno='p1'
执行以上脚本程序,显示实验结果为:
实验3
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select sname,city
from s
执行以上脚本程序,显示实验结果为:
实验4
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select *
from p
select color,weight
from p
执行以上脚本程序,显示实验结果为:
实验5
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select jno
from spj
where sno='s1'
执行以上脚本程序,显示实验结果为:
实验6
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
go
select sno,sum(qty) TotalQTY
from spj
group by sno
having sum(qty)>=500
order by TotalQTY desc
执行以上脚本程序,显示实验结果为:
实验7 (1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select top 1 *
from j
select top 33 percent *
from j
执行以上脚本程序,显示实验结果为:
实验8
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select count(color) as '红色零件数'
from p
where color='红'
执行以上脚本程序,显示实验结果为:
实验9
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select pno,pname,weight*0.86 as'零件净重'
from p
执行以上脚本程序,显示实验结果为:
实验10
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
select '供应商'+sno+'为工程项目'+jno+'供应零件'+pno+'的数量为'+ str(qty) from spj
执行以上脚本程序,显示实验结果为:
实验11
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
select *
from s
where status between 20 and 40
执行以上脚本程序,显示实验结果为:
实验12
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
select *
from j
where jname in('三建','机车厂')
执行以上脚本程序,显示实验结果为:
实验13
1)打开数据库shiyan的数据表→右击sp j→选择“打开表”下的“查询”弹出如下对话框:
→在脚本编辑处输入如下脚本:SELECT top 5 *
FROM spj order by qty desc
→单击运行后显示如下结果:。