oracle学习篇(三)

news2024/11/25 7:02:55

oracle学习篇(三)

1 oracle伪列

1.1 查询rowid

1.1.1 示例代码

-- rowid 行id 添加时就生成了(删除某一列时,id会更随着一起删除,id在添加的时候就固定死了)
SELECT rowid,e.* FROM emp e

1.1.2 运行截图

在这里插入图片描述

1.2 查询rownum

1.2.1 示例代码

-- rownum 行号 查询时根据行数产生,第一行(第一条数据)一定是1,
SELECT rownum,e.* FROM emp e;

1.2.2 运行截图

在这里插入图片描述

1.3 rownum实现分页

1.3.1 原理

把里面的查询结果当成一个表,
因而里面的rownum在外面的表可以当成表的正常的列去使用了

1.3.2 示例代码

SELECT * FROM(
       SELECT rownum r,e.* FROM emp e
) where r between 1 and 2;

1.3.3 运行截图

在这里插入图片描述

1.4 rownum员工表中查询工资最高的三个员工

1.4.1 示例代码

SELECT * FROM(
  SELECT rownum r,e.* FROM emp e
  order by sal desc
) where  rownum between 1 and 3

1.4.2 示例代码截图

在这里插入图片描述

1.5 查询出哪些员工工资比本部门平均工资高

1.5.1 示例代码

SELECT e2.* FROM 
 (SELECT AVG(sal) a,deptno FROM emp
 GROUP BY deptno) e1
INNER JOIN emp e2
ON e1.deptno=e2.deptno
WHERE e1.a<e2.sal

1.5.2 示例代码运行截图

在这里插入图片描述

1.6 查询员工的编号、姓名、领导编号、姓名

1.6.1 示例代码

SELECT e1.empno,e1.ename,e2.empno,e2.ename
FROM emp e1
LEFT JOIN emp e2
ON e1.mgr=e2.empno;

1.6.2 示例代码运行截图

在这里插入图片描述

2 保存点

2.1 设置保存点

2.1.1 语法

-- 设置保存点
savepoint 保存点名称;
保存点后面的更新的sql语句

2.1.2 示例代码

--保存点
savepoint a;
update emp set sal=1000 where empno=7369;

2.2 返回到保存点之前的数据的状态

2.2.1 语法

-- 回到保存点之前的状态,该保存点之后的语句均不执行
rollback to 需要恢复到保存点前的名称;

2.2.2 示例代码

--保存点
rollback to c;

3 PL/SQL

3.1 输出hello world

3.1.1 示例代码

begin
  dbms_output.put_line('hello world');
end;

3.1.2 示例代码运行截图

在这里插入图片描述

3.2 定义变量并输出变量

3.2.1 语法

变量名 变量类型(变量长度):=变量值;
-- 如果想要手动输入,使用&关键字即可

3.2.2 示例代码

declare 
  -- '张三'
   vname varchar2(20):=&请输入姓名;
   --vage number;
   vage number:=&请输入年龄;
begin

3.2.3 示例代码运行截图

a 输入之前

在这里插入图片描述

b 输入之后

在这里插入图片描述

3.3 常量的定义及其使用

3.3.1 语法

 常量名 constant 常量类型(长度):=常量值;--常量 不能修改

3.3.2 示例代码

declare
  pi constant number:=3.14;--常量 不能修改
  r number:=&请输入圆的半径;
begin
     dbms_output.put_line('面积:'||pi*r*r);
end;

3.3.3 示例代码运行截图

a 输入之前

在这里插入图片描述

b 输入之后

在这里插入图片描述

3.4 属性数据类型

3.4.1 列类型

a 语法
-- %type 列类型  前面必须指定哪个表的哪一列,得到的具体的某一个值
  变量名 表名.字段%type;
b 示例代码
declare
  vname emp.ename%type;
  vdate emp.hiredate%type;
begin
  select ename,hiredate into vname,vdate from emp where empno=7369;
  dbms_output.put_line('姓名:'||vname);
  dbms_output.put_line('工资:'||to_char(vdate,'yyyy-mm-dd'));
end;
c 示例代码运行截图

在这里插入图片描述

3.4.2 行类型

a 语法
变量名 表名%rowtype;
--该变量可以存储员工表的一行数据,但是不能直接在输出语句里面打印,需要变量名.列名去打印
b 示例代码
declare
 vemp emp%rowtype;
begin
  select * into vemp from emp where empno=7499;
   dbms_output.put_line(vemp.empno||'-'||vemp.ename);
end;
c 示例代码运行截图

在这里插入图片描述

3.5 if循环

3.5.1 语法

if (条件){
     //条件结构体
}	IF 条件 THEN
     --条件结构体
END IF;

3.5.2 示例代码

-- nvl(a,b) 如果a=null 返回b 否则返回a
declare
 vsal emp.sal%type;
