Anda di halaman 1dari 13

SQL

SQL ( STRUCTURED QUERY LANGUAGE)

SQL merupakan salah satu bahasa yang digunakan untuk pengoperasian model data relasional
SQL pertama dibuat oleh San Jose Research Laboratory IBM, aslinya disebut sequel yang
diterapkan sebagai bagian dari proyek sistem R pada awal 1970 .

SQL dapat dibedakan atas 2 macam yaitu :


1. Interaktif SQL
2. Embedded SQL

Statement SQL dapat dibedakan menjadi 5 macam :


1. DDL (Data Definition Language)
2. DML (Data Manipulation Language)
3. Security
4. Integrity
5. Auxilary

Berikut adalah sebuah database yang terdiri table S,P dan SP yang digunakan dalam contoh-
contoh statement SQL di bawah :
TABEL S

Sn Sname Status City


S1 Smith 20 London
S2 Jones 10 Paris
S3 Blake 30 Paris
S4 Clark 20 London
S5 Adams 30 Athens

TABEL P

Pn Pname Warna Weight City


P1 Nut Red 12 London
P2 Bolt Green 17 Paris
P3 Screw Blue 17 Roma
P4 Screw Red 14 London
P5 Cam Blue 12 Paris
P6 Cog Red 19 London

hal. 1
SQL

TABEL SP

Sn Pn qty
S1 P1 300
S1 P2 200
S1 P3 400
S1 P4 200
S1 P5 100
S1 P6 100
S2 P1 300
S2 P2 400
S3 P2 200
S4 P3 200
S4 P4 300
S4 P5 400

1 . Statement DDL (Data Definition Language)

Perintah-perintah yang digunakan untuk menjelaskan objek dari database . Dengan kata
lain DDL digunakan untuk mendefinisikan kerangka database.
Contoh :
Create Table, Drop Table, Alter Table
Create View, Drop View
Create Index, Drop Index

1.1. CREATE TABLE  untuk membuat table


Sintaks :
CREATE TABLE nama_table
(nama_kolom1,type_kolom1,
nama_kolom3,type_kolom2,….)
Untuk mendefinisikan field (atribut dari obyek data) pada create table ada 3
komponen :
1. nama field, harus unik
2. tipe data : char, smalint, integer
3. spesifikasi NOTNULL (optional), jika diberikan maka untuk setiap record
yang dimasukkan ke database maka field bersangkutan harus selalu
mempunyai nilai tidak boleh kosong.

CREATE TABLE S
(Sn Char(5) NOTNULL,
Sname Char(20) NOTNULL,
Status Smallint NOTNULL,
City Char(15) NOTNULL);

hal. 2
SQL

CREATE TABLE P
(Pn Char(6) NOTNULL,
Pname Char(20) NOTNULL,
Color Char(6) NOTNULL,
Weight Smallint NOTNULL);

CREATE TABLE SP
(Sn Char(5) NOTNULL,
Pn Char(6) NOTNULL,
QTY INTEGER NOTNULL);

1.2 ALTER TABLE  untuk mengubah tabel


Sintaks :
ALTER TABLE nama_table
ADD (nama_kolom baru type_kolom[[before,nama_kolom]])
MODIFY (nama_kolom lama type_kolom)
DROP (nama_kolom lama type_kolom)

Contoh :
ALTER TABLE P ADD (City CHAR(15) NOT NULL)
ALTER TABLE S MODIFY (Sname CHAR(30))
ALTER TABLE S DROP CITY

1.3 DROP TABLE  untuk menghapus tabel


Sintaks :
DROP TABLE nama_table
Hasil dari instruksi drop table :
- semua record dalam tabel akan terhapus
- index dan view pada table akan hilang
- deskripsi table akan hilang
Contoh :
DROP TABLE S

1.4 CREATE INDEX  untuk membuat index


Sintaks :
CREATE [UNIQUE] INDEX nama_indeks
ON nama_table (nama_kolom)

