[빅데이터 청년인재] SQL 실습
1. R 에서 DB 연결해서 사용하기
- DB 를 관리하는 DBMS 는 업체마다 다양. 예) Oracle, Postgre, MySQL, MS-SQL, SQLite, MS-ACCESS 등
- 해당 DB 를 사용하기 위해 해당 업체에서 제공하는 API 를 사용
- R 은 각 업체별 DBMS 에 접근 할수 있는 패키지 (백엔드) 제공 (예,
RMySQL,RPostgreSQL,RSQLite등) - R 의
DBI패키지를 이용하여 위의 백엔드에서 사용가능한 공통함수 사용가능
주요 DBI 함수
| 함수 | 설명 |
|---|---|
| dbConnect() | DB 연결 |
| dbDisconnect() | DB 연결해제 |
| dbWriteTable() | 데이터를 DB 테이블로 만들기 |
| dbCreateTable() | DB 테이블 새로 만들기 |
| dbListTables() | DB 내 테이블 리스트 |
| dbRemoveTable() | DB 내 테이블 제거 |
| dbSendQuery() | 쿼리 보내기 - 테이블 입력/수정/삭제 |
| dbGetQuery() | 쿼리는 보내서 데이터 가져오기 |
dbSendQuery()를 이용하여 쿼리를 보낸뒤dbClearResult()를 이용하여 사용한 리소스를 정리하는 것을 권장.
위의 함수중 DB 를 연결하고 해제 하는 기능 외의 모든 함수는
SQL쿼리를 이용하여 구현 가능
2. RSQLite 를 통해 SQLite DB 사용하기
1) DB 구축/연결/연결해제
2) 테이블 만들기
DB 필드명(변수명)에서
.이 있는 경우 가능하면 다른 문자로 변경 권장!
- 예를 들어
iris데이터의 변수명들에서.을 아래와 같이 제거
b. 새로운 테이블 만들기
id,name,age,dep변수를 가진newtable테이블을 만들어보자.- 각각의 변수가 수치형인지, 텍스트형인지 등을 지정
3) 테이블에서 데이터 가져오기
| SepalLength | SepalWidth | PetalLength | PetalWidth | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| 4.6 | 3.4 | 1.4 | 0.3 | setosa |
| 5.0 | 3.4 | 1.5 | 0.2 | setosa |
| 4.4 | 2.9 | 1.4 | 0.2 | setosa |
| 4.9 | 3.1 | 1.5 | 0.1 | setosa |
| SepalLength | SepalWidth | PetalLength | PetalWidth | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| 4.6 | 3.4 | 1.4 | 0.3 | setosa |
| 5.0 | 3.4 | 1.5 | 0.2 | setosa |
| 4.4 | 2.9 | 1.4 | 0.2 | setosa |
| 4.9 | 3.1 | 1.5 | 0.1 | setosa |
4) 테이블에 데이터 넣기
| SepalLength | SepalWidth | PetalLength | PetalWidth | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| 4.6 | 3.4 | 1.4 | 0.3 | setosa |
| 5.0 | 3.4 | 1.5 | 0.2 | setosa |
| 4.4 | 2.9 | 1.4 | 0.2 | setosa |
| 4.9 | 3.1 | 1.5 | 0.1 | setosa |
5) 테이블 데이터 수정하기
| SepalLength | SepalWidth | PetalLength | PetalWidth | Species |
|---|---|---|---|---|
| 7.0 | 3.2 | 4.7 | 1.4 | vc |
| 6.4 | 3.2 | 4.5 | 1.5 | vc |
| 6.9 | 3.1 | 4.9 | 1.5 | vc |
| 5.5 | 2.3 | 4.0 | 1.3 | vc |
| 6.5 | 2.8 | 4.6 | 1.5 | vc |
| 5.7 | 2.8 | 4.5 | 1.3 | vc |
| 6.3 | 3.3 | 4.7 | 1.6 | vc |
| 4.9 | 2.4 | 3.3 | 1.0 | vc |
| 6.6 | 2.9 | 4.6 | 1.3 | vc |
| 5.2 | 2.7 | 3.9 | 1.4 | vc |
6) 테이블 데이터 삭제하기
| SepalLength | SepalWidth | PetalLength | PetalWidth | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| 4.6 | 3.4 | 1.4 | 0.3 | setosa |
| 5.0 | 3.4 | 1.5 | 0.2 | setosa |
| 4.4 | 2.9 | 1.4 | 0.2 | setosa |
| 4.9 | 3.1 | 1.5 | 0.1 | setosa |