当前位置: 首页 > news >正文

用SQL语句操作oracle数据库--数据查询(上篇)

SQL操作Oracle数据库进行数据查询

Oracle 数据库是业界领先的关系型数据库管理系统之一,广泛应用于企业级应用和数据仓库等场景中。本篇博客将介绍如何使用 SQL 语句对 Oracle 数据库进行数据查询操作。

1.连接到数据库

在开始查询之前,需要使用合适的工具连接到 Oracle 数据库通常情况下,可以使用 SQLPlus 或 SQL Developer 等官方提供的工具来连接数据库。以下是一个示例 SLPlus 连接命令

sqlplus username/password@database

其中,username 是您的 Oracle 用户名,password 是密码,database 是要连接的数据库实例名。如果连接成功,则会显示一个 SQLPlus 命令行提示符。


2.编写查询语句

在连接到数据库后,可以使用 SQL 语句查询数据。
我们以以下的几二维表来作为查询对象
TABLE1:
student:
在这里插入图片描述
TABLE2:
course:
在这里插入图片描述
TABLE3:
selectedcourse:
在这里插入图片描述


单表查询:

本篇文章主要介绍单表查询,单表查询是指只涉及一个表的查询
(1)查询表中的全部列:

select * from student ;
select * from selectedcourse;
#注意不要遗忘末尾的分号

在这个示例中,我们使用 SELECT 语句分别查询表 studentselectedcourse 中的全部列,注意*号在此处代表表的所有属性
运行结果如下
在这里插入图片描述


(2)查询表中你指定的部分列:

SELECT courseID, courseName
FROM course;

运行结果如下:
在这里插入图片描述


(3)查询经过计算的值:
SELECT子句的目标列表达式不仅可以是表中的属性列,也可以是算术表达式、字符串常量、函数等。

SELECT userName,2023-birthYear 
FROM student;

在这个示例中,我们使用SELECT语句,计算出了所有学生的年龄,
输出结果如下:
在这里插入图片描述


(4)查询表中的若干元组(行):

- 消除取值重复的行:
两个本来并不完全相同的元组在投影到指定的某些列上后,可能会变成相同的行,可以使用DISTINCT来消除它们。

SELECT teacherID FROM course WHERE score=2;
SELECT DISTINCT teacherID FROM course WHERE score=2;

运行结果如下:
在这里插入图片描述
上例中我们查询了学分为2的课程对应的授课老师编号,并使用DISTINCT对元组进行了去重处理。


-查询满足指定条件的元组:
①指定范围型:

SELECT userName ,userID 
FROM student
WHERE collegeID=2;SELECT userID, userName
FROM student
WHERE 2023-birthYear '年龄'<26;SELECT userID,userName
FROM student
WHERE grade BETWEEN 60 AND 90;

运行效果如下:
在这里插入图片描述
上例中我们通过WHERE子句查询了符合相关条件的元组,例3中的谓词BETWEEN··AND···可用来查询属性值在某一指定范围内的元组,其中60是下限,90是上限,注意 该范围是闭区间,如果要查询指定属性值不在此范围内的元组,只需使用谓词NOT BETWEEN··AND···即可。


②确定集合型:
谓词IN可以用来查找属性值属于指定集合的元组IN实际上是多个OR的缩写。

SELECT userID,userName
FROM student
WHERE collegeID IN (1,3);SELECT userID,userName
FROM student
WHERE collegeID NOT IN (1,3);

运行效果如下;
在这里插入图片描述
上例中我们使用谓词IN查询了属于1号学院或3号学院的学生学号以及不处于1号学院和3号学院的学生学号。


③字符匹配:
谓词LIKE可以用来进行字符串的匹配

SELECT * FROM student
WHERE userID LIKE '10001';SELECT *FROM student
WHERE userName LIKE '谢%';

运行结果如下:
在这里插入图片描述
在上例中,我们使用谓词LIKE来查询学号为10001的学生元组,使用%来查询姓谢的学生的元组,注意%代表任意长度的字符串,如a%b代表以a开头以b结尾的所有字符串。_(下划线)代表任意的单个字符,如a_b代表以a开头以b结尾的所有3字符的任意字符串。(注意:数据库字符集为ASCII时一个汉字需要两个_;当字符集为GBK时只需要一个_)

特别地,如果用户要查询的字符串本身就含有%或_,这时就要使用ESCAPE '<换码字符>'短语对通配符进行转义处理。

SELECT *FROM course
WHERE courseName LIKE 'C语言$_程序设计' ESCAPE '$';

运行结果如下:
在这里插入图片描述


④ 涉及空值的查询:

SELECT courseID, studentID
FROM selectedcourse
WHERE mark IS NULL;SELECT courseID, studentID
FROM selectedcourse
WHERE mark IS NOT  NULL;

运行结果如下;
在这里插入图片描述
上例中我们查询了没有相应课程成绩的学生姓名及学号,需要注意的是:IS 千万不能用=代替。


⑤多重条件查询:
多重条件查询,我们使用AND(相当于逻辑乘(交集运算))来连接各个条件。