Dengan indeks memungkinkan suatu tabel diakses dengan urutan tertentu tanpa
harus merubah urutan fisik dari datanya dan dapat pula diakses secara cepat
melalui indeks yang dibuat berdasar nilai field tertentu. Spesifikasi UNIQUE akan
menolak key yang sama dalam file.

hal. 3
SQL

Contoh :
CREATE UNIQUE INDEX Sidx ON S(Sn);
CREATE UNIQUE INDEX Pidx ON P(Pn);

CREATE INDEX Sdx ON SP(Sn);


CREATE INDEX Sdx ON SP(Pn);

1.5 DROP INDEX  untuk menghapus index


Sintaks :
DROP INDEX nama_indeks
Contoh :
DROP INDEX Sidx

1.6 CREATE VIEW  membuat view


Sintaks :
CREATE VIEW view-name [(coloumn1,coloumn2,…)]
AS SELECT statement FROM tabel-name
[WITH CHECK OPTION]
View merupakan suatu tabel semu yang berisi sekumpulan data yang diambil dari
basis data (tabel sebenarnya).

Keterangan
View-name : nama view yang akan dibuat.
Coloumn : nama atribut untuk view.
Statement : atribut yang dipilih dari tabel basis data.
Table-name : nama tabel basis data.

Contoh :
CREATE VIEW GOOD_SUPPLIERS
AS SELECT Sn, Status, City FROM S Where Status > 15;
Membuat view untuk supplier yang statusnya lebih besar dari 15
SELECT * FROM GOOD_SUPPLIERS
Melihat data good_supplier

Good_Suppliers
S# Status City
S1 20 London
S2 10 Paris
S3 30 Paris
S4 20 London
S5 30 Athens

hal. 4
SQL

CREATE VIEW Paris_Suppliers


AS SELECT * FROM Suppliers WHERE City = ‘ Paris ‘
Membuat view supplier yang tinggal di Paris.
Paris_Suppliers

S# SNAME Status City


S2 Jones 10 Paris
S3 Black 30 Paris
CREATE VIEW parts (Pnum, Part_Name, WT)
AS SELECT P#, Pname, Weight FROM P WHERE COLOR = ‘RED’
Membuat view dengan mengganti nama_atributnya.

Parts
Pnum Part_Name WT
P1 Nut 12
P2 Bolt 17
P3 Screw 17
P4 Screw 14
P5 Cam 12
P6
CREATE CogPQ (Pn,TOTQTY)
VIEW 19
AS SELECT Pn, SUM(QTY) FROM SP GROUP BY Pn;
SELECT * FROM PQ

1.7. DROP VIEW


Sintaks : DROP VIEW view-name
Contoh : DROP VIEW Good_Suppliers
 menghapus view Good_Suppliers.

2. Statement DML (Data Manipulation Language)


Perintah yang digunakan untuk mengoperasikan atau memanipulasi isi database.
SQL menyediakan 4 Perintah DML :
- SELECT - INSERT
- UPDATE - DELETE

2.1. INSERT INTO


Sintaks : INSERT INTO nama_table
(kolom1,kolom2...) VALUES (nilai1,nilai2...)
Catatan :
Jumlah kolom = jumlah nilai, jika dalam table semua kolom akan diisi
Sintaks : INSERT INTO nama_table
VALUES (nilai1,nilai2,...)
Catatan : Nilai – nilainya sebanyak kolomnya.

hal. 5
SQL

Contoh :
INSERT INTO S VALUES (‘S1’,’Smith’,20,’London’);
INSERT INTO S VALUES (‘S2’,’Jones’,10,’Paris’);
INSERT INTO S VALUES (‘S3’,’Blake’,30,’Paris’)
INSERT INTO S VALUES (‘S6’,’Tom’,’50’,’Athens’)

 Tambahkan S6 dengan nama Tom , Status 50 dan kota Athens


