행위

R MYSQL 연결

DB CAFE

1 MYSQL + Dataframe 연결

1.1 Mysql 패키지 설치

install.packages("RMySQL")
library(RMySQL)


1.2 Mysql 연결

drv = dbDriver("MySQL")
db_conn = dbConnect(drv,host="호스트",dbname="디비명",user="사용자",pass="패스워드")

1.3 테이블 목록

dbListTables(db_conn)

1.4 컬럼 목록

dbListFields(db_conn, '테이블명')

1.5 SELECT 쿼리 실행

sel_data <- dbSendQuery(db_conn, 'SELECT * FROM TB_XXX')

1.6 Dataframe -> DB 테이블 생성/추가

dbWriteTable(db_conn, name='table_name', value=data.frame.name)

1.7 MYSQL 사용 예제

## S4 method for signature 'MySQLConnection,character,data.frame'
dbWriteTable(
  db_conn,
  tablename,
  value,
  field.types = NULL,
  row.names = TRUE,
  overwrite = FALSE,
  append = FALSE,
  ...,
  allow.keywords = FALSE
)

## S4 method for signature 'MySQLConnection,character,character'
dbWriteTable(
  db_conn,
  tablename,
  value,
  field.types = NULL,
  overwrite = FALSE,
  append = FALSE,
  header = TRUE,
  row.names = FALSE,
  nrows = 50,
  sep = ",",
  eol = "\n",
  skip = 0,
  quote = "\"",
  ...
)

1.7.1 Argument 설명

db_conn	
a MySQLConnection object, produced by dbConnect

tablename	
a character string specifying a table name.

value	
a data.frame (or coercible to data.frame) object or a file name (character). In the first case, the data.frame is written to a temporary file and then imported to SQLite; when value is a character, it is interpreted as a file name and its contents imported to SQLite.

field.types	
character vector of named SQL field types where the names are the names of new table's columns. If missing, types inferred with dbDataType).

row.names	
A logical specifying whether the row.names should be output to the output DBMS table; if TRUE, an extra field whose name will be whatever the R identifier "row.names" maps to the DBMS (see make.db.names). If NA will add rows names if they are characters, otherwise will ignore.

overwrite	
a logical specifying whether to overwrite an existing table or not. Its default is FALSE. (See the BUGS section below)

append	
a logical specifying whether to append to an existing table in the DBMS. Its default is FALSE.

...	
Unused, needs for compatibility with generic.

allow.keywords	
logical indicating whether column names that happen to be MySQL keywords be used as column names in the resulting relation (table) being written. Defaults to FALSE, forcing mysqlWriteTable to modify column names to make them legal MySQL identifiers.

header	
logical, does the input file have a header line? Default is the same heuristic used by read.table, i.e., TRUE if the first line has one fewer column that the second line.

nrows	
number of lines to rows to import using read.table from the input file to create the proper table definition. Default is 50.

sep	
field separator character

eol	
End-of-line separator

skip	
number of lines to skip before reading data in the input file.

quote	
the quote character used in the input file (defaults to \".)