59doit

[ SQL ] Oracle connect DB #1 _ R 이용 본문

Programming/SQL 기초

[ SQL ] Oracle connect DB #1 _ R 이용

yul_S2 2022. 12. 6. 09:34
반응형

R version 3.6.3

 

1. C:드라이브에 OracleTest 폴더 생성

 

2. OracleTest폴더에 driver ojdbc6 저장

ojdbc6 위치 : #  C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib

 

3. SQL developer에서 scott계정으로 table 생성

ID : sys / PW : 1234

ID : scott / PW : tiger

create table test_table(
id varchar(50) primary key,
pass varchar(30) not null, 
name varchar(25) not null,
age number(2)
);

insert into test_table values('hong', '1234', '홍길동', 35);
insert into test_table values('kim', '5678', '김길동', 45);
select * from test_table;
commit;


 

▶ R : package 설치 및 실행

install.packages("rJava")
install.packages("DBI")
install.packages("RJDBC")

Sys.setenv(JAVA_HOME="C://Program Files//Java//jdk1.8.0_202")

library(DBI)
library(rJava)
library(RJDBC)

 

▶ R : Drive 설정

drv <- JDBC("oracle.jdbc.driver.OracleDriver","C:/OracleTest/ojdbc6.jar")

 

▶ R  : 데이터베이스 연결

conn <- dbConnect(drv,"jdbc:oracle:thin:@//127.0.0.1:1521/xe","scott","tiger")

 


 

ex) DB 레코드 검색, 추가, 수정, 삭제하기

#1  record

query="SELECT*FROM test_table"
dbGetQuery(conn,query)

#        ID PASS NAME AGE
# 1 hong 1234 홍길동  35
# 2  kim 5678 김길동  45

 

#2 나이 기준으로 내림차순 정렬

query="SELECT*FROM test_table order by age desc"
dbGetQuery(conn,query)

#      ID PASS  NAME AGE
# 1  kim 5678 김길동  45
# 2 hong 1234 홍길동  35

 

#3 insert record

query="insert into test_table values('kang','1234','강감찬',45)"
dbSendUpdate(conn, query)

 

#4 inser record 확인

query = "SELECT*FROM test_table"
dbGetQuery(conn,query)

#       ID PASS  NAME AGE
# 1 hong 1234 홍길동  35
# 2  kim   5678 김길동  45
# 3 kang 1234 강감찬  45

 

 

#5 나이가 40세 이상인 record

query="select*from test_table where age >=40"
result <- dbGetQuery(conn,query)

result

#       ID  PASS NAME AGE
# 1  kim  5678 김길동  45
# 2 kang 1234 강감찬  45

 

 

#6 name이 '강감찬'인 데이터의 age를 40으로 수정

query = "update test_table set age = 40 where name = '강감찬'"
dbSendUpdate(conn,query)

 

#7 수정된 레코드 조회

query = "select*from test_table where name ='강감찬'"
dbGetQuery(conn,query)

#        ID PASS  NAME AGE
# 1 kang 1234 강감찬  40

 

 

#8 name이 '홍길동'인 레코드 삭제

query="delete from test_table where name = '홍길동'"
dbSendUpdate(conn,query)

 

 

#9 전체 레코드 조회

query="select*from test_table"
dbGetQuery(conn,query)

#        ID PASS  NAME AGE
# 1  kim  5678 김길동  45
# 2 kang 1234 강감찬  40

 

반응형

'Programming > SQL 기초' 카테고리의 다른 글

[ SQL ] 데이터베이스 #2 JDK 설치  (0) 2022.12.07
[ SQL ] 데이터베이스 #1  (1) 2022.12.06
[ SQL ] Oracle connect DB #1 _ Python 이용  (0) 2022.12.06
Live SQL - Code Library  (0) 2022.10.20
SQL 참고 사이트  (0) 2022.10.14
Comments