Practice makes perfect
[R] 정형 데이터 처리(DB 연결) 본문
728x90
반응형
SMALL
1) Oracle 정형 데이터 처리
단계1 : 사용자 로그인과 테이블 생성
- sqlplus 명령문으로 접속 후 다음의 데이터 생성
단계2 : 레코드 추가와 조회하기
단계3 : transaction 처리 - commit;
● Oracle 연동을 위한 R 패키지 설치
① 패키지 설치
install.packages("rJava")
install.packages("DBI")
install.packages("RJDBC")
- RJDBC 패키지 사용하기 위해서는 java를 설치해야 합니다(내부가 java로 되어 있음)
② 패키지 로딩
Sys.setenv(JAVA_HOME='C:/Program Files/Java/jre1.8.0_221') # java 위치 명시
library(DBI)
library(rJava)
library(RJDBC) # rJava에 의존적이다(rJava 먼저 로딩)
③ Oracle 연동 (주의 : 버전에 따라 다름)
- Oracle 11g Ex. - driver
drv <- JDBC("oracle.jdbc.driver.OracleDriver",
"C:/oraclexe/app/oracle/product/11.2.0/server/jdbc/lib/ojdbc6.jar")
oracle 사이트 또는 구글링을 통해서 찾으면 됩니다.
- db 연동 (driver, url, id, pwd)
conn <- dbConnect(drv, "jdbc:oracle:thin:@//localhost:1521/xe", "scott", "tiger")
④ 모든 레코드 검색
query <- "select * from test_table"
dbGetQuery(conn, query)
⑤ 조건 검생 - 나이가 30살 이상인 레코드 조회
query <- "select * from test_table where age >= 30"
result <- dbGetQuery(conn, query)
result
⑥ 정렬 조회 - 나이 컬럼을 기준으로 내림차순 정렬
query <- "select * from test_table order by age desc"
dbGetQuery(conn, query)
⑦ 레코드 삽입
query <- "insert into test_table values('kang', '123', '강감찬', 35)"
dbSendUpdate(conn,query)
query <- "select * from test_table"
dbGetQuery(conn, query)
⑧ 레코드 수정 : 데이터 '강감찬'의 나이를 35 -> 40 으로 수정
query <- "update test_table set age=40 where name='강감찬'"
dbSendUpdate(conn,query) # RJDBC
query <- "select * from test_table"
dbGetQuery(conn, query) # DBI
'강감찬' - 문자열 안에 있기 때문에 작은 따옴표로 감싸야 합니다.
⑨ 레코드 삭제 - 데이터 '홍길동' 레코드 삭제
query <- "delete from test_table where name = '홍길동'"
dbSendUpdate(conn,query)
query <- "select * from test_table"
dbGetQuery(conn, query)
⑩ db 연결 종료
dbDisconnect(conn) # DBI
728x90
반응형
LIST
'빅데이터 > R' 카테고리의 다른 글
[R] 텍스트 마이닝 분석 (토픽분석) (2) | 2020.07.09 |
---|---|
[R] 텍스트 마이닝 분석 - 개요, 토픽 분석 설치 및 환경설정 (0) | 2020.07.09 |
[R] 기하학적 기법 시각화 - ggplot2 패키지 (0) | 2020.07.07 |
[R] lattice 패키지 (0) | 2020.07.06 |
[R] 코딩 변경 (0) | 2020.07.06 |