目录

一.实验目的

二.实验代码

三.代码汇总


一.实验目的

1.  查询全部商品信息。

2.查询类别为“cn002”的所有商品信息。

3. 查询类别为“cn001”和“cn002”对应的所有商品信息。

4.查询类别为“cn005”且进价大于20的商品信息。

5.查询库存数量小于10的商品号,供应商号,商品名和数量。

6.查询有购买记录学生的学号。

7.查询计算机专业“IT”学生的学号,姓名和年龄

8.查询年龄在22到24岁学生的学号,姓名,学院,专业和年龄

9. 查询姓张的同学的学号,姓名,学院。

10.查询库存数量在20以上的商品信息,并按数量的降序排列。

11.查询库存数量在10以内的商品编号、商品名称、类别号、数量,按类别升序库存数量降序排列结果。

12.查询库存数量排名前三的商品信息。

13. 查询类别为“cn001”库存数量最大的商品,显示商品号,商品名和数量

14.查询管理信息系统专业“MIS”的学生人数。

15.按学院统计各个学院,年龄在20岁以上的学生人数。

16.统计2018年各商品的销售总量。

17.查询学生人数在3人以上的学院及学生人数。

18.查询2019年商品购买总数量在5以上的学生的学号和购买总数。

19.查询咖啡类商品的平均售价。

20.查询与张小红同学院的学生的学号、姓名、学院。

21.查询所有商品的销售情况,包括商品号,商品名,学生姓名,销售时间,销售数量,按销售日期降序排列。

22.查询购买了商品的学生学号、姓名、学院。

23.查询购买了咖啡类商品的学生的学号、姓名、学院。

24.查询没有出售过的商品号,商品名,类别名、售价和数量。(连接查询和子查询)

25.查询购买了商品号为“gn001”或“gn002”商品的学号,姓名和学院(1)。

26. 查询购买了商品号为“gn001”和“gn002”商品的学号,姓名和学院(2)。

27. 查询各学院年龄最大的学生,显示学号,姓名和学院。(相关子查询和派生表)

28. 统计每个商品的销售总数,要求显示商品号,商品名和销售总数。

29.查询2019年商品购买总数在5以上的学生的姓名、学院和购买总数。

30. 找出供应商品总数在50以上的供应商号,供应商名,供应商地址,供应总数,结果按地址分组,并按供应总数的降序排列。

二.实验代码

回到先前创建的T2数据库,依题意有:

1.  查询全部商品信息。

--1--查询全部商品信息。
SELECT * FROM goods

2.查询类别为“cn002”的所有商品信息。

--2--查询类别为“cn002”的所有商品信息。
SELECT *FROM goods WHERE categoryno='cn002'

3. 查询类别为“cn001”和“cn002”对应的所有商品信息。

--3--查询类别为“cn001”和“cn002”对应的所有商品信息。
SELECT *FROM goods WHERE categoryno='cn001' OR categoryno='cn002'
--或者
SELECT *FROM goods WHERE categoryno IN ('cn001','cn002')

4.查询类别为“cn005”且进价大于20的商品信息。

--4--查询类别为“cn005”且进价大于20的商品信息。
SELECT *FROM goods WHERE categoryno='cn005' AND inprice>20

5.查询库存数量小于10的商品号,供应商号,商品名和数量。

--5--查询库存数量小于10的商品号,供应商号,商品名和数量。
SELECT goodsno,supplierno,goodsname,number FROM goods WHERE number<10

6.查询有购买记录学生的学号。

--6--查询有购买记录学生的学号。
SELECT sno FROM salebill WHERE happentime is not null

7.查询计算机专业“IT”学生的学号,姓名和年龄。

--7--查询计算机专业“IT”学生的学号,姓名和年龄
SELECT sno,sname,birthyear FROM student WHERE major='IT'

8.查询年龄在22到24岁学生的学号,姓名,学院,专业和年龄。

--8--查询年龄在22到24岁学生的学号,姓名,学院,专业和年龄
SELECT sno,sname,college,major,YEAR(GETDATE())-birthyear
--getdate()为获取当前时间 year()读取年份 减去出生年份即为年龄
AS age --记为column名称age
FROM student
WHERE YEAR(GETDATE())-birthyear BETWEEN 22 AND 24

