Basisdata - SQL

36
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

description

tentangg basis data

Transcript of Basisdata - SQL

Page 1: Basisdata - SQL

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

Page 2: Basisdata - SQL

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

Page 3: Basisdata - SQL

Structure Query Language (SQL)

MEMBUAT DATABASE

CREATE DATABASE Nama_database;

Contoh:CREATE DATABASE DBMahasiswa;

USE DATABASE DBMAHASISWA;

Diktat Kuliah Basis Data 1-3

Page 4: Basisdata - SQL

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

Diktat Kuliah Basis Data 1-4

Page 5: Basisdata - SQL

Structure Query Language (SQL)

(NoMHS Integer NOT NULL,

NamaMHS varchar(30),

TglLahir DATE,

Alamat Varchar(50),

Primary key(NoMHS));

Diktat Kuliah Basis Data 1-5

Page 6: Basisdata - SQL

Structure Query Language (SQL)

MERUBAH TABEL

ALTER TABLE Nama_tabel

ADDNamaKolom Typedata

Contoh:

ALTER TABLEMAHASISWA

ADD Alamat char(25);

Diktat Kuliah Basis Data 1-6

Page 7: Basisdata - SQL

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

Page 8: Basisdata - SQL

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]...)}

Diktat Kuliah Basis Data 1-8

Page 9: Basisdata - SQL

Structure Query Language (SQL)

SELECT ... FROM....

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’

Diktat Kuliah Basis Data 1-9

Page 10: Basisdata - SQL

Structure Query Language (SQL)

Jumlah kolom dalam insert into = Jumlah kolom dalam SELECT

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

MENGHAPUS DATA

DELETE FROM NamaTabel

{WHERE Kondisi}

Contoh:

Delete

From transkrip;

Delete

Diktat Kuliah Basis Data 1-10

Page 11: Basisdata - SQL

Structure Query Language (SQL)

From transkrip

Where NoMhs = 3001;

MENGUPDATE DATA

UPDATE NamaTabel

SET [Namakolom =[ Ekspresi]]...

{WHERE Kondisi}

Contoh:

UPDATE MataKuliah

Set NamaMK = ‘Program Terstruktur’

Where KdMk = ‘MSM 200’;

Diktat Kuliah Basis Data 1-11

Page 12: Basisdata - SQL

Structure Query Language (SQL)

UPDATE Transkrip

Set Nilai = Nilai + 10;

Where KDMK = ‘MSM 260’

QUERY DATA

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

FROM [Nama Tabel]....

{WHERE Kondisi}

{GROUP By [Nama Kolom]...

{HAVING Kondisi}}

{ORDER By [URUTAN]....}

Diktat Kuliah Basis Data 1-12

Page 13: Basisdata - SQL

Structure Query Language (SQL)

Keterangan:

Setiap perintah SELECT minimal harus ada SELECT dan FROM.

WHERE, GROUP BY, HAVING, ORDER BY bersifat optional (boleh ada, boleh tidak)

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 .............

Diktat Kuliah Basis Data 1-13

Page 14: Basisdata - SQL

Structure Query Language (SQL)

Select....

From..

Having...

Group By....

Select .....

From..

Order by.......

Group by........

URUTAN PEMROSESAN PERINTAH SELECT

SELECT Pilih Kolom

Diktat Kuliah Basis Data 1-14

Page 15: Basisdata - SQL

Structure Query Language (SQL)

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

Select *

From mahasiswa;

Select Distinct KdMk

From Transkrip;

Diktat Kuliah Basis Data 1-15

Page 16: Basisdata - SQL

Structure Query Language (SQL)

PENGGUNAAN WHERE

Diikuti oleh:

Perbandingan sederhana

Kondisi (syarat) yang terhubungkan dengan AND, OR, dan NOT

Operator BETWEEN

Operator IN

Operator LIKE

Operator IN dengan sub-query

Operator perbandingan dengan sub-query

Operator ANY dan ALL

Operator EXIST

Diktat Kuliah Basis Data 1-16

Page 17: Basisdata - SQL

Structure Query Language (SQL)

PERBANDINGAN SEDERHANA: menggunakan operator perbandingan

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

Contoh:

Select NOMHS