SELECT * FROM student
WHERE grade>70 AND sex='男';

运行结果如下:
在这里插入图片描述
上例中我们查询了成绩在70分以上的男同学的元组。


⑥排序查询:
用户可以使用ORDER BY子句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认为升序排列。

SELECT * FROM student
ORDER BY grade DESC;SELECT * FROM student
ORDER BY collegeID, grade DESC;

运行结果如下:
在这里插入图片描述
在上例中我们查询了全体学生的情况,查询结果按所在的系的系号升序排列,同一系的学生按成绩降序排列。


(5)聚集函数
为了进一步方便用户,增强检索功能,SQL提供了许多聚集函数,主要有:

聚集函数功能
COUNT(*)统计元组个数(*代表整个元组)
COUNT(DISTINCT / ALL <列名>)统计一列中值的个数
SUM(DISTINCT / ALL <列名>)对某一列的值求和(该列必须是数值型)
AVG(DISTINCT / ALL <列名>)对某一列的值求平均值(该列必须是数值型)
MAX(DISTINCT / ALL <列名>)取一列中的最大值
MIN(DISTINCT / ALL <列名>)取一列中的最小值
SELECT COUNT(*)
FROM student;SELECT COUNT(DISTINCT collegeID)
FROM student;SELECT AVG(grade)
FROM student;SELECT SUM(grade)
FROM student;SELECT MAX(grade)
FROM student;SELECT MIN(grade)
FROM student;

运行结果如下:
在这里插入图片描述


通过本篇博客,您了解了如何使用 SQL 语句查询 Oracle 数据库中的数据。无论是基本查询还是高级查询,SQL 都提供了灵活和强大的功能,以满足各种数据分析和处理需求。为了充分利用这些功能,建议您深入学习 SQL 语言,并不断尝试实践和探索。

相关文章:

用SQL语句操作oracle数据库--数据查询(上篇)

SQL操作Oracle数据库进行数据查询 Oracle 数据库是业界领先的关系型数据库管理系统之一&#xff0c;广泛应用于企业级应用和数据仓库等场景中。本篇博客将介绍如何使用 SQL 语句对 Oracle 数据库进行数据查询操作。 1.连接到数据库 在开始查询之前&#xff0c;需要使用合适的…...

模板学堂|DataEase图表样式解析

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场&#xff08;https://dataease.io/templates/&#xff09;。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板&#xff0c;方便用户根据自身的业务需求和使用场景选择对应的仪表板模板&#xff0c;并…...

STM32看门狗

目录 独立看门狗 IWDG 什么是看门狗&#xff1f; 独立看门狗本质 独立看门狗框图 独立看门狗时钟 分频系数算法&#xff1a; ​编辑 重装载寄存器 键寄存器 溢出时间计算公式 独立看门狗实验 需求&#xff1a; 硬件接线&#xff1a; 溢出时间计算&#xff1…...

什么是划分子网?网络工程师划分子网有啥技巧?

随着互联网的快速发展&#xff0c;越来越多的组织和企业在其内部建立了复杂的网络系统来满足日常的信息传输和资源共享需求。而在这些网络系统中&#xff0c;划分子网&#xff08;也称为子网划分&#xff09;作为一种常见的网络管理方法&#xff0c;为组织和企业提供了更加灵活…...

制作两栏布局的 6+5 种方法:从相当合理到完全错误

一个挑战 假设您需要创建一个两列布局。是的&#xff0c;最简单的那种&#xff1a;左边一列&#xff0c;右边一列&#xff0c;中间有一些空隙。有一个明显的现代解决方案&#xff1a; .columns {display: grid;grid-template-columns: 1fr 1fr;gap: 20px; }完毕&#xff01;当…...

nvidia-smi 各种命令

各种命令网站 点 主频 显卡就像一家工厂&#xff0c;工厂的工人是GPU。而主频就相当于工人的工作效率&#xff0c;主频越高&#xff0c;意味着工人的工作效率越高&#xff0c;能在单位时间内完成更多的任务。但同时&#xff0c;工作效率越高&#xff0c;工人们就越容易疲劳&…...

实验6 TensorFlow基础

1. 实验目的 掌握TensorFlow低阶API&#xff0c;能够运用TensorFlow处理数据以及对数据进行运算。 2.实验内容 ①实现张量维度变换&#xff0c;部分采样等&#xff1b; ②实现张量加减乘除、幂指对数运算&#xff1b; ③利用TensorFlow对数据集进行处理。 3.实验过程 题目…...

Python爬虫基础之如何对爬取到的数据进行解析

目录1. 前言2. Xpath2.1 插件/库安装2.2 基础使用2.3 Xpath表达式2.4 案例演示2.4.1 某度网站案例3. JsonPath3.1 库安装3.2 基础使用3.2 JsonPath表达式3.3 案例演示4. BeautifulSoup4.1 库安装4.2 基础使用4.3 常见方法4.4 案例演示参考文献原文地址&#xff1a;https://www.…...

