问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库实验:统计查询和组合查询

发布网友 发布时间:2022-04-30 12:02

我来回答

4个回答

懂视网 时间:2022-04-30 16:24

【实验目的】:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识。
【实验要求】:掌握利用Select语句进行各种查询操作:单表查询、多表连接及查询、嵌套查询、集合查询等。
【实验内容】
一、单表查询
1.简单查询
打开查询分析器,根建立teacher表,并加入数据。从teacher表中分别检索出教师的所有信息,以及仅查询教工号、姓名和职称。语句如下:

select * from teacher
select tno, tname from teacher

如要查询时改变列标题的显示,则从teacher表中分别检索出教师教工号、姓名、电子邮箱信息并分别加上‘教师姓名‘、‘教工号‘、‘电子邮箱‘等标题信息。

select tno 工号, tname 姓名, temail 电子邮箱 from teacher

使用TOP关键字:分别从teacher中检索出前2条及前面67%的教师的信息。

select top 2 * from teacher
select top 67 percent * from teacher

使用DISTINCT关键字:从teacher表中检索出教师的职称并且要求显示的职称不重复。select  distinct tposition   from  teacher

2.用计算列:将teacher表中各教师的姓名、教工号及工资按95%发放的信息,第2条语句将工资按95%发放后列名该为‘预发工资‘。语句如下:

select tno tname ,tsalary*0.95 from teacher
select tno工号, tname姓名, tsalary*0.95 AS 预发工资 from teacher

3.使用ORDER BY子句对查询的结果进行排序
使用ORDER BY语句可以对查询的结果进行排序,ASC、DESC分别是升序和降序排列的关键字,系统默认的是升序排列。从teacher表中查询工资大于2800的教师的教工号、姓名,并按升序排列,语句如下:

select tno, tname from teacher
WHERE tsalary>2800 order by tsalary ASC

4.条件查询
(1)使用关系运算符:从teacher表中查询出工作量大于288的教师资料,语句如下:

select * from teacherWHERE tamount>288 order by tamount DESC

(2)使用BETWEEN AND谓词:从teacher表中查询出工作量界于144和288之间的教师资料,语句如下:

select * from teacher WHERE tamount between 144 and 288

(3) 使用IN谓词:从teacher表中查询出职称为“教授”或“副教授”的教师的教工号、教师姓名、职称及家庭住址,语句如下:

select tno,tname,tposition, taddress from teacher
WHERE tposition in (‘教授‘,‘副教授‘)

(4)使用LIKE谓词:从teacher表中分别检索出姓‘王‘的教师的资料,或者姓名的第2个字是‘莉‘或‘轩‘的教师的资料,语句如下:

select * from teacher WHERE tname like ‘王%‘
select * from teacher WHERE tname like ‘_[莉,轩]%‘

 二、多表查询
数据库各表中存放着不同的数据,用户经常需要用多个表中的数据来组合提炼出所需要的信息,如果一个查询需要对多个表进行操作,就称为关联查询,关联查询的结果集或结果表称为表之间的连接。关联查询实际上是通过各各表之间共同列的关联来查询数据的,它是关系数据库查询最基本的特征。
1.SQL 2000兼容2种连接形式:用于FROM子句的ANSI连接语法和用于WHERE子句的SQL SERVER连接语法形式。
从student、course和SC三张表中检索学生的学号、姓名、学习课程号、学习课程名及课程成绩,语句如下:

select student.sno, sname, cno, grade
from student inner join SC on student.sno=SC.sno

select student.sname,sc.grade
from student,sc
WHERE student.sno=sc.sno 

select student.sno,student.sname,sc.cno,course.cname,sc.grade
from student,sc,course 
WHERE student.sno=sc.sno and sc.cno=course.cno

2.使用UNION子句进行查询
使用UNION子句可以将一个或者多个表的某些数据类型相同的列显示在同一列上。如从teacher表中列出教工号、姓名并从student表中列出学号及学生姓名,语句及查询结果如下:

