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

news2025/9/16 9:04:17

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 语言,并不断尝试实践和探索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

素材管理系统概念导入

引言 由于工作上的调整安排&#xff0c;有幸参加营销素材管理系统的产品建设工作中&#xff0c;营销宣传领域一直是我的知识盲区&#xff0c;所以素材管理系统的产品建设对我来说是个富有挑战性的工作&#xff0c;在这过程中&#xff0c;我也秉持着“好记性不如烂笔头”的原则&…

Golang每日一练(leetDay0033) 二叉树专题(2)

目录 97. 交错字符串 Interleaving String &#x1f31f;&#x1f31f; 98. 验证二叉搜索树 Validate Binary Search Tree &#x1f31f;&#x1f31f; 99. 恢复二叉搜索树 Recover Binary Search Tree &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &am…

中国人工智能企业CIMCAI世界前三大船公司落地,智能船公司产品20秒AI自动验箱,箱信息箱况+精确地点报备智慧港航中国人工智能企业

中国人工智能企业CIMCAI世界前三大船公司落地&#xff0c;智能船公司产品20秒AI自动验箱&#xff0c;箱信息箱况精确地点报备智慧港航。小程序全时全域自动化箱况检测信息识别&#xff0c;CIMCAI全球领先新一代集装箱管理方案&#xff0c;人工智能AI自动化箱信息识别箱况检测地…

Python 小型项目大全 21~25

二十一、DNA 可视化 原文&#xff1a;http://inventwithpython.com/bigbookpython/project21.html 脱氧核糖核酸是一种微小的分子&#xff0c;存在于我们身体的每个细胞中&#xff0c;包含着我们身体如何生长的蓝图。它看起来像一对核苷酸分子的双螺旋结构&#xff1a;鸟嘌呤、…

【跟着陈七一起学C语言】今天总结:C语言的函数相关知识

友情链接&#xff1a;专栏地址 知识总结顺序参考C Primer Plus&#xff08;第六版&#xff09;和谭浩强老师的C程序设计&#xff08;第五版&#xff09;等&#xff0c;内容以书中为标准&#xff0c;同时参考其它各类书籍以及优质文章&#xff0c;以至减少知识点上的错误&#x…

太阳能电池板AI视觉检测:不良品全程阻断,高效助力光伏扩产

2022年&#xff0c;面对复杂严峻的国内外形势&#xff0c;我国光伏行业依然实现高速增长&#xff0c;多晶硅、硅片、电池片、组件产量稳居全球首位。2023年以来&#xff0c;扩产项目已多点开花。光伏装机量天花板将不断提升&#xff0c;分布式电站占比也将逐年上升。中国光伏行…

4月软件测试面试太难,吃透这份软件测试面试笔记后,成功跳槽涨薪30K

4 月开始&#xff0c;生活工作渐渐步入正轨&#xff0c;但金三银四却没有往年顺利。昨天跟一位高级架构师的前辈聊天时&#xff0c;聊到今年的面试。有两个感受&#xff0c;一个是今年面邀的次数比往年要低不少&#xff0c;再一个就是很多面试者准备明显不足。不少候选人能力其…

python学籍管理系统

1&#xff0c;创建登陆的首页面&#xff0c;且封装起来。LoginPage.py import tkinter as tk#导入tk模块 from tkinter import messagebox#导入消息提示模块 from tkinter import messagebox from db import db #导入数据库db class LoginPage:#把整个登陆页面创建一个class类…

搭建自己的饥荒Don‘t Starve服务器-饥荒Don‘t Starve开服教程

前言 饥荒这个游戏&#xff0c;虽然首发于2016年&#xff0c;但是贵在好玩呀。和Minecraft一样&#xff0c;可玩性很高&#xff0c;并且有很多mods&#xff0c;最近和小伙伴玩的过程中&#xff0c;就想着搭建一个服务器&#xff0c;方便在主机玩家不在线时候&#xff0c;也可以…

Linux软件安装---Tomcat安装

