Anda di halaman 1dari 24

SQL (Structured Query Language)

SQL
adalah salah satu bahasa yang digunakan untuk model
relasional yang berfungsi untuk memasukkan, memilih, merubah,
dan menghapus data.
SQL

banyak digunakan para pemakai , karena

Bahasa yang mudah dipelajari


Berisi perintah-perintah yang sederhana
Merupakan bahasa yang non-procedural, yaitu yang menerangkan
informasi apa saja yang diperlukan, bukan bagaimana caranya untuk
mendapatkannya.
Dapat digunakan oleh beragam pemakai
Dapat digunakan untuk pemberian otoritas terhadap pemakai

SQL terdiri dari:


Data Definition Language (DDL )
Data Manipulation Language (DML)
SQL dapat digunakan dalam dua cara :
1.

2.

SQL Interactive
Pemrosesan dilakukan dengan cara memasukkan sebuah
pernyataan SQL melalui terminal atau mikrokomputer dan
langsung
diproses.
Hasilnya
langsung
dapat
direpresentasikan.
SQL Sisip
Pemrosesan dilakukan dengan cara menyisipkan pernyataan
SQL ke dalam sebuah program. SQL ini tidak dapat langsung
dilihat oleh pemakai.

Halaman :

Contoh Tabel :
PEMASOK
NOPEM

NAPEM

KOTA

P01
P02
P03
P04
P05

Harapan
Sentosa
Prima
Perdana
Utama

Jakarta
Bandung
Surabaya
Jakarta
Bandung

BARANG
NOBAR
B01
B02
B03
B04
B05

NABAR

HARGA

Kemeja
Celana Panjang
Kaos Kaki
Ikat Pinggang
Kemeja
100000

70000
60000
5000
20000

PEMASOKKAN
NOPEM

NOBAR

P01
P01
P01
P01
P01
P02
P02
P03
P03
P04

B01
B02
B03
B04
B05
B01
B05
B03
B04
B02

JUMLAH
40
30
50
50
20
100
100
200
150
100
Halaman :

DATA DEFINITION
Terdapat beberapa perintah DDL :
CREATE TABLE
ALTER TABLE
DROP TABLE

CREATE VIEW

CREATE INDEX

DROP VIEW

DROP INDEX

I. BASE TABLES
CREATE TABLE
Bentuk umum
:
CREATE TABLE base-table
(column-definition [,column definition] ..
[ , primary-key-definition]
[ , foreign-key-definition [foreign-key-definition] ] ) ;
Contoh :
CREATE TABLE PEMASOK
( NOPEM CHAR(5) NOT NULL ,
NAPEM CHAR(25) NOT NULL ,
KOTA CHAR(15) NOT NULL ,
PRIMARY KEY (NOPEM) );
ALTER TABLE
Bentuk umum :
ALTER TABLE base-table ADD column data-type ;

Halaman :

contoh :
ALTER TABLE PEMASOK ADD ALAMAT CHAR(30);
DROP TABLE
Bentuk umum :
DROP TABLE base-table ;
Contoh :
DROP TABLE PEMASOK ;

