Oracle
菜鸟进阶站
要对技术有一定的执着力。
展开
-
Oracle自治事务示例演示
通俗的讲,自治事务可以将程序块中(Procedure、Function、Package)的事务进行单独提交,而不会影响主事务(DML);事务提交和回滚时不会影响到主事务中的操作。自治事务(Pragma autonomous_transaction):是PL/SQL块中的一个单独事务,与调用或触发自己的事务之间互不干扰,自己。若先执行主事务后,再执行存储过程,Oracle默认DDL操作会隐式提交主事务。如上所示,我在存储过程中添加了自治事务,且程序块中没有其他任何操作,只有回滚事务的操作。原创 2022-11-27 19:00:00 · 1122 阅读 · 0 评论 -
看不懂执行计划还谈什么SQL优化
你真的懂SQL优化吗原创 2022-09-15 09:30:00 · 317 阅读 · 0 评论 -
Oracle索引详解
sql优化中的索引原创 2022-09-01 08:56:21 · 1834 阅读 · 0 评论 -
【Oracle】基础知识面试题
1)Truncate 是DDL 语句,DELETE 是DML语句。2)Truncate 的速度远快于DELETE;原因是:当执行DELETE操作时所有表数据先被COPY到回滚表空间,数据量不同花费时间长短不一。而TRUNCATE 是直接删除数据不进回滚表空间。3)delete 数据可以运行Rollback 进行数据回滚。而Truncate 则是永久删除不能回滚。4) Truncate 操作不会触发表上的delete触发器,而delete 会正常触发。5) Truncate 语句不能带where 条原创 2022-06-27 10:26:38 · 5318 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程day15 DDL、DML、索引、视图、序列、死锁这一篇就够了
DDL、DML、索引、视图、序列、死锁这一篇就够了原创 2022-06-21 09:00:00 · 594 阅读 · 3 评论 -
【Oracle 数据库】奶妈式教程 day14 转换函数
1、ASCII(str) 把一个字符转换成一个 ASCII 码2、CHR(num) 根据ascii 转换成对应的97字符3、to_number(str)把字符类型的数字转换成数值类型的数字4、to_date(str,'格式') 把字符串 转换成日期5、to_char(日期,格式)把日期转换成字符格式6、to_char(NUM,'格式')...原创 2022-06-20 10:00:00 · 622 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程 day13 日期函数
1、SYSDATE 返回当前系统的本地时间2、add_months(日期1,数)3、months_between(日期1,日期2)求两个日期相差的月数4、next_day(日期,数字) 求下个周几 (数字代表周几)5、last_day(日期)返回当前日期所在月份的最后一天6、TRUNC(日期,'格式') 截断到日期之初...原创 2022-06-19 12:30:00 · 232 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程 day12 字符函数
1.upper(STR) 转大写2.lower(STR) 转小写3.initcap(str) 转首字母大写举例:查询员工姓名转首字母大写 职位转小写4.length(str) 字符长度5.lengthb(str) 字节长度6.TRIM(STR) 去两端空格7.LTRIM(STR1[,STR2]) 去做左端的字符8.RTRIM(STR1[,STR2]) 去右端的字符 str2不写默认去空格9.lpad(STR1,数,str2) 向左填充10.rpad(STR1,数,str2) 向右填充原创 2022-06-18 10:45:00 · 227 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程 day11 数值函数
1.abs(值) 绝对值2.mod(数1,数2) 取余举例:查询员工编号为奇数的员工信息3.ceil(数) 向上取整4.FLOOR(数) 向下取整5.round(数1[,数2])四舍五入6.trunc(数1[,数2]) 截断7.sign(数) 判断正负零8.power(数1,数2) 次方和开方...原创 2022-06-17 13:00:00 · 426 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程 day10 分页
分页知多少原创 2022-06-16 10:45:00 · 212 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程 day09 子查询
不一样的子查询原创 2022-06-15 10:30:00 · 442 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程 day08 全连接 左外连接 右外连接
语法:举个例子:查询所有部门和员工信息full outer join :中的outer可以省略语法:举例:查询所有部门信息,以及各部门下的员工信息除此之外,还有一种方法:注意:用(+)表示的左连接或者右连接,如果是左连接,那么符号加在右表的关系列上,如果是右连接,那么符号加在左表的关系列上语法:举例:查询员工信息,并显示它的部门信息或者感谢关注!回复"优化"获取SQL优化资料;回复"面试"获取面试重点资料;回复"数据库安装包"获取Or原创 2022-06-14 11:00:00 · 1296 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程 day07 内连接
关于内连接你了解多少?原创 2022-06-13 11:45:00 · 258 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程day04 排序查询
排序分组原创 2022-06-10 08:00:00 · 558 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程day06 交叉连接
交叉连接原创 2022-06-12 08:00:00 · 389 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程day05 集合操作符
集合操作符原创 2022-06-11 08:00:00 · 193 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程day03 排序查询
排序分组原创 2022-06-09 08:00:00 · 901 阅读 · 0 评论 -
【Oracle 数据库】奶妈式教程day02 数据库管理工具SQLPLUS的使用
Oracle自带的SQL Plus插件原创 2022-06-08 14:40:24 · 2103 阅读 · 0 评论 -
Oracle合并——merge into
merge 合并:有则更新 无则插入MERGE INTO 目标表USING 源表ON (链接条件)WHEN MATCHED THEN UPDATE ...WHEN NOT MATCHED THEN INSERT .. MERGE INTO TAR_GLLZ AUSING GLLZ BON (A.ID = B.ID)WHEN MATCHED THEN UPDATE SET A.NAME = B.NAME WHEN NOT MATCHED原创 2022-05-19 15:23:35 · 529 阅读 · 0 评论 -
Oracle拉链表(面试常问)
拉链表可以保存历史数据的表(保存每一条数据的生命周期) a 100 2022-01-01 b 100 2022-01-01 a 200 2022-01-02 开链 闭链a 100 2022-01-01 2022-01-02a 200 2022-01-02 9999-12-31b 100 2022-01-01 9999-12-31 某条数据开链日期 要作为 上一条数据的闭链日期 -- 创建原表CREATE TABLE SR原创 2022-05-19 15:21:33 · 2157 阅读 · 0 评论 -
Oracle中WITH AS的用法(面试常问)
WITH AS为什么面试官说with as 可以起到优化的作用?因为:with as 是可以给子查询取一个别名我们可以这么理解,with as 执行完后会将该语句记录到临时表中在接下来的语句中我就可以直接使用该别名了,也就是说我可以直接使用我临时表中的结果(因为在上面已经执行过了)一次编译 多次使用...原创 2022-05-19 15:06:56 · 1914 阅读 · 0 评论 -
关于PL/SQL我写了一份从0到1的入门教程
PL/SQL什么是PL/SQL 许多时候我们会利用结构化查询语言(SQL)来访问和操作关系型数据库。这种语言的特点就是非过程化。也就是说使用的时候不用指明执行的具体方法和途径,即不用关注任何的实现细节。但这种语言也有一个问题,就是在某些情况下满足不了复杂业务流程的需求。 所以就出现了PL/SQL,Oracle的PL/SQL语言正是完美的解决了这个问题,也就是过程化语言。和JAVA、C#等语言一样可以关注细节,用它可以实现复杂的业务逻辑。PL/SQL的优点 使用PL/SQL可以编写具有很原创 2022-04-11 14:42:07 · 1662 阅读 · 0 评论 -
Oracle 分区表
什么是分区表?通俗的讲:分区表就是将一张表中的数据分别放进不同的表空间(物理文件)里。这样在以后的查询中就会避免扫描整张表,只是从当前的分区中查询到所需要的数据。这样做会大大提高数据查询的速度。什么时候使用分区表?1、表的大小超过2GB。2、表中包含历史数据,新的数据被增加都新的分区中。分区表有哪些优缺点?优点: 1.改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。 2.增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 3.维护方便:如果表的某原创 2022-03-26 15:46:05 · 3391 阅读 · 0 评论 -
CentOS 7 安装Oracle 11g
准备工作:将Linux版Oracle压缩包放进/tmp目录下第一步:使用 ifconfig 命令查看自己的ip ,记住这个ip,我们需要用它去配置一个主机名。切换root用户,输入命令 vi /etc/hosts,进入编辑模式。编辑内容如下:到此,我们输入 exit 命令退出root用户。输入命令 cat /etc/hosts 进行查看并检验。一定要确保是自己的ip+主机名。第二步:关闭selinux ,编辑 /etc/selinux/config文件,设置SELINUX= enforcing原创 2022-03-10 11:53:29 · 7880 阅读 · 8 评论 -
关于SQL优化(面试重点)
随着软件技术的不断发展,系统性能越来越重要。原创 2022-02-10 09:42:15 · 1350 阅读 · 0 评论 -
Cent OS 6 安装Oracle(需要联网)
建议:以下所有修改配置文件的操作,修改完使用cat进行查看检验,确保每一步的准确性,不然不知道哪一步出错,就需要重装镜像了准备工作:将Linux版Oracle压缩包放进tom目录第一步:使用 ifconfig 命令查看自己的ip ,记住这个ip,我们需要用它去配置一个主机名。切换root用户,输入命令 vi /etc/hosts,进入编辑模式。编辑内容如下:到此,我们输入 exit 命令退出root用户。输入命令 cat /etc/hosts 进行查看并检验。一定原创 2021-12-16 22:07:26 · 1110 阅读 · 0 评论 -
程序包——PL/SQL教程(九)
程序包概述程序包是对相关过程、函数、变量、游标和异常等对象的封装程序包由规范(包头)和主体(包体)两部分组成 规范中可以声明程序包中公共对象。包括类型、变量、常量、异常、游标规范和子程序规范等 其语法格式如下: create [or replace] package 包名 is [declare_variable]; -- 规范内声明变量 [declare_type]; -- 规范内声明类型 [declare_cursor]; -- 规范内声明游标 [declare_function];原创 2021-11-24 00:00:00 · 537 阅读 · 0 评论 -
触发器——PL/SQL(八)
触发器什么是触发器?我们生活就有许多触发器,比如:灯的开关,手枪扳机。。。而数据库的触发器与表相关联的、存储的pl/sql程序。每当一个特定的数据操作语言在指定的表中发出时,Oracle自动执行触发器中定义的语句序列。-- 触发器可用于1、数据确认2、实施复杂的安全性检查3、做审计,跟踪表上所做的数据操作等4、数据的备份和同步-- 触发器分类1、DML触发器: 表级触发器(语句级触发器) 行级触发器 instead of 触发器2、模式(DDL)触发器3、数据库级触发器原创 2021-11-23 00:00:00 · 947 阅读 · 0 评论 -
存储过程和函数——PL/SQL教程(七)
存储过程和函数概述:ORACLE 提供 可以把PL/SQL 程序存储在数据库中,并可以在任何地方来运行它。这样就叫存储过程或函数。存储过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储在数据库中,并通过输入、输出参数或输入/输出参数与其调用者交换信息。过程和函数的唯一区别是函数总向调用者返回数据,而过程则不返回数据。存储过程存储过程,就是一段存储在数据库中执行某块业务功能的程序模块。它是由一段或者多段的PL/SQL代码块或者SQL语句组成的一系列代码块。--创建存储过程的原创 2021-11-22 00:00:00 · 831 阅读 · 0 评论 -
异常处理——PL/SQL教程(六)
异常处理概述/*在PL/SQL中出现的异常,如果我们没有处理,异常会被传递给调用环境,中断我们的程序。*/declare v_job emp.job%type;begin select job into v_job from emp where empno=8001; dbms_output.put_line(v_job);-- 异常 没有找到数据 dbms_output.put_line('程序结束');end;/*PL/SQL程序会从发生异常的代码处中断,以后的代码是原创 2021-11-20 13:27:45 · 633 阅读 · 0 评论 -
动态SQL——PL/SQL教程(五)
动态sql/*它是指在PL/SQL程序执行时生成的SQL语句,在编译过程中对它不做处理。而是在程序运行时动态构造语句、对语句进行语法分析并执行。我们之前在PL/SQL中只能使用DML、DQL。不能直接使用DDL;但是我们可以通过动态SQL来执行DDL语句命令。格式:execute immediate 字符串参数 [into] 变量 using 参数*/-- 按照员工编号查询员工的信息declare v_emp emp%rowtype;begin/* select * int原创 2021-11-21 00:15:00 · 420 阅读 · 0 评论 -
集合类型详解——PL/SQL教程(四)
集合类型/*集合的定义: 集合是相同类型元素的组合。在集合中,使用唯一的下标来标识其中的每个元素。 而集合又分为以下几个类型:1、索引表也叫关联数组2、嵌套表3、可变长度数组*/索引表/*索引表: 可以使用整数(pls_integer,binary_integer)或字符串当下标,下标可以是不连续的。 索引表的元素的个数是无限制的 索引表只能用在plsql中,不能保存再数据库 定义索引表类型的语法: type 类型名称 is table of 数据类型(是集合中值原创 2021-11-21 00:00:00 · 343 阅读 · 0 评论 -
SQL游标——PL/SQL教程(三)
SQL游标/*在执行执行增删改查语句的时候,Oracle都会开辟一块内存空间,用来暂时存放收到SQL语句影响的数据。这块内存空间就被称为游标区域,我们可以借助于游标来分析这些受到影响的数据*//*游标的分类:1、隐式游标:增删改查语句都会由隐式游标,也就是说,我们可以通过隐式游标来分析受到增删改查语句影响的数据。2、显式游标:在PL/SQL种执行select语句的特殊要求:(1):select语句只能返回一条记录(2):必须搭配使用into也就是说:显示游标专门用来从数据库种查原创 2021-11-20 17:45:00 · 659 阅读 · 0 评论 -
PL/SQL逻辑关系——PL/SQL教程(二)
逻辑关系IF语句/*IF语句的逻辑条件可以是一个逻辑表达式,也可以由多个逻辑表达式连接在一起,连接多个表达式的符号就是连接操作符,包括and(与)or(或)not(非)*/declare v_total_sal number(9,2):=0; -- PL/SQL中用 := 赋值 c_tax_rate constant number(3,2) :=8.25 -- PL/SQL中的常量只能赋值一次 -- 常量格式 常量名 constant 数据类型 := 默认值 v_gen原创 2021-11-20 17:30:00 · 468 阅读 · 0 评论 -
PL/SQL基础:结构、变量处理——PL/SQL教程(一)
什么是PL/SQL 许多时候我们会利用结构化查询语言(SQL)来访问和操作关系型数据库。这种语言的特点就是非过程化。也就是说使用的时候不用指明执行的具体方法和途径,即不用关注任何的实现细节。但这种语言也有一个问题,就是在某些情况下满足不了复杂业务流程的需求。 所以就出现了PL/SQL,Oracle的PL/SQL语言正是完美的解决了这个问题,也就是过程化语言。和JAVA、C#等语言一样可以关注细节,用它可以实现复杂的业务逻辑。PL/SQL的优点 使用PL/SQL可以编写具有很多高级功能的程原创 2021-11-20 13:16:11 · 968 阅读 · 0 评论 -
PL/SQL集合详解
集合类型/*集合的定义: 集合是相同类型元素的组合。在集合中,使用唯一的下标来标识其中的每个元素。 而集合又分为以下几个类型:1、索引表也叫关联数组2、嵌套表3、可变长度数组*/索引表/*索引表: 可以使用整数(pls_integer,binary_integer)或字符串当下标,下标可以是不连续的。 索引表的元素的个数是无限制的 索引表只能用在plsql中,不能保存再数据库 定义索引表类型的语法: type 类型名称 is table of 数据类型(是集合中值的原创 2021-11-15 17:24:05 · 1001 阅读 · 1 评论 -
Oracle数据库学习笔记(四)——集合、联合查询
1、集合集合:每一个sql查询的结果就是一个集合(1,3,4,65,234,123,12)select * from emp;并集:取两个集合中所有元素union all:表示取两个集合的并集,不删除重复元素union :取两个集合的并集,删除重复的元素--查询员工工资大于1000的员工信息select * from emp where sal>1000;--查询员工工资小于3000的员工信息select * from emp where sal<3000;sel原创 2021-10-12 11:38:43 · 496 阅读 · 0 评论 -
Oracle学习笔记(三)——排序分组
1、排序select 列名,列名,..,列名 from 表名 where 条件表达式 order by 排序列的列名 asc|desc;asc|desc: asc表示升序,desc表示降序--查询员工信息,按照员工的工资升序排序select * from emp order by sal asc; ---如果是升序排序,asc可以省略select * from emp order by sal;--查询员工信息,按照员工编号降序排序select * from emp order by原创 2021-10-11 12:33:45 · 1531 阅读 · 0 评论 -
Oracle数据库学习笔记(二)——简单查询
1.简单查询语句的语法select 列名,列名,...,列名 from 表名;select ... from :它是查询语句的关键字select后面跟是你要从数据库里取的数据from后面跟表名,表示你要从哪张中读取这些数据如:--查询emp表中员工的编号、姓名、工作、工资select empno,ename,job,sal from emp;--查询emp表中所有列的信息select empno,ename,job,mgr,hiredate,sal,comm,deptno from原创 2021-10-08 16:51:03 · 462 阅读 · 0 评论 -
Oracle数据库学习笔记(一)
1.数据库概述数据库(database、db)指的是长期存在计算机内、有组织、可共享的、大量数据的集合。数据是按照特定的数据模型来组织、存储在数据库中的。关系型数据库:它是将数据以关联关系或者二维表的形式存储的数据库。如 oracle、mysql、db2、sql server、等;非关系型数据库:一般是以键值对方式存储数据的数据库。如 redis、hadoop(hbase) 等2.Oracle数据库概述Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲原创 2021-10-08 15:07:39 · 246 阅读 · 0 评论