实验三 数据查询

合集下载

3数据库查询实验(1)

3数据库查询实验(1)

实验三数据库查询实验(1)数据库的简单查询和连接查询实验课时安排:2课时一、实验目的和要求使学生掌握SQL Server查询分析器的使用方法.加深对SQL和Transact-SQL语言的查询语句的理解。

熟练掌握简单表的数据查询、数据排序和数据联结查询的操作方法。

二、实验内容1 简单查询操作该实验包括投影、选择条件表达、数据排序、使用临时表等。

2 连接查询操作该实验包括等值连接、自然连接、求笛卡尔积、一般连接、外连接、内连接、左连接、右连接和自连接等。

三、实验方法1 将查询需求用Transact-SQL语言表示。

2 在SQL Server查询分析器的输入区中Transact-SQL查询语句。

3 设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。

4 发布执行命令,查看查询结果.如果结果不正确,进行修改.直到正确为止。

5 查询分析器及使用方法。

查询分析器是在开发数据库应用系统时使用最多的工具。

查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储).查询分析功能主要通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。

在查询生成器中的左边窗口是对象测览器,其中按树结构列出了数据库对象;右上方是SQL代码区域.用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果、对于T-SQL语句的执行结果,在结果区中可以有4种不同的输出形式:标准执行将结果直接显示在结果区网格执行将结果以表格形式显示在结果区.计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。

上述输出形式,可以通过菜单或按钮选择。

四、实验步骤1 基本操作实验(1)简单查询实验l)用Transact-SQL语句表示下列操作.在学生选课库中实现其数据查询操作.①求数学系学生的学号和姓名。

实验三 数据库查询

实验三 数据库查询
2、当在两表中建立查询时,一定要注意要通过两表共有的字段进行连接。
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和选课类别;

实验三 数据查询结果

实验三   数据查询结果

实验三数据查询一、实验目的掌握查询语句的使用方法,重点掌握连接查询和嵌套查询,理解查询的执行过程。

二、预备知识查询语句的基本格式如下:SELECT <目标列名序列> --需要哪些列FROM <数据源> --来自于哪些表[WHERE <检索条件>] --根据什么条件[GROUP BY<分组依据列>] --分组[HA VING <组提取条件>] --筛选[ORDER BY<排序依据列>] --排序三、实验内容1、还原实习二中创建的“gongcheng”数据库和实习一中创建的“学生选课管理”数据库。

2、在“gongcheng”数据库中完成以下查询:(1)查询所有供应商所在的城市。

查询语句:select cityfrom s查询结果:(2)查询零件重量在10-20之间(包括10和20)的零件名和颜色。

查询语句:select pname,colorfrom Pwhere Weight between 10 and 20查询结果;(3)查询工程项目的总个数。

select count(pno)from p查询结果:(4)查询所有零件的平均重量。

select AVG(weight)from p查询结果:(5)查询供应商S3供应的零件号。

select p.pnofrom s,P,spjwhere s.Sno=SPJ.Sno and P.Pno=SPJ.Pno and s.Sno='s3' 查询结果为:(6)查询各个供应商号及其供应了多少类零件。

select s.sno,COUNT(distinct p.pno)from s,P,spjwhere s.Sno=SPJ.Sno and P.Pno=SPJ.Pnogroup by s.sno(7)查询供应了2类以上零件的供应商号。

select s.sno,COUNT(distinct p.pno)from s,P,spjwhere s.Sno=SPJ.Sno and P.Pno=SPJ.Pnogroup by s.snohaving COUNT(distinct p.pno)>2查询结果为:(8)查询零件名以“螺”字开头的零件信息。

实验三数据查询(参考答案)

实验三数据查询(参考答案)

实验三数据查询(参考答案)实验目的□学会利用T_SQL语句中SELECT进行数据查询。

□掌握利用T_SQL 语句进行数据查询的基本方法。

