Ⅰ oracle数据库连接方式有几种
SQL SERVER连接oracle数据库几种方法
--1 方式
--查询oracle数据库中的表
SELECT*
FROMOPENDATASOURCE(
'MSDAORA',
'DataSource=GE160;UserID=DAIMIN;Password=DAIMIN'
)..DAIMIN.JOBS
--在sqlserver中创建与oracle数据库中的表同名的表
select*intoJOBSfrom
OPENDATASOURCE(
'MSDAORA',
'DataSource=GE160;User
ID=daimin;Password=daimin'
)..DAIMIN.JOBS
select*fromJOBS
--2、方式
--在master数据库中查看已经存在的链接服务器
select*fromsysservers
EXECsp_addlinkedserver
@server='GE160',
@srvproct='Oracle',
@provider='MSDAORA',
@datasrc='GE160'
execsp_addlinkedsrvlogin'GE160',false,'sa','daimin','daimin'
--要在企业管理器内指定登录帐号
execsp_dropserverGE160
select*fromGE160..DAIMIN.JOBS
deletefromGE160..DAIMIN.JOBS
--备注:引用ORACLE服务器上的表时,用户名称与表名一定要大写字母。
SELECT*
FROMOPENQUERY(GE160,'SELECT*FROMDAIMIN.JOBS')
--3、方式
SELECTa.*
FROMOPENROWSET('MSDAORA',
'GE160';'DAIMIN';'DAIMIN',
DAIMIN.JOBS)ASa
ORDERBYa.JOB_ID
--4、方式 ODBC
--ODBC方式比较好办
SELECTA.*
FROM
OPENROWSET('MSDAORA','GE160';'DAIMIN';'DAIMIN',--GE160是数据源名
DAIMIN.JOBS)AS
A
ORDERBYA.JOB_ID
Ⅱ 如何连接oracle数据库
使用sqlplus连接oracle11g数据库步骤如下所示:
方法一:
1、找到sqlplus,在开始菜单你安装的oracle-》应用程序开发目录下面;
Ⅲ sql 连接oracle的几种方式
1、相等连接
通过两个表具有相同意义的列,可以建立相等连接条件。
只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。
例 查询员工信息以及对应的员工所在的部门信息;
SELECT * FROM EMP,DEPT;
SELECT * FROM EMP,DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
REM 显示工资超过2000的员工信息以及对应的员工的部门名称。
2、
外连接
对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。除了显示匹配相等连接条件的信息之外,还显示无法匹配相等连接条件的某个表的信息。
外连接采用(+)来识别。
A) 左条件(+) = 右条件;
代表除了显示匹配相等连接条件的信息之外,还显示右条件所在的表中无法匹配相等连接条件的信息。
此时也称为"右外连接".另一种表示方法是:
SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 连接条件
B) 左条件 = 右条件(+);
代表除了显示匹配相等连接条件的信息之外,还显示左条件所在的表中无法匹配相等连接条件的信息。
此时也称为"左外连接".
SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 连接条件
例 显示员工信息以及所对应的部门信息
--无法显示没有部门的员工信息
--无法显示没有员工的部门信息
--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;
--直接做相等连接:
SELECT * FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
REM 显示员工信息以及所对应的部门信息,显示没有员工的部门信息
--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO;
SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
REM 显示员工信息以及所对应的部门信息,显示没有部门的员工信息
--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO(+);
SELECT * FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
3、不等连接
两个表中的相关的两列进行不等连接,比较符号一般为>,<,...,BETWEEN.. AND..
REM SALGRADE
--DESC SALGRADE;
--SELECT * FROM SALGRADE;
REM 显示员工的编号,姓名,工资,以及工资所对应的级别。
SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP
WHERE EMP.SAL BETWEEN LOSAL AND HISAL;
REM 显示雇员的编号,姓名,工资,工资级别,所在部门的名称;
SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE
WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN LOSAL AND HISAL;
4、自连接
自连接是数据库中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。下面介绍一下自连接的方法:
将原表复制一份作为另一个表,两表做笛卡儿相等连接。
例:显示雇员的编号,名称,以及该雇员的经理名称
SELECT WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER
WHERE WORKER.MGR = MANAGER.EMPNO;
Ⅳ ORACLE几种表连接方式的区别
oracle中多表连接有很多种方式:
1、表与表连接有三种方式Nested loop, Hash join, Sort merge join。
2、Nested Loop就是循环嵌套的连接方法,对于被连接子集都是比较小的话,嵌套循环就是比较好的选择。在嵌套中,内表被外表驱动,外表做一次循环,内表针对外表的每一行做循环。
3、这种表的返回结果集不能太大,否则就效率实在太低的,而且还要用在表都有索引的情况下才行的。
4、Sort Merge Join 用在数据没有索引,并且数据必须是都排序号的情况。
5、总之,两表之间相连,会根据表之间的不同情况选择不同的连接方式,连接其实就是做表之间每行数据的遍历,连之前都要做好准备,有么用索引,要么用已排序号的表,要么就用hash算法,不存在什么都不准备的纯遍历循环。
6、三种连接使用前提,当表都排序号的话用Sort Merge Join连接,当两表都差不多大而且都还有索引就用Nested Loop的嵌套连接,当没有索引也没排序,而且数据量大的情况下就用这个hash算法进行相连。
Ⅳ 客户端连接ORACLE的几种方法
装个跟服务端上相同版本的oracle客户端,再装个pl/sql配置一下就能连上了:
找到你oracle客户端安装目录中的tnsnames.ora文件,修改
zbds_251=
(description=
(address_list=
(address=(protocol=tcp)(host=140.28.19.251)(port=1521))
)
(connect_data=
(service_name=zbds)
)
)
“zbds”是你的oracle数据库实例名,140.28.19.251是你的远程服务器的ip,“zbds_251”随便起,是给pl/sql看的。
Ⅵ oracle与Java连接方法
1.数据源连接,要新建数据源TestDataBase
package com.shenjun;
import java.sql.*;
public class conn {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection ct = DriverManager.getConnection("jdbc:odbc:TestDataBase","scott","tiger");
Statement sm = ct.createStatement();
ResultSet rs = sm.executeQuery("select * from student");
while(rs.next()){
System.out.println("用户名:"+rs.getString(2));
}
}catch(Exception e){
e.printStackTrace();
}
}
}
2.jdbc连接,引jar包
package com.shenjun;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class conn2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott","tiger");
Statement sm = ct.createStatement();
ResultSet rs = sm.executeQuery("select * from student");
while(rs.next()){
System.out.println("用户名:"+rs.getString(2));
}
}catch(Exception e){
e.printStackTrace();
}
}
}
Ⅶ oracle 安装后如何连接
前提是电脑必须安装oracle客户端。
配置方法:
1、找到oracle的安装目录。如:C:oracleproct10.2.0db_1 etworkADMIN
2、找到tnsnames.ora文件。
Ⅷ 如何连接Oracle数据库
Connection conn = null;
Class.forName("oracle.jdbc.driver.OracleDriver");//加入oracle的驱动,“”里面是驱动的路径
String url = "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL";// 数据库连接,oracle代表链接的是oracle数据库;thin:@MyDbComputerNameOrIP代表的是数据库所在的IP地址(可以保留thin:);1521代表链接数据库的端口号;ORCL代表的是数据库名称
String UserName = "root";// 数据库用户登陆名 ( 也有说是 schema 名字的 )
String Password = "2006";// 密码
conn = DriverManager.getConnection(url, UserName, Password);
Ⅸ oracle连接
如果始终都只有一个用户的话,一直连接方式更好,因为连上去又断开,这样也是费时费力的。
连接池就是这样的,保证始终若干个连接,如果访问的多了,就增加连接,少了的话,就减为设置参数的连接数。