`

Oracle 连接

阅读更多
Oracle 连接


1. 连接

-- 查询当前用户
select * from user_users;

-- 查询用户对象
select * from user_objects order by object_type;

-- 查询表结构
desc user_objects;

-- 创建连接测试表
create table t1 (c1 integer);
create table t2 (c1 integer, c2 varchar2(1));
create table t3 (c1 integer);
create table t4 (c1 integer, c2 varchar2(1));

insert into t1 values(1);
insert into t1 values(2);
insert into t1 values(3);
insert into t1 values(4);
insert into t1 values(NULL);

insert into t2 values(1, 'A');
insert into t2 values(2, 'B');
insert into t2 values(NULL,NULL);

insert into t3 values(1);
insert into t3 values(2);
insert into t3 values(3);
insert into t3 values(4);


insert into t4 values(1, 'A');
insert into t4 values(2, 'B');

commit;

-- 等连接(默认是内连接)
select * from t1;
select * from t2;

select a.c1, b.c1, b.c2 from t1 a, t2 b where a.c1 = b.c1;

-- 等连接 + 左外连接:先进行等连接,再进行左外连接
select * from t1;
select * from t2;

select a.c1, b.c1, b.c2 from t1 a, t2 b where a.c1 = b.c1 (+);

select a.c1, b.c1, b.c2 from t3 a, t4 b where a.c1 = b.c1 (+);

-- 等连接 + 右外连接:先进行等连接,再进行右外连接
select * from t1;
select * from t2;

select a.c1, b.c1, b.c2 from t1 a, t2 b where a.c1 (+) = b.c1;

select a.c1, b.c1, b.c2 from t3 a, t4 b where a.c1 (+) = b.c1;

select 1 from dual where NULL = NULL;

-- 不等连接(默认是内连接)
select a.c1, b.c1, b.c2 from t1 a, t2 b where a.c1 > b.c1;

-- 不等连接 + 左外连接:先进行不等连接,再进行左外连接
select a.c1, b.c1, b.c2 from t1 a, t2 b where a.c1 > b.c1 (+);

-- 不等连接 + 左外连接:先进行不等连接,再进行右外连接
select a.c1, b.c1, b.c2 from t1 a, t2 b where a.c1 (+) > b.c1;

-- 自等连接
select a.c1, b.c1 from t1 a, t1 b where a.c1 = b.c1;


-- 自等连接 + 外连接
select a.c1, b.c1 from t1 a, t1 b where a.c1 = b.c1 (+);
select a.c1, b.c1 from t1 a, t1 b where a.c1 (+) = b.c1;

-- 自不等连接
select a.c1, b.c1 from t1 a, t1 b where a.c1 > b.c1;

-- 全外连接
select c1, b.c2 from t1 a full outer join t2 b using (c1);
select a.c1, b.c1, b.c2 from t1 a full outer join t2 b on a.c1 = b.c1;

-- 交叉连接
select a.c1, b.c1, b.c2 from t1 a, t2 b;
select a.c1, b.c1, b.c2 from t1 a cross join t2 b;

-- 高效删除重复行
DELETE FROM t1 a WHERE a.ROWID > (SELECT MIN(b.ROWID) FROM t1 b WHERE b.c1 = a.c1);

-- 查询低效的SQL
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, 
         ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, 
         ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, 
         SQL_TEXT 
FROM    V$SQLAREA 
WHERE   EXECUTIONS > 0 
AND      BUFFER_GETS > 0 
AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8 
ORDER BY 4 DESC; 

-- Decode / CASE函数的使用
select * from t2;

select c1, c2,
       decode(c2, 'A', 'Best', c2) lv
from t2;

select c1, c2, 
decode(c2, 
'A', '甲',
'B', '乙',
'无') sex
from t2;


2. PPT 附件
1
3
分享到:
评论

相关推荐

    oracle连接需要的驱动

    标题提到的"oracle连接需要的驱动"指的是Oracle JDBC驱动,它允许Java应用程序通过JDBC(Java Database Connectivity)接口与Oracle数据库进行通信。 Oracle JDBC驱动主要有四种类型: 1. ** Thin Driver (jdbc:...

    oracle连接数问题

    通过细致地调整Oracle数据库的`pga_aggregate_target`、`processes`、`sessions`参数,以及优化`LISTENER.ORA`文件和操作系统配置,可以有效解决Oracle连接数问题,提升数据库的并发处理能力。这些操作需要根据具体...

    Oracle连接工具plsql11x64位

    Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具...

    Oracle连接字符串

    "Oracle 连接字符串多种方法" Oracle 连接字符串是指连接 Oracle 数据库的字符串书写方法,本文总结了多种连接 Oracle 数据库的字符串书写方法。 一、标准连接字符串 标准连接字符串是最基本的连接字符串格式,...

    oracle连接的包

    "oracle连接包"可能指的是Oracle的ojdbc驱动,例如`ojdbc8.jar`或`ojdbc7.jar`等,这些驱动包允许Java应用通过JDBC API与Oracle数据库建立连接。将这个连接包放入项目的`lib`目录下,意味着它是项目运行时的依赖库,...

    Oracle连接常见问题

    Oracle连接常见问题 Oracle连接常见问题

    C#中oracle连接数据库的封装类

    在本场景中,我们关注的是一个名为"C#中oracle连接数据库的封装类"的主题,这个主题涉及到创建一个名为`DbHelperOra.cs`的类,用于简化与Oracle数据库的交互。这种封装可以提高代码的可读性和复用性,减少直接处理...

    oracle连接db2数据库的步骤

    标题:“Oracle 连接 DB2 数据库的详细步骤” 本文将详细介绍如何在 Oracle 环境中配置和连接到 DB2 数据库,包括获取必要的信息、配置 ODBC 数据源、修改 Oracle 相关配置文件以及验证连接。以下是一步步的详细...

    webphere下oracle连接池的配置

    在WebSphere环境下配置Oracle连接池是一项重要的任务,它能够显著提高应用程序的性能和响应速度。连接池技术可以有效管理数据库连接资源,避免频繁创建和销毁连接带来的性能开销。本文将详细介绍在WebSphere应用...

    非常好用的oracle连接工具 ob10

    非常好用的oracle连接工具 ob10(免安装已破解),方便导入导出,比较明了,跟pl/sql可以媲美的哦。

    oracle连接数据库的驱动包

    为了与Oracle数据库进行交互,开发者通常需要一个数据库驱动程序,这就是"Oracle连接数据库的驱动包"的作用。这个驱动包使得Java应用程序能够通过JDBC(Java Database Connectivity)接口与Oracle数据库建立连接,...

    异构服务提高Oracle连接异种数据源能力

    【异构服务提高Oracle连接异种数据源能力】 在企业环境中,由于历史发展和业务需求,往往存在多种数据库平台并存的情况,每种平台都承载着相应的应用系统。随着业务的扩展,如何在不干扰现有应用的情况下高效整合...

    64位PLSQL免安装Oracle连接工具

    标题中的“64位PLSQL免安装Oracle连接工具”指的是一个专为64位操作系统设计的,无需完整安装Oracle数据库就能使用的PL/SQL Developer(PLSQL)连接工具。这个工具通常依赖于Oracle的Instant Client,它是一个轻量级...

    oracle连接查询SQL性能测试

    标题“Oracle连接查询SQL性能测试”涉及的是数据库管理和优化领域,特别是针对Oracle数据库系统的SQL查询性能分析。在Oracle中,连接查询(JOINs)是整合多个表数据的关键操作,其性能直接影响到数据库的整体效率。...

    oracle连接失败

    在IT领域,尤其是在数据库管理与运维中,遇到“Oracle连接失败”的情况是常见的技术挑战之一。本文将深入探讨这一问题,特别是聚焦于标题与描述中提及的“ORA-12560:TNS:协议适配器错误”,并提供详细的解决方案。 ...

    oracle连接配置

    Oracle 连接配置是一种常用的数据库连接方式,它允许用户通过指定的连接字符串连接到 Oracle 数据库中。在本文中,我们将详细介绍 Oracle 连接配置的步骤和注意事项。 连接字符串的组成 Oracle 连接字符串通常由三...

    .net oracle 连接测试

    .net oracle 连接测试小程序,包括oracleclient,oledb等连接方式,framework4.0开发,适应于oracle 8i 9i 10g 11g

    delphi ODAC oracle 连接控件

    在描述中提到的"delphi ODAC oracle 连接控件",实际上指的是ODAC中的TOracleConnection组件,它是连接Oracle数据库的关键部分。 1. **ODAC概述**: ODAC是Devart公司开发的,旨在为Delphi和C++Builder开发者提供...

    C#中连接oracle连接方法

    本篇将详细介绍C#中连接Oracle数据库的方法,包括所需的组件、连接字符串的构建以及使用ADO.NET进行数据操作的基本步骤。 首先,你需要在你的项目中引入Oracle客户端库。Oracle提供了一个名为ODP.NET(Oracle Data ...

Global site tag (gtag.js) - Google Analytics