这篇文章的内容主要是Oracle基础查询的内容,以及一些常用的查询技巧,比如开窗函数的应用。
--(1)全表查询
--(2)查询表中固定列
--(3)左连接查询 left join 表名 on 关联条件
--(4)where条件查询
--(5)逻辑符 and or
2024年04月16日
这篇文章的内容主要是Oracle基础查询的内容,以及一些常用的查询技巧,比如开窗函数的应用。
--(1)全表查询
--(2)查询表中固定列
--(3)左连接查询 left join 表名 on 关联条件
--(4)where条件查询
--(5)逻辑符 and or
2024年04月16日
Oracle集合运算就是把多个查询结果组合成一个查询结果,oralce的集合运算包括:INTERSECT(交集)、UINION ALL(交集重复)、UINION(交集不重复)、MINUS(补集)。
1、INTERSECT(交集),返回两个查询共有的记录。
2、UNION ALL(并集重复),返回各个查询的所有记录,包括重复记录。
2024年04月16日
Oracle数据库中有两种类型的用户权限:系统权限和对象权限。
1. 系统权限:
系统权限是指对整个数据库的访问权限,包括创建、删除、修改数据库对象、执行特定操作等。Oracle提供了一系列的系统权限,例如CREATE SESSION、CREATE TABLE、CREATE VIEW等。
2024年04月16日
2024年04月16日
一直以为 会写SQL, 是最实在的基础,会写SQL了,才会优化SQL,会优化SQL,才知道怎么设计表结构,进而设计更加精妙的业务类型, 业务类型就大致知道IO的大致规律。 从而知道更加复杂的架构模型。好了废话不多说,下面介绍下测试的几个小实验,主要关于SQL改写后效率的一些提升,大家在做sql改写时可以考虑下,基于业务考虑。。。
2024年04月16日
oracle表空间这个概念大家应该都很熟悉了, 这是一个逻辑概念,可以理解为在数据库中开辟的空间用来存储数据库对象。
1、表空间和数据文件的关系:
表空间由一个或多个数据文件组成;数据文件的大小和位置可以自己定义;
2024年04月16日
有时要在测试环境创建跟生产环境同个用户,但又不知道用户相关的权限,这里提供一个实用的脚本。
脚本内容如下:
--执行存储过程 exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR', true); --查询用户脚本及权限 SELECT ( CASE WHEN ((SELECT COUNT(*) FROM dba_users WHERE username = '&&Username') > 0) THEN dbms_metadata.get_ddl ('USER', '&&Username') ELSE to_clob (' -- Note: User not found!') END ) extracted_ddl FROM dual UNION ALL SELECT ( CASE WHEN ((SELECT COUNT(*) FROM dba_ts_quotas WHERE username = '&&Username') > 0) THEN dbms_metadata.get_granted_ddl( 'TABLESPACE_QUOTA', '&&Username') ELSE to_clob (' -- Note: No TS Quotas found!') END ) FROM dual UNION ALL SELECT ( CASE WHEN ((SELECT COUNT(*) FROM dba_role_privs WHERE grantee = '&&Username') > 0) THEN dbms_metadata.get_granted_ddl ('ROLE_GRANT', '&&Username') ELSE to_clob (' -- Note: No granted Roles found!') END ) FROM dual UNION ALL SELECT ( CASE WHEN ((SELECT COUNT(*) FROM dba_sys_privs WHERE grantee = '&&Username') > 0) THEN dbms_metadata.get_granted_ddl ('SYSTEM_GRANT', '&&Username') ELSE to_clob (' -- Note: No System Privileges found!') END ) FROM dual UNION ALL SELECT ( CASE WHEN ((SELECT COUNT(*) FROM dba_tab_privs WHERE grantee = '&&Username') > 0) THEN dbms_metadata.get_granted_ddl ('OBJECT_GRANT', '&&Username') ELSE to_clob (' -- Note: No Object Privileges found!') END ) FROM dual
2024年04月16日
前面已经讲过start with..connect by的用法,可能很多朋友还是不太明白,这里主要用到的是Oracle递归算法原理,下面用实例来做个简单介绍。
所谓递归算法,是指把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。递归过程一般通过函数或子过程来实现,下面演示下递归算法在oracle数据库树形结构表中的查询应用技术。
2024年04月16日
oracle表空间这个概念大家应该都很熟悉了, 这是一个逻辑概念,可以理解为在数据库中开辟的空间用来存储数据库对象。
1、表空间和数据文件的关系:
表空间由一个或多个数据文件组成;数据文件的大小和位置可以自己定义;