ORACLE数据库实验总集 实验六 SQL 语句应用
一、 实验目的
(1) 掌握数据的插入(INSERT)、 修改(UPDATE) 和删除(DELETE) 操作。
(2) 掌握不同类型的数据查询(SELECT) 操作。
二、 实验要求
(1) 利用 INSERT 语句向图书销售系统表中插入数据。
(2) 利用 UPDATE 语句修改图书销售系统表中的数据。
(3) 利用 DELETE 语句删除图书销售系统表中的数据。
(4) 利用 SELECT 语句实现对图书销售系统数据的有条件查询、 分组查询、 连接查询、 子查询等。
三、 实验内容
(1) 以 bs 用户登录 BOOKSALES 数据库, 将下列表中的数据插入到数据库的相应表中。






(2) 将 ISBN 为 978-7-121-18619-8 的图书的零售价格(retail) 修改为 30。
(3) 将订单号为 1000 的订单的发货日期修改为“2013-2-2”。
(4) 查询 BOOKS 表中包含的所有图书列表。
(5) 列出 BOOKS 表中有图书类型非空的图书书名。
(6) 列出 BOOKS 表中每本书的书名和出版日期。 对 pubdate 字段使用 Publication Date 列标题。
(7) 列出 CUSTOMERS 表中每一个客户的客户号以及他们所在的地址。
(8) 创建一个包含各个出版社的名称、 联系人以及出版社电话号码的列表。 其中, 联系人的列在显示的结果中重命名为 Contact Person。
(9) 查询下达了订单的每一个客户的客户号。
(10) 查询 2013 年 3 月 1 日之后发货的订单。
(11) 查询居住在北京或大连的客户, 将结果按姓名的升序排列。
(12) 列出姓“王” 的作者编写的所有图书信息, 并将结果按姓名降序排序。
(13) 查询“儿童” 类和“烹饪” 类的所有图书。
(14) 查询书名的第二个字母是“A”、 第四个字母是“N” 的图书信息。
(15) 查询电子工业出版社在 2012 年出版的所有“计算机” 类图书的名称。
(16) 查询图书名称、 出版社名称、 出版社联系人的名称、 EMAIL 和电话号码。
(17)查询当前还没有发货的订单信息及下达订单的用户名, 查询结果按下达订单日期排序。
(18) 查询已经购买了“计算机” 类图书的所有人的客户号和姓名。
(19) 查询“王牧” 购买的图书的 ISBN 以及书名。
(20) 查询订购图书“Oracle 数据库基础” 的客户将收到什么样的礼品。
(21) 确定客户“张扬” 订购的图书的作者。
(22) 查询 CUSTOMERS 表中的每一个客户所下达的订单数量。
(23) 查询价格低于同一种类中其它图书的平均价格的图书的信息。
(24) 查询每个出版社出版图书的平均价格、 最高价格、 最低价格。
(25) 统计每个客户购买图书的数量及总价钱。
(26) 查询比 1 号订单中图书数量多的其它订单信息。
(27) 查询所以客户及其订购图书的信息。
(28) 查询没有订购任何图书的客户信息。
(29) 查询订购金额最高的客户信息。
(30) 查询名为“赵敏” 的客户订购图书的订单信息、 订单明细。
四、问题解答及实验结果
(1) 以 bs 用户登录 BOOKSALES 数据库, 将下列表中的数据插入到数据库的相应表中。
SQL> create sequence customers_customer_id minvalue 1 nomaxvalue increment by 1 start with 1 nocache;
SQL> insert into customers values(customers_customer_id.nextval,‘王牧’,‘83823422’,‘Wangmu@sina.com’,‘北京’,‘110010’);
SQL> insert into customers values(customers_customer_id.nextval,‘李青’,‘83824566’,‘Liqing@sina.com’,‘大连’,‘116023’);
SQL> insert into publishers values(1,‘电子工业出版社’,‘张芳’,‘56231234’);
SQL> insert into publishers values(2,‘机械工业出版社’,‘孙翔’,‘89673456’);
SQL> insert into books values(‘978-7-121-18619-8’,‘文化基础’,‘王澜’,to_date(‘2010-1-1’,‘yyyy-mm-dd’),2,35,28,‘管理’);
SQL> insert into books values(‘978-7-122-18619-8’,‘Oracle’,‘孙风栋’,to_date(‘2011-2-1’,‘yyyy-mm-dd’),1,40,32,‘计算机’);
SQL> insert into orders values(orders_order_id.nextval,3,to_date(‘2013-2-1’,‘yyyy-mm-dd’),to_date(‘2013-2-5’,‘yyyy-mm-dd’),‘大连’,‘116023’);
SQL> insert into orders values(orders_order_id.nextval,2,to_date(‘2013-3-1’,‘yyyy-mm-dd’),to_date(‘2013-3-1’,‘yyyy-mm-dd’),‘大连’,‘116023’);
SQL> insert into orderitem values(1000,1,‘978-7-121-18619-8’,5);
SQL> insert into orderitem values(1000,2,‘978-7-122-18619-8’,20);
SQL> Insert Into orderitem values(1001,1,‘978-7-121-18619-8’,15);
SQL> insert into promotion values(1,‘签字笔’,100,150);
SQL> insert into promotion values(2,‘笔记本’,150,300);
SQL> insert into promotion values(3,‘保温杯’,300,500);

