实验04 单表查询

实验目的

要求学生掌握在数据库中通过DMSQL简单查询语句查询到相关数据的方法。

实验要求

(1) 查询指定列或全部列的数据。
(2) 查询指定条件的数据。
(3) 对查询结果排序。
(4) 查询使用聚集函数的数据。
(5) 分组统计查询。

实验内容

查询所有客户的信息。

select *
from 销售管理.客户表

查询所有客户的姓名、电话、年龄、性别。

select姓名,电话,年龄,性别
from 销售管理.客户表

查询所有客户的姓名、出生年份、电话,并且将输出结果中的列名显示为“客户姓名”、“出生年份”、“手机号码”。

select 姓名 客户姓名,2021-年龄 出生年份,电话 手机号码
from 销售管理.客户表

查询所有男客户的信息。

select *
from 销售管理.男客户

查询年龄小于30岁的客户姓名、电话、地址

select 姓名,电话,地址
from 销售管理.客户表
where 年龄<30

查询成交记录表中下订单两天后才成交的订单编号、客户编号、商品编号。

select 订单编号,客户编号,商品编号
from 销售管理.购买记录表
where 成交日期-订单日期>2

查询“广东省”的客户姓名、年龄、电话。

select 姓名,年龄,电话
from 销售管理.客户表
where 地址 like '广东省%'

查询年龄大于50岁的男客户姓名、电话、地址,并按年龄升序排列输出。

select 姓名,电话,地址
from 销售管理.男客户
where 年龄>50
order by 年龄

查询年龄在30到50之间的客户姓名、电话、地址,并按年龄降序排列输出。

select 姓名,电话,地址
from 销售管理.客户表
where 年龄 between 30 and 50
order by 年龄 desc

查询姓李的客户姓名、电话、地址,并按性别降序排列输出,同性之间按年龄升序排列输出。

select 姓名,电话,地址
from 销售管理.客户表
where 姓名 like '李%'
order by 性别 desc ,年龄 asc

查询男客户的人数,显示为“男客户人数”

select count(*)
from 销售管理.男客户

查询商品表中每个卖家编号所拥有的商品数量,显示为“卖家编号”、“商品数量”。

select 卖家编号,count(商品编号) 商品数量
from 销售管理.商品表
group by 卖家编号

查询商品表中商品种类大于三种的卖家编号、商品数量。

select 卖家编号,count(商品编号) 商品数量
from 销售管理.商品表
group by 卖家编号
having count(商品编号)>3

查询购买记录不少于 3 条的客户编号。

SELECT客户编号, COUNT* AS 采购次数
FROM 订单
GROUP BY 客户编号
HAVING COUNT* >= 3

统计每一个商店所拥有的商品最高价、最低价、平均价和商品数量。

SELECT商店编号,MAX(单价) 最高价,MIN(单价) 最低价,
AVG(单价) 平均价,COUNT* 产品数量
FROM 商品
GROUP BY 商店编号

查询价格最贵的五种商量的名称和价格。

SELBCT TOP 5 商品名称,单价
FROM 商品
ORDER BY 单价 DESC

查询所有男客户的全部信息,并按地址进行排序。

SELECT *
FROM 用户
WHERE 性别='男'
ORDER BY 地址

总结与思考

SQL语句与关系代数的关系如何?

1 关系代数是一种抽象数学语言,是关系数据操纵语言的一种传统表达方式.SQL是一种结构化的查询语言
2 SQL语句的执行一般是先翻译为关系代数再被执行的(能有效提高执行速度)
3 
选择相当于SQL语句中的where,表示选出满足一定条件的行。
投影相当于SQL语句中的select。。。distinct, 表示选择哪些列。投影会去重
叉乘相当于SQL语句中的from,表示穷举所有集合两边元素的组合量
并:对应SQL中的UNION 操作
差:对应SQL 中的EXCEPT 操作

SQL语句的执行顺序是什么?

1 sql语句的书写顺序:
select >> from >> where >> group by >> having >> order by >> limit
注意:
select和from是必须的;
where和having不能同时使用;
having和group by联合使用;
2 sql语句的解析顺序 :
from >> on>> join >> where >> group by >> having >> select >> distinct >> order by >> limit
注意:虽然select在having后执行,但是sql中仍然可以在having中使用select语句定义的别名

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值