当前位置: 首页 > 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…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

结构化文件管理实战:实现目录自动创建与归类

手动操作容易因疲劳或疏忽导致命名错误、路径混乱等问题&#xff0c;进而引发后续程序异常。使用工具进行标准化操作&#xff0c;能有效降低出错概率。 需要快速整理大量文件的技术用户而言&#xff0c;这款工具提供了一种轻便高效的解决方案。程序体积仅有 156KB&#xff0c;…...