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&…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果2. 绑定本地地址和端口&#x…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