II. INDEXES
CREATE INDEX
Bentuk umum :
CREATE [UNIQUE] INDEX index
ON base-table (column [order] [, column [order] );
contoh :
CREATE UNIQUE INDEX XPEM ON PEMASOK (NOPEM) ;
CREATE UNIQUE INDEX XBAR ON BARANG (NOBAR) ;
CREATE UNIQUE INDEX XPB ON PEMASOKKAN (NOPEM,
NOBAR) ;
DROP INDEX
Bentuk Umum :
DROP INDEX index;
Halaman :

Contoh :
DROP INDEX XPEM ;

DATA MANIPULATION
SQL menyediakan 4 perintah DML :
SELECT

DELETE

UPDATE

INSERT

SIMPLE QUERIES
Bentuk umum :
SELECT [ DISTINCT ] item(s)
FROM table(s)
[ WHERE condition ]
[ GROUP BY field(s) ]
[ HAVING condition ]
[ ORDER BY field(s) ] ;
Tampilkan nomor & nama pemasok untuk pemasok yang berlokasi di
Bandung
SELECT NOPEM, NAPEM
FROM PEMASOK
WHERE KOTA = Bandung ;
hasil :
NOPEM

NAPEM

Halaman :

P02
P05

Sentosa
Utama

Tampilkan nomor pemasok dari pemasok yang memasok barang


SELECT NOPEM
FROM PEMASOKKAN;
hasil :
NOPEM
P01
P01
P01
P01
P01
P02
P02
P03
P03
P04

Untuk mengeliminasi duplikasi gunakan DISTINCT :


SELECT DISTINCT NOPEM
FROM PEMASOKKAN;
hasil :
NOPEM
P01
Halaman :

P02
P03
P04

Tampilkan semua detail dari pemasok


SELECT * FROM PEMASOK ;
atau
SELECT NOPEM, NAPEM, KOTA
FROM PEMASOK ;
Tampilkan nomor dan nama pemasok untuk pemasok yang berada di kota
Jakarta dengan diurutkan namanya dari besar ke kecil
SELECT NOPEM, NAPEM
FROM PEMASOK
WHERE KOTA = Jakarta
ORDER BY NAPEM DESC ;
hasil :
NOPEM
P04
P01

NAPEM
Perdana
Harapan

Penggunaan BETWEEN
Tampilkan detail dari Barang yang mempunyai harga antara 50000 dan
100000

Halaman :

SELECT * FROM BARANG


WHERE HARGA BETWEEN 50000AND 100000 ;
Hasil :
NOBAR

NABAR

B01
B02
B05

Kemeja
Celana Panjang
Kemeja

HARGA
70000
60000
100000

Penggunaan In
Tampilkan detail barang yang mempunyai harga 50000 dan 100000
SELECT * FROM BARANG
WHERE HARGA IN ( 50000, 100000 ) ;
Hasil :
NOBAR

NABAR

B05

Kemeja

HARGA
100000

JOIN QUERIES
Join Query merupakan salah satu kelebihan dari database relasional.
Join Query diperlukan apabila memerlukan data yang di retrieve dari
lebih satu tabel.
Contoh :
Tampilkan Nama Pemasok yang memasok barang B01

Halaman :

SELECT NAPEM
FROM PEMASOK, PEMASOKKAN
WHERE PEMASOK.NOPEM = PEMASOKKAN.NOPEM
AND NOBAR = B01;
Hasil :
NAPEM
Harapan
Sentosa
Tampilkan Nomor-nomor Pemasok yang tinggal di kota yang sama ,
pasangkan untuk tiap dua pemasok, dimana nomor pemasok pertama
lebih kecil dari nomor pemasok ke dua.
SELECT FIRST.NOPEM, SECOND.NOPEM
FROM PEMASOK FIRST, PEMASOK SECOND
WHERE FIRST.KOTA = SECOND.KOTA
AND FIRST.NOPEM < SECOND.NOPEM;
Hasil:
NOPEM
P01
PO2

NOPEM
PO4
PO5

Tampilkan Nama pemasok beserta kotanya dimana pemasok tersebut


memasok barang yang harganya lebih dari 70000, urutkan berdasarkan
nama pemasok secara descending.
SELECT NAPEM, KOTA
FROM PEMASOK, PEMASOKKAN, BARANG
WHERE PEMASOK.NOPEM = PEMASOKKAN.NOPEM
AND BARANG.NOBAR = PEMASOKKAN.NOBAR

Halaman :

AND HARGA > 70000


ORDER BY NAPEM DESC;
Hasil:
NAPEM
Sentosa
Harapan

KOTA
Bandung
Jakarta

AGGREGATE FUNCTION
COUNT
SUM
AVG
MAX
MIN

Digunakan untuk menghitung banyaknya nilai dalam suatu


kolom atau jumlah baris pada tabel
Digunakan untuk menjumlahkan nilai-nilai pada suatu kolom
Digunakan untuk menghitung nilai rata-rata pada suatu kolom
Digunakan untuk mendapatkan nilai tertinggi pada suatu
kolom
Digunakan untuk mendapatkan nilai terendah pada suatu
kolom

Tampilkan jumlah dari pemasok


SELECT COUNT (*) FROM PEMASOK ;
Hasil : 5
Tampilkan jumlah pemasok yang memasok barang
SELECT COUNT (DISTINCT NOPEM) FROM PEMASOKKAN;

Halaman :

10

Hasil : 4
Tampilkan jumlah total dari barang yang dipasok oleh pemasok PO2
SELECT SUM (JUMLAH)
FROM PEMASOKKAN
WHERE NOPEM = P02;
Hasil :

200

Penggunaan GROUP BY
GROUP BY digunakan untuk mengelompokkan data berdasarkan
suatu kolom.
Tampilkan Nomor barang dan jumlah total perbarang yang dipasok
SELECT NOBAR, SUM(JUMLAH)
FROM PEMASOKKAN
GROUP BY NOBAR;
Hasil :
NOBAR
B01

140

B02
B03
B04
B05

130
250
200
120

Penggunaan HAVING

Halaman :

11

Kondisi pada klausa Having sama dengan kondisi pada klausa


Where, hanya kondisi pada klasusa Having bisa berisi suatu fungsi.
Tampilkan nomor pemasok yang memasok lebih dari satu barang
SELECT NOPEM
FROM PEMASOKKAN
GROUP BY NOPEM
HAVING COUNT(*) > 1;

Hasil :
NOPEM
P01
P02
P03
Penggunaan LIKE
Perintah LIKE digunakan untuk pengambilan per karakter
Tanda - digunakan untuk satu atau beberapa karakter tunggal
Tanda % digunakan untuk n karakter terurut , n mungkin kosong
Contoh :
Kota like %a%
Kota like B______
Napem like %n_

Kota yang berisi karakter a, letak a bebas.


Kota yang berawalan B diikuti oleh 6 karakter
setelah b.
Nama pemasok yang karakter ke dua terakhirnya
adalah n.

Tampilkan semua pemasok yang namanya dimulai dengan huruf H

Halaman :

12

SELECT *
FROM PEMASOK
WHERE NAPEM LIKE H%;
Hasil :
NOPEM

NAPEM

KOTA

P01

Harapan

Jakarta

SUBQUERY
Subquery (subselect) adalah sebuah pernyataan SELECT yang ada
di dalam pernyataan SELECT. Subquery bisa digunakan bersama
dengan operator IN, ANY, dan EXISTS.
Tampilkan nama pemasok yang memasok barang B01

SELECT NAPEM FROM PEMASOK


WHERE NOPEM IN
( SELECT NOPEM FROM PEMASOKKAN
WHERE NOBAR = B01 ));

