Anda di halaman 1dari 65

Introduction

to SQL Part 1

Syamil Fakhruddin
Syamil Fakhruddin H.A
A data scientist with more than 2 years experience
in data science projects. Has been involved in
smart city project (computer vision), data
migration to cloud (aws migration) and various
POC projects.

Work Experience
PT Zegen Laraka Utama
AI Engineer

Shift Academy
Tutor Data Science

PT Metrodata Electronics, Tbk


Data Scientist
Our Topics Today
1. Apa itu DataBase dan RDBMS?
2. SQL Concept
3. Kenapa Data Scientist dan Data Engineer
perlu belajar SQL?
4. Query SQL Part 1
Disclaimer

Bahasa yang digunakan dalam presentasi ini dibuat


untuk mempermudah pembelajaran

Jika ada kekeliruan dalam terjemahan ataupun konsep,


temen-temen bisa memberikan saran agar
penyampaian lebih baik kedepannya
Apa itu
Database?
DATABASE
kumpulan informasi (data) yang terorganisir sehingga
mudah untuk mengakses, mengatur dan mengupdate data
Apasih kelebihan
Database
dibandingkan dengan
Excel biasa
(Spreadsheet)?
Terbatasnya kapasitas jumlah baris yang ada
Menggabungkan beberapa File Excel sangatlah sulit
Kelebihan Database
Maksimum baris yang ditampung tergantung
besarnya storage.
Sangat mudah untuk melakukan integrasi dari
beberapa tabel.
Sangat mudah di automate.
Bisa menampung data yang berukuran besar.
Salah satu kelebihan yang terdapat dalam database
adalah Integrasi antar tabel. Hal ini karena ada yang
disebut sebagai RDBMS.

RDBMS
Relational Database Management System (RDBMS)
merupakan sistem basis data yang entitas utamanya terdiri
dari tabel-tabel yang memiliki relasi dari satu tabel ke tabel
lain.
Tabel - tabel tersebut
dihubungkan oleh
parent/primary key
dan foreign key
Beberapa yang perlu kamu
tahu tentang primary key dan
foreign key :
- Harus unik
- Dalam suatu tabel hanya
terdapat satu primary key,
namun dalam beberapa
kasus bisa lebih dari 1
- Tabel boleh memiliki lebih
dari 1 foreign key
- Foreign key digunakan
untuk membuat relasi
antar tabel
Macam - macam Database Platform

Dan masih banyak lagi...


Apa yang sudah kita Install?

- PostgreSQL - SQL Engines untuk menyimpan data


dan membaca query yang akan menghasilkan
informasi
- Dbeaver - Tampilan agar mempermudah
mengakses data di PostgreSQL
SQL Concept
SQL ( Structured Query Language)

Cara berkomunikasi
dengan database

*Script/Query untuk
mengelola database
Ilustrasi
Halo database,
tolong tampilkan I Don’t Understand what
nama-nama do you mean???
karyawan yang
usianya lebih dari 25
tahun!
Ilustrasi

SELECT nama Joni


FROM karyawan Budi
WHERE usia > 25 Sinta
Ilustrasi

SELECT nama Joni


FROM karyawan Budi
WHERE usia > 25 Sinta
Ini disebut query
SQL
Pada umumnya terdapat 3 (tiga) jenis perintah SQL
yang bisa digunakan oleh SQL, yaitu:
1. DDL (Data Definition Language)
2. DML (Data Manipulation Language)
3. DCL (Data Control Language).
DDL (Data Definition Language)

DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu


struktur database, dalam hal ini database dan table. Beberapa perintah dasar yang
termasuk DDL ini antara lain :
- CREATE : Seperti namanya, perintah create digunakan untuk membuat
sesuatu, dalam hal ini adalah database dan table.
- ALTER : Perintah alter digunakan untuk merubah struktur atau mengubah
informasi. Perintah alter bisa digunakan untuk database ataupun table.
- RENAME : Perintah rename biasanya digunakan untuk mengubah nama table,
apabila sebuah tabel ingin diganti namanya.
- DROP : Perintah drop digunakan untuk menghapus, maka apabila
menggunakan perintah ini harus berhati-hati karena drop dapat mengakses
database, tabel, kolom, index, procedure dan yang lainnya.
DML (Data Manipulation Language)

DML merupakan perintah SQL yang berhubungan dengan manipulasi atau


pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam
DML antara lain:

- SELECT : Perintah select digunakan untuk menampilkan data-data yang


ada didalam tabel pada suatu database.
- INSERT : Perintah insert digunakan untuk menambahkan data pada tabel
yang terdapat didalam database.
- UPDATE : Update digunakan untuk mengubah data, atau memodifikasi
data yang terdapat didalam tabel.
- DELETE : Perintah delete digunakan untuk menghapus data atau record
dalam table.
DCL (Data Control Language)

DCL merupakan perintah SQL yang berhubungan dengan manipulasi


user dan hak akses (privileges). Perintah SQL yang termasuk dalam
DCL antara lain :

- GRANT : Perintah grant digunakan untuk memberikan hak akses


atau izin pada user di database untuk dapat mengakses database
tersebut. Selain itu perintah grant juga dapat digunakan untuk
menambahkan user atau pengguna baru di DBMS.
- REVOKE : Perintah revoke adalah kebalikan dari perintah grant,
perintah revoke digunakan untuk menghapus atau atau
mencabut izin hak akses.
Mengapa Data
Scientist perlu
Mempelajari SQL?
Data Engineer

Menganalisa
Data and Get
Menyimpan
Insight
dan Mengelola
Database

