Anda di halaman 1dari 32

Structure Query Language (SQL)

SQL
SQL (baca SEQUEL) pertama kali didefinisikan oleh Chamberlin (IBM Research Laboratory, San
Jose, California). Karena kemudahanya untuk mengakses data, maka SQL cepat menjadi
populer, sehingga banyak DBMS yang memiliki fasilitas SQL untuk mengakses data.
Terdapat berbagai dialek SQL yang berbeda satu dengan yang lain. Pada bab ini akan dibicarakan
dialek SQL yang standard.
Perintah-perintah dalam SQL dapat dikelompokkan menjadi 2 kelompok:
DDL (Data Definition Language) dan
DML (Data Manipulation Language)

Diktat Kuliah Basis Data

1- 1

Structure Query Language (SQL)

1. DDL (Data Definition Language)


membuat DATABASE
merubah tabel
membuat index
menghapus tabel dan index

2. DML (Data Manipulation Language)


tambah data
update data
hapus data
query data

Diktat Kuliah Basis Data

1- 2

Structure Query Language (SQL)

MEMBUAT DATABASE
CREATE DATABASE Nama_database;

Contoh:
CREATE DATABASE DBMahasiswa;
USE DATABASE DBMAHASISWA;

Diktat Kuliah Basis Data

1- 3

Structure Query Language (SQL)

MEMBUAT TABEL
CREATE TABLE Nama_tabel
([NamaKolom Typedata{NOT NULL}]....)

Contoh:

Create Table Transkrip


(NO_MHS

INTEGER

NOT NULL,

NO_MK CHAR(6) NOT NULL,


NILAI

SMALLINT);

Create Table MAHASISWA


(NoMHS Integer
Diktat Kuliah Basis Data

NOT NULL,
1- 4

Structure Query Language (SQL)

NamaMHS varchar(30),
TglLahir DATE,
Alamat Varchar(50),
Primary key(NoMHS));

Diktat Kuliah Basis Data

1- 5

Structure Query Language (SQL)

MERUBAH TABEL

ALTER TABLE Nama_tabel


ADD NamaKolom

Typedata

Contoh:
ALTER TABLE MAHASISWA
ADD Alamat char(25);

Diktat Kuliah Basis Data

1- 6

Structure Query Language (SQL)

MEMBUAT INDEX

CREATE {UNIQUE} INDEX

NamaIndex

ON Nama Tabel
UNIQUE Jika nilai pada kolom yang diindex terdapat beberapa nilai yang ditampilkan hanyalah
satu nilai saja
ASC Urutan dari Kecil-Besar (Naik)
DESC

Urutan dari Besar-Kecil (Turun)

Default

ASC

Contoh:
CREATE INDEX IDXMHS
ON Mahasiswa (NO_MHS)

Diktat Kuliah Basis Data

1- 7

Structure Query Language (SQL)

MENGHAPUS DATABASE,TABEL & INDEX

DROP DATABASE dbMahasiswa


DROP TABLE Nama_tabel;
DROP INDEX Nama_Index;

MENAMBAH DATA KE TABEL

INSERT INTO Nama_tabel {([Namakolom]...)}


VALUES ([konstan]...)

INSERT INTO Nama_tabel {([Namakolom]...)}


SELECT ... FROM....

Diktat Kuliah Basis Data

1- 8

Structure Query Language (SQL)

Contoh:
Insert Into Transkrip
(NOMHS, KDMK, NILAI) VALUES (2930,MSM160,80)
Insert Into Transkrip
VALUES (2930,MSM160, 80)

Insert Into NewTranskrip


Select * From Transkrip
Where KDMK <> MSM 100

Jumlah kolom dalam insert into = Jumlah kolom dalam SELECT


Type data kolom-kolom dalam Insert Into = tipe data kolom-kolom dalam SELECT

Diktat Kuliah Basis Data

1- 9

Structure Query Language (SQL)

MENGHAPUS DATA

DELETE FROM NamaTabel


{WHERE Kondisi}
Contoh:
Delete
From transkrip;

Delete
From transkrip
Where NoMhs = 3001;

Diktat Kuliah Basis Data

1- 10

Structure Query Language (SQL)

MENGUPDATE DATA
UPDATE NamaTabel
SET [Namakolom =[ Ekspresi]]...
{WHERE Kondisi}

Contoh:
UPDATE MataKuliah
Set NamaMK = Program Terstruktur
Where KdMk = MSM 200;

UPDATE Transkrip
Set Nilai = Nilai + 10;
Where KDMK = MSM 260
Diktat Kuliah Basis Data

1- 11