安装Tomcat 操作步骤&#xff1a; 使用xftp上传工具将tomcat的 二进制发布包上传到Linux解压安装包&#xff0c;命令为tar -zxvf apache-tomcat*** -C /usr/local进入Tomcat的bin的启动目录&#xff0c;命令为sh startup.sh或者./startup.sh 验证Tomcat启动是否成功&#xff0…

LeetCode:376. 摆动序列——说什么贪心和动规~

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340;算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;376. 摆动序列 题目描述&#xff1a;如果连续数字之间的差严格地在正数和…

Python 小型项目大全 46~50

# 四十六、百万骰子投掷统计模拟器 原文&#xff1a;http://inventwithpython.com/bigbookpython/project46.html 当你掷出两个六面骰子时&#xff0c;有 17%的机会掷出 7。这比掷出 2 的几率好得多&#xff1a;只有 3%。这是因为只有一种掷骰子的组合给你 2&#xff08;当两个…

「 分布式技术 」一致性哈希算法(Hash)详解

「 分布式技术 」一致性哈希算法&#xff08;Hash&#xff09;详解 参考&鸣谢 一致性 Hash 算法原理总结 kylinkzhang&#xff0c;腾讯 CSIG 后台开发工程师 什么是一致性哈希&#xff1f; xiaolinCoding 文章目录「 分布式技术 」一致性哈希算法&#xff08;Hash&#xff…

imagenet val 按类别分类

前言 有时候想看imagenet下某个类别的效果&#xff0c;但它又没划分… 之前看了这篇文章将ImageNet的验证集val数据分类到不同文件夹中&#xff0c;但不是很清楚那代码。 本文基于它的代码去做更改 把这个下下来 https://raw.githubusercontent.com/soumith/imagenetloader.…

ChatGPT 有哪些神奇的使用方式?

在遇到 ChatGPT之前&#xff0c;我很难想象&#xff0c;仅仅不到30s就能做出一个PPT。 而且对于小白来说&#xff0c;这个PPT绝对是「有水准、能拿得出手」的那种。 下面就是我用ChatGPTMindShow做的一套以分享短视频玩法为主题的 PPT&#xff0c;我挑几页大家看一下。 上面这…

10.Java面向对象----继承

Java面向对象—继承 面向对象简称 OO&#xff08;Object Oriented&#xff09;&#xff0c;20 世纪 80 年代以后&#xff0c;有了面向对象分析&#xff08;OOA&#xff09;、 面向对象设计&#xff08;OOD&#xff09;、面向对象程序设计&#xff08;OOP&#xff09;等新的系统…

2023 Java 面试题之MyBatis篇

持续更新内容涵盖&#xff1a;Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、 Linux 等技术栈&#xff08;滴滴滴.会持续更新哦&#xff0c;记得点赞、关注、分享三连击哈&#xff09;. My…

NumPy 秘籍中文第二版:十、Scikits 的乐趣

原文&#xff1a;NumPy Cookbook - Second Edition 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 在本章中&#xff0c;我们将介绍以下秘籍&#xff1a; 安装 scikit-learn加载示例数据集用 scikit-learn 对道琼斯股票进行聚类安装 Statsmodels使用 Statsmodels 执行…

【linux】——引导过程与服务控制

文章目录1.linux操作系统引导过程1.1 引导过程总览1.2 linux操作系统的引导过程1.3 系统初始化进程1.4 Systemd单元类型1.5 运行级别所对应的systemd目标2.排除启动类故障2.1 修复MBR扇区故障2.2 实例&#xff1a;修复MBR扇区故障2.2 修复GRUB引导故障2.3 实例&#xff1a;恢复…

电子数据取证(一)

电子数据取证概述 一&#xff0c;什么是电子数据 电子数据的特点 **1、以数字化形式存在。**所有的电子数据都是基于计算机应用和通信等电子化技术手段形成的&#xff0c;用以表示文字、图形符号、数字、字母等信息的资料。与其他证据种类不同&#xff0c;电子数据在本质上而…