9. 查询姓张的同学的学号,姓名,学院。

--9--查询姓张的同学的学号,姓名,学院。
SELECT sno,sname,college FROM student
WHERE sname LIKE '张%'

10.查询库存数量在20以上的商品信息,并按数量的降序排列。

--10--查询库存数量在20以上的商品信息,并按数量的降序排列。
SELECT * FROM goods
WHERE number>20
ORDER BY number ASC

11.查询库存数量在10以内的商品编号、商品名称、类别号、数量,按类别升序库存数量降序排列结果。

--11--查询库存数量在10以内的商品编号、商品名称、类别号、数量,
--按类别升序库存数量降序排列结果。
SELECT goodsno,goodsname,categoryno,number FROM goods
WHERE number<10
ORDER BY categoryno ASC,number DESC

12.查询库存数量排名前三的商品信息。

--12--查询库存数量排名前三的商品信息。
SELECT TOP 3  * FROM goods
ORDER BY number DESC--降序排列,前三个即为前三

13. 查询类别为“cn001”库存数量最大的商品,显示商品号,商品名和数量。

--13--查询类别为“cn001”库存数量最大的商品,显示商品号,商品名和数量
SELECT TOP 1 goodsno,goodsname,number FROM goods
WHERE categoryno='cn001'
ORDER BY number DESC

14.查询管理信息系统专业“MIS”的学生人数。

--14--查询管理信息系统专业“MIS”的学生人数。
SELECT major,COUNT(*)AS '人数总和' FROM student--AS表示为命名
GROUP BY major
HAVING major='MIS'

15.按学院统计各个学院,年龄在20岁以上的学生人数。

--15--按学院统计各个学院,年龄在20岁以上的学生人数。
SELECT college,YEAR(GETDATE())-birthyear AS Age,COUNT(*)AS '个数' FROM student
GROUP BY college,YEAR(GETDATE())-birthyear
HAVING (YEAR(GETDATE())-birthyear)>20

16.统计2018年各商品的销售总量。

--16--统计2018年各商品的销售总量。
SELECT goodsno,happentime,number,COUNT(*) AS 个数 FROM salebill
GROUP BY goodsno,number,happentime
HAVING happentime LIKE '%2018%'

17.查询学生人数在3人以上的学院及学生人数。

--17--查询学生人数在3人以上的学院及学生人数
SELECT college,major,COUNT(*)AS '人数' FROM student
GROUP BY college,major
HAVING COUNT(*)>3

18.查询2019年商品购买总数量在5以上的学生的学号和购买总数。

--18--
--查询2019年商品购买总数量在5以上的学生的学号和购买总数
SELECT sno,happentime,number,COUNT(*) FROM salebill
WHERE number>=5
GROUP BY sno,number,happentime
HAVING happentime LIKE '%2019%'

19.查询咖啡类商品的平均售价。

--19--查询咖啡类商品的平均售价
SELECT  AVG(saleprice)AS '咖啡的平均售价' FROM goods--AVG()取平均数
WHERE goodsname LIKE '%咖啡%' 

20.查询与张小红同学院的学生的学号、姓名、学院。

--20--查询与张小红同学院的学生的学号、姓名、学院。
--查询与张小红同学院的学生的学号、姓名、学院
SELECT sno,sname,college FROM student
WHERE college in (
select college from student
where sname='张小红')

21.查询所有商品的销售情况,包括商品号,商品名,学生姓名,销售时间,销售数量,按销售日期降序排列。

--21
--查询所有商品的销售情况,包括商品号,商品名,学生姓名,销售时间,销售数量,
--按销售日期降序排列。
SELECT * FROM goods,salebill,student
WHERE goods.goodsno=salebill.goodsno AND salebill.sno=student.sno
ORDER BY happentime DESC
--也可以用Join on 连接
SELECT * FROM salebill s1 join
goods g on s1.goodsno=g.goodsno
join
student s2 on s1.sno=s2.sno
ORDER BY happentime DESC

22.查询购买了商品的学生学号、姓名、学院。

