Anda di halaman 1dari 15

STRUCTURE QUERY LANGUAGE

Structured Query Language (SQL) merupakan komponen bahasa relational


database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan
berorientasi pada himpunan. SQL dapat digunakan baik secara interaktif atau
ditempelkan pada sebuah program aplikasi.

1. Komponen-Komponen SQL
Komponen-komponen pada SQL dapat dilihat pada gambar 1.

Gambar 1. Bagan Komponen-komponen SQL

a. Data Definition Language (DDL) :

1
Digunakan untuk mendefinisikan data dengan menggunakan perintah :
create, drop, alter.

b. Data Manipulation Language (DML) :


Digunakan untuk memanipulasi data dengan menggunakan perintah :
select, insert, update, delete.
Data Manipulation Language merupakan bagian terpadu bahasa SQL.
Perintah-perintahnya dapat dibuat secara interaktif atau ditempelkan
pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA'
yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara
mendapatkannya.

c. Data Control Language (DCL) :


Digunakan untuk mengontrol hak para pemakai data dengan perintah :
grant, revoke

1.1. DDL
Perintah-perintah pada DDL dapat dijabarkan sebagai berikut:

1. CREATE TABLE

Perintah CREATE TABLE berfungsi untuk membuat tabel.

Sintaks : CREATE TABLE tbname


(col 1 data type data spec,
col 2 data type data spec,
.
.
PRIMARY KEY (col1,……))

Contoh :

CREATE TABLE MAHASISWA


(NPM CHAR(8) NOT NULL,
NAMA CHAR(45) NOT NULL,
ALAMAT CHAR(45),
TGL-LAHIR DATE NOT NULL WITH DEFAULT,
PRIMARY KEY (NPM))

Pernyataan NULL yang digunakan dapat dispesifikasikan sebagai berikut :

2
 NULL
NULL dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak
tersedianya suatu nilai. NULL bukan berarti kosong (blank) atau 0 (Nol).

 NOT NULL
NOT NULL dimana pemakai atau program harus memberikan nilai-nilai pada
saat memasukkan record

 NOT NULL WITH DEFAULT


Nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan
untuk kolom ini

Nilai default-nya :
 Nol, untuk tipe field NUMERIC
 Blank, untuk tipe field CHARACTER CURRENT
 DATE, untuk tipe field DATE CURRENT
 TIME, untuk tipe field TIME

Pada saat membuat tabel, salah satu atribut tersebut di atas


dispesifikasikan pada sebuah kolom.

2. CREATE VIEW

Perintah CREATE VIEW berfungsi untuk membuat tabel view. View


merupakan bentuk alternatif penyajian data dari satu atau lebih tabel.
View dapat berisi semua atau sebagian kolom yang terdapat pada tabel
dimana kolom tersebut didefinisikan.

Tujuan membuat view :


 Meningkatkan keamanan data
 Meningkatkan kemandirian data
 Penyederhanaan bagi end user (data yang sedikit, nama-nama
kolom yang baru dan dapat dibaca dengan lebih baik)

3
Properti :
 Tidak terdapatnya data tambahan
 View mencakup subset kolom dan / atau baris
 View dapat berisikan data dari beberapa tabel dan / atau tabel-tabel
view lainnya
 View dapat berisikan perolehan data, misal : nilai rata-rata
 Manipulasi data melalui view terbatas

Sintaks : CREATE VIEW viewname (column1, column2, ……..)


AS SELECT statement FROM tbname
[WITH CHECK OPTION]

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

Contoh :

CREATE VIEW VMHS (NPM, NAMA)


AS SELECT NPM, NAMA FROM MAHASISWA

3. CREATE INDEX

Perintah CREATE INDEX berfungsi untuk membuat tabel index.

Sintaks : CREATE [UNIQUE] INDEX indexname


ON nama_table (nama_kolom)

Contoh :

CREATE UNIQUE INDEX MHSIDX ON MAHASISWA(NPM)

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.

DROP TABLE

Perintah DROP TABLE berfungsi untuk menghapus tabel.

4
Sintaks : DROP TABLE tbname

Contoh : DROP TABLE MAHASISWA

Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut
otomatis akan dihapus atau tidak akan berfungsi seperti :

- semua record dalam tabel akan terhapus


- index dan view pada tabel akan hilang
- deskripsi tabel akan hilang