(2) 将 ISBN 为 978-7-121-18619-8 的图书的零售价格(retail) 修改为 30。
SQL> update books set retail=30 where isbn=‘978-7-121-18619-8’;

(3) 将订单号为 1000 的订单的发货日期修改为“2013-2-2”。
SQL> update orders set shipdate=to_date(‘2013-2-2’,‘yyyy-mm-dd’) where order_id=1000;

(4) 查询 BOOKS 表中包含的所有图书列表。
SQL> select * from books;

(5) 列出 BOOKS 表中有图书类型非空的图书书名。
SQL> select title from books where category is not null;

(6) 列出 BOOKS 表中每本书的书名和出版日期。 对 pubdate 字段使用 Publication Date 列标题。
SQL> select title,pubdate “Publication Date” from books;

(7) 列出 CUSTOMERS 表中每一个客户的客户号以及他们所在的地址。
SQL> select customer_id,address from customers;

(8) 创建一个包含各个出版社的名称、 联系人以及出版社电话号码的列表。 其中, 联系人的列在显示的结果中重命名为 Contact Person。
SQL> select name,contact “Contact Person”,phone from publishers;

(9) 查询下达了订单的每一个客户的客户号。
SQL> select customer_id from orders where order_id is not null;

(10) 查询 2013 年 3 月 1 日之后发货的订单。
SQL> select * from orders where shipdate > to_date(‘2013-3-1’,‘yyyy-mm-dd’);

(11) 查询居住在北京或大连的客户, 将结果按姓名的升序排列。
SQL> select * from customers where address=‘大连’ or address=‘北京’ order by name;

(12) 列出姓“王” 的作者编写的所有图书信息, 并将结果按姓名降序排序。
SQL> select * from books where author like ‘王%’ order by author;

(13) 查询“儿童” 类和“烹饪” 类的所有图书。
SQL> select * from books where category=‘儿童’ or category=‘烹饪’;

(14) 查询书名的第二个字母是“A”、 第四个字母是“N” 的图书信息。
SQL> select * from books where title like ‘_A_N%’;

(15) 查询电子工业出版社在 2012 年出版的所有“计算机” 类图书的名称。
SQL> select title from books,publishers where books.publisher_id=publishers.publisher_id and name=‘电子工业出版社’ and pubdate>=to_date(‘2012-1-1’,‘YYYY -mm-dd’) and pubdate<=to_date(‘2013-1-1’,‘YYYY-mm-dd’);

(16) 查询图书名称、 出版社名称、 出版社联系人的名称、 EMAIL 和电话号码。
SQL> select title,name,contact,phone from books,publishers where books.publisher_id=publishers.publisher_id;

(17)查询当前还没有发货的订单信息及下达订单的用户名, 查询结果按下达订单日期排序。
SQL> select order_id,customers.name,orderdate,shipdate,shipaddress,shipaddress,shipcode from customers,orders where customers.customer_id=orders.customer_id and shipdate<=to_date(‘2013-3-1’,‘yyyy-mm-dd’) order by orderdate;

(18) 查询已经购买了“计算机” 类图书的所有人的客户号和姓名。
SQL> select customers.customer_id,customers.name from customers,orders,orderitem,books where customers.customer_id=orders.customer_id and orders.order_id=orderitem.r_id and orderitem.isbn=books.isbn and books.category=‘计算机’;

(19) 查询“王牧” 购买的图书的 ISBN 以及书名。
SQL> select books.isbn,books.title from customers,books,orders,orderitem where customers.customer_id=orders.customer_id and orders.order_id=orderitem.r_id and orderitem.isbn=books.isbn and customers.name=‘王牧’;