begin
  select sal into vsal from emp where ename='JAMES';
  --判断
  IF vsal>900 then
    -- decode
    update emp set comm=nvl(comm,0)+800 where ename='JAMES';
  ELSE
    update emp set comm=nvl(comm,0)+400 where ename='JAMES'; 
  end if;
  -- commit;
end;
--查询代码
-- SELECT * FROM emp WHERE ename ='JAMES'

3.5.3 示例代码运行截图

a 更新前

在这里插入图片描述

b 更新后

在这里插入图片描述

3.6 无条件循环(loop)

3.6.1 语法

 loop
      循环体语句
      exit when 循环退出条件;
      --如果是直接exit,意味着只要运行到这一步那就退出,另外exit when可以在loop后面的任意一个位置
  end loop;   

3.6.2 示例代码

-- 打印1-10之间的数字到控制台
declare
 i number:=1;
begin
  loop
      dbms_output.put_line(i);
      i:=i+1;
      exit when i>10;
  end loop;     
end;

3.6.3 示例代码运行截图

在这里插入图片描述

3.7 while循环

3.7.1 语法

while 循环条件 loop
      其他循环体语句;
      循环变量变化(变少或者变多);
end loop;     

3.7.2 示例代码

-- 打印1-15之间的数字到控制台
while i<=15 loop
      dbms_output.put_line(i);
      i:=i+1;
end loop; 

3.7.3 示例代码运行截图

在这里插入图片描述

3.8 for循环

3.8.1 语法

 for 循环变量 in 起始值..终止值 loop
     循环体语句

3.8.2 示例代码

-- reverse反转输出,输出10到1之间的所有数
begin
  for i in reverse 1..10 loop
      dbms_output.put_line(i);
  end loop;     
end;

3.8.3示例代码运行截图

在这里插入图片描述

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

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

相关文章

Jmeter(十六):jmeter场景的运行架构(本地运行和远程运行)配置远程负载机

jmeter场景的运行架构(本地运行和远程运行) 运行方式&#xff1a; GUI运行&#xff1a;通过图形界面方式运行&#xff0c;该运行方式的可视化界面及监听器动态展示 结果都比较消耗负载机资源&#xff0c;建议大并发时不用&#xff0c;一般进行脚本调试&#xff1b; 命令行运行…

LeetCode刷题复盘笔记—一文搞懂动态规划之188. 买卖股票的最佳时机 IV问题(动态规划系列第二十三篇)

今日主要总结一下动态规划的一道题目&#xff0c;188. 买卖股票的最佳时机 IV 题目&#xff1a;188. 买卖股票的最佳时机 IV Leetcode题目地址 题目描述&#xff1a; 给定一个整数数组 prices &#xff0c;它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。 设计…

带有匹配滤波器的雷达信号调制和脉冲压缩Matlab仿真

up目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 匹配滤波器&#xff1a; 匹配滤波器是输出端的信号瞬时功率与噪声平均功率的比值最大的线性滤波器也就是说有最大的信噪比。其滤波器的传递函数形式是信号频谱的共轭。在通信系统中&#xff0c;滤波器是其中重…

Selenium3自动化测试【40】Html测试报告

&#x1f4cc; 博客主页&#xff1a; 程序员二黑 &#x1f4cc; 专注于软件测试领域相关技术实践和思考&#xff0c;持续分享自动化软件测试开发干货知识&#xff01; &#x1f4cc; 公号同名&#xff0c;欢迎加入我的测试交流群&#xff0c;我们一起交流学习&#xff01; 目录…

Aspartic acid-PEG-BSA 天冬氨酸-聚乙二醇-牛血清白蛋白

产品名称&#xff1a;天冬氨酸-聚乙二醇-牛血清白蛋白 英文名称&#xff1a;Aspartic acid-PEG-BSA 纯度&#xff1a;95% 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 外观:固体或粘性液体&#xff0c;取决于分子量 PEG分子量可选&#xff1a;350、550、750、1k…

Android Kotlin使用APT手写ButterKnife

前言 ButterKnife通过使用BindView注解就可以完成findViewById工作&#xff0c;它的实现原理其实也很简单&#xff0c;通过APT&#xff08;Annotation Processing Too,注解解析器&#xff09;技术&#xff0c;在编译期为我们生成了一个绑定类&#xff0c;而从完成了View的绑定…

OpenAI掌门人Sam Altman:AI的下一个发展阶段

来源&#xff5c;Greylock OneFlow社区编译 翻译&#xff5c;胡燕君、贾川 预告了一整年的GPT-4迟迟没来&#xff0c;人们猜想OpenAI是不是要跳票了&#xff0c;更何况他们之前的得意之作DALL-E也被开源Stable Diffusion打了个措手不及&#xff0c;再不来点深水炸弹业界地位危矣…

jsp+ssm计算机毕业设计ssm学生成绩考核管理系统【附源码】

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JSPSSM mybatis Maven等等组成&#xff0c;B/S模式 Mave…

对 CSS 工程化的理解

