
Oracle
文章平均质量分 95
介绍Oracle
爱吃牛肉的大老虎
学无止境,既要有深度又要有广度地学习
展开
-
Oracle架构之用户,权限,角色讲解
Oracle用户(user)就是访问oracle数据库的人。通过对用户的各种安全参数进行控制,以维护数据库的安全性,这些概念包括模式(schema)、权限、角色、存储设置、空间限额、存取资源限制、数据库审计等。当用户登录Oracle时需要进行身份认证,以便确认该用户能够进行的操作。认证是指对需要使用数据、资源或应用程序的用户进行身份确认。通过认证后,可以为用户后面的数据库操作提供一种可靠的连接关系。Oracle提供了多种身份认证方式:操作系统身份认证,Oracle 数据库身份认证,管理员身份认证。原创 2024-10-07 18:26:27 · 1755 阅读 · 0 评论 -
Oracle架构之段管理和区管理
段是由一个或多个数据区构成的,它不是存储空间的分配单位,而是一个独立的逻辑存储结构,用于存储表、索引或簇等占用空间的数据对象, Oracle 也把这种占用空间的数据对象统一称为段。当一个段被创建时,区间(Extent)就被分配,随着后续的不断使用,一个段的空间可以以区为单位不断扩展。一个段只属于一个特定的数据对象,每当创建一个具有独立段的数据对象时,Oracle将为它创建一个段。段是为特定的数据对象(如表、索引、回滚等)分配的一系列数据区。段是逻辑结构中更高层次的组织单位,用于存储和管理数据。原创 2024-10-06 19:21:40 · 1360 阅读 · 0 评论 -
Oracle架构之表空间详解
Oracle数据库开创性地提出了表空间(tablespaces)的设计理念,Oracle中很多优化都是基于表空间实现的。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库对象,如表、视图、索引、聚簇、回退段和临时段等。Oarcle 数据库真正存放数据的是数据文件,表空间()实际上是一个逻辑的概念,在物理上并不存在。Oracle 使用表空间将相关的逻辑结构(如段、数据区等)组合在一起,表空间是数据库的最大逻辑划分区域。原创 2024-10-04 16:47:55 · 1408 阅读 · 0 评论 -
Oracle架构之物理存储之日志文件
联机日志文件又叫重做日志文件,记录了对数据库修改的信息,一个 Oracle 实例有一组或多组联机日志文件,每组包含一个或多个日志成员,同一组的日志成员内容相同,存放位置不同,防止日志文件组内某个日志文件损坏导致数据丢失。重做日志(联机日志)文件用来记录数据库所有发生过的更改信息(修改、添加、删除等信息)及由Oracle内部行为(创建数据表、索引等)而引起的数据库变化信息,主要作用是支持数据库的恢复和故障恢复。通常存储在操作系统的文件系统中,如目录下的redo01.log文件。原创 2024-10-03 19:32:25 · 1792 阅读 · 0 评论 -
Oracle架构之物理存储之审计文件
审计(Audit)用于监视用户对数据库的操作,审计记录保存在数据字典表中,存储在system表空间中的SYS.AUD$表中(可通过视图查看)或审计文件中(默认位置为 ORACLEBASE/admin/ORACLE_BASE/admin/ORACLEBASE/admin/ORACLE_SID/adump/)。审查可疑的活动监视和收集关于指定数据库活动的数据不管是否打开数据库的审计功能,以下这些操作会强制被记录:用管理员权限连接Instance、启动数据库、关闭数据库。审计文件的位置由参数决定。原创 2024-10-03 17:24:41 · 1248 阅读 · 0 评论 -
Oracle架构之物理存储中各种文件详解
逻辑存储结构是为了便于管理Oracle数据而定义的具有逻辑层次关系的抽象概念,不容易理解;但物理存储结构比较具体和直观,它用来描述Oracle数据在磁盘上的物理组成情况。从大的角度来讲,Oracle 的数据在逻辑上存储在表空间中,而在物理上存储在表空间所包含的物理文件(即数据文件)中。Oracle数据库的物理存储结构由多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件和警告日志文件等参数文件:用于配置数据库的初始化参数控制文件:记录数据库的结构和状态信息。原创 2024-10-02 18:11:51 · 1764 阅读 · 0 评论 -
Oracle架构之数据库备份和RAC介绍
Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中,与相比,它提供更好的性能、安全性和灵活性。并行处理: Oracle 数据泵支持并行处理(通过指定PARALLEL参数启用),这使得导入和导出任务更加快速和高效。可定制: 数据泵允许用户选择要包含或排除的对象类型(如表、视图、约束等),以及要包含或排除的特定对象。原创 2024-10-01 22:53:33 · 1455 阅读 · 5 评论 -
Oracle锁机制之分类和死锁
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。Oracle。原创 2024-06-16 11:47:28 · 1637 阅读 · 0 评论 -
数据库事务,JDBC操作和数据类型
JDBC规范虽然定义了事务的以上支持行为,但是各个JDBC驱动,数据库厂商对事务的支持程度可能各不相同。表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始的状态。表示提交,即提交事务的所有操作。的作用都完成对数据库的一次操作,并且释放当前的一些资源,对于commit之后的事务,是不能够再进行回滚。元素的排序对应于批中的命令,批中的命令根据被添加到批中的顺序排序。,但是对于回滚之后的失误,在不同的情况下却可以选择提交,........原创 2022-07-27 10:50:53 · 691 阅读 · 0 评论 -
数据库设计三大范式
文章目录1 数据库范式1.1 为什么要范式1.2 如何是合理数据库1.3 如何才能保证数据库设计水平1.4 什么是范式(NF= NormalForm)1.5 范式的分类2 各个范式详解2.1 第一范式1 数据库范式1.1 为什么要范式为什么需要数据库范式呢,因为必须保证数据库设计的合理性数据库设计关系整个系统的架构,关系到后续的开发效率和运行效率数据库的设计主要包含了设计表结构和表之间的联系1.2 如何是合理数据库如何是合理数据库结构合理冗余较小尽量避免插入删除修改异常1.3原创 2021-09-15 09:01:38 · 363 阅读 · 0 评论 -
oracle或mysql获取分组后每组的前三条数据
转载于:https://blog.youkuaiyun.com/Alex_81D/article/details/104901075mysql :select a.* from(select t1.*,(select count(*)+1 from 表 where 分组字段=t1.分组字段 and 排序字段<t1.排序字段) as group_idfrom 表 t1) awhere a.group_id<=3oracle:SELECT t.* FROM (SEL转载 2021-06-01 11:34:07 · 9993 阅读 · 1 评论 -
Oracle基础之DML详解分析
文章目录1 引言1.1 批量更新1.1.1 一般方式1.1.2 使用游标1.2 批量插入1 引言Oracle数据库对于大数据量的更新和插入如果一次一行SQL的写的话,显得有点low同时也是效率问题容易让人抓狂,因此在这里记叙下针对Oracle的批量更新和插入建表:-- 学生表create table student (id varchar2(20),name varchar2(20),class varchar2(20));-- 其他表create table other (id varch原创 2021-01-12 18:20:06 · 4541 阅读 · 0 评论 -
Oracle函数之分析函数over()的详细解析
文章目录1 over()分析函数1.1 rank()/dense_rank()1.1.1 基础1.1.2 示例1.2 min()/max()1.2.1 示例1.3 lead()/lag()1.3.1 基础1.3.2 示例1.4 FIRST_VALUE/LAST_VALUE()1.5 ROW_NUMBER()1.6 sum/avg/count()1.7 rows/range1.7.1 基础2 其他2.1 NULLS FIRST/LAST2.2 NTILE(n)2.3 keep(dense_rank first转载 2020-09-04 12:08:33 · 21241 阅读 · 4 评论 -
Oracle基础之查询配置问题,登录配置问题,常见错误处理
PL/SQL查询时,如果Number(17)以上的大数,会显示为科学计数法解决方法:TOOLS->PREFERENCES->WINDOW TYPE->SQL WINDOW下选中Number fields to_char即可。修改后的结果:...转载 2019-12-04 17:31:04 · 5144 阅读 · 0 评论 -
Oracle查询之查询原理和正则表达式查询
目录1 使用正则的函数2 正则表达式符号说明:4 字符簇:5 优先级:6 实例:1 使用正则的函数Oracle使用正则表达式离不开这4个函数:regexp_like:与LIKE的功能相似 regexp_substr:与INSTR的功能相似 regexp_instr:与SUBSTR的功能相似 regexp_replace:与REPLACE的功能相似它们在用法...原创 2019-06-30 23:45:36 · 3104 阅读 · 0 评论 -
oracle锁机制之悲观锁与乐观锁以及for update用法
目录1 悲观锁1.1 单表 for update1.2关联表for update1.3 悲观锁缺点2乐观锁2.1 比对法2.2版本戳2.3timestamp型2.4 例子Demo1 悲观锁所谓的悲观锁:顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次拿数据的时候都会上锁。这样别人拿数据的时候就要等待直到锁的释放。数据库行级...原创 2019-06-09 12:18:39 · 4730 阅读 · 9 评论 -
Oracle中SQL语言和分页rownum分析
1SQL语言概述1.1SQL 语言的分类SQL 是关系型数据库的基本操作语言,是数据库管理系统与数据库进行交互的接口。它将数据查询、数据操纵、事务控制、数据定义和数据控制功能集于一身,而这些功能又分别对应着各自的 SQL语言,具体如下:1.1.1 数据查询语言(DQL)用于检索数据库中的数据,主要是 SELECT 语句,它在操作数据库的过程中使用最为频繁。1.1.2 数据......原创 2022-07-27 11:53:46 · 1301 阅读 · 0 评论 -
Oracle逻辑块之存储过程,函数,重载,视图以及调试测试
目录1 首先创建一个函数,创建后在左边窗口找到它2 右键单击选择到的函数,选择编辑或者查看3 不过一般选择编辑模式进入,在左侧打断点4 再次选中上步的函数名字function,选择test模式5 报错没有权限1 首先创建一个函数,创建后在左边窗口找到它2 右键单击选择到的函数,选择编辑或者查看3 不过一般选择编辑模式进入,在左侧打断点4 再次选中上...原创 2019-05-30 11:38:20 · 918 阅读 · 0 评论 -
Oracle中SQL*plus常用命令
目录1 SQL*plus工具1.1 oracle自带的工具1.2 cmd命令2 SET 命令概述2.1使用 SET 命令设置运行环境2.1.1PAGESIZE 变量2.1.2NEWPAGE 变量2.1.3 LINESIZE 变量2.1.4 PAUSE 变量2.1.5 NUMFORMAT 变量3 SQL*plus的常用命令3.1 HELP 命令3.2 DESCRIBE 命令3.3 SPOOL 命令3.4 DEFINE 命令3.5 SHOW....原创 2019-05-26 14:19:50 · 57455 阅读 · 0 评论 -
SQL中的in,exists,not in,not exists的区别以及oracle中的select 1 from 表名的含义
1、in和existsin是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的。如果查询的两个表大小相当,那么用in和exists差别不大;如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in;例如:表A(小表),表B(大表)select * from A where c...原创 2018-05-07 19:22:00 · 1975 阅读 · 0 评论 -
Oracle逻辑块之触发器,游标
一、触发器1、概述触发器是存储在服务器中的程序单元,不能够直接被调用,只有触发条件成立时,才能执行;2、触发事件①insert,update,delete;②create,alter,drop;③logon,logoff;④startup/shutdown;3、触发时间①before;②after;4、触发级别①行触发:每一行都有可能触发,要加上:f...原创 2018-08-31 15:49:42 · 344 阅读 · 1 评论 -
Oracle逻辑块之逻辑控制,异常,事务
需求:用一个update语句修改两张表?思路:用触发器来解决触发器代码:表a:table_a,表b:table_b,其中表b里面有表a的id,这个触发器意思是当修改表a的最后修改人:table_a_last_chg_usr时,让表b的最后修改人字段也跟着修改table_b_last_chg_usrcreate or replace trigger table_a_dem...原创 2018-11-06 20:17:40 · 11474 阅读 · 1 评论 -
oracle11g之安装教程
电子邮件不输入任何内容,不勾选安全更新,直接下一步SYS,SYSTEM,SYSMAN,DBSNMP共同使用的初始口令配置完成后除了SYS,SYSTEM,SYSMAN,DBSNMP这个几个账户都是锁定状态,要想解锁账户必须把对号去掉,比如解锁SCOTT账户...原创 2019-01-14 09:43:17 · 336 阅读 · 0 评论 -
left join on 后 and 和where 的区别
SELECT * FROM student a LEFT JOIN sc b ON a.Sid = b.Sid AND a.Sname="赵雷"结果:(left join 左连接,左表所有数据 拼接 右表符合on条件的数据。on后用and连接,‘a.Sid = b.Sid AND a.Sname="赵雷"’都作为on条件) SELECT * FROM student a LEFT JO...原创 2019-01-14 14:54:10 · 1446 阅读 · 0 评论 -
Oracle逻辑块之逻辑块基础,原生动态SQL(NDS),包
替换触发器——instead of替换触发器,它的触发时机是instead of,与其他类型触发器不同的是,替换触发器定义在视图(一种数据库对象)上的,而不是定义在表上。由于视图是由多个基表连接组成的逻辑结构,所有一般不允许用户进行DML操作(insert,update,delete等操作),这样当用户编写替换触发器后,对视图操作实际上就变成了执行触发器中的PL/SQL操作。先创建视图c...原创 2019-01-14 14:58:35 · 2159 阅读 · 1 评论 -
Oracle基础之表,表分区操作
什么是PL/SQL函数函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数。创建函数函数的创建语法与存储过程类似,函数可以接受多阿哥输入参数,并且函数必须有返回值(而这一点是存储过程所没有的),其语法格式如下:create or replace function fun_name (parameter) return date_type is [inner_...原创 2019-01-14 15:02:02 · 1463 阅读 · 0 评论 -
Oracle查询之索引优化分析
什么是存储过程存储过程是一种命名的PL/SQL程序块,既可以没有参数也可以有若干个输入,输出参数,但是它通常没有返回值。存储过程被保存在数据库中,可以被SQL语句直接调用,只能通过EXECUT命令或者在PL/SQL程序块内部被调用。由于存储过程是已经编译好的代码,因此被调用或者引用时,执行效率非常高。创建存储过程示例如下:create or replace procedure p...原创 2019-01-14 15:15:41 · 6639 阅读 · 0 评论 -
Oracle架构之开启/关闭模式,数据字典,单双引号,字符集
目录1 启动数据库1.1 nomount模式1.2 mount模式1.3 open模式1.4 force模式2 关闭数据库2.1 normal方式2.2 transactional方式2.3 immediate方式2.4 abort方式1 启动数据库在cmd命令窗口,直接输入"sqlplus",直接进入oracle管理界面,输入用户名和密码后,开始...原创 2019-05-19 21:39:59 · 7273 阅读 · 2 评论 -
Oracle逻辑块之各种变量类型讲解
目录1 scott登录不上2sys和system用户的区别3 normal 、sysdba、 sysoper有什么区别1 scott登录不上scott用户使用SYSDBA可以登录,但是使用NORMAL不可以登录解决方法~第一步:提示 account is locked--------------->>>在SQL PLUS中用system用户登录执行&l......原创 2019-05-24 23:50:44 · 3478 阅读 · 0 评论 -
Oracle架构之体系,逻辑存储
目录1Oracle体系结构概述2 逻辑存储结构2.1 数据块(Data Blocks)2.2 数据区(Extent)2.3段(Segment)2.4 表空间2.4.1SYSTEM 表空间2.4.2 SYSAUX 表空间2.4.3 UODO 表空间2.4.4 USERS 表空间3 物理存储结构3.1 数据文件3.1.1 系统数据文件3.......原创 2019-05-25 12:48:09 · 4540 阅读 · 1 评论 -
MyBatis中的selectKey
SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式。不管SelectKey有多好,尽量不要遇到这种情况吧,毕竟很麻烦。selectKey Attributes属性描述keyPropertyselectKey 语句结果应该被设置的目标属性。resultType结果的类型。MyBatis 通常可以算出来,但是写上也没有问题。MyB...转载 2018-04-11 21:27:36 · 1010 阅读 · 1 评论