--22--查询购买了商品的学生学号、姓名、学院。
SELECT DISTINCT student.sno,sname,college FROM student join salebill
on student.sno=salebill.sno

23.查询购买了咖啡类商品的学生的学号、姓名、学院。

--23--查询购买了咖啡类商品的学生的学号、姓名、学院。
SELECT sno,sname,college
FROM student WHERE sno
in (select sno from salebill where
goodsno in (select goodsno from goods
where goodsname like '%咖啡%'))
--以上是对goodsname进行相似查询
--可再次嵌套对category的categoryname=’咖啡'查询
SELECT sno,sname,college
FROM student WHERE sno
in (select sno from salebill where
goodsno in (select goodsno from goods
where categoryno in
(select categoryno from category where
categoryname='咖啡')))

24.查询没有出售过的商品号,商品名,类别名、售价和数量。(连接查询和子查询)

--24--查询没有出售过的商品号,商品名,类别名、售价和数量。(连接查询和子查询)
SELECT goods.goodsno,goodsname,categoryname,saleprice,number
-- table_1 join table_2 on t1.column=t2.column
FROM goods join category on goods.categoryno=category.categoryno
WHERE goods.goodsno not
--通过column连接时候goods.goodsno在goods表中选择goodsno
IN (SELECT goods.goodsno FROM goods join salebill
ON goods.goodsno=salebill.goodsno)

25.查询购买了商品号为“gn001”或“gn002”商品的学号,姓名和学院(1)。

--25--查询购买了商品号为“gn001”或“gn002”商品的学号,姓名和学院(1)。
SELECT DISTINCT student.sno,sname,college FROM goods JOIN salebill
ON goods.goodsno=salebill.goodsno
join student on student.sno=salebill.sno
WHERE goods.goodsno Like 'gn00[1-2]' 

26. 查询购买了商品号为“gn001”和“gn002”商品的学号,姓名和学院(2)。

--26查询购买了商品号为“gn001”或“gn002”商品的学号,姓名和学院(2)。
select sno,sname,college from student where sno
in (select sno from salebill where goodsno='gn001')
or
sno in(select sno from salebill where goodsno='gn002')

27. 查询各学院年龄最大的学生,显示学号,姓名和学院。(相关子查询和派生表)

--27查询各学院年龄最大的学生,显示学号,姓名和学院。
select sno,sname,college from student s
where (YEAR(getdate())-birthyear)
=(select MAX(YEAR(getdate())-birthyear)
from student where s.college=student.college)

28. 统计每个商品的销售总数,要求显示商品号,商品名和销售总数。

--28统计每个商品的销售总数,要求显示商品号,商品名和销售总数。
select goods.goodsno,goodsname,SUM(salebill.number)as 销售总数
from goods,salebill
where goods.goodsno=salebill.goodsno
group by goods.goodsno,goodsname

29.查询2019年商品购买总数在5以上的学生的姓名、学院和购买总数。

--29查询2019年商品购买总数在5以上的学生的姓名、学院和购买总数。
select sname,college,salebill.number
from goods join salebill on goods.goodsno=salebill.goodsno
join student on salebill.sno=student.sno
where(happentime LIKE '%2019%')and salebill.number>=5
group by sname,college,salebill.number

30. 找出供应商品总数在50以上的供应商号,供应商名,供应商地址,供应总数,结果按地址分组,并按供应总数的降序排列。

--30找出供应商品总数在50以上的供应商号,供应商名,供应商地址,供应总数,
--结果按地址分组,并按供应总数的降序排列。
select supplier.suppliername,address,SUM(goods.number)as 供应总数
from goods join supplier on goods.supplierno=supplier.supplierno
group by address,suppliername
having SUM(goods.number)>50
order by SUM(goods.number) desc 

三.代码汇总