select sno AS 学号或工号, sname AS 姓名 from student 
union 
select tno, tname from teacher

3.用GROUP子句进行查询 
如果要在数据检索时对表中数据按照一定条件进行分组汇总或求平均值,就要在SELECT语句中与GROUP BY子句一起使用集合函数。使用GROUP BY子句进行数据检索可得到数据分类的汇总统计、平均值或其他统计信息。
(1) 使用不带HAVING的GROUP BY子句。
使用不带HAVING 的GROUP BY子句汇总出SC表中的学生的学号及总成绩,语句如下:

select ‘学号‘=sno,‘总成绩‘=SUM(Grade) 
from SC
group by Sno

(2)使用带HAVING 的GROUP BY子句。
使用带HAVING 的GROUP BY子句汇总出SC表中总分大于450分的学生的学号及总成绩,语句如下:

select ‘学号‘=sno,‘总成绩‘=SUM(Grade) from SC
group by Sno 
Having SUM(Grade)>160 

4.用COMPUTE和COMPUTE BY子句进行查询
使用COMPUTE和COMPUTE BY 既能浏览数据又能看到统计的结果。
(1) 用COMPUTE子句汇总出SC表中每个学生的学号及总成绩,语句如下:

select ‘学号‘=sno,‘成绩‘=Grade from SC 
order by sno COMPUTE SUM(Grade)

(2)用COMPUTE BY 子句按学号汇总出SC表中每个学生的学号及总成绩,语句如下:

select ‘学号‘=sno,‘成绩‘=Grade from SC 
ORDER BY Sno COMPUTE SUM(Grade) by sno

观察执行COMPUTE和COMPUTE BY子句的结果有什么不同?

5.嵌套查询
(1) 使用IN或NOT IN关键字
使用IN关键字查询出j10011班所有男生的学号、课程号及相应的成绩,语句如下:

select SC.sno , SC.cno,SC.grade
FROM SC 
WHERE sno IN 
 ( SELECT sno FROM student
 WHERE Sclass=‘j10011‘ AND Ssex=‘男‘)

使用IN关键字查询出与教师不同名的学生(学号,姓名),语句如下:

select sno 学号, sname 姓名 
from student 
where sname not in (select tname from teacher)

(2) 使用EXISTS 或NOT EXISTS关键字。

使用EXISTS关键字查询出‘j10011‘班的学生的学号、课程号及相应的成绩,语句如下:

SELECT SC.sno,SC.cno,SC.grade 
FROM SC
WHERE EXISTS 
( SELECT * FROM student
 WHERE SC.sno=student.sno AND student.sclass=‘j10011‘ )



数据库表的查询操作(实验二),数据库表查询实验

标签:

热心网友 时间:2022-04-30 13:32

1 统计各出版社出版图书的数量。
SELECT
出版社.出版社名称,
COUNT(图书.书号) AS 出版图书的数量
FROM
图书, 出版社
WHERE
图书.出版社编号 = 出版社.编号
GROUP BY
出版社.出版社名称

2 列出多人合著的图书书号和价格。
SELECT
书号,
价格
FROM
图书
GROUP BY
书号,
价格
HAVING
COUNT(作者编号) >= 2

3 列出高教出版社出版的最贵图书信息。
SELECT
图书.*
FROM
图书, 出版社
WHERE
图书.出版社编号 = 出版社.编号
AND 出版社.出版社名称 = '高教出版社'
AND 图书.价格 IN (SELECT MAX(价格) FROM 图书 T WHERE T.出版社编号 = 出版社.编号)

4 列出所有图书都是30元以上的出版社名称。
SELECT
出版社.出版社名称
FROM
图书, 出版社
WHERE
图书.出版社编号 = 出版社.编号
GROUP BY
出版社.出版社名称
HAVING
SUM ( CASE WHEN 图书.价格 > 30 THEN 0 ELSE 1 END ) = 0

热心网友 时间:2022-04-30 14:50