【Python游戏】坦克大战、推箱子小游戏怎么玩?学会这些让你秒变高高手—那些童年的游戏还记得吗?(附Pygame合集源码)

前言 下一个青年节快到了&#xff0c;想小编我也是过不了几年节日了呢&#xff01;&#xff01; 社交媒体上流传着一张照片——按照国家规定“14岁到28岁今天都应该放半天假&#xff01;”不得不说&#xff0c; 这个跨度着实有点儿大&#xff0c;如果按整自然年来算年龄&…...

python3 DataFrame一些好玩且高效的操作

pandas在处理Excel/DBs中读取出来&#xff0c;处理为DataFrame格式的数据时&#xff0c;处理方式和性能上有很大差异&#xff0c;下面是一些高效&#xff0c;方便处理数据的方法。 map/apply/applymaptransformagg遍历求和/求平均shift/diff透视表切片&#xff0c;索引&#x…...

如何从 PowerPoint 导出高分辨率(高 dpi)幻灯片

如何从 PowerPoint 导出高分辨率&#xff08;高 dpi&#xff09;幻灯片更改导出分辨率设置将幻灯片导出为图片限制你可以通过将幻灯片保存为图片格式来更改 Microsoft PowerPoint 的导出分辨率。 此过程有两个步骤&#xff1a;使用系统注册表更改导出的幻灯片的默认分辨率设置&…...

JAVA数据结构之冒泡排序,数组元素反转,二分查找算法的联合使用------JAVA入门基础教程

//二分查找与冒泡排序与数组元素反转的连用 int[] arr2 new int[]{2,4,5,8,12,15,19,26,29,37,49,51,66,89,100}; int[] po new int[arr2.length]; //复制一个刚好倒叙的数组po for (int i arr2.length - 1; i > 0; i--) {po[arr2.length - 1 - i] arr2[i]; }//arr2 po…...

linux对动态库的搜索知识梳理

一.动态库优先搜索路径顺序 之前的文章我有整理过&#xff0c;这里再列出来一次 1. 编译目标代码时指定的动态库搜索路径&#xff1b; 2. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径&#xff1b; 3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径&#xff1b; 4. 默认…...

R -- 用psych包做因子分析

因子分析 因子分析又称为EFA&#xff0c;是一系列用来发现一组变量的潜在结构的办法。它通过寻找一组更小的&#xff0c;潜在的结构来解释已观测到的显式的变量间的关系。这些虚拟的、无法观测的变量称为因子&#xff08;每个因子被认为可以解释多个观测变量间共有的方差&…...

既然操作系统层已经提供了page cache的功能,为什么还要在应用层加缓存?

Page Cache是一种在操作系统内核中实现的缓存机制&#xff0c;用于缓存文件系统中的数据块。当一个进程请求读取一个文件时&#xff0c;操作系统会首先在Page Cache中查找数据块&#xff0c;如果找到了相应的数据块&#xff0c;则直接返回给进程&#xff1b;如果没有找到&#…...

Redis应用问题解决

16. Redis应用问题解决 16.1 缓存穿透 16.1.1 问题描述 key对应的数据在数据源并不存在&#xff0c;每次针对此key的请求从缓存获取不到&#xff0c;请求都会压到数据源&#xff0c;从而可能压垮数据源。比如用一个不存在的用户id获取用户信息&#xff0c;不论缓存还是数据库…...

Qemu虚拟机读取物理机的物理网卡的流量信息方法

项目背景&#xff1a; 比如我有三个项目 A&#xff0c;B&#xff0c;C&#xff1b;其中A项目部署在物理机上&#xff0c;B&#xff0c;C项目部署在 虚拟机V1,V2中&#xff0c;三个项目接口需要相互调用。 需要解决的问题点&#xff1a; 1&#xff0c;因为A&#xff0c;B&#x…...

面试题之vue的响应式

文章目录前言一、响应式是什么&#xff1f;二、Object.defineProperty二、简单模拟vue三、深度监听四、监听数组总结前言 为了应对面试而进行的学习记录&#xff0c;可能不够有深度甚至有错误&#xff0c;还请各位谅解&#xff0c;并不吝赐教&#xff0c;共同进步。 一、响应式…...

聚焦弹性问题,杭州铭师堂的 Serverless 之路

作者&#xff1a;王彬、朱磊、史明伟 得益于互联网的发展&#xff0c;知识的传播有了新的载体&#xff0c;使用在线学习平台的学生规模逐年增长&#xff0c;越来越多学生在线上获取和使用学习资源&#xff0c;其中教育科技企业是比较独特的存在&#xff0c;他们担当的不仅仅是…...

NDK RTMP直播客户端二

在之前完成的实战项目【FFmpeg音视频播放器】属于拉流范畴&#xff0c;接下来将完成推流工作&#xff0c;通过RTMP实现推流&#xff0c;即直播客户端。简单的说&#xff0c;就是将手机采集的音频数据和视频数据&#xff0c;推到服务器端。 接下来的RTMP直播客户端系列&#xff…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...