--实验二----1--查询全部商品信息。
SELECT * FROM goods--2--查询类别为“cn002”的所有商品信息。
SELECT *FROM goods WHERE categoryno='cn002'--3--查询类别为“cn001”和“cn002”对应的所有商品信息。
SELECT *FROM goods WHERE categoryno='cn001' OR categoryno='cn002'
--或者
SELECT *FROM goods WHERE categoryno IN ('cn001','cn002')--4--查询类别为“cn005”且进价大于20的商品信息。
SELECT *FROM goods WHERE categoryno='cn005' AND inprice>20--5--查询库存数量小于10的商品号,供应商号,商品名和数量。
SELECT goodsno,supplierno,goodsname,number FROM goods WHERE number<10--6--查询有购买记录学生的学号。
SELECT sno FROM salebill WHERE happentime is not null--7--查询计算机专业“IT”学生的学号,姓名和年龄
SELECT sno,sname,birthyear FROM student WHERE major='IT'--8--查询年龄在22到24岁学生的学号,姓名,学院,专业和年龄
SELECT sno,sname,college,major,YEAR(GETDATE())-birthyear
--getdate()为获取当前时间 year()读取年份 减去出生年份即为年龄
AS age --记为column名称age
FROM student
WHERE YEAR(GETDATE())-birthyear BETWEEN 22 AND 24--9--查询姓张的同学的学号,姓名,学院。
SELECT sno,sname,college FROM student
WHERE sname LIKE '张%'--10--查询库存数量在20以上的商品信息,并按数量的降序排列。
SELECT * FROM goods
WHERE number>20
ORDER BY number ASC--11--查询库存数量在10以内的商品编号、商品名称、类别号、数量,
--按类别升序库存数量降序排列结果。
SELECT goodsno,goodsname,categoryno,number FROM goods
WHERE number<10
ORDER BY categoryno ASC,number DESC--12--查询库存数量排名前三的商品信息。
SELECT TOP 3  * FROM goods
ORDER BY number DESC--降序排列,前三个即为前三--13--查询类别为“cn001”库存数量最大的商品,显示商品号,商品名和数量
SELECT TOP 1 goodsno,goodsname,number FROM goods
WHERE categoryno='cn001'
ORDER BY number DESC--14--查询管理信息系统专业“MIS”的学生人数。
SELECT major,COUNT(*)AS '人数总和' FROM student--AS表示为命名
GROUP BY major
HAVING major='MIS'--15--按学院统计各个学院,年龄在20岁以上的学生人数。
SELECT college,YEAR(GETDATE())-birthyear AS Age,COUNT(*)AS '个数' FROM student
GROUP BY college,YEAR(GETDATE())-birthyear
HAVING (YEAR(GETDATE())-birthyear)>20--16--统计2018年各商品的销售总量。
SELECT goodsno,happentime,number,COUNT(*) AS 个数 FROM salebill
GROUP BY goodsno,number,happentime
HAVING happentime LIKE '%2018%'--17--查询学生人数在3人以上的学院及学生人数
SELECT college,major,COUNT(*)AS '人数' FROM student
GROUP BY college,major
HAVING COUNT(*)>3--18--
--查询2019年商品购买总数量在5以上的学生的学号和购买总数
SELECT sno,happentime,number,COUNT(*) FROM salebill
WHERE number>=5
GROUP BY sno,number,happentime
HAVING happentime LIKE '%2019%'--19--查询咖啡类商品的平均售价
SELECT  AVG(saleprice)AS '咖啡的平均售价' FROM goods--AVG()取平均数
WHERE goodsname LIKE '%咖啡%' --20--查询与张小红同学院的学生的学号、姓名、学院。
--查询与张小红同学院的学生的学号、姓名、学院
SELECT sno,sname,college FROM student
WHERE college in (
select college from student
where sname='张小红')--21
--查询所有商品的销售情况,包括商品号,商品名,学生姓名,销售时间,销售数量,
--按销售日期降序排列。
SELECT * FROM goods,salebill,student
WHERE goods.goodsno=salebill.goodsno AND salebill.sno=student.sno
ORDER BY happentime DESC
--也可以用Join on 连接
SELECT * FROM salebill s1 join
goods g on s1.goodsno=g.goodsno
join
student s2 on s1.sno=s2.sno
ORDER BY happentime DESC--22--查询购买了商品的学生学号、姓名、学院。
SELECT DISTINCT student.sno,sname,college FROM student join salebill
on student.sno=salebill.sno--23--查询购买了咖啡类商品的学生的学号、姓名、学院。
SELECT sno,sname,college
FROM student WHERE sno
in (select sno from salebill where
goodsno in (select goodsno from goods
where goodsname like '%咖啡%'))
--以上是对goodsname进行相似查询
--可再次嵌套对category的categoryname=’咖啡'查询
SELECT sno,sname,college
FROM student WHERE sno
in (select sno from salebill where
goodsno in (select goodsno from goods
where categoryno in
(select categoryno from category where
categoryname='咖啡')))--24--查询没有出售过的商品号,商品名,类别名、售价和数量。(连接查询和子查询)
SELECT goods.goodsno,goodsname,categoryname,saleprice,number
FROM goods join category on goods.categoryno=category.categoryno
WHERE goods.goodsno not
IN (SELECT goods.goodsno FROM goods join salebill
ON goods.goodsno=salebill.goodsno)         --25--查询购买了商品号为“gn001”或“gn002”商品的学号,姓名和学院(1)。
SELECT DISTINCT student.sno,sname,college FROM goods JOIN salebill
ON goods.goodsno=salebill.goodsno
join student on student.sno=salebill.sno
WHERE goods.goodsno Like 'gn00[1-2]' --26查询购买了商品号为“gn001”或“gn002”商品的学号,姓名和学院(2)。
select sno,sname,college from student where sno
in (select sno from salebill where goodsno='gn001')
or
sno in(select sno from salebill where goodsno='gn002')--27查询各学院年龄最大的学生,显示学号,姓名和学院。
select sno,sname,college from student s
where (YEAR(getdate())-birthyear)
=(select MAX(YEAR(getdate())-birthyear)
from student where s.college=student.college)--28统计每个商品的销售总数,要求显示商品号,商品名和销售总数。
select goods.goodsno,goodsname,SUM(salebill.number)as 销售总数
from goods,salebill
where goods.goodsno=salebill.goodsno
group by goods.goodsno,goodsname--29查询2019年商品购买总数在5以上的学生的姓名、学院和购买总数。
select sname,college,salebill.number
from goods join salebill on goods.goodsno=salebill.goodsno
join student on salebill.sno=student.sno
where(happentime LIKE '%2019%')and salebill.number>=5
group by sname,college,salebill.number--30找出供应商品总数在50以上的供应商号,供应商名,供应商地址,供应总数,
--结果按地址分组,并按供应总数的降序排列。
select supplier.suppliername,address,SUM(goods.number)as 供应总数
from goods join supplier on goods.supplierno=supplier.supplierno
group by address,suppliername
having SUM(goods.number)>50
order by SUM(goods.number) desc 