实验内容有以下数据表表名:tudent属性列t_idt_nmt_e某t_birtht_coret_datet_fromt_dpidt_mnt使用T-SQL语句进行数据查询(注:学生班级为学号的前6位)1.显示所有学生的学号、姓名、性别、入学年份和班级(学号前6位)。

Selectt_id学号,t_nm姓名,t_e某性别,year(t_date)入学年份,left(t_id,6)班级Fromtudent2.显示前25%条学生记录信息。

Selecttop25percent某fromtudent3.查询tudent表中2022年及以后入学的学生信息。

Select某fromtudentwhereyear(t_date)>=20224.查询选修了1002号课程且成绩在60以下的学生学号。

Selecttudent.t_idfromtudentjoinlt_coueontudent.t_id=lt_coue. t_idWherec_id='1002'andcore<605.查询所有由三个字组成的“王”姓学生信息。

Select某fromtudentwheret_nmlike'王__'6.查询选修了1001号课程且成绩在60到80之间的学生选课信息。

Select某fromlt_couewherec_id='1001'andcorebetween60and807.查询所有张,王,李,赵姓的学生的学号、姓名、性别。

Selectt_id,t_nm,t_e某fromtudentwheret_nmlike'[张王李赵]%'8.查询陕西籍学生,将结果保存在新表t_han某i。

Select某intot_han某ifromtudentwheret_fromlike'%陕西%'9.查询选修了“数据结构”课程的学生学号、姓名及课程成绩。

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

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

数据库原理实验报告实验三数据查询班级:×××姓名:×××学号:×××数据查询一、[实验目的]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语句进行数据查询和创建视图的方法,进一步提高对数据库的操作能力。

二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统下进行实验。

三、实验内容本实验主要包括以下内容:1. 数据查询:使用SELECT语句查询数据库中的数据,并进行排序、过滤和聚合操作。

2. 视图操作:创建和删除视图,以及对视图进行查询和更新操作。

四、实验步骤与结果1. 数据查询首先,我们需要连接到数据库,并选择要查询的表。

假设我们选择的表名为"students",包含以下字段:学号、姓名、性别、年龄、班级。

a. 查询所有学生的信息:```sqlSELECT * FROM students;```执行以上SQL语句后,我们可以得到所有学生的信息,包括学号、姓名、性别、年龄和班级。

b. 查询男生的信息:```sqlSELECT * FROM students WHERE 性别 = '男';```执行以上SQL语句后,我们可以得到所有性别为男的学生的信息。

c. 查询年龄小于20岁的学生的姓名和班级:```sqlSELECT 姓名, 班级 FROM students WHERE 年龄 < 20;```执行以上SQL语句后,我们可以得到年龄小于20岁的学生的姓名和班级。

d. 查询学生按照年龄降序排列的结果:```sqlSELECT * FROM students ORDER BY 年龄 DESC;```执行以上SQL语句后,我们可以得到按照年龄降序排列的学生信息。

e. 查询学生按照班级分组,并统计每个班级的人数:```sqlSELECT 班级, COUNT(*) AS 人数 FROM students GROUP BY 班级;```执行以上SQL语句后,我们可以得到每个班级的人数统计结果。

实验三 数据查询

实验三 数据查询

实验三数据查询【实验目的】1.学会使用企业管理器查询数据2.掌握使用SQL语句查询数据【实验内容】1.使用企业管理器进行数据查询2.在查询分析器内使用SQL语句进行数据查询【实验准备】1.复习与本次实验内容相关知识2.复习查询分析器的使用3.对本次实验中要求自己完成的部分做好准备(第二部分,请预先写出来) 【实验步骤】1.用企业管理器进行数据查询o启动企业管理器,注册连接。

o展开服务器-->展开数据库-->展开自己的数据库-->单击表。