Halaman :

13

Hasil:
NAPEM
Harapan
Sentosa

Menggunakan Join

SELECT NAPEM FROM PEMASOK, PEMASOKKAN


WHERE PEMASOK.NOPEM = PEMASOKKAN.NOPEM
AND NOBAR = B01 ;

Menggunakan Exists

SELECT NAPEM FROM PEMASOK


WHERE EXISTS
( SELECT *
FROM PEMASOKKAN
WHERE PEMASOK.NOPEM = PEMASOKKAN.NOPEM
AND NOBAR = B01 ) ;

Halaman :

14

Multi level Subquery


Tampilkan nama-nama barang yang dipasok oleh pemasok Prima

SELECT NABAR FROM BARANG


WHERE NOBAR IN
( SELECT NOBAR FROM PEMASOKKAN
WHERE NOPEM IN
(SELECT NOPEM FROM PEMASOK
WHERE NAPEM = Prima ) );

Atau

Halaman :

15

SELECT NABAR
FROM BARANG, PEMASOKKAN, PEMASOK
WHERE PEMASOK.NOPEM = PEMASOKKAN.NOPEM
AND
AND

BARANG.NOBAR = PEMASOKKAN.NOBAR
NAPEM = Prima ;

Hasil :
NABAR
Kaos kaki
Ikat pinggang

Halaman :

16

Korelasi Subquery