INSERT INTO SP VALUES (‘S6’,’P6’,’1000’)
 Tambahkan pengiriman baru untuk part P4 yang disupply oleh supplier S6
dengan kuantiti 1000

2.2. SELECT
Sintaks :
SELECT [DISTINCT] nama_kolom FROM nama_table
[WHERE kondisi]
[GROUP BY field_name]
[HAVING kondisi]
[ORDER BY field_name]

KETERANGAN :
SELECT :memilih data yang akan ditampilkan berdasarkan atribut
DISTINT :menghilangkan duplikasi
FROM :mendefinisikan seluruh table yang digunakan dalam query
WHERE :menentukan syarat data yang akan dipilih
GROUP BY :mengelompokan data yang mempunyai nilai sama
HAVING :syarat data yang dikelompokan digunakan bersama GROUP
BY
ORDER BY : mengurutkan data

Contoh – contoh :
2.2.1. SELECT * FROM S
atau SELECT Sn,Sname,Sstatus,City FROM S
 Dapatkan semua data semua suplier

2.2.2. SELECT Pn FROM SP


 Dapatkan semua nilai dari atribut Pn pada table SP

2.2.3. SELECT Sn, Status FROM S WHERE City = ‘Paris’


 Dapatkan nomor supplier dan status bagi supplier yang tinggal di Paris

2.2.4. SELECT Sn FROM S WHERE City = ‘Paris’ AND Status > 20


 Dapatkan no. Supplier yang tinggal di Paris dengan status > 20

hal. 6
SQL

2.2.5. SELECT COUNT(*) FROM SP WHERE Pn = ‘P2’


 Dapatkan jumlah supplier yang mengirim barang P2

2.2.6. SELECT DISTINCT Pn FROM SP


 Menampilkan nomer barang yang disupply oleh supplier, data yang sama
hanya ditampilkan sekali saja

2.2.7. SELECT Pn, Berat dalam Gram = ‘,weight * 454 FROM P


 Dapatkan semua part dengan menampilkan no part & beratnya dalam gr

2.2.8. SELECT Pn FROM SP WHERE weight > 18 UNION


SELECT Pn FROM SP WHERE Sn = ‘S2’
 Dapatkan no part untuk part yang beratnya >18 pound atau yang disupply oleh
S2 atau keduanya

2.2.9. SELECT Sn, Status FROM S WHERE City = ‘Paris’ ORDER By Status desc
 Dapatkan no supplier dan status bagi supplier yang tinggal di Paris dalam
urutan status menurun

2.2.10. SELECT Pn FROM SP GROUP BY Pn HAVING COUNT(*) > 1


 Dapatkan no part yang disupplay oleh lebih dari seorang supplier

2.2.11. SELECT Pn, ‘Berat dalam Gram=’,weight * 454 FROM P ORDER BY 3,Pn
 Dapatkan semua part dengan menampilkan semua no part & beratnya dalam
gr, ditampilkan dengan urutan kolom ketiga dan nomor part secara ascending

2.2.12. SELECT S * ,P.*FROM S,P


WHERE S.CITY > P.CITY
 Dapatkan semua kombinasi dari supplier dan part, kota dari supplier
diikuti kota dari part dalam urutan alphabet

2.2.13. SELECT S.*,P.* FROM S,P


WHERE S.CITY = P.CITY AND STATUS = 20
 Dapatkan semua kombinasi dari supplier dan part yang bertempat pada kota
yang sama & menghilangkan supplier dengan status 20

2.2.14. SELECT Sn, Sname FROM S WHERE City = ‘London’


ORDER BY Sname DESC
 Dapatkan nomor supplier dan nama supplier yang tinggal di London dengan
urutan nama menurun

2.2.15. SELECT * FROM S WHERE CITY NOT LIKE ‘%r%’


 Dapatkan semua data dari supplier yang kotanya tidak mengandung karakter r