【数据库基础】数据库的数据查询相关推荐

  1. 数据库SQL语言学习--数据查询(持续更新中)

    数据库SQL语言学习--数据查询(持续更新中) 上机练习1 1.              启动SQL Server 2008中的 SQL Server Management Studio. 2.   ...

  2. MySQL数据库C接口的数据查询操作示例

    MySQL数据库C接口的数据查询操作示例 命令行操作 (1)建库建表(已有则不用) 连接MySQL服务器,并登录之.选择某个数据库.假设用户在这个数据库下已有一个表了. (2)查询所有数据的方法 SE ...

  3. Mysql基础中篇[数据库的使用和数据查询]~

    基本概念: 数据库: 英文单词DataBase,简称DB,按照一定格式存储数据的一些文件的组合,顾名思义:存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据. 数据库管理系统: D ...

  4. 数据库实验二之数据查询

    实验二 数据查询 一.实验目的 1.理解数据库中数据的其他查询方法和应用: 2.学会各种查询要求的实现: 3.学会各种查询的异同及相互之间的转换方法. 二. 实验内容 在实验1的基础上,练习其它查询语 ...

  5. Django数据库ORM模型使用(数据查询)!!!Django数据库如何使用ORM模型查询数据? ✧*。٩(ˊᗜˋ*)و✧*。 Django初体验

    文章目录 查询方法 查看执行的SQL语句 查询条件 精准与模糊查询 比较条件 时间条件 聚合函数 Avg:求平均值. Count:获取指定的对象的个数. Max和Min:获取指定对象的最大值和最小值. ...

  6. MYSQL数据库开发之路-----数据查询一

    目录 基本查询语句 使用select语句查询一个数据表 查询表中一列或者多列 从一个或者多个表中获取数据 单表查询 查询所有字段 查询指定字段 查询指定数据 带关键字where的查询 带关键字in的查 ...

  7. 独家丨专访雅捷信息董事长、NVIDIA全球副总裁,看“非主流”的GPU数据库如何升级银行数据查询与加工...

    2012 年,正在哈佛大学写硕士论文的 Todd Mostak 需要查询大量的论文参考资料,他发现使用以 CPU 为处理核心的数据库系统做资料查询速度非常缓慢.而且很多时候,Todd Mostak 在 ...

  8. 合肥工业大学—SQL Server数据库实验七:数据查询

    数据查询 1. 单表查询 2. 多表连接查询 1. 单表查询 1. 查询全体学生的信息: -- 查询全体学生的信息 select * from student 2. 根据专业编号(21)查询学生的学号 ...

  9. SpringBoot2 整合 ClickHouse数据库,实现高性能数据查询分析

    本文源码:GitHub·点这里 || GitEE·点这里 一.ClickHouse简介 1.基础简介 Yandex开源的数据分析的数据库,名字叫做ClickHouse,适合流式或批次入库的时序数据.C ...

  10. MySQL数据库基础知识7,查询的执行过程

    目录 一.拆分查询 二.分解关联查询 三.查询的执行过程 四.优化器的一些优化手段 1.重新定义关联表的顺序 2.将外连接转化为内连接 3.使用增加变换规则 4.优化count().max().min ...