From Mahasiswa

Where Kota = ‘Jakarta’

Select NOMHS, NamaMhs

From Mahasiswa

Where Year(TglLahir) = 1990

Diktat Kuliah Basis Data 1-17

Page 18: Basisdata - SQL

Structure Query Language (SQL)

Where 2011 - year(TglLahir) = 25

Kondisi dengan AND, OR, dan NOT

Contoh:

Select NoMHS

From MAHASISWA

Where Kota <> ‘Jakarta’

OR JnKel = ‘L’

Diktat Kuliah Basis Data 1-18

Page 19: Basisdata - SQL

Structure Query Language (SQL)

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

From Mahasiswa

Where Year(TglLahir) Between 1990 AND 1991

Note:

<kolom> between A AND B (<kolom> >= A) AND (<kolom> <= B)

Diktat Kuliah Basis Data 1-19

Page 20: Basisdata - SQL

Structure Query Language (SQL)

<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 Kota = “Jakarta”

OR Kota = “Medan”

OR Kota = “Surabaya”

Dapat diganti dengan menggunakan operator IN, sebagai berikut:

Diktat Kuliah Basis Data 1-20

Page 21: Basisdata - SQL

Structure Query Language (SQL)

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

Contoh:

Select NoMhs

From Mahasiswa

Diktat Kuliah Basis Data 1-21

Page 22: Basisdata - SQL

Structure Query Language (SQL)

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

Contoh:

SELECT NoMhs, NamaMhs

FROM Mahasiswa

Diktat Kuliah Basis Data 1-22

Page 23: Basisdata - SQL

Structure Query Language (SQL)

WHERE Kota IN

(SELECT Kota

FROM Mahasiswa

WHERE NoMhs IN (2946, 5280))

SELECT NoMhs, NamaMhs

FROM Mahasiswa

WHERE NoMhs IN

(SELECT NoMhs

FROM Transkrip

WHERE NoMk = ‘MSM100’)

Diktat Kuliah Basis Data 1-23

Page 24: Basisdata - SQL

Structure Query Language (SQL)

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

From Mahasiswa

Diktat Kuliah Basis Data 1-24

Page 25: Basisdata - SQL

Structure Query Language (SQL)

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)

(NamaKolom < Y1) AND

Diktat Kuliah Basis Data 1-25

Page 26: Basisdata - SQL

Structure Query Language (SQL)

(NamaKolom < Y2) AND

..............

(NamaKolom < Yn)

Contoh:

Select NoMhs, NamaMhs

From Mahasiswa

Where Year(TglLahir) <= ALL

(Select Year(TglLahir) from Mahasiswa)

Sedangkan

NamaKolom < ANY (S)

Diktat Kuliah Basis Data 1-26

Page 27: Basisdata - SQL

Structure Query Language (SQL)

(NamaKolom < Y1) OR

(NamaKolom < Y2) OR

..............

(NamaKolom < Yn)

Operator EXIST

Select NamaMhs

From Mahasiswa

Where EXIST

(Select *

From Transkrip

Diktat Kuliah Basis Data 1-27

Page 28: Basisdata - SQL

Structure Query Language (SQL)

Where NoMhs = Mahasiswa.NoMhs AND

NoMk = ‘MSM160’)

GROUP BY

Mengelompokkan rekord berdasarkan nilai suatu atribut (kolom)

Contoh:

Tabel Transkrip

Diktat Kuliah Basis Data 1-28

Page 29: Basisdata - SQL

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-29

Page 30: Basisdata - SQL

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:

Diktat Kuliah Basis Data 1-30

Page 31: Basisdata - SQL

Structure Query Language (SQL)

NoMhs

--------

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

Diktat Kuliah Basis Data 1-31

Page 32: Basisdata - SQL

Structure Query Language (SQL)

SUM- Nilai total dalam suatu kolom

AVG- Nilai rata-rata dalam suatu kolom

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

Diktat Kuliah Basis Data 1-32

Page 33: Basisdata - SQL

Structure Query Language (SQL)

Where nilai >= 80

Select NoMhs, AVG(Nilai)

From(transkrip)

Group by NoMhs

Having AVG(Nilai) > 80

Diktat Kuliah Basis Data 1-33