(20) 查询订购图书“Oracle 数据库基础” 的客户将收到什么样的礼品。
SQL> select books.isbn,books.title from customers,books,orders,orderitem where customers.customer_id=orders.customer_id and orders.order_id=orderitem.r_id and orderitem.isbn=books.isbn and books.title=‘Oracle’;

(21) 确定客户“张扬” 订购的图书的作者。
SQL> select order_id,customers.name,orderdate,shipdate,shipaddress,shipcode from customers,orders where customers.customer_id=orders.customer_id and shipdate<=to_date(‘2013-3-1’,‘yyyy-mm-dd’) order by orderdate;

(22) 查询 CUSTOMERS 表中的每一个客户所下达的订单数量。
SQL> select * from customers where customer_id not in(select customer_id from orders);

(23) 查询价格低于同一种类中其它图书的平均价格的图书的信息。
SQL> select category,min(retail),max(retail),avg(retail) from books group by category;

(24) 查询每个出版社出版图书的平均价格、 最高价格、 最低价格。
SQL> select category,min(retail),max(retail),avg(retail) from books group by category;

(25) 统计每个客户购买图书的数量及总价钱。
SQL> select orders.order_id,orders.customer_id,orderitem.quantity from orders,orderitem where quantity > (select quantity from orderitem where order_id=1001 and item=1);

(26) 查询比 1 号订单中图书数量多的其它订单信息。
SQL> select order_id,sum(quantity) from orderitem group by order_id
having sum(quantity) > (select sum(quantity) from orderitem group by order_id
having order_id=1000);

(27) 查询所以客户及其订购图书的信息。
SQL> select * from customers where customer_id not in(select customer_id from orders);

(28) 查询没有订购任何图书的客户信息。
SQL> select * from customers where customer_id not in(select customer_id from orders);

(29) 查询订购金额最高的客户信息。
SQL> select customers.customer_id,customers.name,customers.phone,customers.email,customers.address,customers.code from customers,orders,orderitem where customers.customer_id=orders.customer_id and orders.order_id=orderitem.order_id and orderitem.quantity=(select max(quantity) from orderitem);

(30) 查询名为“赵敏” 的客户订购图书的订单信息、 订单明细。
SQL> select * from orders,orderitem,customers where orders.customer_id=customers.customer_id and customers.name=‘赵敏’;

