R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

RODBC: Tietokantayhteydet R:llä, osa 3

ROBDC:n aiemmissa osissa (osa 1, osa 2) käsiteltiin perustietojen hakuja ja tavanomaisia select-lauseita kantaan. Tässä osassa käydään vielä läpi sqlQuery-funktion monipuolisempaa käyttöä.

sqlQuery-funktiolla voidaan myös kirjoittaa kantaan. Luodaan aluksi uusi taulu Adventureworks-kantaan (esimerkin vuoksi, poistetaan taulu myöhemmin) käyttäen T-SQL-komentoja:

#Tarkastetaan, että löytyykö taulua, jos löytyy, poistetaan se
sqlQuery(ch, "if exists(select table_name from 
                   information_schema.tables 
                   where table_name = 'cars') drop table cars")
 
#Luodaan taulu
sqlQuery(ch, "create table cars (
              id int identity(1,1) not null,
              sp int not null,
              dst int not null,
              type varchar(10) null,
              constraint PK_id primary key clustered (id ASC)
              on [PRIMARY]
              )")

Katsotaan SSMS:n puolelta, että löytyykö taulu ja että onko se tyhjä:

Populoidaan dataa edellä luotuun cars-tauluun:

s.val <- cars$speed
d.val <- cars$dist
 
for (i in seq_along(s.val)) {
    sqlQuery(ch, paste("insert 
                 into cars (sp, dst) 
                 values (", "'", s.val[i], "', '", 
                 d.val[i], "'", ")", sep=""))
}

Katsotaan miltä populoinnin jälkeen taulu näyttää:

Tehdään cars-tauluun uusi muuttuja, päivitetään dataa ja lisätään rivejä:

sqlQuery(ch, "alter table cars add size varchar(10)", errors=FALSE)
sqlQuery(ch, "update cars set size = 'max' where sp = 10", errors=FALSE)
sqlQuery(ch, "insert into cars (sp, dst, type)
            	values ('50', '50', '4WD')", errors=FALSE)

Katsotaan, ovatko lisätyt rivit tulleet:

Tyhjennetään ja poistetaan taulu

sqlQuery(ch, "truncate table cars") #tai sqlClear
sqlQuery(ch, "drop table cars")     #tai sqlDrop

Tämä on RODBC-esittelyn viimeinen osa.


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *