PHP + MYSQL (2) MySQL & SQL Language
Toni Tegar Sahidi [email protected] STT STIKMA Internasional
slide ini & slide setelahnya akan menggunakan contoh
kasus Perpustakaan
Study Case
PHP & MYSQL #1 Setup MySQL #2 SQL #3 SELECT #4 INSERT
#1 Setup MySQL
1/6
Nyalakan Apache Web Server & MySQL Server
Buka PhpMyAdmin (buka browser, ketik http://localhost/phpmyadmin/)
Buat Database Baru
Klik ‘Databases’
Ketik Nama Database Yang ingin dibuat, Jika sudah, klik tombol Create
Akan muncul database yang baru saja dibuat
Klik nama Database Untuk mengelola Database tersebut
Ini adalah tampilan Manajemen Database Perpustakaan
Kolom sebelah kiri menunjukkan daftar Tabel dalam Database Perpustakaan
Saat ini masih belum ada satu tabel pun dalam Database Perpustakaan
Bikin Tabel Baru Yuk! Klik ‘Create Table’
Atau klik Structure
Isi name dengan nama Tabel, dan Number of Columns dengan jumlah Kolom. Jika sudah klik ‘Go’
Isi dengan Struktur Tabel Untuk masing-masing kolom
Pastikan bagian idbuku Seperti ini... Jika sudah, klik Save
Database, yang baru terbentuk
Klik Nama Tabel Untuk mengelola tabel tersebut
Mari menambahkan Beberapa Data Awal, Klik Insert
Klik Browse untuk melihat Isi tabel buku
Ulangi proses Insert Isi dengan data lain seperti ini
Cara Lain
Setelah membuat Database, Impor konten database
tersebut dari sebuah File
Database sudah terbentuk Tapi belum ada tabel
Klik Import
Pilih File database Untuk di import
Klik Go jika Sudah
Selanjutnya, kita akan bermain SQL Query
Pada PhpMyAdmin, SQL ditulis pada menu SQL
Klik SQL
Tempat kode SQL Query
#2 SQL
1/6
Structured Query Language
Bahasa yang dipakai oleh kebanyakan Relational DBMS
(termasuk MySQL) untuk Mengelola Database
Cakupan SQL
# Data Manipulation Language (DML)
# Data Definition Language (DDL)
# Triggers & Advance Integrity Constraint
# Embedded & Dynamic SQL
# Transaction Management
# Security
# Advanced Features
Data Manipulation Language
Cara melakukan Query
(mengambil) data, Insert, Delete,
dan Update
Data Definition Language
Pembuatan, Penghapusan, dan
Modifikasi Tabel & View
Di Slide ini kita belajar tentang bagaimana cara mendapatkan
(query) data
Dan Menambahkan Data
Mau Lebih?
Further references : http://www.w3schools.com/sql
#3 SQL SELECT
1/4
Berfungsi untuk mengambil data
Syntax : SELECT [DISTINCT] select-list FROM from-list WHERE qualification
Select-list
Nama kolom apa saja yang ingin
ditampilkan, isi dengan tanda
bintang untuk menampilkan semua
kolom
from-list
Tabel dan view asal data yang ingin
kita pakai
qualification
Membatasi data yang ingin
diseleksi (semisal data mahasiswa
yang umurnya diatas 24 tahun)
contoh..
Query 1
Menampilkan Semua isi tabel Buku
Query 1
SELECT
*
FROM
perpustakaan.buku;
Query 2
Menampilkan isi dari kolom judul dan
penulis dari tabel buku.
Query 2
SELECT
judul,penulis
FROM
perpustakaan.buku;
Query 3
Menampilkan isi kolom penulis dan penerbit
dari tabel buku
Query 3
SELECT
penulis, penerbit
FROM
perpustakaan.buku;
Multiset Rows (duplikasi dari record
yang berbeda)
Multiset Rows (duplikasi dari record
yang berbeda)
BUKAN Multiset Rows
Karena isi kolom kedua beda
pakai DISTINCT untuk menghindari duplikasi
tampilan data
Query 4
SELECT DISTINCT
penulis, penerbit
FROM
perpustakaan.buku;
BUKAN Multiset Rows
Karena isi kolom kedua beda
BUKAN Multiset Rows
Karena isi kolom kedua beda
Query 5
Menampilkan daftar semua penulis buku
Query 5
SELECT DISTINCT
penulis
FROM
perpustakaan.buku;
dimanakah WHERE?
Query 6
Menampilkan semua buku yang terbit di
tahun 2007
Query 6
SELECT
*
FROM
perpustakaan.buku
WHERE
buku.tahunterbit=2007;
Query 7
Menampilkan semua buku yang jumlah
koleksinya lebih dari sama dengan 5.
Query 7
SELECT
*
FROM
perpustakaan.buku
WHERE
buku.jumlahkoleksi>=5;
Query 8
Menampilkan semua buku yang nama
penulisnya memiliki kata “AN”
Query 8
SELECT
*
FROM
perpustakaan.buku
WHERE
buku.penulis LIKE „%AN%‟;
Jadi?
Select-list memilih apa saja yang ditampillkan,
SELECT * .... SELECT penulis, penerbit ... SELECT judul, tahunterbit ... SELECT judul, max(jumlahkoleksi) ...
from-list memilih dari tabel mana data akan ditampilkan
... FROM perpustakaan.buku ....
... FROM perpustakaan.anggota ....
... FROM bank.nasabah, bank.rekening ....
DISTINCT bersifat opsional, jika ia dipakai, query yang
ditampilkan akan tidak mengandung duplikasi
Tanpa Distinct & dengan Distinct
nilai setelah WHERE bersifat boolean (benar / salah)
Klausa WHERE bisa menggunakan Operator
Operator Description
= Equal
<> Not equal
> Greater than
< Less than
>= Greater than or equal
<= Less than or equal
BETWEEN Between an inclusive range
LIKE Search for a pattern
IN To specify multiple possible values for a column
WHERE hanya menampilkan data yang dalam klausanya
bernilai benar.
... WHERE buku.tahunterbit = 2007 ...
... WHERE buku.jumlahkoleksi >= 5 ...
... WHERE buku.penulis LIKE ‘%AN%’ ...
... WHERE TRUE ...
... WHERE nilai > 50 AND sks>90 ...
Lanjut!
ORDER BY
ORDER BY mengurutkan sesuai kolom
... WHERE qualification ORDER BY order-list [ASC|DESC]
Query 9
Menampilkan judul, penulis, penerbit sesuai
urutan tahun
Query 9
SELECT
judul, penulis, tahunterbit
FROM
perpustakaan.buku
ORDER BY
tahunterbit;
jika urutannya diBALIK
Query 10
Menampilkan judul, penulis, penerbit sesuai
urutan tahun
Query 10
SELECT
judul, penulis, tahunterbit
FROM
perpustakaan.buku
ORDER BY
tahunterbit DESC;
AGGREGATE OPERATOR
AGGREGATE OPERATOR min,max,count,avg,sum
Query 11
Menampilkan total jumlah koleksi buku.
Query 11
SELECT
SUM(jumlahkoleksi)
FROM
perpustakaan.buku;
Query 12
Menampilkan jumlah judul buku yang
dimiliki perpustakaa.
Query 12
SELECT
COUNT(jumlahkoleksi)
FROM
perpustakaan.buku;
Anda dapat menggunakan Operator LOGIKA dalam Where
(AND, OR, XOR, NOT)
Query 13
Menampilkan buku yang ditulis Hepi Andi
Bustomi yang diterbitkan oleh Qalam
Press.
Query 13
Menampilkan buku yang ditulis Hepi Andi
Bustomi yang diterbitkan oleh Qalam
Press.
Analisis :
- Selain Hepi Andi tidak boleh tampil
- Dari bukunya Hepi Andi, hanya terbitan
Qalam Press yang tampil
Query 13
SELECT judul,penulis,penerbit
FROM perpustakaan.buku
WHERE
penulis = „HEPI ANDI BUSTOMI
AND
Penerbit = „QALAM PRESS‟;
adakalanya request manusia, dan implementasi bahasa SQL
sedikit berbeda.
Lakukan ANALISIS!
Query 14
Menampilkan buku yang diterbitkan oleh
Republika dan Tarbawi Press
Query 14
Menampilkan buku yang diterbitkan oleh
Republika dan Tarbawi Press
ANALISIS :
# jika penerbit = republika -> tampilkan
# jika penerbit = tarbawi -> juga tampilkan
# selain dua diatas, abaikan
# meskipun request diatas pakai kata „dan‟
namun implementasi sbenarnya pakai „or‟
Query 14
SELECT judul,penulis,penerbit
FROM perpustakaan.buku
WHERE
penerbit = 'TARBAWI PRESS'
OR
penerbit = 'REPUBLIKA';
Anda bisa gunakan operator logika untuk menampilkan
nilai-nilai ‘diantara’
contoh:
Query 15
Tampilkan buku yang terbit antara tahun
2007 dan 2010
Query 15
Tampilkan buku yang terbit antara tahun
2007 dan 2010
ANALISIS :
# tampilkan buku dimana tahun>= 2007
DAN
# tampilkan buku dimana tahun<= 2010
Query 15
SELECT judul,penulis,penerbit, tahunterbit
FROM perpustakaan.buku
WHERE
tahunterbit >= 2007
AND
tahunterbit <= 2010
ORDER BY tahunterbit;
Selain cara diatas, Anda dapat menggunakan ... WHERE ...
BETWEEN ... AND ...
Query 15b
SELECT judul,penulis,penerbit, tahunterbit
FROM perpustakaan.buku
WHERE
tahunterbit
BETWEEN
2007 AND 2010
ORDER BY tahunterbit;
Alias
1/4
anda bisa memberikan sebuah kolom atau tabel, nama ALIAS untuk digunakan / ditampilkan
... namaAsli AS namaAlias ...
Alias tidak mengubah struktur tabel
*nama kolom/tabel aslinya tetap, tidak berubah, hanya hasil query saja
contoh..
TANPA Alias
Query 16
Menampilkan judul & penulis dari buku
Query 16
SELECT
buku.judul, buku.penulis
FROM
perpustakaan.buku;
DENGAN Alias untuk NAMA TABEL
Alias NAMA TABEL hanya untuk mempermudah
penulisan query...
Query 16b
Menampilkan judul & penulis dari buku
(Alias untuk Nama Tabel)
Query 16b
SELECT
b.judul, b.penulis
FROM
perpustakaan.buku AS b;
hasil query 16b sama dengan
query 16
TIPS : gunakan Alias nama Tabel Pada query yang kompleks dengan nama-nama yang
panjang
DENGAN Alias untuk NAMA KOLOM
Alias NAMA KOLOM mengganti nama kolom
yang ditampilkan
Query 17
Menampilkan judul & penulis dari buku
Pada header kolom, kata judul diganti „Judul
Buku‟, dan kata penulis diganti jadi
pengarang.
Query 17
SELECT
buku.judul AS 'Judul Buku',
buku.penulis AS PENGARANG
FROM
perpustakaan.buku;
GROUP BY
1/4
masih ingat Aggregate Function?
masih ingat Aggregate Function?
(sum, count, max, min, avg)
contoh
Query 18
Menghitung judul buku (count) yang ada di
perpustakaan.
Query 18
SELECT
COUNT(judul) AS 'jumlah judul'
FROM
perpustakaan.buku;
semisal kita ingin mengelompokkan jumlah judul
tersebut berdasarkan pengarangnya
Gunakan GROUP BY
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
Query 19
Menghitung judul buku (count) yang ada di
perpustakaan, dan kelompokkan
berdasarkan Penulisnya.
Query 19
SELECT
penulis,
COUNT(judul) AS 'jumlah judul'
FROM
perpustakaan.buku
GROUP BY
penulis;
HAVING
1/4
masih tetap Aggregate Function
Anda tidak dapat menggunakan Aggregate Function didalam
Where ‘secara langsung’
contoh
Query 20
tampilkan penulis yang total jumlah
koleksinya lebih dari sama dengan 5
Query 20
SELECT
penulis, SUM(jumlahkoleksi)
FROM
perpustakaan.buku
GROUP BY
penulis
WHERE
SUM(jumlahkoleksi) >= 5;
Query 20
SELECT
penulis, SUM(jumlahkoleksi)
FROM
perpustakaan.buku
GROUP BY
penulis
WHERE
SUM(jumlahkoleksi) >= 5;
TIPS : gunakan : HAVING
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value
Query 20
tampilkan penulis yang total jumlah
koleksinya lebih dari sama dengan 5
Query 20
SELECT
penulis, SUM(jumlahkoleksi)
FROM
perpustakaan.buku
GROUP BY
penulis
HAVING SUM(jumlahkoleksi) > 5;
#4 INSERT
1/4
SELECT hanya mengambil data
Gunakan INSERT untuk MENAMBAHKAN DATA
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)
Query 21
INSERT INTO `perpustakaan`.`buku` (
`idbuku` ,
`judul` ,
`penulis` ,
`penerbit` ,
`tahunterbit` ,
`jumlahkoleksi`
)
VALUES (
NULL , 'DALANG', 'TONI TEGAR SAHIDI', 'REPUBLIKA',
'2014', '6„ );
Further references : http://www.slideshare.net/ tonitegarsahidi1/newsfeed
Further references : http://www.ilmukomputer.org
Further references : http://www.w3schools.com
next session
PHP + MySQL
Top Related