五、实验体会与收获
通过这个实验,我深入理解和掌握SQL语句的使用,提高数据库操作的能力。并且能够熟练地使用SQL语句进行数据库操作。这个实验对于学习数据库管理和SQL语句的应用非常有帮助。能够帮助我更好地理解和掌握SQL语句的使用。
相关文章:
ORACLE数据库实验总集 实验六 SQL 语句应用
一、 实验目的 (1) 掌握数据的插入(INSERT)、 修改(UPDATE) 和删除(DELETE) 操作。 (2) 掌握不同类型的数据查询(SELECT) 操作。 二、…...
[FPGA 学习记录] 快速开发的法宝——IP核
快速开发的法宝——IP核 文章目录 1 IP 核是什么2 为什么要使用 IP 核3 IP 核的存在形式4 IP 核的缺点5 Quartus II 软件下 IP 核的调用6 Altera IP 核的分类 在本小节当中,我们来学习一下 IP 核的相关知识。 IP 核在 FPGA 开发当中应用十分广泛,它被称为…...
每日一题:LeetCode-11.盛水最多的容器
每日一题系列(day 13) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🔎…...
查看电脑cuda版本
1.找到NVODIA控制面板 输入NVIDIA搜索即可 出现NVIDIA控制面板 点击系统信息 2.WINR 输入nvidia-smi 检查了一下,电脑没用过GPU,连驱动都没有 所以,装驱动…… 选版本,下载 下载后双击打开安装 重新输入nvidia-smi 显示如下…...
centos7 docker Mysql8 搭建主从
Mysql8 搭建主从 docker的安装docker-compose的安装安装mysql配置主从在master配置在slave中配置在master中创建同步用户在slave中连接 测试连接测试配置测试数据同步遇到的问题id重复错误执行事务出错,跳过错误my.cnf 不删除多余配置的错误可能用到的命令 docker的…...
CSS中 设置文字下划线 的几种方法
在网页设计和开发中,我们经常需要对文字进行样式设置,包括字体,颜色,大小等,其中,设置文字下划线是一种常见需求 一 、CSS种使用 text-decoration 属性来设置文字的装饰效果,包括下划线。 常用的取值&…...
Docker构建自定义镜像
创建一个docker-demo的文件夹,放入需要构建的文件 主要是配置Dockerfile文件 第一种配置方法 # 指定基础镜像 FROM ubuntu:16.04 # 配置环境变量,JDK的安装目录 ENV JAVA_DIR/usr/local# 拷贝jdk和java项目的包 COPY ./jdk8.tar.gz $JAVA_DIR/ COPY ./docker-demo…...
C#生成Token字符串
Token字符串来保证数据安全性,如身份验证、跨域访问等。但是由于Token字符串的长度比较长,可能会占用过多的空间和带宽资源,因此我们需要生成短的Token字符串 方法一:使用Base64编码 Base64编码是一种常用的编码方式,…...
文献速递:多模态影像组学文献分享:生成一种多模态人工智能模型以区分甲状腺良性和恶性滤泡性肿瘤:概念验证研究
文献速递:多模态影像组学文献分享:生成一种多模态人工智能模型以区分甲状腺良性和恶性滤泡性肿瘤:概念验证研究 文献速递介绍 近年来,人工智能(AI)领域日益被探索,作为一种增强传统医学诊断和…...
Docker创建RocketMQ和RocketMQ控制台
安装RocketMQ 安装最新版本的RocketMQ(名为RocketMQ)在Docker上的过程大致可以分为以下步骤: 1. 准备工作 确保你的系统中已经安装了Docker。可以通过运行 docker --version 来验证Docker是否已安装及其版本信息。 2. 拉取RocketMQ镜像 …...
Python---面向对象其他特性
1、类属性 Python中,属性可以分为实例属性和类属性。 类属性就是 类对象中定义的属性,它被该类的所有实例对象所共有。通常用来记录 与这类相关 的特征,类属性 不会用于记录 具体对象的特征。 在Python中,一切皆对象。类也是一…...
【Ambari】Python调用Rest API 获取YARN HA状态信息并发送钉钉告警
🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁&am…...
linux之buildroot(3)配置软件包
Linux之buildroot(3)配置软件包 Author:Onceday Date:2023年11月30日 漫漫长路,才刚刚开始… 全系列文章请查看专栏: buildroot编译框架_Once_day的博客-CSDN博客。 参考文档: Buildroot - Making Embedded Linux Easymdev.t…...
学会用bash在linux写脚本 (一)
本章主要介绍如何使用bash写脚本。 了解通配符 了解变量 了解返回值和数值运算 grep的用法是“grep 关键字 file”,意思是从file中过滤出含有关键字的行。 例如,grep root /var/log/messages,意思是从/var/log/messages 中过滤出含有root …...
Leetcode 2949. Count Beautiful Substrings II
Leetcode 2949. Count Beautiful Substrings II 1. 解题思路2. 代码实现 Leetcode 2949. Count Beautiful Substrings II 1. 解题思路 这一题真的很丢脸,居然没有搞定,是看了大佬们的思路之后才想明白的,就感觉丢脸丢大了…… 这道题讲道…...
【Python系列】Python函数
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
自定义TypeHandler 将mysql返回的逗号分隔的String转换到List
sql执行如下: 这里我定义的接受类: 但是这里报了错JSON parse error: Cannot deserialize value of type java.util.ArrayList<java.lang.String>from Object value (token JsonToken.START_OBJECT); nested exception is com.fasterxml.jackson…...
Spring 高级装配详解
一、环境与profile 在3.1版本中,Spring引入了bean profile的功能。要使用profile,首先要将所有不同的bean定义整理到一个或者多个pofile之中,再将应用部署到每个环境时,确保对应的profile处于激活状态。 在Java配置中…...
mapbox Marker添加自定义html
思路就是先渲染出空div使用getElementsByClassName找到点,之后使用insertAdjacentHTML(‘beforeend’, div) 加自定义内容。 const el document.createElement(div);// 添加一个标记el.className j_icon;const itemIcon new MapboxGl.Marker({element: el,}).set…...
Linux UUCP命令教程:如何在Linux系统中进行文件复制(附实例详解和注意事项)
Linux UUCP命令介绍 UUCP(Unix-to-Unix Copy)是一套允许远程执行命令和传输文件的程序。UUCP命令是该套件中的一个程序,它为请求文件复制操作提供了用户界面。UUCP套件还包括uux(远程命令执行的用户界面)、uucico&…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
