Pendahuluan
Package rmarkdown
di R menfasilitasi penggunaan SQL engine, untuk melakukan eksekusi syntax SQL dan menampilkan hasilnya.
Untuk menggunakannya, Anda harus membuat suatu obyek connection
terlebih dahulu, lalu kemudian menggunakan connection
ini bersama engine sql
Berikut ini adalah proses membentuk suatu obyek db
.
db<-DBI::dbConnect(RSQLite::SQLite(), "C:/sqlite/company.db")
Obyek db
ini mempunyai Class SQLiteConnection
## [1] "SQLiteConnection"
## attr(,"package")
## [1] "RSQLite"
Object db
ini Anda gunakan pada opsi connection
, kemudian pada opsi engine
digunakan "sql"
. Sehingga di dalamnya Anda bisa menulis syntax SQL
.

8 records
John |
B |
Smith |
123456789 |
1965-01-09 |
731 Fondren, Houston TX |
M |
30000 |
333445555 |
5 |
Franklin |
T |
Wong |
333445555 |
1965-12-08 |
638 Voss, Houston TX |
M |
40000 |
888665555 |
5 |
Alicia |
J |
Zelaya |
999887777 |
1968-01-19 |
3321 Castle, Spring TX |
F |
25000 |
987654321 |
4 |
Jennifer |
S |
Wallace |
987654321 |
1941-06-20 |
291 Berry, Bellaire TX |
F |
43000 |
888665555 |
4 |
Ramesh |
K |
Narayan |
666884444 |
1962-09-15 |
975 Fire Oak, Humble TX |
M |
38000 |
333445555 |
5 |
Joyce |
A |
English |
453453453 |
1972-07-31 |
5631 Rice, Houston TX |
F |
25000 |
333445555 |
5 |
Ahmad |
V |
Jabbar |
987987987 |
1969-03-29 |
980 Dallas, Houston TX |
M |
25000 |
987654321 |
4 |
James |
E |
Borg |
888665555 |
1937-11-10 |
450 Stone, Houston TX |
M |
55000 |
NA |
1 |
Adapun company.db
dari El Masri, dapat Anda buat dengan Syntax SQL Halaman Github berikut ini : El Masri Company Database
Syntax SQL
Commands SQL
SELECT |
Memilih Data dari Database |
FROM |
Memilih table darimana data diambil |
WHERE |
Menyaring query dengan mencocokkan suatu kondisi |
AS |
Mengubah nama kolom atau tabel dengan suatu alias |
JOIN |
Menggabungkan baris dari 2 atau lebih tabel |
AND |
Kombinasi Kondisi Query. Semua Kondisi harus terpenuhi |
OR |
Kombinasi Kondisi Query. Salah satu Kondisi harus terpenuhi |
LIMIT |
Membatasi jumlah baris yang ditampilkan |
IN |
Spesifikasi beberapa nilai ketika menggunakan WHERE |
IS NULL |
Mengembalikan baris dengan nilai NULL |
LIKE |
Mencari pola tertentu di suatu kolom |
GROUP BY |
Mengelompokkan Data |
ORDER BY |
Mengurutkan Data, default ASC. Gunakan DESC untuk sebaliknya |
HAVING |
Sama dengan WHERE tapi untuk Groups |
COUNT |
Menghitung jumlah baris |
SUM |
Menghitung jumlah dari kolom |
AVG |
Menghitung rata-rata dari kolom |
MIN |
Menghitung nilai minimal dari kolom |
MAX |
Menghitung nilai maksimum dari kolom |
Order Of Execution
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
LIMIT
Contoh
Untuk Contoh ini, akan digunakan Table EMPLOYEE
dari Database company.db
8 records
John |
B |
Smith |
123456789 |
1965-01-09 |
731 Fondren, Houston TX |
M |
30000 |
333445555 |
5 |
Franklin |
T |
Wong |
333445555 |
1965-12-08 |
638 Voss, Houston TX |
M |
40000 |
888665555 |
5 |
Alicia |
J |
Zelaya |
999887777 |
1968-01-19 |
3321 Castle, Spring TX |
F |
25000 |
987654321 |
4 |
Jennifer |
S |
Wallace |
987654321 |
1941-06-20 |
291 Berry, Bellaire TX |
F |
43000 |
888665555 |
4 |
Ramesh |
K |
Narayan |
666884444 |
1962-09-15 |
975 Fire Oak, Humble TX |
M |
38000 |
333445555 |
5 |
Joyce |
A |
English |
453453453 |
1972-07-31 |
5631 Rice, Houston TX |
F |
25000 |
333445555 |
5 |
Ahmad |
V |
Jabbar |
987987987 |
1969-03-29 |
980 Dallas, Houston TX |
M |
25000 |
987654321 |
4 |
James |
E |
Borg |
888665555 |
1937-11-10 |
450 Stone, Houston TX |
M |
55000 |
NA |
1 |
1. Memilih Semua Kolom dengan Filter Tertentu
SELECT
*
FROM
EMPLOYEE
WHERE
SALARY < 30000;
3 records
Alicia |
J |
Zelaya |
999887777 |
1968-01-19 |
3321 Castle, Spring TX |
F |
25000 |
987654321 |
4 |
Joyce |
A |
English |
453453453 |
1972-07-31 |
5631 Rice, Houston TX |
F |
25000 |
333445555 |
5 |
Ahmad |
V |
Jabbar |
987987987 |
1969-03-29 |
980 Dallas, Houston TX |
M |
25000 |
987654321 |
4 |
2. Memilih 5 Baris Pertama dari 2 Kolom
SELECT
Fname, Lname
FROM
EMPLOYEE
LIMIT
5;
5 records
John |
Smith |
Franklin |
Wong |
Alicia |
Zelaya |
Jennifer |
Wallace |
Ramesh |
Narayan |
3. Memilih Semua Kolom dengan beberapa Filter
SELECT
*
FROM
EMPLOYEE
WHERE
SALARY > 30000
AND
SEX = 'M';
3 records
Franklin |
T |
Wong |
333445555 |
1965-12-08 |
638 Voss, Houston TX |
M |
40000 |
888665555 |
5 |
Ramesh |
K |
Narayan |
666884444 |
1962-09-15 |
975 Fire Oak, Humble TX |
M |
38000 |
333445555 |
5 |
James |
E |
Borg |
888665555 |
1937-11-10 |
450 Stone, Houston TX |
M |
55000 |
NA |
1 |
4. Seperti Poin 3, gaji diurutkan dari yang terbesar
SELECT
FNAME, LNAME, SALARY
FROM
EMPLOYEE
WHERE
SALARY > 30000
AND
SEX = 'M'
ORDER BY
SALARY DESC;
3 records
James |
Borg |
55000 |
Franklin |
Wong |
40000 |
Ramesh |
Narayan |
38000 |
Anda, juga bisa menuliskan Syntax di atas, sebagai berikut
SELECT
FNAME, LNAME, SALARY
FROM
EMPLOYEE
WHERE
SALARY > 30000
AND
SEX = 'M'
ORDER BY
3 DESC;
3 records
James |
Borg |
55000 |
Franklin |
Wong |
40000 |
Ramesh |
Narayan |
38000 |
5. Menghitung Jumlah Baris
SELECT
COUNT(*)
FROM
EMPLOYEE;
6. Menghitung Total Gaji
SELECT
SUM(SALARY)
FROM
EMPLOYEE;
7. Menampilkan Nama dan Gaji, dari Employee dengan Gaji Terbesar
SELECT
FNAME, LNAME, MAX(SALARY)
FROM
EMPLOYEE;
1 records
James |
Borg |
55000 |
8. Menghitung Gaji rata-rata dari masing-masing Jenis Kelamin
SELECT
SEX, AVG(SALARY)
FROM
EMPLOYEE
GROUP BY
SEX;
2 records
F |
31000 |
M |
37600 |