hal. 7
SQL

2.2.16. SELECT Sname FROM S WHERE Sname LIKE ‘C%’


 Dapatkan nama supplier yang namanya diawali dengan karakter C

2.2.17. SELECT * FROM P WHERE Pname LIKE ‘%a%’


 Dapatkan semua part yang namanya mengandung huruf a

2.2.18. SELECT Sname FROM S WHERE Sname LIKE ‘%n__’


 Dapatkan nama supplier yang namanya pada tiga karakter terakhir di awali
dengan huruf n.

2.2.19. SELECT Sname, status FROM S WHERE Sname NOT LIKE ‘%a%’
 Dapatkan nama dan status supplier yang namanya tdk mengandung karakter a

2.2.20. SELECT Sn,SUM (QTY) FROM SP GROUP BY Sn


 Dapatkan nomor supplier dan total kuantiti barang yang disupply oleh masing
masing supplier

2.2.21. SELECT COUNT(*) FROM S


Atau SELECT COUNT (Sn) FROM S
 Dapatkan jumlah dari supplier

2.2.22.SELECT Pn, SUM(QTY) FROM SP GROUP BY Pn


 Dapatkan no part dan nomor kuantiti pengiriman dari setiap part

2.2.23.SELECT SUM (QTY) FROM SP WHERE Pn = ‘P2’


 Dapatkan jumlah kuantiti dari P2 yang telah disupply

2.2.24.SELECT COUNT (DISTINCT Sn) FROM SP


 Dapatkan jumlah supplier yang mensupply part

2.2.25.SELECT Pn, MAX(QTY) FROM Sp WHERE QTY > 200


GROUP BY Pn HAVING SUM(QTY) > 300 ORDER By 2 DESC
 Untuk semua part yang total kuantitinya lebih dari 300, dapatkan Pn dan
QTY terbesar dan urutkan secara desc berdasarkan kolo. 2 (QTY)

2.2.26.SELECT COUNT(*) FROM SP WHERE Pn = ‘P4’ AND Sn = ‘S1’


 Dapatkan jumlah pengiriman untuk P4 dan disupply oleh S1

2.2.27.SELECT Pn, SUM(QTY) FROM SP GROUP BY Pn


 Dapatkan no part (Pn) dan total kuantiti masing – masing part

2.2.28.SELECT weight FROM P WHERE weight BETWEEN 10 AND 100


 Menampilkan berat barang diantara 10 dan 100 pound

hal. 8
SQL

COUNT : jumlah data dalam kolom


SUM : jumlah nilai dalam kolom
AVG : rata – rata nilai dalam kolom
MAX : nilai terbesar dalam kolom
MIN : nilai terkecil dalam kolom
Untuk SUM dan AVG nilainya harus numerik (INT,SMALLINT,FLOAT).
Fungsi – fungsi tsb jika dikenakan pada nilai yang NULL maka nilai tsb akan
Diabaikan kecuali untuk COUNT(*)

LIKE
- QUERY dapat lebih spesifik karena didefinisikan karakternya
- ‘-‘ berarti satu karakter
- ‘%’ berarti beberapa karakter

JOIN ( SELECT Lebih dari satu tabel ) SELECT Bertingkat


2.2.29.SELECT Sn, Pn FROM S,P WHERE S.City = P.City
 Dapatkan semua supplier dan part, keduanya bertempat tinggal pada
kota yang sama

2.2.30.SELECT Sn,S.city,Pn FROM S,P


WHERE S.Sn = SP.Sn AND SP.Pn = P.Pn
 Dapatkan semua supplier dari part keduanya bertempat tinggal pada
kota yang sama dan status pada S tidak sama dengan 20

2.2.31.SELECT DISTINCT S.City, P.City FROM S,SP,P


 Dapatkan pasangan nama kota, seorang supplier bertempat tinggal di
kota yang pertama mensupply part yang disimpan di kota yang kedua