o在需要查询的表上单击右键,在弹出的快捷菜单中选择"打开表(O)",其下级菜单即为查询命令:▪返回所有行(A) --该命令以网格方式显示指定表的所有记录▪返回首行(T)... --该命令以交互方式输入要返回的行数▪查询(Q) --打开查询窗口,以图形方式设计查询oo请从学生表(U_STUDENTS)上右击,使用"查询(Q)"命令建立一个查询,请选中学号(ID)、姓名(NAME)两个字段,再单击上面的执行按钮(!按钮)执行查询,查看结果。

oo再在关系图窗格内右击鼠标在弹出菜单中选择添加表,添加班级表(U_CLASSES),在班级表的ID字段上按下鼠标左键,拖至学生表的CLASS_ID上建立关联,在班级表上选中班级(CLASS)、系(DEPARTMENT)字段,再在网格窗格上选择姓名(NAME)行上选择排序类型为"升序"。

执行该查询,查看结果。

结果如下图所示。

(注意查看SQL窗格内的SQL查询语句)oo该操作实现了从班级表、学生表中查询出所有学生的学号(ID)、姓名(NAME)、班级(CLASS_ID)、所在系(DEPARTMENT)的记录数据。

o关闭企业管理器2.用SQL语句查询数据o启动查询分析器o在查询分析器中分别执行下列查询语句(有的语句请自己写出),体会或说明各语句的功能(请将下面的语句复制到查询分析器,逐条执行--要执行一条语句请选中该语句再按F5或单击执行铵钮,如下图所示)。

实验3 数据查询

实验3  数据查询

实验3 数据查询数据查询是数据库的核心操作。

在本实验中,我们学习如何使用SELELCT 查询语句实现单表查询、连接查询、嵌套查询、集合查询及相关操作。

实验3.1 单表查询【实验目的】●熟悉SELECT查询语句各个子句的功能。

●掌握使用SELECT查询语句实现单表查询。

【实验内容】●使用SELECT查询语句对学生管理数据库SCT中三张表(Student、Course、SC)进行单表查询。

●对照教材“3.4.1单表查询”中的例题进行练习。

●Into子句的使用。

【实验步骤】(1)编写SQL语句:SSMS→单击工具栏上的“新建查询”按钮→录入SQL语句。

(2)测试SQL语句:单击工具栏上的“分析”按钮或按<Crtl+F5>组合键对当前SQL语句进行测试,如果语句无误,代码区下方会显示“命令已成功完成”,否则显示错误提示信息。

(3)执行SQL语句:单击工具栏上的“执行”按钮或直接按<F5>键即可执行当前SQL语句,并看到执行结果。

(4)对照教材“3.4.1单表查询”中的例题进行练习,从而熟悉SELECT语句各子句的功能。

示例3.1:查询计算机科学系年龄在20岁以下的学生姓名,见图3.1。

示例3.2:查询平均成绩大于等于90分的学生学号和平均成绩,见图3.2。

图3.1 示例3.1执行结果图3.2 示例3.2执行结果(5)Into子句的使用:在SELECT查询语句中使用into子句,可以把查询结果存放到一个新建立的表中。

示例3.3:利用学生表的数据生成一张女生表gilestudent,见图3.3,之后可在“对象资源管理器”窗格中查看新建的gilestudent表。

图3.3 示例3.3执行结果实验3.2 连接查询连接查询可以使用两种语法形式,一种是在from子句中写出所要连接的表名,而连接条件写在where子句中,从而实现表的连接;另一种是ANSI连接形式,即在from子句中使用join…on关键字,连接条件写在on之后,从而实现表的连接。

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

《数据库原理与应用》实验告书 2013 / 2014 学年第二学期计算机科学与工程学院
2014
实验三数据查询
一、实验目的
1、掌握查询语句的基本组成和使用方法
2、掌握常用查询技巧
2、完成下列查询
(1)查询全体学生的信息。

select * from student
(2)查询“信息系”学生的学号,姓名和出生年份。

