经典案例

简介: drop table proout; drop table customer; drop table product;create table Customer( cu...

drop table proout;
drop table customer;
drop table product;

create table Customer(
cusno varchar2(20) primary key,
cusname varchar2(50) not null,
address varchar2(200),
tel varchar2(50) unique
);
create table Product(
prono varchar2(20) primary key,
proname varchar2(200),
price number(10,2),
stocks int
);

create table proout(
saledate date,
cusno varchar2(20),
prono varchar2(20),
Quantity int,
foreign key (cusno) references Customer(cusno),
foreign key (prono) references Product(prono)
);
–1) 编写SQL语句,根据范例,建立销售数据库Sales的以上三个表。要求要满足基本的实体完整性。
–2) 编写SQL语句将示范数据插入到数据库中。
insert into Customer values (‘C001’, ‘杨婷’, ‘北京’, ‘010-5328953’);
insert into Customer values (‘C003’, ‘叶新’, ‘成都’, ‘024-3222781’);
insert into Customer values (‘C004’, ‘冯辰诚’, ‘上海’, ‘021-8723596’);
insert into Customer values (‘C005’, ‘张展’, ‘郑州’, ‘0371-8907654’);
insert into Customer values (‘C002’, ‘李和平’,’上海’, ‘021-6235965’);

insert into Product values (‘P0001’, ‘液晶电视’, 5600.00, 800);
insert into Product values (‘P0002’, ‘空调’, 2390.00, 460);
insert into Product values (‘P0003’, ‘洗衣机’, 3700.00, 600);
insert into Product values (‘P0004’, ‘电热水器’, 890.00, 120);

insert into proout values(to_date(‘2007-10-27’,’yyyy-mm-dd’), ‘C001’,’P0001’,3);
insert into proout values(to_date(‘2007-11-06’,’yyyy-mm-dd’), ‘C004’,’P0003’,40);
insert into proout values(to_date(‘2007-12-27’ ,’yyyy-mm-dd’), ‘C001’,’P0003’, 5);
insert into proout values(to_date(‘2008-3-15’,’yyyy-mm-dd’), ‘C002’,’P0002’,12);
insert into proout values(to_date(‘2008-05-02’ ,’yyyy-mm-dd’), ‘C003’,’P0002’, 21);
insert into proout values(to_date(‘2008-05-02’ ,’yyyy-mm-dd’), ‘C003’,’P0001’, 9);
insert into proout values(to_date(‘2008-09-21’,’yyyy-mm-dd’), ‘C004’,’P0001’,30);
insert into proout values(to_date(‘2008-11-21’ ,’yyyy-mm-dd’), ‘C004’,’P0001’,73);
–3) 将产品“洗衣机”的单价加1000元。
update product set price=price+1000 where proname=’洗衣机’;
–4) 编号“P0005”的产品“电冰箱”,单价3000,库存1000,录入时遗漏,请编写SQL语句插入该记录。
insert into Product values (‘P0005’, ‘电冰箱’, 3000.00, 1000);
–5) 查询购买了产品编号“P0002”的客户编号、客户名和电话,查询结果按客户名降序排列。
select c.cusno,c.cusname,c.tel from proout p inner join Customer c on c.cusno = p.cusno where p.prono=’P0002’ ORDER by c.cusname desc;
–6) 查询所有的客户编号和客户名以及它们所购买的产品编号和产品名。(包括没买产品的顾客)。
select c.cusno,c.cusname,pr.prono,pr.proname from Customer c left join proout p on c.cusno=p.cusno left join product pr on pr.prono=p.prono;
–7) 查询客户表中“姓张”的客户的姓名,地址,电话。
select c.cusname,c.address,c.tel from Customer c where c.cusname like ‘张%’;
–8) 查询产品表中产品名称中带有“电”字的产品编号、产品名称、单价。
select p.prono,p.proname,p.price from product p where p.proname like ‘%电%’;
–9) 查询产品表中库存数量大于产品表中库存量的平均值的产品编号、产品名称、库存量。
select p.prono,p.proname,p.stocks from product p where p.stocks>(select avg(stocks) from product);
–10) 查询2008年液晶电视的销售总数量和销售总额(总额=销售总数量*单价)。
select sum(pr.quantity),sum(pr.quantity*p.price) from product p inner join proout pr on p.prono=pr.prono
where p.proname=’液晶电视’ and to_char(pr.saledate,’yyyy’)=2008;
–11) 查询出2008年销售给上海客户的客户名,商品名称,销售数量。
select c.cusname,p.proname,pr.quantity from proout pr inner join product p on p.prono=pr.prono inner join customer c on c.cusno= pr.cusno
where to_char(pr.saledate,’yyyy’)=2008 and c.address=’上海’;
–12) 更新液晶电视的价格为8800元,库存数量为888。
update product set stocks=888,price=8800 where proname=’液晶电视’;
–13) 查询电话号码以021开头且最后一位不是5的客户姓名、客户电话、客户地址。
select c.cusname,c.tel,c.address from customer c where c.tel like ‘021%’ and c.tel not like ‘%5’;
–14) 查询在2007年内购订购过产品的客户编号,客户名以及产品名和单价。
select c.cusno,c.cusname,p.proname,p.price from proout pr inner join product p on p.prono=pr.prono inner join customer c on c.cusno= pr.cusno
where to_char(pr.saledate,’yyyy’)=2007;
–15) 查询定购过产品的客户编号、客户名和电话。查询结果按客户编号升序排列。
select distinct c.cusno,c.cusname,c.tel from proout pr inner join customer c on c.cusno= pr.cusno
order by c.cusno;
–16) 统计销售数量超过100的产品名。
select p.proname,sum(pr.quantity) from proout pr inner join product p on p.prono=pr.prono
group by p.proname having sum(pr.quantity)>100;
–17) 删除销售表中销售数量低于6的销售记录 。
delete proout where quantity<6;
–18) 更改地址为北京的用户姓名为杨婷婷。
update customer set cusname=’杨婷婷’ where address=’北京’;
–19) 删除销售记录表。
drop table proout;
–20) 删除产品表中所有数据。
delete from product;