Diakses oleh
DS
Data Scientist
QUERY SQL Part 1
Sebelum kita mulai untuk
melakukan Query, kita koneksikan
dulu Postgre kita ke Dbeaver
Caranya
Masukkan
password

Bisa Tes dulu


koneksinya
Next kita jalankan query ‘requirement.sql’

Copy query
requirement.sql ke sql
editor kemudian running
query nya dengan
menekan CTRL+Enter
Sebelum masuk ke kodingan kira kira bentuk database
itu seperti apa sih?

2 1 Database
2 Schema
3
3 Table
Contoh Table
Lets
Query
SELECT & FROM
SELECT
Syntax yang digunakan untuk memilih kolom apa
saja yang ingin ditampilkan
FROM
Syntax yang digunakan untuk memilih tabel apa
yang ingin digunakan
SELECT & FROM
-- Mengambil Data Employee Untuk Seluruh
Kolom
SELECT
*
FROM employees e
SELECT & FROM
-- Mengambil hanya Employe ID, First Name, dan Last Name
SELECT
employee_id ,
first_name , last_name
FROM employees e
Challange #1
1.Tampilkan Employee ID, Nama, Email, Nomor HP,
dan Salary karyawan
2.Tampilkan semua list pekerjaan dan semua kolom
yang ada pada
tabel jobs
Distinct
-- Memilih unik value
untuk job_id
SELECT
DISTINCT
job_id
FROM employees e2
Challange #2
Tampilkan manager_id secara unik dari tabel
employee
Tampilkan unik salary dari tabel employee
WHERE
-- Memilih dengan Kondisi Manager ID = 108
SELECT
employee_id , first_name , last_name
FROM employees e
WHERE manager_id = '108'
WHERE + AND / OR
-- Memilih dengan Multiple Kondisi Manager ID = 108 dan Hire Date >= 1987-06-28
SELECT
employee_id ,
first_name ,
last_name
FROM employees e
WHERE manager_id = '108'
AND hire_date >= '1987-06-28'
WHERE + BETWEEN
-- Memilih dengan Multiple Kondisi 1987-06-20 >= Hire Date >= 1987-06-28
SELECT
employee_id , first_name ,
last_name
FROM employees e
WHERE hire_date BETWEEN '1987-06-20' AND '1987-06-28'
WHERE + IN / NOT IN
-- Memilih baris dengan kondisi job_id = ('AD_VP','IT_PROG','PU_MAN')
SELECT
employee_id , first_name ,
last_name
FROM employees e
WHERE job_id IN ('AD_VP','IT_PROG','PU_MAN')
WHERE + NULL / NOT NULL
-- Memilih baris dari tabel job_history jika
departement_id NULL
SELECT *
FROM job_history jh
WHERE department_id IS NULL
Challange #3
1. Tampilkan Employee ID, Nama, Email, Nomor HP dan Salary
karyawan dengan salary minimal 7000
2. Tampilkan Employee ID, Nama, Hire Date dan Salary karyawan
dengan salary minimal 7000 maksimal 8000 dan hire_date lebih dari
1987-08-01
3. Tampilkan Employee ID, Nama, job_id karyawan yang memiliki
posisi pekerjaan (job_id = ('FI_MGR','PU_MAN','ST_MAN','SA_MAN'))
ORDER BY ASC/DESC
-- Mendapatkan 10 employee dengan salary
teratas
SELECT employee_id , first_name ,last_name
,salary FROM employees e
ORDER BY salary DESC -- Menyusun dari terbesar ke
terkecil
LIMIT 10
Challange #4
1. Tampilkan 5 employee terlama
2. Tampilkan employee dengan gaji 5000 -
10000 dan diurutkan dari
yang terbesar hingga terkecil based on
salary
Yeay, akhirnya kita
bisa menarik data
dari database!!!
Lalu bagaimana cara
membuat table?
CREATE Table
CREATE TABLE nama_table ( kolom1 tipedata1, kolom2
tipedata2, … )
CREATE Table
CREATE TABLE nama_table ( kolom1 tipedata1, kolom2
tipedata2, … )
CREATE TABLE users (
id INT,
nama VARCHAR,
birthdate DATE,
ktp BIGINT,
badge VARCHAR
)
CREATE Table
CREATE Table

Kita perlu memasukkan data 1 per satu dengan fungsi


INSERT INTO
INSERT INTO
Syntax untuk semua kolom di table:
INSERT INTO table_name VALUES (data1,data2,...), (data1,data2,...)

Baris 1 Baris 2
Syntax untuk specifik kolom:
INSERT INTO table_name (column1,column2,...) VALUES(data1,data2,...),
(data1,data2,...)

Baris 1 Baris 2
INSERT INTO
INSERT INTO users VALUES
(1, 'Udin','1990-01-01',123123123,'Pelanggan Premium'),
(2, 'Usep','1991-01-01',321321321,'Pelanggan Biasa')
INSERT INTO
INSERT INTO users (id,nama) VALUES
(3, 'Alex'),
(4, 'Asep')
Challenge #5
Buatlah table siswa shiftacademy kelas
Data Scientist Batch 11
Kolom dibebaskan minimal 5 kolom (harus ada ID)
Sudah Beress!!
Apa yang sudah kita kuasai hari ini?
1. ...
Sudah Beress!!
Apa yang sudah kita kuasai hari ini?
1. Memahami Database dan RDBMS
2. Mengakses tabel yang sudah disediakan
3. Membuat tabel sendiri
Ada Pertanyaan??
THANK YOU

Anda mungkin juga menyukai