select sno,sname,2014-sage from Students where SDEPT ='信息系'
(3)查询考试不及格的学生的学号。

select Distinct Sno from SC where Grade<60
(4)查询无考试成绩的学生的学号和相应的课程号。

select Sno,Cno from SC where Grade is null
(5)将学生按年龄升序排序。

select * from student order by Sage asc
(6)查询选修了课程的学生的学号和姓名。

select distinct student.Sno,Sname from student,SC where
student.Sno=SC.Sno
(7)查询年龄在20-23岁之间的学生的姓名,系,年龄。

select Sname,Sage,Sdept from student where Sage between 20 and 23
(8)查询同时选修了“计算机导论”,“高等数学”课程的学生的学号,姓名。

Select student.Sno,Sname from student,sc,Course where
student.sno=sc.sno and o=o and cname='高等数学' and
student.sno in (select sno from sc where cno=(select cno from course where cname='计算机导论'))
(9)查询姓“张”的学生的基本信息。

select * from student where Sname like '张%'
(10)查询“95211”班学生的选课情况,要求输出学号,姓名,课程名,成绩,按照学号升序排序。

select student.Sno,Sname,Cname,Grade from student,SC,course where student.Sno=SC.Sno and o=o and student.Sno like '95211%' order by student.Sno
(11)查询选修了课程的学生的总人数。

select count(distinct sno) from SC
(12)查询选修了“C05”课程的的学生成绩单,要求输出学号,姓名,成绩,结果按班级升序,成绩降序排列。

select student.Sno,Sname,Grade from student,SC where
student.Sno=SC.Sno and Cno='C05' order by left(student.Sno,5) asc,Grade desc
(13)统计各门课程的成绩,要求输出课程代号,课程名,平均成绩,选修人数。

(成绩为NULL值的不统计)
select o,Cname,avg(Grade),count(Sno) from course,Sc where o=o and Grade is not null group by o,Cname
(14)统计各门课程的不及格人数,要求输出课程代号,课程名,不及格人数。

select o,Cname,count(Sno) from SC,Course where
o=o and Grade<60 group by o,Cname
(15)查询选修平均成绩在75分以上的学生的学号,姓名,所在系。

select sc.sno,sname,sdept from student,sc where
student.sno=sc.sno group by sc.sno,sname,sdept having avg(grade)>75
(16)查询与“王大力”同一个系的学生的基本信息
select * from student where sdept in(select sdept from student where sname='王大力')
(17)查询选修平均分高于所有学生平均分的学生的学号,并按学号升序排列。

select student.Sno from student,SC where student.Sno=SC.Sno group by student.Sno having avg(Grade)>(select Avg(Grade) from SC) order by student.Sno asc
(18)查询未选修“VB”或“数据库基础”两门课的学生的学号,姓名,系名。

(要求用嵌套查询)
select sno,sname,sdept from Student where exists(select * from Course where cname='VB' and not exists(select * from SC where
sno=Student.sno and cno=o and ame!='数据库基础'))
(19)查询选修了全部课程的学生的学号,姓名,系名。

select sno,sname,sdept from student where not exists(select * from course where not exists (select * from sc where sno=student.sno and cno=o ) )
(20)输出“高等数学”课程成绩前三名的学生的学号,姓名,系名
select top 3 student.sno,sname,sdept from student,sc,course where student.sno=sc.sno and o=o and cname='高等数学' order by grade desc
三、实验总结:(20分)
通过本次试验,我对SQL Server查询语句有了更深刻的了解,学会了怎样用查询语句在SQL2005创建的数据库中查询想要的结果。

掌握了查询语句的基本组成及使用方法。

在查询时一定要找准所要查询的表,通过约束条件在表中进行精确查找。

不仅如此,我还了解了查询语句的嵌套使用,能够更好的实现数据查询,值得学习研究。

四、教师评分:。

相关文档
最新文档