数据库实验二-简单查询和连接查询

合集下载

数据库原理及应用 数据库查询 实验二

数据库原理及应用 数据库查询 实验二

《数据库原理及应用》实验报告实验名称数据库查询实验室502 实验日期求选修了课程的学生学号。

Use 学生课程GoSelect 学号from 学生where 学号in (select 学号from where 课程号 is not null)求选修1102课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。

Use 学生课程GoSelect 学号,成绩 from 课程,选课 where 课程.课程号and 课程号=1102 order by 成绩 desc,学号 asc求选修课程1102且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。

Use 学生课程GoSelect 学号,成绩*0.8 as 成绩 from选课 where 成绩 between 80 and求数学系或计算机系姓张的学生的信息。

Use 学生课程GoSelect * from 学生,课程,选课 where 学生.学号=选课.学号 and 课程号=课程.课程号and 姓名like ’张%’and (所在系=’数学’在系=’计算机’)求缺少了成绩的学生的学号和课程号。

Use 学生课程GoSelect 学号,课程号 from 选课 where 成绩 is null连接查询实验语句在“学生选课”数据库中实现下列数据连接查询操作。

查询每个学生的情况以及他(她)所选修的课程。

Use 学生课程GoSelect * from 学生,选课,课程 where 学生.学号=选课.学号课程号=课程.课程号求学生的学号、姓名、选修的课程名及成绩。

Use 学生课程GoSelect 学号,姓名,课程名,成绩 from 学生,选课,课程 where学生求选修1105课程且成绩为90分以上的学生学号、姓名及成绩。

Use 学生课程GoSelect 学号,姓名,成绩 from 学生,选课 where 学生.学号=选课and 课程号=1105 and 成绩>90查询每门课的选课人数。

数据库实验三报告_简单查询和连接查询实验

数据库实验三报告_简单查询和连接查询实验

实验三、简单查询和连接查询实验简单查询和连接查询实验是数据库的基本查询操作,简单查询是只涉及到一个表(基本表或视图)的查询,连接查询是涉及两个表以上的数据连接查询。

1.实验内容和实验要求1.1实验目的了解SQL Server查询分析器的使用方法,加深对SQL 和Transaction-SQL语言的查询语句的理解;掌握表的数据简单查询、数据排序和数据连接查询的SQL表达和查询分析操作方法。

1.2实验内容(1)简单查询实验用SQL表达简单查询操作,包括投影、选择条件表达、数据排序和使用临时表等,通过SQL Server 查询分析器输入,并显示正确结果。

(2)连接查询实验用SQL表达连接查询操作,包括等值连接、自然连接、一般连接等,通过SQL Server 查询分析器输入,并显示正确结果。

1.3实验要求(1)简单查询实验在学生-课程库中,用Transaction-SQL语句表示下列操作,并通过查询分析器实现其查询操作:①求数学系学生的学号和姓名;select 学号,姓名from 学生where 所在系='数学系'S7 吴非S8 丁玉S9 赵名②求选修了课程的学生学号;select distinct 学号from 选课S1③求选修了C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同,则按学号的升序排列;select 学号,成绩from 选课where 课程号='C1'order by 成绩desc,学号asc;S2 93S4 89S1 60S3 NULL④求选修了课程C1且成绩在80-90分之间的学生学号和成绩,将成绩乘以系数0.8输出;select 学号,成绩*0.8from 选课where 课程号='C1' and 成绩between 80 and 90;S4 71.2⑤求数学系或计算机系姓张的学生的信息;select *from 学生where 所在系in('数学系','计算机系') and 姓名like '张%';S2 张小红21 男计算机系S4 张三21 男计算机系⑥求缺少了成绩的学生的学号和课程号。

数据库查询实验报告doc

数据库查询实验报告doc
3. 发布执行命令,查看查询结果;若是结果不正确,进行修改,直到正确为止。
4. 查询分析器及利用方式。
查询分析器是在开发数据库应用
系统时利用最多的工具。查询分析器的
要紧作用是编辑Transact-SQL,将其发
送到效劳器,并将执行结果及分析显示
出来(或进行存储)。查询分析功能主
要通过测试查询本钱,判定该查询是不是
from 学生表,班级表
where 学生表.班级编号=班级表.班级编号
and 学号 in(
select 学号
from 选课表
where 课程编号 in (
select 课程编号
from 课程表
where 课程名='数据库'
)
);
/*查询学生XX15121选修课程的总学分。*/
SELECT SUM(学分) 总学分
)=(select count(*) from course)
--法三
select Sname
from student
where Sno in
(
selhaving count(*) = (select count(*) from course)
)
--(11)求选修了学生“”所选修的全数课程的学生学号和姓名。
where cno not in
(
select cno from student s,sc
where s.sno=sc.sno and sname like '王%' and co=sco
)
--(10)查询选修了全数课程的学生的姓名。(请至少写出两种查询语句)
--法一
select Sname
from student s

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数据查询

数据库原理实验2数据查询

课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。

四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。

一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。

这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。

1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。

这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。

1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。

其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。

1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。

其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。

1.5查询选修了课程的学生学号。

其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。

2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。

其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。

实验2 数据库的简单查询和连接查询实验

实验2  数据库的简单查询和连接查询实验

实验2 数据库的简单查询和连接查询实验1.实验目的加深对SQL语言的查询语句的理解。

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

2.实验内容1.简单查询操作。

该实验包括投影、选择条件表达,数据排序,使用临时表等。

具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现其数据查询操作。