针对你的问题数据库实验:统计查询和组合查询,
提供一份的适用于初学者的代码对你来说是有必要的,
还有别的要求么,可以与我们联系,
告诉我你的问题和Email,
有时间可以帮你,肯定救急,
使用百度_Hi给我留言,

此回复针对所有来访者和需求者有效,

ES:\\3A1085FD181AEDA1C3BFAB175E7FB378

热心网友 时间:2022-04-30 16:24

1、
select a.编号,a.名称,sum(b.数量)
from 药品 a,处方 b
where a.编号=b.药品编号
group by a.编号,a.名称

2、
select 厂商 from 药品 group by 厂商 having count(1)>=3

3、
select * from 医生 where 编号 not in (select distinct 医生编号 from 处方 where 药品编号 in (select 编号 from 药品 where 名称 like '%青霉素%'))
请参考
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怀孕甲状腺激素偏高正常吗 怀孕检查甲状腺素偏高是什么原因引起的 怀孕了甲状腺功能偏高是怎么回事 怀孕甲状腺高是什么引起的 孕中期促甲状腺激素偏高是什么原因 重钢别墅靠谱吗 重刚别墅的致命缺点 重钢别墅的优点和缺点各是什么 积食可以吃什么 车子换了点火线圈,分缸线,火花塞以后车子打不着。这是什么原因 三只松鼠中乐儿哪一集知道果果是松鼠侠的? 知道的请留言,急求正确答案 忘大家帮帮忙,在此谢谢大家了 三只松鼠:松鼠们很好奇,果果来到茶馆,为什么不叫乐儿 你知道中国银行信用卡办卡进度该怎么查询吗? 求破云txt谢谢 中国银行信用卡补办了如何查询进度? 求破云by淮上txt 下载的酷我K歌安装到桌面上了,可是打不开怎么办? 我要将全民K歌安装到桌面 全民K歌为什么不能在桌面上显 recovery\windowsRE\winRE.wim是什么东西? win8,无法打开系统,用高级选项映像恢复怎么恢复,有映像文件 如何用WIM恢复镜像安装EFI启动的Win8.1 winre.wim是什么 win10安装版的系统进入高级启动里面的系统映像恢复就这样是不是winre.wim文件错了吖? winre.wim能删除吗 win10重置显示找不到恢复环境怎么办? WIN7下WINRE.WIM这个文件到底在哪里 winre.wim 是启什么什么作用的 余额宝转到银行卡的过程怎么取消 我炒菜发了个朋友圈男生说可惜不是她怎么高情商回复 爱回家的乐儿最后和谁一起 高分给女儿起个好听的名 1.零儿欠小剑什么?2.乐儿欠依韵什么?3.莫是谁,和喜儿紫衫有什么关系?4.天盟谁创建的,目的是什么? 爱回家要结局了,裘亚域出席婚礼,乐儿和裘亚钰身份成谜,兰姨是否凉粉妈,悬疑悬疑,刺激刺激。谁能解答 腾讯会员要开摄像头吗 给我外甥女起个小名! 我看星海和赛乐儿钢琴 这俩个我要怎么选择啊 4399皮卡堂29服什么时候会开?另外我打算再为了29服创一个果果家族。就加入。 傲世九重天里的楚乐儿和莫天机的这段感情让我很纠结,本来满心欢喜的等着乐儿和楚阳的兄妹恋,但等来的却 傲世九重天,作者一开始把楚乐儿写的太好了,无法直视莫天机与楚乐儿在一起,楚阳和莫轻舞有个前世啊!莫 范仲淹岳阳楼记一文中通过禽鸟乐儿描绘春和景明的句子是 赛乐儿和雅马哈如何选择? 主板上的wellsburg是什么主板? x99主板上的wellsburg声卡和独立声卡比哪个好? 我这电脑玩绝地求生怎么设置? 这套配置怎么样多少价位? 请问一下为什么我这个配置开4个虚拟机20开梦幻西游后前面三个虚拟机就会有一个虚拟机变的很卡? 懂电脑配置的大佬帮我看看电脑? 一样配置的电脑为什么多开比别人少三分一? core i7 4790是八核吗