Structure Query Language (SQL)

QUERY DATA

SELECT {DISTINCT| ALL} [*| [Ekspresikolom]...]


FROM [Nama Tabel]....
{WHERE Kondisi}
{GROUP By [Nama Kolom]...
{HAVING Kondisi}}
{ORDER By [URUTAN]....}

Keterangan:
Setiap perintah SELECT minimal harus ada SELECT dan FROM.
WHERE, GROUP BY, HAVING, ORDER BY bersifat optional (boleh ada, boleh tidak)

Diktat Kuliah Basis Data

1- 12

Structure Query Language (SQL)

GROUP By harus sesudah WHERE atau FROM, dan ORDER By harus selalu terakhir.
HAVING hanya dapat digunakan jika ada GROUP By.

Betul/Salah perintah Select berikut ini:


Select ..........
Where ...........
Order by .............

Select....
From..
Having...
Group By....

Diktat Kuliah Basis Data

1- 13

Structure Query Language (SQL)

Select .....
From..
Order by.......
Group by........

URUTAN PEMROSESAN PERINTAH SELECT


SELECT

Pilih Kolom

FROM

Dari tabel mana data berasal

WHERE

Pilih record yang memenuhi kondisi

GROUP BY

Kelompokkan berdasarakan nilai yang sama dari kolom

HAVING

Pilih kelompok yang memenuhi kondisi

ORDER BY

urutkan baris berdasarkn kolom

QUERY SEDERHANA

Diktat Kuliah Basis Data

1- 14

Structure Query Language (SQL)

Select *
From mahasiswa;

Select Distinct KdMk


From Transkrip;

PENGGUNAAN WHERE

Diikuti oleh:
Perbandingan sederhana
Kondisi (syarat) yang terhubungkan dengan AND, OR, dan NOT
Operator BETWEEN

Diktat Kuliah Basis Data

1- 15

Structure Query Language (SQL)

Operator IN
Operator LIKE
Operator IN dengan sub-query
Operator perbandingan dengan sub-query
Operator ANY dan ALL
Operator EXIST

PERBANDINGAN SEDERHANA: menggunakan

operator perbandingan

=; < ; >; <=; >=; <> (!=)

Contoh:

Select NOMHS

Diktat Kuliah Basis Data

1- 16

Structure Query Language (SQL)

From Mahasiswa
Where Kota = Jakarta

Select NOMHS, NamaMhs


From Mahasiswa
Where Year(TglLahir) = 1990

Where 2011 - year(TglLahir) = 25

Kondisi dengan AND, OR, dan NOT

Contoh:
Diktat Kuliah Basis Data

1- 17

Structure Query Language (SQL)

Select NoMHS
From MAHASISWA
Where Kota <> Jakarta
OR JnKel = L

catatan : operator = pada contoh di atas dapat diganti dengan operator yang lain.

Operator BETWEEN
- Mengecek apakah nilai dari kolom dalam suatu range
-

Format: <Namakolom> {NOT} BETWEEN <Nilai1> AND <Nilai2>

Contoh:
Select NOMHS, NAMAMHS

Diktat Kuliah Basis Data

1- 18

Structure Query Language (SQL)

From Mahasiswa
Where Year(TglLahir) Between 1990 AND 1991

