Backend - Oracle SQL
目录
一、CRUD 增删改查(基础)
(一)查询
(二)插入
(三)更新
(四)清空
二、常用 SQL
1. exists 搭配 select 1
2. FROM DUAL
3. INSTR()函数
4. 提取字串
5. IF 条件
(1)基本写法
(2)嵌套写法
6. 循环
(1)for循环
(2)loop循环
7. 格式化文本(换行)
8. 游标
(1)游标类型
① 系统自带:SYS_REFCURSOR
② 自定义强类型
(2)游标属性
(3)用法
① 定义游标时赋值
② 打开游标时赋值
9. SQL编辑器中的输出语法
10. SQL编辑器中的异常信息
11. 查询clob字段的值
(1)用PLSQL的Editor查看
(2)用SQL语句查询
① 首先判断clob字符长度
② 查询内容
12. 日期处理(decode、nvl)
(1)decode函数
(2)nvl函数
13. LAG() 和 LEAD() 窗口函数
(1)LAG(column, n)
(2)LEAD(column, n)
一、CRUD 增删改查(基础)
(一)查询
查询前10行记录
SELECT ROWNUM, t.* FROM XXX t WHERE ROWNUM <= 10;
(二)插入
INSERT INTO 表名 (栏位名1,栏位名2) VALUES ('值1','值2'));
注意:执行更新和插入、删除时,一定要再三确认好语句后才执行。
(三)更新
UPDATE 表名
SET 栏位名 = '值', 栏位名2 = '值2'
WHERE 栏位名 = '值' and 栏位名2 = '值2';
注意:执行更新和插入、删除时,一定要再三确认好语句后才执行。
(四)清空
TRUNCATE TABLE 表名;
注意:执行更新和插入、删除时,一定要再三确认好语句后才执行。
二、常用 SQL
1. exists 搭配 select 1
select 1常用于判断子查询是否成功,返回的结果是满足查询条件的每行记录都返回1。
exists (子查询) 常搭配select 1子查询,用于判断子查询是否包含行,返回的结果是布尔值。
例如:
select * from Book Bk where exists (select 1 from Author where Bk.id = Author.bookid)
其中,若 select 1 这个子查询有返回值,则子查询满足条件,exists 返回True(理解:Book表中id是否在Author表中的bookid也有对应)。
2. FROM DUAL
理解:DUAL 是 Oracle 的虚拟表,不能更改该表(包括数据)。它只有一行一列。
作用:常用于从系统函数中取值时,保证查询语句完整来正常执行。
例如,查询当前系统时间:select sysdate from dual。
3. INSTR()函数
字符查找函数。查找一个字符串在另一个字符串中首次出现的位置,若找不到,则返回0。起始位置从1开始。
例如:INSTR("这是一个字符串,一个字符串喔", '一个')的结果是3。
4. 提取字串
substr(string, start_position, length)
5. IF 条件
(1)基本写法
IF … THEN … END IF;
(2)嵌套写法
IF <condition1> THEN-- 处理条件1为TRUE时的逻辑IF <condition2> THEN-- 处理条件2为TRUE时的逻辑ELSE-- 处理条件2为FALSE时的逻辑END IF;ELSE-- 处理条件1为FALSE时的逻辑
END IF;
6. 循环
(1)for循环
FOR i in 1 .. length(变量名)
LOOP …
END LOOP;
(2)loop循环
相当于do..while循环
loop …
exit when 条件;
end loop;
7. 格式化文本(换行)
写法: CHR(13) || CHR(10)
8. 游标
(1)游标类型
① 系统自带:SYS_REFCURSOR
举例:
游标名 SYS_REFCURSOR;
② 自定义强类型
举例:
TYPE 游标类型名 IS REF CURSOR; -- 自定义REF CURSOR 强游标类型
游标名 游标类型名; -- 定义游标
(2)游标属性
%isopen -- 游标是否打开
%rowcount -- 已从游标中读取的记录数
%found -- 该行是否有值
%notfound -- 该行是否没有值
(3)用法
① 定义游标时赋值
在begin前定义:
cursor 游标名 IS SQL查询语句; --- 赋值SQL语句
打开:
open 游标名; --- 使用前必须先打开
获取一行游标:
fetch 游标名 into 变量名 ; --- (变量名类型定义:表名.栏位名%type)
关闭:
close 游标名 ; --- 一经打开记得关闭
② 打开游标时赋值
在begin前定义:
TYPE 游标类型 IS REF CURSOR; 游标名 游标类型; -- REF CURSOR 类型(强类型)
打开:
OPEN 游标名 FOR SQL查询语句; --- 赋值SQL语句
9. SQL编辑器中的输出语法
DBMS_OUTPUT.PUT_LINE(' ');
注意:
DBMS_OUTPUT最大長度为32767。若想全部打印且不报异常,则如下:
首先定义时,
maxLength CONSTANT NUMBER := 32767; -- DBMS_OUTPUT最大長度
然后begin时,
curLength := LENGTH(SQL变量名); --- 获取当前SQL语句的最大长度
FOR i IN 1..CEIL( curLength / maxLength) LOOP --- 循环打印出SQL语句DBMS_OUTPUT.PUT_LINE(SUBSTR(SQL变量名, (i - 1) * maxLength + 1, maxLength));
END LOOP;
10. SQL编辑器中的异常信息
DBMS_UTILITY.format_error_backtrace
例如,打印出异常信息:
DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.format_error_backtrace);
11. 查询clob字段的值
该内容针对的是字段,若是Test,直接使用下方的变量值输出框即可查看CLOB值(注意使用 “=> :变量名”的冒号形式)。
(1)用PLSQL的Editor查看
在PLSQL中的表格数据中,右击,选择Open in Editor。
或者直接点击该单元格旁边的三点符号。
(2)用SQL语句查询
① 首先判断clob字符长度
SELECT DBMS_LOB.GETLENGTH(栏位名)
FROM 表名
WHERE ROWNUM <10;
② 查询内容
-- 查询某栏位的前3500个字符,从第1个位置开始。
-- 使用SUBSTR方法时,长度不可超出4000。
SELECT DBMS_LOB.SUBSTR(栏位名, 3500, 1)
FROM 表名
WHERE ROWNUM <10;
12. 日期处理(decode、nvl)
(1)decode函数
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
--- 若条件1等于值1,则返回值1,然后依次检查,若都不满足,则默认缺省值,若没有缺省值,则默认为null。
(2)nvl函数
nvl(column, 默认值) --- 若某字段为null,则显示默认值。
13. LAG() 和 LEAD() 窗口函数
(1)LAG(column, n)
访问当前行之前的最近某行中的数据。
LAG(column, 1, 默认值) OVER(ORDER BY column) --- 查询column该字段中每行的前面最近1行的数据,若无值则默认值。
(2)LEAD(column, n)
访问当前行之后的最近某行中的数据。
LEAD(column,2, 默认值) OVER(ORDER BY column) --- 查询column该字段中每行的后面次近1行(第2近行)的数据,若无值则默认值。
注意:
一般需要搭配排序(如OVER(ORDER BY column)),LAG和LEAD函数才有意义。
相关文章:
Backend - Oracle SQL
目录 一、CRUD 增删改查(基础) (一)查询 (二)插入 (三)更新 (四)清空 二、常用 SQL 1. exists 搭配 select 1 2. FROM DUAL 3. INSTR()函数 4. 提取…...
WebSocket心跳机制
通常,心跳机制包括: 定期发送消息(如ping)到服务器以保持连接活跃检测服务器的相应(pong)如果一段时间没有收到相应,可能需要重新连接 ::: warning 在连接关闭或者发生错误时,清除心跳定时器,避免内存泄漏 ::: 在实现…...
计算机视觉与深度学习 | PSO-MVMD粒子群算法优化多元变分模态分解(Matlab完整代码和数据)
以下是一个基于PSO优化多元变分模态分解(MVMD)的Matlab示例代码框架,包含模拟数据生成和分解结果可视化。用户可根据实际需求调整参数。 %% 主程序:PSO优化MVMD参数 clc; clear; close all;% 生成模拟多变量信号 fs = 1000; % 采样频率 t = 0:1/fs:...
Fast Video Cutter Joiner v6.8.2 视频剪切合并器汉化版
想要快速拆解冗长视频,或是将零散片段拼接成完整作品?Fast Video Cutter Joiner 正是你需要的宝藏视频编辑软件!它以强大功能为核心,将复杂的视频处理变得简单直观。 精准的切割与合并功能,让你能随心所欲地裁剪视频…...
【漫话机器学习系列】269.K-Means聚类算法(K-Means Clustering)
一、K-Means 聚类算法简介 K-Means 是一种基于距离的无监督机器学习算法,属于聚类算法(Clustering Algorithm)。它的目标是将数据集划分为 K 个不重叠的子集(簇),使得每个子集中的数据点尽可能相似&#x…...
【北邮通信系统建模与仿真simulink笔记】(1)主要用到的模块库介绍
【声明】 本博客仅用于记录博主学习内容、分享笔记经验,不得用作其他非学术、非正规用途,不得商用。本声明对本博客永久生效,若违反声明所导致的一切后果,本博客均不负责。 目录 1、信号源模块库(Sources)…...
【信息系统项目管理师】第11章:项目成本管理 - 32个经典题目及详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…...
Java转Go日记(四十四):Sql构建
1.1.1. 执行原生SQL db.Exec("DROP TABLE users;")db.Exec("UPDATE orders SET shipped_at? WHERE id IN (?)", time.Now, []int64{11,22,33})// Scantype Result struct {Name stringAge int}var result Resultdb.Raw("SELECT name, age FROM use…...
数组day2
209长度最小的子数组 class Solution { public:int minSubArrayLen(int s, vector<int>& nums) {int result INT32_MAX;int sum 0; // 滑动窗口数值之和int i 0; // 滑动窗口起始位置int subLength 0; // 滑动窗口的长度for (int j 0; j < nums.size(); j) …...
《Effective Python》第三章 循环和迭代器——永远不要在迭代容器的同时修改它们
引言 本文基于《Effective Python: 125 Specific Ways to Write Better Python, 3rd Edition》第3章“循环和迭代器”中的 Item 22:“Never Modify Containers While Iterating over Them; Use Copies or Caches Instead(永远不要在迭代容器的同时修改它…...
SQLite基础及优化
SQLite 什么是SQLite SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它&#…...
数据库与存储安全
2.1 SQL注入攻防实战(手工注入、自动化工具) 攻击原理与分类 联合查询注入:通过UNION SELECT窃取数据。 UNION SELECT 1,username,password FROM users-- 布尔盲注:利用页面响应差异逐位提取数据。 AND (SELECT SUBSTRING(password,1,1) FROM users WHERE id=1)=a-- 时间…...
vue3/vue2大屏适配
vue3-scale-box 和 vue2-scale-box 可以帮助你在不同 Vue 版本中实现大屏自适应缩放。vue3-scale-box - npmvue3 scale box. Latest version: 0.1.9, last published: 2 years ago. Start using vue3-scale-box in your project by running npm i vue3-scale-box. There is 1 o…...
【数据结构 -- AVL树】用golang实现AVL树
目录 引言定义旋转方式LL型RR型LR型RL型 实现结构获取结点高度平衡因子更新高度左旋右旋插入结点中序遍历 引言 AVL树,基于二叉搜索树通过平衡得到 前面我们知道,通过🔗二叉搜索树可以便捷快速地查找到数据,但是当序列有序时&am…...
matlab慕课学习3.5
于20250520 3.5 用while 语句实现循环结构 3.5.1while语句 多用于循环次数不确定的情况,循环次数确定的时候用for更为方便。 3.5.2break语句和continue语句 break用来跳出循环体,结束整个循环。 continue用来结束本次循环,接着执行下一次…...
【jmeter】base64加密
base64加密 执行的脚本: import java.io.*; import sun.misc.BASE64Encoder; String strvars.get("param") #设置了一个user paramBASE64Encoder encodernew BASE64Encoder() log.info("--------start----------") String resultencoder.encod…...
优化Hadoop性能:如何修改Block块大小
在处理大数据时,Hadoop的性能和资源管理是至关重要的。Hadoop的分布式文件系统(HDFS)将数据切割成多个块(Block),并将这些块分布在集群中的不同节点上。在默认情况下,HDFS的块大小可能并不适合所…...
jmeter转义unicode变成中文
打开jmeter,添加后置处理器到接口请求后,在添加完成后将代码复制进入 (注意:最后执行后需要到“察看结果树”里看,需要自行添加对应的监听器) 按如下添加代码进入上图位置: //如下复制于链接&…...
ALSA 插件是什么? PortAudio 断言失败是什么意思?
下面用更简单的语言和图文形式帮你理解: 1. ALSA 插件是什么?为什么重要? 想象你电脑里的音频系统就像一个厨房,ALSA 是厨房里的厨师,负责做出声音(做菜)和收集声音(收菜࿰…...
计算机科技笔记: 容错计算机设计05 n模冗余系统 双模冗余系统 Duplex Systems
接收测试 测试 (HA服务器的方法) HA系统 一、基本HA结构 当前常用的HA(High Availability)系统结构大体如下: 双机结构:两台主机(可称为主机A和主机B) 两种运行模式: A…...
Translational Psychiatry | 注意缺陷多动障碍儿童延迟厌恶的行为与神经功能特征茗创科技茗创科技
摘要 尽管已有大量研究致力于解析注意缺陷多动障碍(ADHD)中的认知异质性,但对其动机变化(尤其是延迟厌恶)的探索仍相对有限。本研究旨在通过识别ADHD儿童的同质性延迟厌恶特征来理解其动机缺陷,采用体验式延迟贴现任务对43名ADHD儿童和47名对照参与者(经…...
MYSQL备份恢复知识:第四章:备份锁
为了获得备份数据的一致性,需要在数据库中加锁,保证在备份期间没有数据变化。早期版本的MySQL仅支持表级锁,在加锁期间不允许访问数据库,这对生产环境是极大的挑战。因此,在后续版本中引入了实例级锁,使得备…...
寻找最优美做题曲线
题目描述 一个有趣的评测功能,就是系统自动绘制出用户的“做题曲线”。所谓做题曲线就是一条曲线,或者说是折线,是这样定义的:假设某用户在第 bi 天 AC 了 ci 道题,并且 bi 严格递增,那么该用户的做…...
DeepSeek-V3 vs GPT-4:技术对比与性能评测
DeepSeek-V3 vs GPT-4:技术对比与性能评测 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 DeepSeek-V3 vs GPT-4:技术对比与性能评测摘要引言技术架构对比1. 模型结构:稠密模型 …...
【Fifty Project - D29】
今日完成记录 TimePlan完成情况7:30 - 9:00大论文修改以及小论文修改√9:00 - 9:30整理近期购置物品项√9:30 - 10:00约了个画稿做个毕业冰箱贴!√10:00 - 11:30Leetcod…...
创建一个使用 GPT-4o 和 SERP 数据的 RAG 聊天机器人
亮数据-网络IP代理及全网数据一站式服务商屡获殊荣的代理网络、强大的数据挖掘工具和现成可用的数据集。亮数据:网络数据平台领航者https://www.bright.cn/?promogithub15?utm_sourceorganic-social-cn&utm_campaigncsdn 本指南将解释如何使用 Python、GPT-4…...
安装PostgresSQL
目录 安装postgressql所需的依赖环境 编译安装 解压源码包 切换目录 --prefix指定安装目录 编译以及安装 配置环境创建用户 创建数据存储目录 更改数据存储目录的归属用户 配置环境变量 登录数据库 Dnf安装 安装postgresql 初始化数据库 登录数据库 postgresql…...
PL/SQL 安装配置与使用
目录 一、安装与配置 (一)下载PLSQL Developer (二)下载并配置免安装Oracle客户端 1. 下载Instantclient_11_2 2. 配置环境 (1)配置电脑的环境变量 (2)配置PLSQL Developer的…...
Oracle RAC ADG备库版本降级方案(19.20 → 19.7)
Oracle RAC ADG备库版本降级方案(19.20 → 19.7) 一、前期准备 1.1环境验证 主库版本:19.7 备库版本:19.20 检查兼容性:确认Oracle 19.20补丁是否支持回滚至19.7 1.2备份与快照 对备库数据库进行全量备份&#…...
SpringBoot-4-Spring Boot项目配置文件和日志配置
文章目录 1 项目全局配置文件1.1 配置示例1.2 配置文件加载顺序2 通过配置文件注入配置项2.1 使用@Value注解注入属性2.2 使用@ConfigurationProperties注入2.3 配置注入的注意事项2.4 配置文件中引用已定义值3 Spring Boot的日志配置3.1 引入日志依赖器3.2 自定义日志格式3.3 …...
mac上安装 Rust 开发环境
1.你可以按照提示在终端中执行以下命令(安全、官方支持): curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh然后按提示继续安装即可。 注意:安装过程中建议选择默认配置(按 1 即可)。 如果遇…...
微软押注“代理式AI网络”:一场重塑软件开发与工作方式的技术革命
在 2025 年 Build 开发者大会上,微软正式发布了其面向“开放代理式网络(Open Agentic Web)”的宏大战略,推出超过 50 项 AI 相关技术更新,涵盖 GitHub、Azure、Windows 和 Microsoft 365 全线产品。这一系列更新的核心…...
鸿蒙HarmonyOS多设备流转:分布式的智能协同技术介绍
随着物联网和智能设备的普及,多设备间的无缝协作变得越来越重要。鸿蒙(HarmonyOS)作为华为推出的新一代操作系统,其分布式技术为实现多设备流转提供了强大的支持。本文将详细介绍鸿蒙多设备流转的技术原理、实现方式和应用场景。 …...
精益数据分析(71/126):从移情到黏性——创业阶段的关键跨越与数据驱动策略
精益数据分析(71/126):从移情到黏性——创业阶段的关键跨越与数据驱动策略 在创业的旅程中,从需求验证的“移情阶段”过渡到产品黏性构建的“黏性阶段”,是决定创业成败的关键转折。今天,我们结合《精益数…...
21. 自动化测试框架开发之Excel配置文件的测试用例改造
21. 自动化测试框架开发之Excel配置文件的测试用例改造 一、测试框架核心架构 1.1 组件依赖关系 # 核心库依赖 import unittest # 单元测试框架 import paramunittest # 参数化测试扩展 from chap3.po import * # 页面对象模型 from file_reader import E…...
学习vue3:监听器
目录 一,关于监听的概述 二,手动监听器(watch函数) watch()函数语法 监听基本数据类型 监听对象,对象属性 三,自动监听器(watchEffect函数) watchEffect()函数语法…...
十大排序算法--快速排序
目录 原理 第一步 第二步 代码 递归实现快速排序 原理 分治法核心步骤 选择基准值(Pivot) 从数组中选一个元素作为基准值(如最右侧元素、中间元素或随机元素)。 分区(Partition) 将数组分为两部分…...
基于Docker搭建Harbor私有镜像仓库
Harbor 是 VMware 开源的企业级 Docker 容器镜像仓库,支持镜像存储、访问控制、镜像复制、安全扫描、审计日志等功能,适合企业级私有化部署。 1.前置环境说明 Harbor的部署依赖于Docker和Docker Compose环境。鉴于Docker已在系统中完成安装,…...
CentOS 7上搭建高可用BIND9集群指南
在 CentOS 7 上搭建一个高可用的 BIND9 集群通常涉及以下几种关键技术和策略的组合:主从复制 (Master-Slave Replication)、负载均衡 (Load Balancing) 以及可能的浮动 IP (Floating IP) 或 Anycast。 我们将主要关注主从复制和负载均衡的实现,这是构成高…...
使用SQLite Studio导出/导入SQL修复损坏的数据库
使用SQLite Studio导出/导入SQL修复损坏的数据库 使用Zotero时遇到了数据库损坏,在软件中寸步难行,遂尝试修复数据库。 一、SQLite Studio简介 SQLite Studio是一款专为SQLite数据库设计的免费开源工具,支持Windows/macOS/Linux。相较于其…...
Liquid Wire 柔性应变传感器:金属凝胶导体 | 仿生肌肉长度监测 | 高精度动作控制
柔性应变传感器通过模拟生物系统反馈机制,为软体机器人提供高精度动作控制能力。研究显示,基于液态导电金属的柔性传感纤维可精准测量仿生手指触觉力(约 1600 kPa)和关节角度变化(约 60),实现特…...
Java IO流操作
Java IO流操作是处理文件和数据流的基础。通过FileInputStream和FileOutputStream,可以读写二进制文件;通过FileReader和FileWriter,可以处理文本文件。BufferedReader提高字符读取效率,InputStreamReader实现字节流到字符流的转换…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(25):受身形(3)
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(25):受身形(3) 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)受身形(1)两要素时,使用【に】(2)三要素时,使用【を】或其他(3)(4)(5) によって(6)から VS で(2)復習(ふくしゅう):3、单词(…...
BPMN.js编辑器设计器与属性面板数据交互
以下是基于提供的Vue组件代码生成的类图,结合BPMN设计器特性与Vue组件封装规范绘制: #mermaid-svg-B6PK7fjqLLTHqh8B {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-B6PK7fjqLLTHqh8B .error…...
os agent智能体软件 - 第三弹 - 纯语音交互
前两期期我们发布了产品的初级形态,那时候还只能是“软件开发者”在本地配置使用,或者运行起来有个大黑框,使用起来美观度太差。 到今天大概20天,我们的第3版已经出来了,不仅做成了电脑端的exe软件(任何人…...
PCB设计教程【入门篇】——电路分析基础-基本元件(二极管三极管场效应管)
前言 本教程基于B站Expert电子实验室的PCB设计教学的整理,为个人学习记录,旨在帮助PCB设计新手入门。所有内容仅作学习交流使用,无任何商业目的。若涉及侵权,请随时联系,将会立即处理、 目录 前言 1.二极管 1.发光…...
python打卡训练营打卡记录day31
知识点回顾 规范的文件命名规范的文件夹管理机器学习项目的拆分编码格式和类型注解 作业:尝试针对之前的心脏病项目ipynb,将他按照今天的示例项目整理成规范的形式,思考下哪些部分可以未来复用。 心脏病项目目录 目录结构:heart/ ├── conf…...
Python列表推导式和生成器表达式详解
Python列表推导式和生成器表达式详解 引言 Python以其简洁优雅的语法而闻名,其中列表推导式(List Comprehensions)和生成器表达式(Generator Expressions)就是这种优雅性的典型代表。本文将深入浅出地介绍这两种强大的…...
Redis 命令大全
Redis 是一个开源的内存数据结构存储系统,支持多种数据结构。以下是 Redis 的常用命令分类总结: 一、Key(键)相关命令 命令描述示例DEL key删除键DEL nameEXISTS key检查键是否存在EXISTS nameEXPIRE key seconds设置键的过期时间(秒)EXPIRE name 60TTL key查看键剩余过期…...
Wan2.1 图生视频 支持批量生成
Wan2.1 图生视频 支持批量生成 flyfish 综合效果 实现基于 Wan2.1 模型的配置化批量生成功能,支持从prompt.json读取多个 “图像 - 文本提示” 组合(每个任务可关联多图像),通过config.json集中管理模型路径、分辨率、帧数、引…...