Intruksional SQL
Intruksional SQL
Tujuan Instruksional
Tujuan Instruksional Umum
memahami fungsi SQL
Tujuan Instruksional Khusus
yaitu dapat melakukan fungsi
SQL
Pengantar SQL
DBMS umumnya menyediakan program khusus (utilitas/Utility) yang dapat digunakan
secara interaktif untuk melakukan berbagai operasi terhadap basis data, seperti
pembuatan table, penghapusan table, penambahan data, pengubahan data, pencarian
data, penghapusan data dan lain-lain. Namun di samping adanya program khusus itu,
DBMS juga umumnya menyediakan sekumpulan perintah (dalam bentuk commandline,
yakni perintah yang dituliskan pemakai) untuk maksud yang sama. Perintah-perintah ini
dapat diberikan (dan dikerjakan oleh DBMS) melalui utilitas lain yang juga disediakan
DBMS atau melalui program/aplikasi yang dibuat sendiri oleh pemakai. Kumpulan
perintah ini dapat disebut sebagai Bahasa Basis Data (Database Language).
Ada banyak sekali bahasa basis data yang pernah dibuat untuk masing-masing DBMS.
Namun akhirnya yang menjadi standar adalah SQL. SQL merupakan kependekan dari
Structured Query Languange (Bahasa Query yang Terstruktur). Istilah Query Languange
memang tidak tepat sama dengan istilah Bahasa Basis Data (Database Languange).
Bahasa Basis Data terdiri atas Data Definition Language (DDL) dan Data Manipulation
Language (DML).
Struktur Dasar
Sebuah ekspresi SQL dasar sebenarnya hanya terdiri atas 3 klausa, yaitu : select, from dan where :
•Klausa select digunakan untuk menetapkan daftar atribut (field) yang diinginkan sebagai hasil query.
•Klausa from digunakan untuk menetapkan table (atau gabungan table) yang akan ditelusuri selama
query data dilakukan.
•Klausa where, yang sifatnya opsional, digunakan sebagai predikat (criteria) yang harus dipenuhi dalam
memperoleh hasil query.
Sintaks (cara penulisan) dari ekspresi SQL dasar dengan 3 klausa tersebut adalah :
Dimana :
• A1, A2, …, An merupakan daftar atribut.
• t1, t2, …, tm merupakan daftar table.
• P merupakan predikat query.
• [ ] merupakan tanda optional (boleh digunakan, boleh tidak digunakan).
Struktur Select
Bentuk lain struktur select :
• Secara umum:
SELECT <nama kolom,...> FROM <nama tabel>;
Untuk memenuhi keinginan itu, kita dapat menggunakan ekspresi SQL berikut :
select *
from kuliah, dosen
where kuliah.kode_dos = dosen.kode_dos
Perlu diperhatikan, melakukan query terhadap 2 tabel atau lebih tidak bisa dilakukan sembarangan. Tabel-tabel yang
menjadi sumber query harus memiliki keterhubungan (relasi). Pada perintah di atas, keterhubungan itu diwakili oleh
kesamaan nilai pada atribut kode_dos dan kita tahu bahwa atribut ini dimiliki oleh kedua tabel. Ekspresi
‘kuliah.kode_dos’ menunjukkan nilai kode_dos yang berasal dari tabel Kuliah dan ‘dosen.kode_dos’ menunjukkan nilai
kode_dos yang berasal dari tabel Dosen.
Klausa Form
Kita dapat menggunakan nama alias untuk tabel-tabel pada klausa from untuk
menyederhanakan penulisan. Ekspresi query di atas, dengan hasil yang sama, dapat pula
dinyatakan dengan ekspresi sebagai berikut :
select *
from kuliah k, dosen d
where k.kode_dos = d.kode_dos
Terhadap sumber data (tabel query) yang banyak, tanda * (asterisk) pada klausa select akan
mengacu pada semua atribut yang ada di semua tabel yang disebutkan pada klausa from.
Jika kita hanya ingin menampilkan atribut-atribut tertentu saja, maka nama tabel atau
aliasnya dapat kita gunakan untuk memperjelas asal atribut yang kita tampilkan tersebut,
misalnya :
• Pencarian String
1) Gunakan LIKE untuk mencari string tertentu:
SELECT * FROM nasabah
WHERE nama_nasabah LIKE 'Ali Topan’;
3) Bisa menggunakan _ untuk 1 huruf. Tanda ‘_’ berarti cocok untuk semua karakter pada posisi yang sesuai
Select *
from kuliah
where semester between 3 and 5;
2. Untuk pencarian yang case insensitive (tidak mempedulikan huruf besar atau
kecil), gunakan ILIKE:
3) Untuk melakukan pengurutan lebih dari satu kolom, pisahkan dengan tanda koma:
SELECT * FROM nasabah_has_rekening
ORDER BY no_rekening, id_nasabah;
Penggunaan LIMIT sebaiknya selalu digunakan bersama dengan ORDER BY, sehingga
urutan yang ditampilkan akan selalu konsisten. LIMIT dan OFFSET sangat berguna dalam
tampilan yang berbasis web (misalnya dengan menggunakan PHP atau JSP) agar tampilan
data tidak terlalu besar dan bisa lebih rapi. Tampilan data yang banyak bisa diatur dan dibagi
menjadi beberapa halaman (pages).
Fungsi Agregasi
Data agregasi menggunakan fungsi-fungsi berikut ini :
•count untuk mendapatkan nilai banyaknya record hasil query,
•sum untuk mendapatkan nilai total suatu atribut numeric hasil query,
•avg untuk mendapatkan nilai rat-rata suatu atribut numeric hasil query,
•max untuk mendapatkan nilai terbesar dari suatu atribut hasil query,
•min untuk mendapatkan nilai terkecil dari suatu atribut hasil query.
5. Menampilkan indeks nilai terbesar yang diperoleh mahasiswa untuk mata kliah dengan kode kuliah ‘IF-110’ :
select max(indeks_nilai)
from nilai
where kode_kul = ‘IF-110’
6. Menampilkan tanggal lahir paling tua yang ada di tabel mahasiswa :
select min(tgl_lahir) from mahasiswa
Manipulasi Data
1. Penambahan Record
Sintaks SQL untuk penambahan record baru ke sebuah tabel adalah :
Insert into t [(A1, A2, …, An)]
Values (v1, v2, …, vn)
Di mana :
•t adalah nama tabel yang akan mengalami penambahan record
•A1, A2, …, An adalah nama-nama atribut yang akan diisi nilai
•v1, v2, …, vn adalah nilai-nilai yang akan mengisi atribut-atribut tersebut
Berikut ini adalah contoh perintah SQL untuk melakukan penambahan record baru ke tabel
Mahasiswa :
Insert into Mahasiswa (nim, nama_mhs, alamat_mhs, tgl_lahir)
Values (‘980011’, ‘Siti Zubaedah’, ‘Jl. Guntur Kulon 12, Bogor’, ‘02/03/1973’)
Atau :
Insert into Mahasiswa
Values (‘980011’, ‘Siti Zubaedah’, ‘Jl. Guntur Kulon 12, Bogor’, ‘02/03/1973’)
Maka atribut tgl_lahir yang tidak disebutkan dalam perintah insert tersebut akan diisi dengan
nilai null.
Manipulasi Data
2. Pengubahan Record
Sintaks SQL untuk pengubahan nilai atribut pada suatu record dari sebuah tabel adalah :
update t
set assignment
[ where P]
Di mana :
•t adalah nama tabel yang akan mengalami pengubahan record
•assignment adalah ekspresi pemberian nilai baru untuk suatu atribut yang akan kita
ubah
•P merupakan predikat atau criteria untuk pemilihan record yang akan dikenai
perubahan, jika klausa where ini tidak digunakan, maka perubahan akan dilakukan
pada semua record di dalam tabel t
Berikut ini adalah perintah SQL untuk mengubah nilai atribut sks untuk mata kuliah
tertentu :
update kuliah
set sks = 4
where kode_kul = ‘IF-310’
Manipulasi Data
3. Penghapusan Record
Sintaks SQL untuk penghapusan record dari sebuah tabel adalah :
delete from t
[ where P ]
Di mana :
•t adalah nama tabel yang akan mengalami penghapusan record
•P merupakan predikat atau criteria untuk menentukan record mana saja yang akan dikenai
penghapusan, jika klausa where ini tidak digunakan, maka penghapusan akan dilakukan
pada semua record di dalam tabel t
Berikut ini adalah perintah SQL untuk menghapus record kuliah tertentu :
delete from kuliah
where kode_kul = ‘IF-310’
Berikut ini adalah perintah SQL untuk menghapus beberapa record di tabel kuliah :
delete from kuliah
where kode_kul like ‘MA%’
sedang perintah SQL berikut ini adalah untuk menghapus semua record dari table Kuliah
(sehingga tabel Kuliah menjadi kosong) :
delete from kuliah;
Manipulasi Data
3. Penghapusan Record
Sintaks SQL untuk penghapusan record dari sebuah tabel adalah :
delete from t
[ where P ]
Di mana :
•t adalah nama tabel yang akan mengalami penghapusan record
•P merupakan predikat atau criteria untuk menentukan record mana saja yang akan dikenai
penghapusan, jika klausa where ini tidak digunakan, maka penghapusan akan dilakukan
pada semua record di dalam tabel t
Berikut ini adalah perintah SQL untuk menghapus record kuliah tertentu :
delete from kuliah
where kode_kul = ‘IF-310’
Berikut ini adalah perintah SQL untuk menghapus beberapa record di tabel kuliah :
delete from kuliah
where kode_kul like ‘MA%’
sedang perintah SQL berikut ini adalah untuk menghapus semua record dari table Kuliah
(sehingga tabel Kuliah menjadi kosong) :
delete from kuliah;
Manipulasi Data
4. Kontrol Transaksi
Operasi-operasi manipulasi data merupakan bagian dari suatu transaksi. Transaksi sendiri
bisa terdiri atas satu atau beberapa operasi menipulasi data. Perintah-perintah menipulasi
data tidak akan benar-benar disimpan (ditulis di dalam disk) jika kita belum memberikan
perintah control transaksi. Perintah control transaksi itu adalah :
commit [ work ]
rollback [ work ]
Jika perintah commit digunakan, maka semua operasi manipulasi basis data akan ke
dalam disk dan transaksi dinyatakan selesei. Sedang jika perintah rollback yang kita
gunakan, maka semua operasi manipulasi basis data yang belum di-commit, akan
dibatalkan (tidak jadi disimpan ke dalam disk). Klausa work sifatnya opsional dan tidak
berpengaruh terhadap pengertian kedua perintah tersebut.
Data Definition Language
Data Definition Language (DDL) berkaitan dengan perintah-perintah untuk pendefinisian objek-
objek basis data. Salah satu objek terpenting adalah tabel. Berikut ini adalah Sintaks SQL untuk
melakukan pembuatan tabel baru di dalam basis data :
Berikut ini adalah contoh ekspresi SQL untuk pembuatan tabel Mahasiswa sekaligus dengan
pendefinisian Indeks Primer berdasarkan nim :
create table mahasiswa
(nim char(6),
nama_mhs varchar(30),
alamat_mhs varchar(60),
tgl_lahir date,
primary key (nim));
Jika jumlah atribut yang membentuk Indeks Primer ada lebih dari satu, seperti yang ada di tabel
Nilai, contoh ekspresi SQL-nya adalah :
create table nilai
(nim char(6),
Kode_kul char(6),
Indeks_kul char(1),
tgl_lahir date,
primary key (nim, kode_kul));
Data Definition Language
Struktur sebuah tabel juga dapat kita ubah, tanpa harus menghapus dan kemudian membangunnya
kembali dengan definisi struktur yang baru. Perintah pengubahan struktur selain lebih praktis, juga
tidak mengakibatkan hilangnya data yang sudah ada di dalam tabel (jika memang sudah terisi
data). Perubahan struktur ini dapat berupa penambahan atribut atau pengurangan/penghapusan
atribut tertentu. Sintaks SQL untuk perubahan struktur tabel yang berbentuk penambahan atribut
baru ke tabel t adalah :
di mana t mewakili tabel, A mewakili nama atribut dan D mewakil tipe data untuk atribut A
tersebut.
Sedang untuk penghapusan atribut dari tabel t, sintaks SQL-nya adalah :
alter table t drop A
Berikut ini adalah contoh ekspresi SQL untuk penambahan atribut baru bernama ip di tabel
Mahasiswa :
alter table mahasiswa add ip numeric (5, 2)
1 Pemrograman C++ 1
5 System Pakar 4
6 Pemrograman Web 3
7 Visual C++ 6
8 Qbasic 5
9 Pemrograman Pascal 8
10 Pemrograman Delphi 8
1. Tuliskan pernyataan untuk membuat indeks dengan nama
idx_nip yang dikenakan terhadap kolom NIP pada tabel
tblpegawai.
2. Bagaimana cara menghapus indeks idx_nip yang baru saja
Anda ciptakan?
3. Bagaimana perintahnya agar panjang Nama (pada tabel
tblpegawai) tidak lagi berupa 25 karakter, melainkan
menjadi 35 karakter?
4. Bagaimana caranya agar semua kota Yogya yang ada pada
tabel tblpengarang diubah menjadi Yogyakarta?
5. Apa perintah untuk menghapus data pegawai pada tabel
tblpegawai yang NIP-nya adalah 123456?
6. Bagaimana cara untuk menghapus tabel tblpegawai. Apa
perintahnya?