5. DROP VIEW

Perintah DROP VIEW berfungsi untuk menghapus view.

Sintaks : DROP VIEW viewname

Contoh :

DROP VIEW VMHS

6. DROP INDEX

Perintah DROP INDEX berfungsi untuk menghapus index.

Sintaks : DROP INDEX indexname

Contoh :

DROP INDEX MHSIDX

5
7. ALTER

Perintah ALTER berfungsi untuk merubah atribut pada suatu tabel.

Sintaks : ALTER TABLE tbname


MODIFY (nama_kolom tipe_kolom)
ADD (nama_kolom tipe_kolom [[before, nama_kolom]])
DROP (nama_kolom tipe_kolom)

Contoh : merubah Tabel TABX dengan menambah Field D.

ALTER TABLE TABX ADD D CHAR(3)

1.2. DML
Perintah-perintah pada DML dapat dijabarkan sebagai berikut:

1. INSERT

Perintah INSERT berfungsi untuk menambah baris (record) baru.

Sintaks : INSERT INTO tbname


(col1, ...) VALUES (value1, ...)

Catatan :
Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika
dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut ini :

Sintaks : INSERT INTO tbname


VALUES (value1, value2, ...)

Nilai-nilai diisikan sebanyak kolom yang terdapat di tabel tersebut.

Contoh : pada tabel MAHASISWA akan ditambahkan record mahasiswa


baru.

INSERT INTO MAHASISWA


VALUES (‘00105543’,’MUHAMMAD ADI’,JL. MERUYA NO.100,
JAKARTA’,02-02-1990)

2. UPDATE

Perintah UPDATE berfungsi untuk merubah record.

6
Sintaks : UPDATE tbname
SET field = ekspresi
WHERE kondisi

Contoh :akan diubah nama mahasiswa dari MUHAMMAD ADI dengan


NPM 00105432 menjadi MUHAMMAD ALI

UPDATE MAHASISWA
SET nama =’MUHAMMAD ALI’
WHERE NPM=’00105432’

3. DELETE

Perintah DELETE berfungsi untuk menghapus record.


Sintaks : DELETE FROM tbname
WHERE kondisi

Contoh : akan dihapus data mahasiswa dengan NPM 0010500

DELETE FROM MAHASISWA


WHERE NPM=’00105004

4. SELECT

Perintah SELECT berfungsi untuk menampilkan record.

Sintaks : SELECT [DISTINCT] colname FROM tbname


[WHERE kondisi]
[GROUP BY kondisi]
[HAVING kondisi]
[ORDER BY kondisi]

7
1.3. Contoh Kasus DDL

Contoh kasus DDL antara lain :

1. Membuat Tabel

a. CREATE TABLE PEMASOK


(Kd-P Char(5) NOT NULL,
Nama-P Char(20) NOT NULL,
Status Smallint NOT NULL,
Kota Char(15) NOT NULL);

b. CREATE TABLE BARANG


(Kd-B Char(6) NOT NULL,
Nama-B Char(20) NOT NULL,
Warna Char(6) NOT NULL,
Berat Smallint NOT NULL);

c. CREATE TABLE PB
(Kd-P Char(5) NOT NULL,
Kd-B Char(6) NOT NULL,
Jumlah INTEGER NOT NULL);

d. CREATE UNIQUE INDEX Sidx ON PEMASOK(Kd-P);


CREATE UNIQUE INDEX Pidx ON BARANG(Kd-B);
CREATE INDEX Sdx ON PB(Kd-P);
CREATE INDEX Pdx ON PB(Kd-B);

2. Modifikasi Table BARANG dengan perintah :

RENAME COLUMN PEMASOK.Warna TO Warna-B


ALTER TABLE BARANG ADD (Kota CHAR(15) NOT NULL)

3. Membuat View

a. Membuat view untuk pemasok yang statusnya lebih besar dari 15

CREATE VIEW PEMASOK-YG-BAGUS


AS SELECT Kd-P, Status, Kota FROM PEMASOK
WHERE Status > 15

b. Membuat view yang berisi pemasok yang tinggal di Paris

CREATE VIEW PEMASOK-PARIS

8
AS SELECT * FROM PEMASOK
WHERE Kota = ' Paris '

c. Membuat view dengan mengganti nama_atributnya

CREATE VIEW BARANG (Kd-Brg, Nm-Brg, Brt)