相关文章
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
309 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
缓存 前端开发
前端知识笔记(三十六)———HTTP 缓存机制
前端知识笔记(三十六)———HTTP 缓存机制
262 0
|
Dubbo Java 应用服务中间件
Spring Cloud Alibaba & Spring Cloud 整合Dubbo和Nacos
目录 一、Spring Cloud Alibaba依赖说明 二、代码示例 1、父工程spring-cloud-alibaba-learning版本依赖信息 2、子工程spring-cloud-alibaba-seata-consumer服务消费者 (1) 版本依赖 (2) application.yml配置 (3) Dubbo服务引用 (4) 启动类 3、子工程spring-cloud-alibaba-seata-provider服务提供者 (1) 版本依赖 (2) application.yml配置 (3) 服务实现类 (4) 启动类 三、启动服务&查看Nacos控制台 四、总结
Spring Cloud Alibaba & Spring Cloud 整合Dubbo和Nacos
|
SQL 编解码 运维
一款SQL全自动化检查神器!再也不用担心 SQL 出错了,还带自动补全、回滚等等【开源项目】
Yearning MYSQL 是一个SQL语句审核平台。提供查询审计,SQL审核等多种功能,支持Mysql,可以在一定程度上解决运维与开发之间的那一环,功能丰富,代码开源,安装部署容易!
一款SQL全自动化检查神器!再也不用担心 SQL 出错了,还带自动补全、回滚等等【开源项目】
|
SQL NoSQL 关系型数据库
PostgreSQL 准确且快速的数据对比方法
作为一款强大而广受欢迎的开源关系型数据库管理系统,PostgreSQL 在数据库领域拥有显著的市场份额。其出色的可扩展性、稳定性使其成为众多企业和项目的首选数据库。而在很多场景下(开发 | 生产环境同步、备份恢复验证、数据迁移、数据合并等),不同环境中的数据库数据可能导致数据的不一致,因此,进行数据库之间的数据对比变得至关重要。
591 0
|
机器学习/深度学习 传感器 算法
【电力系统】基于PMU相量测量单元进行电力系统电压幅度和角度状态估计附matlab代码
【电力系统】基于PMU相量测量单元进行电力系统电压幅度和角度状态估计附matlab代码
|
Java Linux Docker
Linux 下的Docker安装与IDEA配置远程Docker
Linux 下的Docker安装与IDEA配置远程Docker
585 0
Linux 下的Docker安装与IDEA配置远程Docker
|
计算机视觉 C++
【OpenCV • c++】滑动条的创建和使用
【OpenCV • c++】滑动条的创建和使用
371 0
An工具介绍之3D工具
An工具介绍之3D工具
857 0
An工具介绍之3D工具
|
Linux 数据处理 Ruby
cdo (Climate Data Operators ) 常用命令介绍:(查看文件信息、多文件合并、数据裁剪、数据插值、数据计算。。)
cdo (Climate Data Operators ) 常用命令介绍:(查看文件信息、多文件合并、数据裁剪、数据插值、数据计算。。)
cdo (Climate Data Operators ) 常用命令介绍:(查看文件信息、多文件合并、数据裁剪、数据插值、数据计算。。)