SQL (part I & II)
DTS PROA 2024 - DEQ1
Agenda
❖ (Part I) Fundamental SQL using SELECT statement
➢ Intro: Structured Query Language
➢ Sistem Database Relasional
➢ Penggunaan Perintah SELECT … FROM …
➢ Prefix dan Alias
➢ Menggunakan Filter
❖ (Part II) Fundamental SQL using FUNCTION and GROUP BY
➢ Fungsi di SQL
➢ Fungsi Text di SQL
➢ Fungsi Aggregate dan GROUP BY
➢ Penggunaan CASE … WHEN …
Part I :
Fundamental
SQL using
SELECT statement
Intro: Structured Query Language
● (what) SQL → Structured Query Language
● (what) bahasa komputer standar yang digunakan untuk berinteraksi dengan suatu sistem
database - atau lebih tepatnya sistem manajemen database relasional
● (what, why) menambahkan, mengubah, mengupdate, mencari dan menghapus data dari suatu
sistem database
● (where) sistem database berbasis relational database management system (RDBMS)
Intro: Structured Query Language
Sistem Database Relasional
● (what) RDBMS → Relational Database management system
● (what) suatu program yang memungkinkan untuk membuat, memperbarui, dan mengelola suatu
basis data relasional (Relational Database)
● (why) Basis data relasional cenderung mudah dikelola dan scalable
Sistem Database Relasional
Sistem Database Relasional
Contoh perbedaan syntax antar-produk RDBMS
Sistem Database Relasional
Struktur penyimpanan RDBMS:
● Database
● Table
● Column / Field
● Row
Penggunaan Perintah SELECT … FROM …
Penggunaan Perintah SELECT … FROM …
Penggunaan Perintah SELECT … FROM …
Penggunaan Perintah SELECT … FROM …
Membatasi jumlah baris data yang diambil dengan syntax “LIMIT”
Penggunaan Perintah SELECT … FROM …
Menggunakan syntax “DISTINCT” untuk menghilangkan duplikasi baris dalam table
Prefix dan Alias
Perintah SELECT dapat ditulis dengan variasi identitas kolom dan tabel berupa prefix dan alias
● Penulisan lengkap untuk nama kolom adalah prefix berupa nama tabel disertai tanda titik sebelum
nama kolom itu sendiri.
● Alias adalah nama lain yang diberikan untuk kolom maupun tabel.
● Alias dapat digunakan dengan keyword “AS” atau tanpa keyword “AS” setelah nama kolom dan
tabel.
● Prefix nama tabel bisa menggunakan alias.
Prefix dan Alias
Prefix dan Alias
Prefix dan Alias
Menggunakan alias dengan keyword “AS”
Prefix dan Alias
Menggunakan alias tanpa keyword “AS”
Prefix dan Alias
Menggabungkan prefix dan alias
Prefix dan Alias
Menggunakan alias pada tabel
Prefix dan Alias
Prefix dengan alias tabel
Menggunakan Filter
Klausul WHERE untuk:
● Filter data dengan kondisi teks tertentu.
● Filter data dengan nilai angka tertentu.
● Filter data dengan dua kondisi menggunakan operator AND dan OR.
Menggunakan Filter
Menggunakan Filter
Menggunakan operator “OR” untuk menggabungkan beberapa kondisi
Menggunakan Filter
Menggunakan operator “AND” untuk menggabungkan beberapa kondisi
Menggunakan Filter
Operator perbandingan untuk kondisi dalam filter - Part I
Operator Deskripsi Tipe Data Contoh
column_name = 'teks1'
= Equal to Semua tipe data column_name = 50
!= atau column_name != 'teks1'
Not equal to Semua tipe data
<> column_name != 50
column_name > 50
> Greater than Numeric, Date/Time column_name > '2024-02-27'
column_name < 50
< Less than Numeric, Date/Time column_name < '2024-02-27'
column_name >= 50
>= Greater than or equal to Numeric, Date/Time column_name >= '2024-02-27'
column_name <= 50
<= Less than or equal to Numeric, Date/Time column_name <= '2024-02-27'
Menggunakan Filter
Operator perbandingan untuk kondisi dalam filter - Part II
Operator Deskripsi Tipe Data Contoh
Between two values Numeric,
BETWEEN column_name BETWEEN 50 AND 55
(inclusive) Date/Time
Not between two values Numeric,
NOT BETWEEN column_name NOT BETWEEN 50 AND 55
(inclusive) Date/Time
Matches any of a list of column_name IN (50, 51, 55)
IN All data types
values column_name IN ('text0', 'text1')
Does not match any of a list column_name NOT IN (50, 51, 55)
NOT IN All data types
of values column_name NOT IN ('text0', 'text1')
Menggunakan Filter
Operator perbandingan untuk kondisi dalam filter - Part III
Operator Deskripsi Tipe Data Contoh
LIKE Matches a pattern Character, String column_name LIKE '%pattern_'
NOT LIKE Does not match a pattern Character, String column_name NOT LIKE '%pattern_'
IS NULL Tests for a NULL value All data types column_name IS NULL
IS NOT NULL Tests for a non-NULL value All data types column_name IS NOT NULL
Menggunakan Filter
Operator wildcard untuk klausa LIKE
Wildcard Deskripsi Contoh
'DQLab' LIKE 'D%' akan bernilai True
% zero or more characters 'DQLab' LIKE '%dq%' akan bernilai True
'DQLab' LIKE 'a%' akan bernilai False
'DQLab' LIKE '_QLab' akan bernilai True
_ a single character 'DQLab' LIKE 'dq__b' akan bernilai True
'DQLab' LIKE 'd_b' akan bernilai False
Part II :
Fundamental
SQL using
FUNCTION and
GROUP BY
Fungsi di SQL
Fungsi di SQL dapat dibagi menjadi 2 kategori:
● Fungsi Scalar → mengembalikan nilai tunggal (single value) dari suatu nilai row input yang
diberikan
● Fungsi Aggregate → melakukan perhitungan pada sekelompok nilai row input dan kemudian
mengembalikan nilai tunggal
Fungsi Scalar Fungsi Aggregate
fruit quantity fruit quantity
apple 2 Returns a value apple 2
orange 1 Returns a value orange 1
Returns a value
banana 3 Returns a value banana 3
apple 1 Returns a value apple 1
Fungsi di SQL
Fungsi scalar matematika
Fungsi Text di SQL
Fungsi scalar teks
Fungsi Aggregate dan GROUP BY
Fungsi aggregate
Fungsi Aggregate dan GROUP BY
Susunan query dengan klausa GROUP BY
1. GROUP BY digunakan dengan SELECT, artinya kolom yang digunakan di GROUP BY statement, juga perlu
ditempatkan di SELECT.
2. GROUP BY ditempatkan setelah WHERE, tetapi jika tidak menggunakan WHERE maka langsung ditempatkan
setelah FROM.
3. Jika menggunakan ORDER BY, maka GROUP BY ditempatkan sebelum ORDER BY.
Fungsi Aggregate dan GROUP BY
Fungsi aggregate dengan GROUP BY
Penggunaan CASE … WHEN …
CASE statement sama dengan IF - THEN - ELSE pada bahasa
pemrograman umumnya
SQL Execution Order
Thank You!