SQL DASAR
Nur Rochmah DPA.,ST
chmah
Nur R
Overview MySQL
MySQL merupakan Database
Server yang bersifat :
Open Source
Multiplatform
Berbasis database relasional
Bisa dipakai untuk database pribadi
atau pada level korporat berskala
kecil hingga besar
Selain bersifat free, ada juga yang
chmah
bersifat komersial
Nur R
Dasar SQL
SQL = Structured Query Language
Digunakan untuk mengakses basis data relasional
Bersifat standar; bisa dipakai untuk basis data relasional
lainnya
Perintah SQL dapat dibagi menjadi DDL dan DML
chmah
Nur R
Perintah DDL
DDL = Definition Data Language
Digunakan untuk kepentingan penciptaan database, tabel, hingga
penghapusan database atau tabel
Contoh:
CREATE DATABASEuntuk membuat database
CREATE TABLEuntuk membuat tabel
chmah
DROP TABLE untuk menghapus tabel
ALTER TABLE untuk mengubah struktur kolom pada tabel
Nur R
Contoh penggunaan perintah DDL
Membuat database
Nama Database
CREATE DATABASE Pegawai;
Memilih/mengaktifkan database Database:
Pegawai
USE Pegawai;
Tabel:
Nama Database Tabel:
Pekerjaan
Tabel: Bagian
Field:
Pribadi
MembuatTabel Field:
-NIP
Field:
-NIP
-Kode_Bag
-Nama_Bag
-Nama -Tgl_Masuk
-Tgl_Lahir -Kode_Bag
CREATE TABLE Pribadi ( -Gaji
-Sex
Nip CHAR(5) NOT NULL PRIMARY KEY, -Alamat
chmah
-Kota
Nama VARCHAR(35) NOT NULL,
Tgl_lahir DATE,
Sex ENUM('P','W'),
Alamat VARCHAR(35),
Kota VARCHAR(15));
Nur R
Penjelasan Tipe Data
KARAKTER
CHAR:Teks dengan maksimal 255 karakter
VARCHAR:Teks maksimal 255 karakter dan bersifat variabel
TEXT:Teks dengan panjang maksimal 65535
BILANGAN
TINYINT: Bilangan 1 byte
SMALLINT: Bilangan 2 byte
chmah
INT atau INTEGER Bilangan 4 byte
BIGINT: Bilangan 8 byte
FLOAT: Bilangan pecahan (4 byte)
DOUBLE atau REAL: Bilangan pecahan (8 byte)
DECIMAL(M, D) atau NUMERIC(M, D): Bilangan pecahan
Nur R
Lanjutan…tipe data
LAIN-LAIN
LAIN-
DATE:Tanggal
DATETIME:Waktu (tanggal dan jam)
TIME : Jam
ENUM(‘nilai1’,‘nilai2’, …): Nilai enumerasi
BOOLEAN: tipe benar atau salah
KATATAMBAHAN
chmah
NOT NULL :Tidak boleh kosong
PRIMARY KEY: Kunci primer
AUTO_INCREMENT: Nilai naik secara otomatis tanpa diisi
Nur R
Drop and Alter Table Constructs
Drop Table digunakan untuk menghapus tabel
DROP TABLE Riwayat;. Nama tabel
Alter Table digunakan untuk mengganti nama atribut pada suatu relasi
alter table r add A D
dimana A nama atribut yang akan diganti pada relasi r dan D nama atribut yang
baru.
chmah
Nur R
Perintah DML
Data Manipulation Language (DML) merupakan bahasa basis data
yang berguna untuk melakukan modifikasi dan pengambilan data
pada suatu basis data
Modifikasi data terdiri dari: penambahan (insert), pembaruan
(update) dan penghapusan (delete).
Contoh:
SELECT – mengambil data
DELETE – menghapus data
INSERT – menyisipkan data
UPDATE – mengubah data
chmah
Nur R
SQL-Select
A typical SQL query has the form
select A1, A2, ..., An from r1, r2, ..., rm where P
dimana : Ai represents an attribute
Ri represents a relation
P is a predicate.
This query is equivalent to the relational algebra expression.
chmah
The result of an SQL query is a relation.
∏A1,A2,..,An(σP(r1xr2x…xrm))
Nur R
Contoh :
Find the names of all branches in the loan relation:
select branch_name from loan
In the relational algebra, the query would be:
σbranch_name (loan)
Find the names of all branches in the loan relations, and duplicates
select distinct branch_name from loan
chmah
Nur R
Penambahan Data
INSERT INTO <namaTabel> [(field1, field2, …)]
VALUES (nilai1 [,nilai2, …]) | SQL-SELECT
Keterangan :
<namaTabel> nama tabel yang akan ditambahkan datanya
[(field1, field2, …)] field-field di dalam tabel yang akan diisikan nilainya
VALUES (nilai1 [,nilai2, …]) | SQL-SELECT nilai yang diisikan
Jika mengisikan sebuah data tunggal saja yang tidak diambil dari tabel
lain, gunakan: VALUES (nilai1 [,nilai2, …])
chmah
Menambahkan data Bud dan Sally pada atribut beer dan drinker pada
relasi Likes:
INSERT INTO Likes(beer, drinker)
VALUES(’Bud’, ’Sally’);
Nur R
Mengubah Data
UPDATE <namaTabel>
SET <field1>=<nilai1> [ , <field2> = <nilai2>, …]
[WHERE <kondisi>]
Keterangan
<namaTabel> nama tabel yang akan ditambahkan datanya
SET <field1>=<nilai1> [,<field2>=<nilai2>,... ] nilai baru yang akan
diisikan pada field tertentu
chmah
[WHERE <kondisi>] filter yang berlaku untuk menentukan data mana saja
yang diupdate
Nur R
Contoh
UPDATE koleksi SET KL_Harga=KL_Harga*1.1
Untuk melakukan update massal (berlaku untuk seluruh field), yakni menaikkan
seluruh harga sebesar 110% pada koleksi:
UPDATE koleksi SET KL_Keterangan = 'Buku TA'
WHERE KL_TK_ID=4
chmah
• Untuk melakukan update dengan kondisi , yakni memberikan keterangan dg
isian‘BukuTA’ untuk semua koleksi yang berjenis buku TA (KL_TK_ID=4):
Nur R
Menghapus Data
DELETE FROM <namaTabel>
[WHERE <kondisi>]
Keterangan
<namaTabel> nama tabel yang akan ditambahkan datanya
[WHERE <kondisi>] filter yang berlaku untuk menentukan data mana
saja yang dihapus
Contoh
Untuk menghapus seluruh data peminjaman:
DELETE FROM Peminjaman
chmah
Untuk menghapus seluruh koleksi yang berjenis buku TA (idJenisKoleksi=4
DELETE FROM koleksi WHERE KL_TK_ID=4
Nur R
Menghapus Attribut
Menghilangkan attribut dari tabel dg skema :
ALTER TABLE <name>
DROP <attribute>;
Contoh:
• Menghapus atribut license pada tabel Bars
ALTER TABLE Bars DROP license;
chmah
Nur R
WHERE
Klausa ini biasanya digunakan untuk:
1. Filter (penyaringan) data.
2. Merelasikan/menghubungkan query yang disusun lebih
dari satu tabel.
Penerapannya adalah dengan memasukkan suatu ekspresi kondisi
setelah klausa WHERE:
WHERE <kondisi>
chmah
Jika <kondisi> lebih dari satu, maka bisa ditambahkan dengan AND
atau OR (sesuai dengan kebutuhan).
Nur R
WHERE <kondisi> UNTUK FILTER
Operasi yang bisa dipakai:
operasi pembandingan
operasi pendekatan pola
operasi pembandingan dengan sekumpulan nilai
Operasi Pembandingan
Operasi:
= < <= >= > <> is
nilai yang belum berisi nilai. chmah
Khusus untuk pembanding IS, nilai yang diisikan adalah null, yakni sebuah
nilai null tidak sama dengan nilai 0 pada tipe numerik ataupun string
kosong pada tipe string
Nur R
Contoh
menampilkan anggota yang berjenis kelamin laki-laki:
SELECT * FROM Anggota WHERE JK="L"
menampilkan Anggota yang tahun kelahirannya lebih dari 1985
SELECT * FROM Anggota
WHERE year(TglLahir) > 1985
menampilkan Anggota wanita yang lahir di bulan Juli:
SELECT * FROM anggota
WHERE JK="P" AND month(TglLahir)=6
menampilkan idKoleksi yang belum dikembalikan (TglKembali
belum terisi)
chmah
SELECT * FROM Peminjaman WHERE TglKembali IS NULL
Nur R
Operasi LIKE (pendekatan pola)
Operasi ini, hanya untuk pembandingan nilai bertipe
string
Digunakan untuk mengenali string-string yang memiliki pola
tertentu.
Di dalam operasi ini, digunakan simbol-simbol berikut:
simbol % artinya mewakili 0 s/d tak terhingga dari
sembarang karakter
chmah
simbol _ artinya mewakili 1 sembarang karakter
Nur R
Contoh
menampilkan anggota yang nama depannya "Budi":
SELECT * FROM anggota WHERE Nama LIKE "Budi%"
menampilkan Anggota yang huruf ketiga namanya adalah “d”:
SELECT * FROM anggota WHERE Nama LIKE "__d%"
menampilkan koleksi yang judulnya terdapat kata
“pemrograman”:
chmah
SELECT * FROM koleksi WHERE Judul LIKE
"%pemrograman%"
Nur R
operasi IN atau NOT IN
Ekspresi ini digunakan untuk membandingkan dengan sebuah
kumpulan nilai
Kumpulan nilai bisa berupa:
nilai-nilai yang diisikan
query tunggal
query yg hasilnya hanya terdapat sebuah kolom saja
Nilai-nilai yang diisikan, maksudnya kita sendiri yang mengisikan
nilai-nilai tersebut di dalam query kita.
chmah
Nur R
Contoh
menampilkan koleksi yang jenisnya buku dan majalah
(idTipeKoleksi=1 atau 2):
SELECT * FROM koleksi
WHERE idTipeKoleksi IN (1, 2)
menampilkan anggota yang selain mahasiswa atau dosen
(idJenisAnggota selain 2 dan 3)
chmah
SELECT * FROM anggota WHERE
IDJenisAnggota NOT IN (1, 3)
Nur R
Query tunggal, yakni nilai-nilai yang digunakan sebagai pembanding
diambil dari sebuah query tunggal yang hasilnya hanya satu kolom saja
Contoh
menampilkan anggota yang belum pernah meminjam buku
sama sekali:
SELECT * FROM anggota
WHERE id NOT IN (SELECT DISTINCT idAnggota
FROM Peminjaman)
chmah
menampilkan koleksi yang sedang dipinjam:
SELECT * FROM koleksi WHERE idKoleksi IN
(SELECT idKoleksi
FROM Peminjaman WHERE TglKembali is NULL)
Nur R
Latihan
q01. Daftar Mahasiswa (nrp, nama, jeniskel) yang berjenis
kelamin laki-laki
q02. Daftar Mahasiswa (nrp, nama, alamat) yang beralama
di"Sidoarjo"
q03. Daftar Matakuliah (*) beserta semester diajarkan urut
berdasarkan semester dan nama
q04. Daftar Mahasiswa (nrp, nama) beserta nama dosen
walinya (nip, nama)
chmah
q05. Daftar Mahasiswa (nrp, nama) yang dosen walinya
bernama "Irfan Subakti"
q06. Daftar Mahasiswa (nrp, nama, alamat) dan dosen
walinya (nip, nama, alamat) yang alamatnya sama-
sama di "Sidoarjo"
Nur R
q16. Jumlah seluruh mahasiswa per jenis kelamin
q17. Total IPK per mahasiswa (nrp, nama) --> rumus
IPK = SUM(sks*kredit) / SUM(kredit)
q18. Nilai tertinggi, terendah, rata-rata per nama
Mata Kuliah
q19. Nilai tertinggi, terendah, rata-rata per kelas dan
jeniskelamin
q20. Gabungan seluruh nama, alamat mahasiswa dan
dosen yang beralamat di "Sidoarjo" yang urut
berdasarkan nama