SQL
Structured Query Language
• SQL (Structured Query Language) adalah Bahasa
query yang digunakan untuk mengakses DBMS.
• Dengan bahasa yang standar, kita dapat
mengakses data dimanapun, tanpa
memperdulikan DBMS yang digunakan.
• Ada banyak sekali bahasa basis data yang pernah
dibuat untuk masing-masing DBMS. Namun
akhirnya yang menjadi standar adalah SQL.
• Beberapa Relational DBMS yang
menggunakan SQL, antara lain: Oracle, Sybase,
Microsoft SQL Server, Access, MySQL, Postgre
dan masih banyak lagi.
• SQL memiliki beberapa versi antara lain: SQL 1
atau dikenal sebagai SQL -86, SQL2 (SQL-92)
dan SQL3 yang dikenal dengan SQL-99.
Struktur Dasar
• Sebuah ekspresi SQL dasar hanya terdiri atas 3 klausa,
yaitu: select, from, where
– Klausa select digunakan untuk menetapkan daftar atribut (field)
yang diinginkan sebagai hasil query
– Klausa form digunakan untuk menetapkan tabel yang akan
ditelusuri selama query data dilakukan
– Klausa where, yang sifatnya optional, digunakan sebagai predikat
(kriteria) yang harus dipenuhi dalam memperoleh hasil query.
Select A1[ , A2, . . . , An]
From t1 [ , t2, . . ., tm]
[ where P]
• Contoh:
select nim, nama_mhs
from mahasiswa
select *
from mahasiswa
where nim = ‘980002’
Kelompok Pernyataan SQL
• DDL ( Data Definition Language)
• DML ( Data Manipulation Language )
• DCL (Data Control Language)
• Pengendali transaksi
DDL ( Data Definition Language)
• DDL merupakan kelompok perintah yang berfungsi
untuk mendefinisikan atribut-atribut database, table,
atribut (kolom), batasan-batasan terhadap suatu atribut
serta hubungan antar table. Yang termasuk kelompok
DDL ini adalah :
– CREATE untuk menciptakan table ataupun
indeks
– ALTER untuk mengubah struktur table
– DROP untuk menghapus table ataupun
indeks
DML ( Data Manipulation Language )
• Adalah kelompok perintah yang berfungsi untuk
memanipulasi data, misalnya untuk pengambilan, penyisipan
pengubahan dan penghapusan data. Yang termasuk DML
adalah
– SELECT memilih data
– INSERT menambah data
– DELETE menghapus data
– UPDATE mengubah data
1. Membuat Tabel
• Pernyataan CREATE TABLE digunakan untuk membuat
sebuah tabel baru.
• Berikut ini merupakan bentuk sederhana CREATE TABLE:
CREATE TABLE <nama tabel>
(<kolom1><tipe data>,
<kolom2><tipe data>,
…………………………………………….
<kolom N><tipe data>)
• Bentuk pernyataan CREATE TABLE jika kita menggunakan
batasan (constaints):
CREATE TABLE <nama tabel>
(<kolom1><tipe data>[<batasan>],
<kolom2><tipe data>[<batasan>],
…………………………………………….
<kolom N><tipe data>[<batasan>])
[ ]=optional
Catatan: kita dapat memiliki kolom sebanyak yang kita
• Contoh:
CREATE TABLE Pegawai
(no_id number(5),
nm_depan varchar(15),
nm_belakang varchar(20),
umur number(3),
kota varchar(30),
propinsi varchar(20));
• Untuk membuat tabel baru, ketikkan CREATE TABLE diikuti dengan nama
tabel, tanda ‘(‘, diikuti dengan nama kolom pertama, tipe data dan
Tipe-tipe data SQL yang sering digunakan:
Tipe Data Deskripsi
char(ukuran) String karakter dengan
panjang tetap
varchar(ukura String karakter dengan
n) panjang bervariasi tapi
panjang maksimal sesuai yang
ditetapkan
numeric(ukura Angka dengan maksimal digit
n) sesuai yang ditetapkan
integer Angka berupa integer
date Tanggal
time Waktu/jam
• Ketika tabel dibuat, biasanya satu atau lebih kolom memiliki
batasan-batasan tertentu.
• Suatu batasan biasanya berupa aturan yang terkait dengan
kolom tersebut, data yang dimasukkan kedalam kolom harus
sesuai dengan aturan tersebut.
• Sebagai contoh: batasan “unique” menentukan bahwa tidak
boleh ada dua record yang memiliki nilai sama.
• Ada dua batasan lagi yang sering digunakan contohnya “not
null” menentukan bahwa kolom tidak dapat bernilai kosong.
“primary key” menentukan identifikasi unik untuk setiap
record/ baris dalam sebuah tabel.
• Contoh:
CREATE TABLE Pegawai
(no_id number(5) UNIQUE NOT NULL,
nm_depan varchar(15),
nm_belakang varchar(20),
umur number(3),
kota varchar(30),
propinsi varchar(20),
PRIMARY KEY (no_id));
2. Menghapus Tabel
• Pernyataan DROP TABLE digunakan untuk menghapus
sebuah tabel dan seluruh record pada tabel tersebut.
• Untuk menghapus tabel secara menyeluruh termasuk
semua record-nya, tulis DROP TABLE diikuti dengan nama
tabel.
DROP TABLE <nama tabel>;
• Contoh:
DROP TABLE pegawai;
3. Modifikasi Struktur Tabel
• Untuk memodifikasi struktur dari suatu tabel
digunakan pernyataan ALTER TABLE.
• Pernyataan ALTER TABLE dapat digunakan untuk
menambah dan menghapus kolom maupun batasan-
batasannya (constraint).
ALTER TABLE <nama tabel>;
ADD <nama kolom> <tipe data>[, …]
| DROP <nama kolom> [, …];
tambah
kolom
ALTER TABLE pegawai ADD kode_pos char(5);
Hapus
kolom ALTER TABLE pegawai DROP propinsi;
4. Menambah Data
• Pernyataan INSERT digunakan untuk menambah atau menyisipkan data
atau record pada sebuah tabel.
• Untuk menambahkan record kedalam tabel, tuliskan INSERT INTO diikuti
dengan nama tabel.
INSERT INTO <nama tabel>
(<kolom1>, <kolom2>, …, <kolomN>)
VALUES
(<nilai1>, <nilai2>, …, <nilaiN>);
INSERT INTO pegawai
(no_id, nm_depan, nm_belakang, umur, kota,
propinsi)
VALUES
(99023, ‘Agus’, ‘Maulana’, 45, ‘Jaksel’,
5. Mengambil Data
• Pernyataan SELECT digunakan untuk mengambil data
tertentu yang sesuai dengan kriteria yang ditentukan.
• Berikut ini merupakan bentuk sederhana dari pernyataan
SELECT
SELECT <kolom1> (<kolom2>, …)
FROM <nama tabel>
[WHERE <kondisi>];
SELECT [ALL | DISTINCT] <kolom1>[,kolom2>]
FROM <tabel1>[,<tabel2>]
[WHERE <kondisi>]
[GROUP BY <daftar kolom>]
HAVING <kondisi>]
[ORDER BY <daftar kolom [ASC | DESC];
• Nama-nama kolom setelah keyword SELECT
menentukan kolom-kolom yang akan dikembalikan
sebagai hasil.
• Untuk memilih semua kolom, kita dapat
menggunakan ALL atau “*”.
• Nama tabel setelah keyword FROM menentukan
tabel mana yang akan diambil datanya.
• Klausa WHERE bersifat optional, digunakan untuk
menentukan nilai data mana yang akan diambil
berdasarkan kriteria yang ditentukan.
SELECT * FROM pegawai
WHERE nm_depan =‘ERIC’;
• Pernyataan diatas hanya mengambil semua kolom dari tabel
pegawai yang nm_depan-nya Eric.
SELECT nm_belakang, kota, umur
FROM pegawai
WHERE umur>30;
• Pernyataan diatas akan mengambil kolom nm_belakang, kota
dan umur dari tabel pegawai yang umurnya lebih dari 30.
6. Meng-update Data
• Pernyataan UPDATE digunakan untuk meng-update atau
merubah record yang sesuai dengan kriteria yang telah
ditentukan.
• Berikut ini merupakan bentuk pernyataan UPDATE
UPDATE <nama tabel>
SET <nama kolom1>=<nilai baru1>
[,<nama kolom2>=<nilai baru2>..]
[WHERE <nama kolom>OPERATOR <nilai>
[and|or <nama kolom> OPERATOR
<nilai>];
• Contoh:
pernyataan dibawah ini akan merubah kolom umur
menjadi umur+1 pada tabel pegawai yang
nm_depannya Mary dan nm_belakangnya Willy.
UPDATE pegawai
SET umur=umur+1
WHERE nm_depan=‘Mary’ and
nm_belakang=‘Willy’;
7. Menghapus Data
• Pernyataan DELETE digunakan untuk menghapus record atau
baris dari suatu tabel.
• Berikut ini merupakan bentuk pernyataan DELETE.
DELETE FROM <nama tabel>
WHERE <nama kolom> OPERATOR <nilai>
[and | or <nama kolom> OPERATOR <nilai>];
• Untuk menghapus record/baris dari suatu tabel, tulis
“DELETE FROM” diikuti dengan nama tabel dan klausa
WHERE yang berisi kondisi/ kriteria untuk menghapus.
• Jika klausa WHERE tidak disertakan, maka semua record
pada tabel tersebut akan dihapus.
• Contoh:
Pernyataan dibawah ini akan menghapus
record dari tabel pegawai yang nm_depannya
Mike atau Eric
DELETE FROM pegawai
WHERE nm_depan =‘Mike’ or
nm_depan=‘Eric’;
8. Menggabungkan Tabel
• Kita dapat menggabungkan dua atau lebih tabel
dalam satu hasil query dengan menggunakan
pernyataan SELECT.
• Misalkan tabel pegawai sebelumnya akan
digabungkan dengan tabel gaji.
Tabel gaji
No_id Gaji Tunjangan
99980 700000 700000
99982 750000 750000
99997 800000 800000
• Contoh:
untuk menampilkan daftar nm_depan,
nm_belakang, gaji, dan tunjangan dari
tabel pegawai dan gaji
SELECT pegawai.nm_depan,
pegawai.nm_belakang,
[Link], [Link]
FROM pegawai, gaji
WHERE pegawai.no_id=gaji.no_id;
DCL ( Data Control Language )
• Berisi perintah-perintah untuk
mengendalikan pengaksesan data.
Yang termasuk DCL adalah :
GRANT memberikan kendali pada
pengaksesan data.
REVOKE mencabut kemampuan
pengaksesan data
LOCK TABLE mengunci table
Pengendali transaksi
• Adalah perintah-perintah yang berfungsi untuk
mengendalikan pengeksekusian transaksi. Yang
termasuk kelompok ini adalah :
– COMMIT menyetujui rangkaian perintah yang
berhubungan erat yang telah berhasil dilakukan
– ROLLBACK membatalkan transaksi yang
dilakukan karena adanya kesalahan atau
kegagalan pada salah satu rangkaian perintah.
– SAVEPOINT TO untuk menandai tempat dimana
suatu transaksi harus rollback.
Latihan
1. Buat perintah untuk membuat tabel baru
bernama BUKU dimana struktur tabelnya
sebagai berikut.
Column Data Type Size
Name
KODE Char 5
JUDUL Varchar 50
PENGARAN Varchar 20
G
PENERBIT Varchar 30
HARGA Int
JUMLAH Int
2. Inputkan data baru kedalam table BUKU dengan
bentuk data seperti dibawah ini.
11111, Cara Cepat Belajar Komputer, Putri
Yusviany, MediaKom, 40000,10, 5
22222, Dasar Pemograman Database, Dimas
Putra, MediaKom, 50000, 5, 20
33333, Terapi air dan Manfaatnya, dr. Adinda,
Pusat-Kes, 80000, 0, NULL
12312, Cara Membuat Aneka Hidangan Sate,
Dewi Rifkiyah, 30000, NULL, NULL
3. Buat duplikat data dan struktur
table untuk field kode, judul dan
pengarang dari table BUKU ke table
baru yang bernama BUKU_1
4. Hapus seluruh data di table BUKU_1
tanpa terkecuali