AS SELECT Kd-B, Nama-B, Berat FROM BARANG
WHERE Warna = 'Red'

1. 4 Contoh Kasus DML

Contoh kasus DML antara lain :

1. Menambah record (INSERT)

INSERT INTO S VALUES ('S1','Smith',20,'London');


INSERT INTO S VALUES ('S2','Jones,10,'Paris');
INSERT INTO S VALUES ('S3','Blake',30,'Paris')

Tabel S, P dan SP berisikan dengan data-data seperti terlihat pada tabel 1, 2.


dan 3.
Tabel 1. TABEL PEMASOK

Kd-P Nama-P Status Kota


P1 Smith 20 London
P2 Jones 10 Paris
P3 Blake 30 Paris
P4 Clark 20 London
P5 Adams 30 Athens

Tabel 2. Tabel BARANG

Kd-B Nama-B Warna Berat Kota


B1 Nut Red 12 London
B2 Bolt Green 17 Paris
B3 Screw Bleu 17 Rome
B4 Screw Red 14 London
B5 Cam Blue 12 Paris
B6 Cog Red 19 London

Tabel 3. Tabel PEMASOK-BRG

Kd-P Kd-B Jumlah


P1 B1 300
P1 B2 200

9
P1 B3 400
P1 B4 200
P1 B5 100
P1 B6 100
P2 B1 300
P2 B2 400
P3 B2 200
P4 B2 200
P4 B4 300
P4 B5 400

2. Merubah record (UPDATE)

a. Merubah data (record) pada tabel BARANG yang mempunyai


nomor barang B2, warnanya dirubah menjadi Kuning dan
beratnya ditambah 5

UPDATE BARANG
SET Warna = 'Yellow', Berat = Berat + 5
WHERE Kd-B = 'B2'

b. Merubah record pada tabel PEMASOK, statusnya menjadi dua kali


status awal untuk pemasok yang bertempat tinggal di kota London

UPDATE PEMASOK
SET Status = 2 * Status
WHERE Kota = 'London'

3. Menghapus record (DELETE)

Menghapus record pada tabel PEMASOK yang nomor pemasoknya P5

DELETE FROM PEMASOK


WHERE Kd-P ='P5'

10
4. Menampilkan record (SELECT 1 tabel)

a. Menampilkan semua data pemasok

SELECT * FROM PEMASOK

atau

SELECT Kd-P, Nama-P, Status, Kota FROM PEMASOK

b.. Menampilkan semua nilai kode barang pada tabel PEMASOK-BRG

SELECT Kd-B FROM PEMASOK-BRG

c. Menampilkan kode pemasok dan status untuk pemasok yang


tinggal di Paris

SELECT Kd-P, Status FROM PEMASOK WHERE Kota ='Paris'

d. Menampilkan kode pemasok yang tinggal di Paris dengan status >


20

SELECT Kd-P FROM PEMASOK


WHERE Kota ='Paris” AND Status > 20

e. Menampilkan jumlah pengiriman B1

SELECT COUNT(*) FROM PEMASOK-BRG


WHERE Kd-B = 'B1'

f. Perintah untuk menghindari hasil data yang sama terulang kembali


(distinct)

SELECT DISTINCT Kd-B FROM PEMASOK-BRG

g. Menampilkan kode pemasok dan status bagi pemasok yang tinggal


di Paris dalam urutan status menurun

SELECT Kd-P,Status FROM PEMASOK


WHERE Kota = 'Paris'
ORDER BY Status desc

h. Menampilkan kode barang dari semua barang yang dipasok oleh


lebih dari seorang pemasok

11
SELECT Kd-B FROM PEMASOK-BRG
GROUP BY Kd-B
HAVING COUNT(*) > 1

i. Menampilkan semua barang yang namanya dimulai dengan huruf


C

SELECT * FROM BARANG


WHERE Nama-B LIKE 'C%'

5. Menampilkan record (SELECT lebih dari satu tabel / JOIN)

a. Menampilkan semua pemasok dan barang yang keduanya


bertempat tinggal pada kota yang sama

SELECT Kd-P, Nama-P,Status, PEMASOK.Kota , Kd-B, Nama-B,


Warna, Berat FROM PEMASOK, BARANG
WHERE PEMASOK.Kota = BARANG.Kota

b. Menampilkan nama pemasok yang memasok barang dengan nomor


barang B2

SELECT Nama-P FROM PEMASOK, PEMASOK-BRG


WHERE PEMASOK.Kd-P = PEMASOK-BRG.Kd-P
AND PEMASOK-BRG.Kd-B = 'B2'

c. Menampilkan nama pemasok yang memasok barang berwarna merah

SELECT Nama-P FROM PEMASOK, PEMASOK-BRG, BARANG


WHERE PEMASOK.Kd-P = PEMASOK-BRG.Kd-P
AND PEMASOK-BRG.Kd-B = BARANG.Kd-B
AND BARANG.Warna = 'RED'

6. Menampilkan record (SELECT lebih dari satu tabel / SELECT Bertingkat)

Contoh queri :

a. Menampilkan nama pemasok yang memasok barang dengan kode


barang B2

SELECT Nama-P FROM PEMASOK


WHERE Kd-P IN

12
(SELECT Kd-P FROM PEMASOK-BRG
WHERE Kd-B = 'B2')
Atau

SELECT Nama-P FROM PEMASOK


WHERE Kd-P = ANY
(SELECT Kd-P FROM PEMASOK-BRG
WHERE Kd-B = 'B2')

b. Menampilkan nama pemasok yang memasok barang berwarna merah

SELECT Nama-P FROM PEMASOK


WHERE Kd-P IN
(SELECT Kd-P FROM PEMASOK-BRG
WHERE Kd-B IN
(SELECT Kd-B FROM BARANG
WHERE Warna = 'Red'))

c. Menampilkan kode pemasok dengan nilai status lebih kecil


daripada nilai maksimum status yang ada pada tabel PEMASOK

SELECT Kd-P FROM PEMASOK


WHERE Status <
(SELECT MAX(Status) FROM PEMASOK)

d. Menampilkan nama pemasok yang tidak memasok barang dengan


nomor barang B2

SELECT Nama-P FROM PEMASOK


WHERE Kd-P NOT IN
(SELECT Kd-P FROM PEMASOK-BRG
WHERE Kd-B = 'B2')

e. Menampilkan semua kode pemasok yang sama lokasinya dengan


pemasok P1

SELECT Kd-P FROM PEMASOK


WHERE Kota =
(SELECT Kota FROM PEMASOK
WHERE Kd-P = 'P1')

13
7. Fungsi Perhitungan

Fungsi-fungsi yang dapat digunakan antara lain:


 COUNT : jumlah baris dan kolom
 SUM : jumlah nilai dam 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 tersebut jika dikenakan pada nilai yang NULL maka nilainya
akan diabaikan kecuali untuk COUNT(*)

Berikut ini contoh queri yang menggunakan fungsi-fungsi perhitungan :

a. Menghitung jumlah pemasok

SELECT COUNT(*) FROM PEMASOK


atau
SELECT COUNT (Kd-P) FROM PEMASOK

b. Menampilkan kode barang dan total jumlah pengiriman dari setiap


barang

SELECT Kd-B, SUM(Jumlah) FROM PEMASOK-BRG


GROUP BY Kd-B
c. Menghitung jumlah kuantitas dari B2 yang telah dipasok

SELECT SUM (Jumlah) FROM PEMASOK-BRG


WHERE Kd-B = 'B2'

d. Menampilkan jumlah pengiriman barang dengan nomor B4 dan


dipasok oleh kode pemasok P1

SELECT COUNT(*) FROM PEMASOK-BRG


WHERE Kd-B = 'B4' AND Kd-P = 'P1'

e. Menampilkan kode barang dan total kuantitas dari masing-masing


barang

SELECT Kd-B, SUM(Jumlah) FROM PEMASOK-BRG


GROUP BY Kd-B

14
1.5. DCL

Berikut ini adalah perintah-perintah pada DCL :

1. GRANT

Perintah GRANT berfungsi untuk memberikan izin akses kepada pemakai.

Sintaks : GRANT privileges ON tbname TO user

Contoh :

GRANT SELECT ON CLUB TO PUBLIC


GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01

2. REVOKE

Perintah REVOKE berfungsi untuk mencabut izin akses kepada pemakai.

Sintaks : REVOKE privileges ON tbname FROM user

Contoh :

REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01


REVOKE ALL ON CLUB FROM PUBLIC

15

Anda mungkin juga menyukai