随笔分类 - Oracle
摘要:■ 概述 Oracle的所有数据都是以数据文件的形式存储的,Oracle使用和分配存储的最小逻辑单位是:数据块 在操作系统的物理层面上,也有数据块的概念,但跟Oracle的数据块不一样,操作系统是以字节为单位存储数据的 Oracle请求数据时,它请求的是Oracle的数据块,而不是物理层面上操作系统
阅读全文
摘要:oracle常用经典SQL查询 常用SQL查询: 1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d wher
阅读全文
摘要:表空间概念 Oracle数据库的数据最终都是存放到数据文件里的 实际上,Oarcle表空间(tablespaces)是一个逻辑概念,在物理上是并不存在的,因此,一个表空间实际上代表了由一组数据文件,它有这些书文件做支撑 表空间属性 一个数据库可以包含多个表空间,一个表空间只能属于一个数据库 一个表空
阅读全文
摘要:错误:当union all两个结果集时,报ORA-12704: character set mismatch错误,例如: select colA from TableA union select colB from TableB 原因:是字段类型不匹配导致的,比如TableA的colA字段类型是nv
阅读全文
摘要:当select子句使用distinct关键字时,可能会与order by子句冲突,从而产生如下错误 错误:ORA-01791: not a SELECTed expression 根据sql语句的执行顺序,distinct的执行顺序优先于order by,因此distinct对select的字段去重
阅读全文
摘要:Oracle通过minus操作,如A minus B, 对结果进行如下两个操作 1) 将A中与B相等的记录过滤掉, 2) 对结果进行去重操作 避免minus去重的方法: 1) 使用not exist select A.* from A where not exists ( select 1 from
阅读全文
摘要:变量符"&"转义 在DML中,若操作的字符中有特殊字符"&",则会被oracle视作是输入变量的标志,此时需要用转义字符来进行转义 以下脚本在执行过程中,会导致数据缺失,目标表数据中只包含'辽宁','&大连'会被忽略 insert into tableA values ('辽宁&大连'); &符号是
阅读全文
摘要:分析函数 分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值分析函数和聚合函数的区别 普通的聚合函数用group by分组,每个分组返回一个统计值 分析函数采用partition by分组,并且
阅读全文
摘要:lag与lead函数是跟偏移量相关的两个分析函数 通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤该操作可代替表的自联接,且效率更高 lag()/lead() lead(field, num, defaultval
阅读全文
摘要:描述: 计算某个字段在当前记录和下一条记录之间的差 例如,对于每一个员工,计算出他们的入职日期之间相差多少天 解决方案: with dataset as ( select 'Jack' as Name,20190101 as Hiredate from dual union all select '
阅读全文
摘要:描述: 当计算平均值时,通过去掉最大值和最小值,以降低它们对最终计算结果的影响 例如,统计员工的平均工资时,先去掉最高工资和最低工资,再计算全体员工的平均工资 解决方案: with dataset as ( select 'Jack' as Name,100 as Sales from dual u
阅读全文
摘要:当前用户在数据库可以访问的所有索引 字段: OWNER:索引的owner INDEX_NAME:索引名称 INDEX_TYPE:索引类型 TABLE_NAME:使用索引的数据库对象
阅读全文
摘要:当前用户在数据库可以访问的所有约束 字段: OWNER:约束的owner CONSTRAINT_NAME:约束名称 CONSTRAINT_TYPE:约束类型 TABLE_NAME:所约束的数据库对象
阅读全文
摘要:中文: ORA-02429: 无法删除用于强制唯一/主键的索引 原因: 用户试图删除一个用于强制唯一/主键的索引 由于索引是在创建主键约束后自动创建的,因此直接删除索引是不可以的,所以要想删除索引需先删除主键,索引随即就会被删除 解决方案: 不直接删除索引,而是直接删除主键约束,删除主键约束后,索引
阅读全文
摘要:当前用户可访问的表、视图和群集的列的相关信息 字段: OWNER:表,视图及群集的Owner TABLE_NAME: 表,视图及聚簇的名称 COLUMN_NAME: 字段名 DATA_TYPE :字段的数据类型 DATA_TYPE_OWNER: 字段类型的owner DATA_LENGTH :字段长
阅读全文
摘要:pctfree 是指一个数据块保留的空间百分比,表示数据块在什么情况下可以被insert 默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update了 即:当使用一个数据块时,在达到pctfree之前,该block是一直可以被插入的,这个时候处在上升期 pctu
阅读全文
摘要:索引说明 索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引 在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息 索引是建立在表上的可选对象 索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索
阅读全文
摘要:trim():去前后空格 _____________________________________________________________________________________________
阅读全文
摘要:同义词相当于alias(别名) 比如在schema2中创建schema1.table的同义词table1 则在schema2中执行select * from table1时,就相当于在执行select * from schema1.table 创建同义词语法: create synonym tabl
阅读全文
摘要:类型:View Owner: SYS 内容: 记录了该用户可访问的所有数据库对象的脚本信息(DDL) 字段: OWNER: 对象的Owner NAME: 对象名称 TYPE: 对象类型,如FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE,
阅读全文