1.查询全体学生的学号和姓名2.查询全体学生的详细记录3.查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示所有系名。

4.查询选修了课程的学生学号,去掉结果中的重复行。

5.查询所有年龄在20~23岁之间的学生姓名、系别和年龄。

6.查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别。

7.查询所有姓刘的学生的姓名、学号和性别。

8.查询DB_Design课程的课程号和学分。

9.查询计算机科学系年龄在20岁以下的学生姓名。

10.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。

11.计算1号课程的学生最高分数。

12.查询选修了2门以上课程的学生学号。

13.查询缺少了成绩的学生的学号和课程号。

2.连接查询操作。

该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。

14.查询每个学生的情况以及他所选修的课程15.求学生的学号、姓名、选修的课程及成绩16.求选修课程号为2且成绩在90以上的学生学号、姓名和成绩17.查询每一门课程的间接先行课(即先行课的先行课)。

实验训练2数据查询操作

实验训练2数据查询操作

实验训练2:数据查询操作实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符、函数、谓词,练习Select语句的操作方法。

实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。

分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。

(2)查询ID为1的订单。

分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。

【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。

分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。

【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。

分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。

(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。

分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。

【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。

分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。

(2)查询今年新增的所有会员,结果按照用户名字排序。

分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。

【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。

分析:订单表中包含每个订单的订单总价和用户ID。

现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。

结构化查询语言答案

结构化查询语言答案

结构化查询语言答案试验二结构化查询语句一、简单查询1.查询XS表中各个同学的所有信息。

Select * from xs2.查询XS表中各个同学的姓名、专业名和总学分。

select xm,zym,zxf from xs;3.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为“学号”、“姓名”和“总学分”。

Select xh as 学号, xm as 姓名,zxf as 总学分 from xs;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。

Select distinct zym from xs;5.查询XS表中每个学生的学号、姓名和年龄信息。

Select xh,xm,to_number(to_char(sysdate,'yyyy'))-to_number(to_char(cssj,'yyyy')) as nl from xs;6.查询XS表中专业为“计算机”的同学的情况。

Select * from xs where zym='计算机';7.查询XS表中1980年出生的学生姓名和专业情况。

Select xm,zym from xs where to_number(to_char(cssj,'yyyy'))=1980;8.查询XS表中专业名为“计算机”或“电子”或“应用数学”的学生的情况。

Select * from xsWhere zym in ( '计算机','电子','应用数学');9.查询XS表中姓“张”且单名的学生的情况。

Select * from xsWhere xm like '张_';10.查询XS表中总学分尚未确定的学生情况。

Select * from xsWhere zxf is null11.查询XS表中专业为“计算机”且总学分尚未确定的学生情况。

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

实验二:简单查询和连接查询
(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据
的更新。

(二)实验内容:
①查询所有“天津”的供应商明细;
②查询所有“红色”的14公斤以上的零件。

③查询工程名称中含有“厂”字的工程明细。

(一)完成下面的连接查询:
①等值连接:求s表和j表的相同城市的等值连接。

②自然连接:查询所有的供应明细,要求显示供应商、零件和工程
的名称,并按照供应、工程、零件排序。

③笛卡尔积:求s和p表的笛卡尔积
④左连接:求j表和spj表的左连接。

⑤右连接:求spj表和j表的右连接。

(三)完成情况(附上设计的SQL语句),语句与查询结果:
①查询所有“天津”的供应商明细;
Select *
From S
Where CITY=‘天津’
②查询所有“红色”的14公斤以上的零件。

Select *
From P
Where COLOR=‘红’and WEIGHT>14
③查询工程名称中含有“厂”字的工程明细。

Select *
From J
Where JNAME NOT IN(‘三建’,‘一汽’)
(二)完成下面的连接查询:
①等值连接:求s表和j表的相同城市的等值连接。

Select S.*,J.*
From S,J
Where
S.CITY=J.CITY
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程
的名称,并按照供应、工程、零件排序。

Select SNAME,JNAME,PNAME
From S,J,P,SPJ
Where SPJ.SNO=S.SNO and SPJ.JNO=J.JNO and SPJ.PNO=P.PNO
③笛卡尔积:求s和p表的笛卡尔积Select *
From
s,p
④左连接:求j表和spj表的左连接。

Select SPJ.JNO,JNAME,PNO,QTY,CITY FROM J LEFT JOIN SPJ ON(J.JNO=SPJ.JNO)
⑤右连接:求spj表和j表的右连接。

Select SPJ.JNO,JNAME,PNO,QTY,CITY
FROM SPJ RIGHT JOIN J ON(J.JNO=SPJ.JNO)
(四)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。

然后分析错误原因,并给出解决办法。

1、左连接时,输入如下的sql语句,
Select SPJ.JNO,JNAME,PNO,QTY,CITY
FROM J LEFT JOIN SPJ ON(J.JNO=SPJ.JNO)
提示的错误为:在关键字 'left' 附近有语法错误。

解决办法:去掉“left”。

2、在做自然连接时,查询出来的结果有一百多行。

解决办法:仔细检查之后发现,少了一个连接Select SPJ.PNO=P.PNO (五)回答思考题提出的问题,
答:左连接和右连接的执行结果是一致的,因为J表左连接SPJ也即是SPJ 表右链接到J表。

(六)实验总结:心得体会,建议等。

通过本次实验,我发现自己对课本上的知识还没理解透彻,前面的知识也忘了不少了,如当问到笛卡尔积时,就感觉有点陌生了,不知道从哪着手。

相关文档
最新文档