2.2.32.SELECT DISTINCT Pn, CITY FROM SP,S WHERE SP.Sn = S.Sn


 Urutan yang terjadi :
1. Terjadi perkalian Cartesian antara Sp dan S
2. Baris yang tidk memenuhi kondisi join SP.Sn = S.Sn tidak muncul pada
hasil output.
3. Kolom Pn dan CITY diekstrak dari hasil join
4. Duplikasi baris akan terhapus

2.2.33.SELECT Sname FROM S WHERE Sn = ANY


(SELECT Sn FROM SP WHERE Pn = ‘P2’)
Atau
SELECT Sname FROM S WHERE Sn IN
(SELECT Sn FROM SP WHERE Pn = ‘P2’)
 Dapatkan nama supplier yang mensupply P2

2.2.34. SELECT Sname FROM S WHERE Sn IN


(SELECT Sn FROM SP WHERE Pn = ‘P2’

hal. 9
SQL

Atau
SELECT DISTINCT Sname FROM S,SP
WHERE S.Sn = SP.Sn AND SP.Pn = ‘P2’
 Dapatkan nama supplier yang mensupply P2

2.2.35.SELECT Sname FROM S WHERE Sn IN


(SELECT Sn FROM SP WHERE Pn IN
(SELECT Pn FROM P WHERE Warna = ‘RED’))
Atau
SELECT S.SNAME FROM S,SP,P WERE S.Sn = SP.Sn
AND P.Pn = SP.Pn AND PCOLOR = ‘RED’
 Dapatkan nama supplier yang mensupply paling sedikit satu part yang
berwarna merah.

2.2.36.SELECT Sn FROM WHERE Status <


(SELECT MAX(Status) FROM S)
 Dapatkan no. supplier bagi supplier dgn nilai status lebih kecil daripada
nilai maksimum status yang ada pada table S

2.2.37.SELECT Sname FROM S WHERE EXISTS


(SELECT * FROM SP WHERE NOT Sn = S.Sn AND Pn =’P2’)
 Dapatkan nama supplier yang mensupply P2

2.2.38. SELECT Sname FROM S WHERE NOT EXISTS


(SELECT * FROM SP WHERE NOT Sn = S.Sn AND Pn =’P2’)
atau
SELECT Sname FROM S WHERE Sn NOT IN
(SELECT Sn FROM Pn =’P2’)
 Dapatkan nama supplier untuk supplier yang tidak mensupply P2

2.2.39.SELECT Pn FROM P WHERE Pn >SOME


(SELECT Pn FROM SP WHERE QTY =300)
 Dapatkan no.part yg lebih besar dari no.part di SP &kuantiti=300

2.2.40.SELECT Sname FROM S WHERE ‘P2’ IN


(SELECT Pn FROM SP WHERE Sn =S.Sn)
 Dapatkan nama semua supplier yang mensupply ‘P2’

2.2.41. SELECT Sname FROM S WHERE NOT EXISTS


(SELECT * FROM SP WHERE Sn = S.Sn AND Pn =P.Pn)
 Dapatkan nama supplier yang mensupply seluruh part

hal.10
SQL

2.2.42.SELECT Sname FROM S WHERE EXISTS


(SELECT * FROM SP WHERE NOT EXIST
(SELECT * FROM SP WHERE Sn =S.Sn AND P3 =P.Pn))
 Dapatkan nama supplier yang mensupply seluruh part

2.2.43.SELECT Sn FROM S WHERE CITY=


(SELECT CITY FROM S WHERE Sn =’S1’)
 Dapatkan semua no.supplier yang sama lokasinya dengan S1

2.2.44.SELECT DISTINK Sn FROM SP WHERE Pn IN


(SELECT Pn FROM SP WHERE Sn =’S2’)
 Dapatkan no.supplier yg mensupply part juga disupply oleh S2

2.2.45.SELECT Sname FROM S WHERE ‘P2’ ~=ALL


(SELECT Pn FROM SP WHERE Sn =S.Sn)
 Dapatkan nama-nama supplier yang tidak mensupplt P2

2.2.46.SELECT Pname P WHERE Pn > SOME


(SELECT Pn FROM SP WHERE QTY = 300)

2.4. UPDATE
Sintaks : UPDATE nam_tabel
SET field = ekspresi
WHERE kondisi
2.4.1. UPDATE P SET Warna =’Yellow’, Weight = Weight + 5
WHERE Pn =’P2’
 Ubah data pada table P yang kode partnya P2, warnanya menjadi
Yellow dan beratnya di tambah 5

2.4.2. UPDATE S SET Status = 2 * Status


WHERE City = ‘London’
 Ubah data table S, yang tinggal di London statusnya dikalikan 2.

2.2. 3. UPDATE SP SET QTY = 0


WHERE ‘LONDON’=
(SELECT City FROM S WHERE S.Sn=SP.Sn)

2.5. DELETE
Sintaks : DELETE FROM nama_tabel
WHERE kondisi

hal.11
SQL

2.5.1. DELETE FROM S WHERE Sn =’S5’


 Hapus data pada table S yang kode supliernya S5

2.5.2. DELETE FROM SP WHERE ‘London’


(SELECT City FROM S WHERE S. Sn=SP.Sn)
 Hapus data transaksi yang telah di lakukan oleh supplier yang tiggal di
London

2.5.3. DELETE FROM SP WHERE QTY>300


 Hapus data pada table SP yang jumlahnya lebih besar dari 300

3. Statement Security
Statement yang digunakan untuk menjamin keamanan data.
Contoh :
3.1. Memberikan hak akses table atau database kepada user
Sintaks :
Grant tab_privilage ON table TO user_list
[WITH GRANT OPTION] [AS grantor]

Grant tab_privilage ON table TO user_list


[WITH GRANT OPTION] [AS grantor]

Database Privilage Tabel Privilage


Connect Alter Delete
Resource Index Index
DBA Select[(col)]
Update[(col)]
All [Privilage]
Contoh:
Grant index ON sp TO avi
GRANT select (Sn) ON sp TO ade
GRANT connect TO avi

3.2. REVOKE
Mencabut hak akses
Sintaks :REVOKE tab_privilage ON table_name
FROM user_list

REVOKE tab_privilage ON table_name


FROM user_list

hal.12
SQL

Contoh :
REVOKE select ON sp FROM avi
REVOKE all ON sp FROM avi
REVOKE connect from avi

4. Statement Integrity
Statement yang digunakan untuk menjaga kesatuan data
Contoh :
4.1. RECOVER TABLE
Statement yang di gunakan untuk memperbaiki table bila terjadi kerusakan
system (system failure)
Sintaks : RECOVER TABLE nama_tabel
RECOVER TABLE SP

5. Statement Auxilary
Statement pelengkap atau tambahan
Contoh :
5.1. UNLOAD
Fungsi : menulis data dari table ke dalam file ASCII
Sintaks: UNLOAD TO “Pathname”[DELIMITER”Char”
SELECT statement

UNLOAD TO “ /home/avi/teks”
DELIMITER “I”
SELECT * FROM SP

5.2. LOAD
Fungsi : mengambil data dari file ASCII ke dalam table
Sintak : LOAD FROM “Pathname” DELIMITER “Char”
INSERT INTO nama_tabel [nama_kolom]
Catatan :
 Hapus dahulu table SP
DELETE FROM SP

LOAD FROM “/home/nama_login/teks”


DELIMITER “I”
INSERT INTO SP

5.3. RENAME
Fungsi : merubah nama kolom
Sintaks : RENAME col_name TO new_col_name
Contoh : RENAME COLOUM P>COLOR TO WARNA

hal.13

Anda mungkin juga menyukai