最新文章

  1. 动软 mysql 分页_动软.NET 分页存储过程UP_GetRecordByPage
  2. 修改文件的所属用户和所属用户组
  3. 使用OpenGL一年后
  4. java自动生成代码框架_DodoFramework- 一个基于代码生成引擎的Java Web系统自动化开发框架...
  5. 看你能坚持几秒 代码
  6. 发那科机器人寄存器Ar_发那科机器人与TP参数的千丝万缕关系
  7. java s1_转!!Java 基础面试题的剖析: short s1=1;s1 = s1 +1 报错? s1+=1 呢
  8. php中上传图片怎么显示出来,PHP上传图片类显示缩略图功能
  9. [js] localStorage什么时候过期?
  10. php layui 上传文件,laravel使用layui 上传文件 支持pdf上传
  11. vscode运行C++代码正常,但编辑时有红色波浪线,提示未定义标识符
  12. 最新如何将b站视频下载到电脑上不用插件
  13. springboot---微信小程序上传文件(word/pdf文件)
  14. Hi-C Data Browser:Hi-C数据浏览器
  15. 费雪分离定理的证明与评价
  16. 学校计算机及设备维护维修管理制度,《计算机设备维护维修管理制度.doc
  17. Hive的元数据表结构详解(转自lxw1234)
  18. Qt/C++ 压缩/解压缩库—QuaZip
  19. 揭秘域名劫持反向代理之黑帽SEO技术
  20. LeetCode第一题两数之和

热门文章

  1. Fulutter 设置圆角背景图片Container 设置边框、圆角、阴影
  2. Java的访问控制修饰符有哪些?各有什么访问权限?
  3. JAVA核心知识点--JDK1.8中的日期处理
  4. LVS负载均衡集群——NAT
  5. linux挂载windows共享目录报错,linux通过cifs挂载windows共享目录
  6. csgo如何保存自己的cfg_[CS:GO]如何导出cfg文件 最新方法[已解决]
  7. 猿创征文|laravel中JWT的使用
  8. 完美世界手游服务器维护,完美世界手游更新失败_完美世界手游更新失败解决办法_玩游戏网...
  9. 【嵌入式Linux应用】初步移植MQTT到Ubuntu和Linux开发板
  10. 苹果新款笔记本_微软承诺将在iPhone上提供流媒体游戏服务(全文)_苹果 新款MacBook Pro 13英寸_笔记本新闻...