Note:
<kolom> between A AND B (<kolom> >= A) AND (<kolom> <= B)
<kolom> NOT Between A AND B NOT(<kolom> Between A AND B) (<kolom> < A OR
(<kolom> > B)

Operator IN

Select NoMhs, NamaMhs, Kota From Mahasiswa


Where Kota

= Bandung

OR

= Jakarta

Kota

Diktat Kuliah Basis Data

1- 19

Structure Query Language (SQL)

OR

Kota

= Medan

OR

Kota

= Surabaya

Dapat diganti dengan menggunakan operator IN, sebagai berikut:

Select NoMhs, NamaMhs, Kota


From Mahasiswa
Where Kota IN (Bandung,Jakarta,Medan,Surabaya)

Operator LIKE

: Pengganti 0, 1, atau lebih karakter

: underscore pengganti satu karakter

Diktat Kuliah Basis Data

1- 20

Structure Query Language (SQL)

Contoh:
Select

NoMhs

From

Mahasiswa

Where

NamaMhs LIKE %n namaMK Like _ _ _ %_ _

Contoh Lain:
Nama mata kuliah memuat string ta --- namaMK LIKE %ta%
Nama mahasiswa panjangnya 10 huruf -- name LIKE _____________
Nama mahasiswa minimal panjangnya 10
Select NAMA from mahasiswa where nama LIKE _ _ _ _ _ _ _ _ %_ _
Operator IN dengan sub-query

Diktat Kuliah Basis Data

1- 21

Structure Query Language (SQL)

Contoh:
SELECT NoMhs, NamaMhs
FROM Mahasiswa
WHERE Kota IN
(SELECT Kota
FROM Mahasiswa
WHERE NoMhs IN (2946, 5280))

SELECT NoMhs, NamaMhs


FROM Mahasiswa
WHERE NoMhs IN
(SELECT NoMhs
FROM Transkrip
Diktat Kuliah Basis Data

1- 22

Structure Query Language (SQL)

WHERE NoMk = MSM100)

Operator TETHA dengan sub-query


-

Operator tetha dapat digunakan jika sub-query menghasilkan tepat satu nilai

Contoh:
Select NoMhs, NamaMhs
From Mahasiswa
Where Kota =
(Select Kota From Mahasiswa
Where NoMhs = 5830)

Select NoMhs, NamaMhs


Diktat Kuliah Basis Data

1- 23

Structure Query Language (SQL)

From Mahasiswa
Where Year(TglLahir) < (Select Year(TglLahir)
From Mahasiswa
Where NoMhs = 5830

Soal:
Tampilkan Nomor dan nama mahasiswa yang tahun lahirnya sama dengan tahun lahirnya Budi,
tetapi Budi tidak muncul dalam hasil.

Operator ANY dan ALL

Jika Y1,Y2,Y3,...., dan Yn nilai-nilai yang dihasilkan sub-query S, maka:


NamaKolom < ALL (s)

Diktat Kuliah Basis Data

1- 24

Structure Query Language (SQL)

(NamaKolom < Y1) AND


(NamaKolom < Y2) AND
..............
(NamaKolom < Yn)

Contoh:
Select NoMhs, NamaMhs
From Mahasiswa
Where Year(TglLahir) <= ALL
(Select Year(TglLahir) from Mahasiswa)

Sedangkan

Diktat Kuliah Basis Data

1- 25

Structure Query Language (SQL)

NamaKolom < ANY (S)


(NamaKolom < Y1) OR
(NamaKolom < Y2) OR
..............
(NamaKolom < Yn)

Operator EXIST

Select NamaMhs
From Mahasiswa
Where EXIST
(Select *

Diktat Kuliah Basis Data

1- 26

Structure Query Language (SQL)

From Transkrip
Where NoMhs = Mahasiswa.NoMhs AND
NoMk = MSM160)

GROUP BY

Mengelompokkan rekord berdasarkan nilai suatu atribut (kolom)

Contoh:

Tabel Transkrip

Diktat Kuliah Basis Data

1- 27

Structure Query Language (SQL)

NoMhs

KdMk

Nilai

2530

MSM100

90

2530

MSM200

80

2700

MSM100

60

2700

MSM200

80

2530

MSM300

90

Diktat Kuliah Basis Data

1- 28

Structure Query Language (SQL)

Select NoMhs
From Transkrip
Group by NoMhs

NoMhs

KdMk

Nilai

--------------------------------------------------------------------------2530

MSM100,MSM200,M2M300

90,80,90

2700

MSM100,MSM200

60,80

Hasil akhir:

NoMhs
Diktat Kuliah Basis Data

1- 29

Structure Query Language (SQL)

-------2530
2700

HAVING
-

Memilih (menyeleksi) kelompok berdasarkan karakteristik dari kelompok

Selalu diikuti oleh kelompok fungsi dalam SQL:


COUNT - banyaknya nilai suatu kolom
- banyaknya baris dalam tabel
MIN - Nilai terkecil dalam suatu kolom
MAX- Nilai terbesar dalam suatu kolom
SUM- Nilai total dalam suatu kolom
AVG - Nilai rata-rata dalam suatu kolom

Diktat Kuliah Basis Data

1- 30

Structure Query Language (SQL)

COUNT(*) menghitung jumlah semua baris dalam tabel tanpa menghilangkan duplikasi
COUNT, AVG, SUM dapat menggunakan DISTINCT untuk menghilangkan duplikasi sebelum
fungsi tersebut diberlakukan.
Contoh:

Select COUNT(*)
from Mahasiswa

Select COUNT(distinct NoMhs)


From transkrip
Where nilai >= 80

Diktat Kuliah Basis Data

1- 31

Structure Query Language (SQL)

Select NoMhs, AVG(Nilai)


From(transkrip)
Group by NoMhs
Having AVG(Nilai) > 80

Diktat Kuliah Basis Data

1- 32

Anda mungkin juga menyukai