03 Basic SQL PostgreSQL
Sub Bidang Aplikasi PLN Korporat & Pelayanan Pelanggan 1
PLN ICON PLUS
1
DAFTAR ISI
1. DDL (Data Definition Language) .................................................................................................. 4
1.1. Create .................................................................................................................................. 4
1.2. Alter..................................................................................................................................... 4
1.3. Drop .................................................................................................................................... 4
1.4. Truncate .............................................................................................................................. 4
1.5. Rename ............................................................................................................................... 4
2. DML (Data Manipulation Language) ........................................................................................... 5
2.1. Insert ................................................................................................................................... 5
2.2. Update................................................................................................................................. 5
2.3. Delete .................................................................................................................................. 5
2.4. Merge .................................................................................................................................. 5
3. DQL (Data Query Language) ..................................................................................................... 5
3.1. Select ................................................................................................................................... 5
3.2. Where.................................................................................................................................. 5
3.3. Operator Logika (and, or, not) ............................................................................................ 6
3.4. Between dan Not Between ................................................................................................. 6
3.5. Like dan Not Like ................................................................................................................. 6
3.6. In dan Not In........................................................................................................................ 7
3.7. Order By .............................................................................................................................. 7
3.8. Distinct ................................................................................................................................ 7
3.9. Group By ............................................................................................................................. 7
3.10. Agregat ............................................................................................................................ 7
3.11. Operator Aritmatika ........................................................................................................ 8
3.12. Alias ................................................................................................................................. 8
3.13. Exist dan not exist ........................................................................................................... 8
3.14. Having ............................................................................................................................. 8
4. DCL (Data Control Language) .................................................................................................... 10
4.1. Grant ................................................................................................................................. 10
4.2. Revoke ............................................................................................................................... 10
5. TCL (Transaction Control Language) ......................................................................................... 10
5.1. Commit .............................................................................................................................. 10
5.2. Rollback ............................................................................................................................. 10
5.3. Savepoint .......................................................................................................................... 10
PT PLN ICON PLUS Confidential Page 2 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar
5.4. Set Transaction.................................................................................................................. 10
PT PLN ICON PLUS Confidential Page 3 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar
Structured Query Language (SQL) merupakan komponen bahasa relational database system. SQL
merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented
language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah
program aplikasi. SQL dapat digunakan untuk mendefinisikan struktur data, memodifikasi data pada
basis data, menspesifikasi Batasan kemanan (security), hingga pemeliharaan kinerja basis data.
Secara umum, bahasa SQL memiliki beberapa bagian penting, yaitu
1. DDL (Data Definition Language)
DDL menyediakan perintah-perintah untuk mendefinisikan skema relasi, menghapus relasi, serta
memodifikasi skema relasi.
1.1. Create
Perintah SQL ini digunakan untuk membuat suatu basis data dan table pendukung didalam
pembangunan basis data tersebut. Table merupakan objek yang sangat penting dalam suatu
basis data.
membuat database baru :
CREATE DATABASE databasename;
Membuat table baru:
CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... );
1.2. Alter
Perintah SQL ini digunakan untuk mengubah struktur table yang terdapat didalam basis data.
Hal ini dapat saja terjadi, jika ingin melakukan penambahan atau penghapusan suatu field atau
atribut key (Primary/Foreign), tanpa mendefinisikan struktur baru pada table. Melalui
perintah SQL ini jika sudah terisikan record pada table tersebut, maka mengenai hilangnya
record yang terdapat pada suatu table tidak akan terjadi. Berikut ini merupakan aturan umum
penulisan yang digunakan pada alter table.
- Menambah kolom baru
ALTER TABLE table_name ADD column_name datatype;
- Menghapus kolom
ALTER TABLE table_name DROP COLUMN column_name;
- Merubah kolom
ALTER TABLE table_name ALTER COLUMN column_name datatype;
1.3. Drop
Perintah SQL ini digunakan untuk menghapus table yang terdapat didalam basis data.
Drop database nama_database;
Drop table nama_table;
1.4. Truncate
Perintah SQL ini digunakan untuk menghapus semua data atau record di dalam tabel secara
permanen, namun struktur tabelnya tetap ada (tidak terhapus).
Truncate table nama_table;
1.5. Rename
Perintah SQL ini digunakan untuk mengubah nama sebuah tabel yang sudah ada di dalam basis
data menjadi nama yang baru.
PT PLN ICON PLUS Confidential Page 4 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar
ALTER TABLE nama_tabel RENAME TO new_table_name;
2. DML (Data Manipulation Language)
DML mencakup bahasa SQL untuk menyisipkan rekaman pada relasi, menghapus rekaman pada
relasi, serta memodifikasi rekaman pada relasi.
2.1. Insert
Perintah SQL ini digunakan untuk melakukan entry atau penambahan suatu record pada table
dalam basis data. Berikut ini merupakan aturan umum penulisan yang digunakan pada insert
suatu table.
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
INSERT INTO table_name VALUES (value1, value2, value3, ...);
2.2. Update
Perintah SQL ini untuk mengubah data dalam suatu table pada field tertentu dengan record
baru berdasarkan suatu field sebagai kriteria pengubahan record-nya. 1.
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
2.3. Delete
Perintah SQL ini digunakan untuk menghapus data dalam suatu table, berdasarkan suatu field
sebagai kriteria penghapusan record-nya.
Menghapus salah satu record
DELETE FROM table_name WHERE condition;
Menghapus seluruh record pada tabel
DELETE FROM table_name;
2.4. Merge
Perintah SQL ini digunakan untuk menyelaraskan data antara dua tabel (tabel sumber dan
tabel tujuan). Jika data sudah ada maka akan diperbarui (Update), dan jika data belum ada
maka akan ditambahkan (Insert).
MERGE INTO table_tujuan USING table_sumber ON (kondisi_penghubung) WHEN MATCHED THEN
UPDATE SET kolom = nilai WHEN NOT MATCHED THEN INSERT (kolom) VALUES (nilai);
3. DQL (Data Query Language)
3.1. Select
Perintah SQL ini digunakan untuk memilih record yang akan ditampilkan berdasarkan data
pada table dalam basis data. Berikut ini merupakan aturan umum dan variasi penulisan yang
digunakan pada select.
Menampilkan salah satu kolom yang ada ditabel
SELECT column1, column2, ... FROM table_name;
Menampilkan semua kolom yang ada ditabel
SELECT * FROM table_name;
3.2. Where
Where ini digunakan untuk melakukan seleksi pada record, yang sesuai dengan syarat suatu
kriteria pada suatu kondisi perintah SQL.
PT PLN ICON PLUS Confidential Page 5 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar
No. Operator Keterangan
1 = Sama dengan
2 <> Tidak sama dengan
3 < Lebih kecil
4 <= Lebih kecil sama dengan
5 > Lebih besar
6 >= Lebih besar sama dengan
SELECT column1, column2,...FROM table_name WHERE condition;
3.3. Operator Logika (and, or, not)
Operator logika and dan or digunakan untuk menggabungkan seleksi pada record yang
syaratnya lebih dari satu kondisi. Pada operator logika, not digunakan untuk negasi dari
kondisi tersebut.
1. And
SELECT column1, column2,...FROM table_name WHERE condition1 AND condition2 AND
condition3 ...;
2. Or
SELECT column1, column2,...FROM table_name WHERE condition1 OR condition2 OR
condition3 ...;
3. Not
SELECT column1, column2,...FROM table_name WHERE NOT condition;
3.4. Between dan Not Between
Between digunakan untuk mengolah data suatu nilai dalam range tertentu. Not between
merupakan negasinya, yaitu mengolah suatu nilai diluar dari range yang telah ditentukan.
SELECT column_name(s)FROM table_name WHERE column_name BETWEEN value1 AND value2;
3.5. Like dan Not Like
Like digunakan untuk mencari suatu teks yang sesuai berdasarkan kata depan (prefix), kata
tengah (infix), kata akhir (suffix). Not like merupakan pernyataan negasinya, yaitu mencari
suatu teks yang tidak sesuai dengan kriteria like.
No. Pola Keterangan
1 x% mencari kesesuaian pada suatu kata yang berawalan 1 atau beberapa huruf
x atau X
2 %x% mencari kesesuaian pada suatu kata yang didalamnya mengandung 1 atau
beberapa huruf x atau X
3 %x mencari kesesuaian pada suatu kata yang berakhiran 1 atau beberapa huruf
x atau X
4 x_ mencari kesesuaian pada suatu kata yang berawalan hanya 1 huruf x atau X
yang sama
5 _x_ mencari kesesuaian pada suatu kata yang didalamnya mengandung hanya 1
huruf x atau X yang sama
6 _x mencari kesesuaian pada suatu kata yang berakhiran hanya 1 huruf x atau X
yang sama
like
SELECT column1,column2,...FROM table_name WHERE column LIKE pola;
Not like
SELECT column1,column2,...FROM table_name WHERE column NOT LIKE pola;
PT PLN ICON PLUS Confidential Page 6 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar
3.6. In dan Not In
In digunakan untuk mencari nilai kesesuaian dengan suatu data tertentu yang ada dalam
suatu daftar / list nilai. Operator Not In merupakan negasi untuk nilai yang tidak ada dalam
daftar / list tersebut.
SELECT column_name(s)FROM table_name WHERE column_name IN (value1, value2, ...);
atau
SELECT column_name(s)FROM table_name WHERE column_name IN (SELECT STATEMENT);
Not in
SELECT column_name(s)FROM table_name WHERE column_name NOT IN (value1, value2,...);
3.7. Order By
Order By digunakan untuk melakukan pengurutan berdasarkan suatu field, yang merupakan
hasil dari penyataan select secara ascending atau descending. Default pengurutan klausa
order by adalah ascending.
SELECT column1, column2,...FROM table_name ORDER BY column1, column2, ... ASC|DESC;
3.8. Distinct
Distinct digunakan untuk menghilangkan duplikasi pada suatu tampilan, dengan cara
menghilangkan tampilan record dengan nilai yang sama untuk hasil suatu perintah SQL,
tetapi bukan menghapus record secara fisik.
SELECT DISTINCT column1, column2,...FROM table_name;
3.9. Group By
Group By digunakan untuk melakukan pengelompokan berdasarkan suatu field atau
beberapa field.
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY
column_name(s);
3.10. Agregat
Kelompok fungsi ini digunakan untuk suatu nilai, dengan kualifikasi yang merupakan hasil
dari perhitungan sekelompok baris data atau table. Disajikan fungsi agregat yang memiliki
kualifikasi tersendiri untuk menghasilkan suatu nilai tertentu.
No. Fungsi Keterangan
1 avg Menghasilkan nilai rata-rata
2 count Menghitung banyaknya data
3 max Menghasilkan nilai terbesar
4 min Menghasilkan nilai terkecil
5 sum Menghitung jumlah sekelompok data
1. Avg
SELECT AVG(column_name)FROM table_name WHERE condition;
2. Count
SELECT COUNT(column_name)FROM table_name WHERE condition;
3. Max
SELECT MAX(column_name)FROM table_name;
4. Min
SELECT MIN(column_name)FROM table_name;
5. Sum
SELECT SUM(column_name)FROM table_name;
PT PLN ICON PLUS Confidential Page 7 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar
3.11. Operator Aritmatika
Pada umumnya operator aritmatika untuk proses perhitungan yang digunakan dalam
perintah SQL terdiri dari perkalian(*), pembagian(/), penjumlahan(+), dan pengurangan(-).
Select value operator_aritmatika value;
3.12. Alias
Alias secara sederhana adalah "nama lain", artinya kita dapat mengganti sementara sebuah
nama tabel dan nama kolom dengan nama yang sesuai dengan keinginan kita. Tujuan
penggunaan alias adalah untuk mempermudah dan menyingkat deskripsi sebuah nama tabel
dan nama kolom pada sebuah query.
Mengganti nama kolom
SELECT column_name AS alias_name FROM table_name;
Mengganti nama table
SELECT column_name(s) FROM table_name AS alias_name;
3.13. Exist dan not exist
Perintah Exists biasanya digunakan untuk check keberadaan suatu suatu obyek di suatu
database. Operator EXISTS mengembalikan nilai true jika subquery mengembalikan satu
atau beberapa record. Kata kunci EXIST dan NOT EXIST dirancang hanya untuk digunakan di
subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE EXIST akan mengirim
nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di table hasil yang dikirim oleh
subquery. EXIST mengirim nilai FALSE jika subquery mengirim table kosong NOT EXIST
kebalian dan EXIST. Karena EXIST dan NOT EXIST hanya memeriksa keberadaan baris-baris di
table hasil subquery.
SELECT column_name(s)FROM table_name WHERE EXISTS(SELECT column_name FROM table_name
WHERE conditio n);
3.14. Having
HAVING ditambahkan ke SQL karena kata kunci WHERE tidak dapat digunakan dengan fungsi
agregat. HAVING digunakan untuk menentukan kondisi bagi GROUP BY. Kelompok yang
memenuhi HAVING saja yang akan dihasilkan.
SELECT column_name(s)FROM table_nameWHERE conditionGROUP BY column_name(s) HAVING
condition ORDER BY column_name(s);
3.15. Union
Operator UNION digunakan untuk menggabungkan hasil-set dari dua atau lebih pernyataan
SELECT. Dengan persyaratan sebagai yaitu: Setiap pernyataan SELECT dalam UNION harus
memiliki jumlah kolom yang sama, Kolom juga harus memiliki tipe data yang sama, dan
Kolom di setiap pernyataan SELECT juga harus berada dalam urutan yang sama.
SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
Atau
SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2;
3.16. View
View adalah tabel virtual berdasarkan hasil-set pernyataan SQL. Tampilan berisi baris dan
kolom, seperti tabel sebenarnya. Bidang dalam tampilan adalah bidang dari satu atau lebih
tabel nyata dalam database. Dalam view dapat menambahkan fungsi SQL, WHERE, dan JOIN
statements untuk melihat dan menyajikan data seolah-olah data berasal dari satu tabel
tunggal.
PT PLN ICON PLUS Confidential Page 8 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar
CREATE VIEW view_name AS SELECT column1,column2,... FROM table_name WHERE condition;
3.17. Any dan All
Operator Any mengembalikan nilai true jika salah satu dari nilai subkueri memenuhi
[Link] ALL mengembalikan true jika semua nilai subquery memenuhi kondisi.
Any
SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT
column_name FROM table_name WHERE condition);
All
SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT
column_name FROM table_name WHERE condition);
3.18. Constraint
Constrain dapat ditentukan saat tabel dibuat dengan pernyataan CREATE TABLE, atau
setelah tabel dibuat dengan pernyataan ALTER TABLE.
CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint,
column3 datatype constraint, ....);
3.19. Subquery
Subquery adalah sebuah query SELECT yang diletakkan di dalam perintah SQL lain (seperti
SELECT, INSERT, UPDATE, atau DELETE). Hasil dari subquery akan digunakan oleh query
utama (outer query) sebagai kondisi atau data tambahan.
Subquery didalam Where, untuk memfilter data berdasarkan hasil perhitungan lain
SELECT kolom FROM tabel WHERE kolom operator (SELECT kolom FROM tabel WHERE kondisi);
Subquery didalam from, untuk tabel sementara (sering disebut inline view).
SELECT KOLOM FROM table_name WHERE column_name > (SELECT AVG(column_name) FROM
table_name);
Subquery didalam select, untuk menampilkan nilai tambahan di setiap baris.
SELECT nama, (SELECT MAX(nilai) FROM ujian) AS nilai_tertinggi FROM mahasiswa;
3.20. Inner Join
Merupakan operasi join yang digunakan untuk menghasilkan kumpulan record dari dua
buah table atau lebih dengan nilai yang sama, nilai tersebut merupakan irisan yang
terdapat pada tabel-tabel tersebut.
SELECT column_name(s)FROM table1 INNER JOIN table2 ON table1.column_name = table2.c
olumn_name;
3.21. Left outer join
Merupakan operasi join yang digunakan untuk menghasilkan kumpulan record dari dua buah
table atau lebih, dengan asumsi bahwa table sebelah kiri sebagai rujukan. Anggotanya
adalah semua yang memiliki nilai sama dengan asumsi table sebelah kiri tersebut.
SELECT column_name(s)FROM table1 LEFT JOIN table2 ON table1.column_name =
table2.column_name;
3.22. Right outer join
Merupakan operasi join yang digunakan untuk menghasilkan kumpulan record dari dua buah
table atau lebih dengan asumsi bahwa table sebelah kanan sebagai rujukan, sehingga
anggotanya adalah semua yang memiliki nilai sama dengan asumsi table sebelah kanan
tersebut.
PT PLN ICON PLUS Confidential Page 9 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar
SELECT column_name(s)FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.c
olumn_name;
3.23. Full outer join
Merupakan operasi join yang digunakan untuk menghasilkan kumpulan record dari dua buah
table atau lebih anggotanya adalah semua yang memiliki nilai sama ataupun tidak sama
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON
table1.column_name = tab le2.column_name;
4. DCL (Data Control Language)
DCL adalah sub bahasa SQL yang berfungsi untuk melakukan pengontrolan data dan server
databasenya, seperti manipulasi user dan hak akses (priviledges).
4.1. Grant
Perintah SQL ini digunakan oleh seorang administrator basis data untuk memberikan hak
aksesnya kepada pengguna tertentu, agar dapat mengakses suatu table dalam basis data. Hak
akses tersebut adalah insert, delete, update, dan select.
GRANT hak_akses ON nama_tabel TO pengguna_tertentu;
4.2. Revoke
Perintah SQL ini digunakan oleh seorang administrator basis data, untuk membatalkan /
menghentikan hak akses yang telah diberikan kepada pengguna tertentu, agar tidak dapat
mengakses table dalam basis data.
REVOKE hak_akses ON nama_tabel FROM pengguna_tertentu;
5. TCL (Transaction Control Language)
TCL adalah kelompok perintah SQL yang bertugas untuk mengelola transaksi di dalam basis data
agar integritas data tetap terjaga (prinsip ACID/menjaga keamanan data dan memulihkannya).
5.1. Commit
Perintah SQL ini digunakan untuk menyimpan semua perubahan data secara permanen ke
dalam basis data. Setelah perintah ini dijalankan, perubahan tidak dapat dibatalkan lagi.
COMMIT;
5.2. Rollback
Perintah SQL ini digunakan untuk membatalkan perubahan data yang belum disimpan secara
permanen. Perintah ini akan mengembalikan kondisi data ke posisi terakhir setelah COMMIT
atau ROLLBACK sebelumnya.
ROLLBACK;
5.3. Savepoint
Perintah SQL ini digunakan untuk menandai titik tertentu dalam sebuah transaksi. Dengan
savepoint, kita bisa melakukan rollback hanya ke titik tertentu saja tanpa harus
membatalkan seluruh transaksi.
Savepoint nama_titik;
5.4. Set Transaction
Perintah SQL ini digunakan untuk mengatur karakteristik dari transaksi yang akan berjalan,
seperti tingkat isolasi data (isolation level) atau menentukan apakah transaksi tersebut
hanya bisa membaca data saja (read only).
PT PLN ICON PLUS Confidential Page 10 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar
Read only
Set transaction read only;
Isolation level
Set transaction isolation level serializable;
PT PLN ICON PLUS Confidential Page 11 of 11
Document LMS – PostgreSQL–Instalasi dan Konfigurasi Dasar