CSS 工程化是为了解决以下问题&#xff1a; 宏观设计&#xff1a;CSS 代码如何组织、如何拆分、模块结构怎样设计&#xff1f;编码优化&#xff1a;怎样写出更好的 CSS&#xff1f;构建&#xff1a;如何处理我的 CSS&#xff0c;才能让它的打包结果最优&#xff1f;可维护性&a…

SQL基础——查询基础

查询基础前言整体思维导图列的查询语法2.1 基本的SELECT语句代码示例&#xff1a;从Product表中输出3列执行结果查询出所有的列语法2.2 查询全部的列代码示例2.2 输出Product表中全部的列执行结果为列设置别名代码示例2.3 为列设置别名执行结果代码示例2.4 设置中文别名执行结果…

Redis持久化没玩明白,你就会把缓存数据丢了

引言 我们都知道Redis是微服务架构中重要的基础数据库中间件&#xff0c;通过Redis可以将数据库中的数据缓存到内存中&#xff0c;当服务端有数据查询请求的时候&#xff0c;可以直接从内存中获取数据。如此&#xff0c;一方面服务端可以获得比较快的数据请求响应&#xff0c;…

透明质酸-嵌段共聚物 透明质酸修饰聚乳酸 HA-PLA/PCL/PLGA/PEI/PLL

品牌&#xff1a;为华生物 产地&#xff1a;广州 中文名称&#xff1a;透明质酸-聚乳酸 英文名称&#xff1a;HA-PLA 溶解度&#xff1a;溶于部分有机溶剂 保存时间&#xff1a;一年 PLA分子量&#xff1a;根据客户要求定制 HA分子量&#xff1a;3000--1500K 其他分子量可根据客…

鑫磊股份通过注册:年营收8.2亿 为钟仁志与蔡海红夫妻店

雷递网 雷建平 12月15日鑫磊压缩机股份有限公司&#xff08;简称&#xff1a;“鑫磊股份”&#xff09;日前通过注册&#xff0c;准备在深交所创业板上市。鑫磊股份计划募资4.53亿元&#xff0c;其中&#xff0c;1.97亿元用于新增年产3万台螺杆式空压机技改项目&#xff0c;1.0…

Python+Selenium使用Page Object实现页面自动化测试

&#x1f4cc; 博客主页&#xff1a; 程序员二黑 &#x1f4cc; 专注于软件测试领域相关技术实践和思考&#xff0c;持续分享自动化软件测试开发干货知识&#xff01; &#x1f4cc; 公号同名&#xff0c;欢迎加入我的测试交流群&#xff0c;我们一起交流学习&#xff01; 目录…

03解锁源码分析-ReentrantReadWriteLock原理-AQS-并发编程(Java)

文章目录1 读锁解锁1.1 tryReleaseShared()1.2 doReleaseShared()1.3 unparkSuccessor()1.4 示意图2 写锁解锁2.1 tryRelease()2.2 尝试解锁成功2.3 setHeadAndPropagate()5 后记1 读锁解锁 查看下读锁的解锁相关源代码&#xff1a; public void unlock() {sync.releaseShare…

【实时数仓】在Hbase建立维度表、保存维度数据到Hbase、保存业务数据到kafka主题

文章目录一 分流Sink之建立维度表到HBase(Phoenix)1 拼接建表语句&#xff08;1&#xff09;定义配置常量类&#xff08;2&#xff09;引入依赖&#xff08;3&#xff09;hbase-site.xml&#xff08;4&#xff09;在phoenix中执行&#xff08;5&#xff09;增加代码a TableProc…

Docker安装简单命令

一、 Docker是什么? 要了解Docker&#xff0c;首先要了解什么是容器&#xff1f; 容器是一个软件的轻量级独立可执行软件包&#xff0c;包含运行它所需的一切&#xff1a;代码&#xff0c;运行时&#xff0c;系统工具&#xff0c;系统库&#xff0c;设置。不管环境如何&…

C++(第十二篇):多态(虚函数、抽象类、虚函数表、虚表指针、多继承下的多态)

&#x1f4d2;博客主页&#xff1a;Morning_Yang丶 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4cc;本文所属专栏&#xff1a; 【C拒绝从入门到跑路】 &#x1f64f;作者水平有限&#xff0c;如果发现错误&#xff0c;敬请指正&…

13485-59-1,二肽Ala-Pro,H2N-AP-OH

Substrate for skin fibroblast prolidase.皮肤成纤维细胞prolida酶的底物。 编号: 199181中文名称: 二肽Ala-Pro英文名: Ala-ProCAS号: 13485-59-1单字母: H2N-AP-OH三字母: H2N-Ala-Pro-COOH氨基酸个数: 2分子式: C8H14N2O3平均分子量: 186.21精确分子量: 186.1等电点(PI): 6…

web前端期末大作业:红色主题中国文化网页设计与实现——基于HTML+CSS实现中国梦(20页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…