Tampilkan Nama pemasok yang memasok barang B01


SELECT NAPEM
FROM PEMASOK
WHERE B01 IN
( SELECT NOBAR
FROM PEMASOKKAN
WHERE NOPEM = PEMASOK.NOPEM );
Hasil :
NAPEM
Harapan
Sentosa
Tampilkan nomor barang yang dipasok oleh lebih dari satu pemasok
SELECT DISTINCT PEMASOKKANX.NOBAR
FROM PEMASOKKAN PEMASOKKANX
WHERE PEMASOKKANX.NOBAR IN
( SELECT PEMASOKKANY.NOBAR
FROM PEMASOKKAN PEMASOKKANY
WHERE PEMASOKKANY.NOPEM ~ =
PEMASOKKANX.NOPEM ) ;
Hasil :
NOBAR
B01
B02
B03
B04
B05

Halaman :

17

Penggunaan Aggregate function di dalam nested query

Tampilkan nomor barang yang


maksimum

harganya lebih murah dari

harga

SELECT NOBAR FROM BARANG


WHERE HARGA <
(SELECT MAX (HARGA) FROM BARANG);

Hasil:
NOBAR
B01
B02
B03
B04

Penggunaan NOT EXISTS

Tampilkan Nama pemasok yang tidak memasok barang BO2


SELECT NAPEM
FROM PEMASOK
WHERE NOT EXISTS
Halaman :

18

( SELECT *
FROM PEMASOKKAN
WHERE PEMASOKKAN.NOPEM =
PEMASOK.NOPEM
AND NOBAR = B02 ) ;
Hasil :
NAPEM
Sentosa
Prima
Penggunaan UNION
Operator UNION digunakan untuk menggabungkan hasil dari dua
query
Aturan dalam menggunakan UNION :
Pernyataan SELECT harus mempunyai jumlah ekspresi kolom yang
sama
Ekspresi kolom yang akan digabungkan harus mempunyai tipe data
yang sama
Hanya pernyataan SELECT terakhir yang bisa diikuti klausa ORDER
BY.
Pernyataan SELECT tidak perlu lagi menggunakan kata DISTINCT,
karena SQL akan menghapus baris yang mempunyai nilai sama secara
otomatis.
Tampilkan nomor barang yang harganya kurang dari 10000 atau dipasok
oleh P03

Halaman :

19

SELECT NOBAR
FROM

BARANG

WHERE HARGA < 10000


UNION
SELECT NOBAR
FROM PEMASOKKAN
WHERE NOPEM = P03 ;

Hasil :
NOBAR
B03
B04

Halaman :

20

UPDATE

Bentuk Umum

UPDATE table
SET field = scalar expression [field = scalar expression]
[WHERE condition] ;

Ubahlah kota dari nomor pemasok P03 menjadi Jakarta

UPDATE PEMASOK
SET KOTA = Jakarta
WHERE NOPEM = P03 ;

Ubahlah harga-harga barang dari pemasok yang tinggal di Jakarta


dengan ditambahkan 10000

UPDATE BARANG
SET HARGA = HARGA + 10000
WHERE NOBAR IN
( SELECT NOBAR
Halaman :

21

FROM PEMASOKKAN
WHERE NOPEM IN
( SELECT NOPEM
FROM PEMASOK
WHERE KOTA = Jakarta ) );

DELETE

Bentuk Umum

DELETE
FROM table
[WHERE condition] ;

Halaman :

22

Hapuslah semua pemasokkan barang-barang yang harganya lebih dari


70000

DELETE
FROM PEMASOKKAN
WHERE NOBAR IN
(SELECT NOBAR
FROM BARANG
WHERE HARGA > 70000);
INSERT

Halaman :

23

Bentuk Umum
INSERT
INTO table [ (field [ field ] ) ]
VALUES (literal [ literal ]

Tambahkan barang B06 dimana namanya Celana Panjang dan harganya


75000

INSERT
INTO BARANG (NOBAR, NABAR, HARGA)
VALUES ( B06, Celana Panjang, 75000) ;

Halaman :

24

Anda mungkin juga menyukai