Transcript

Kalkulus Relasional 16 Oktober 2012

Kalkulus Relasional Bahasa kueri Structured Query Language

Standardisasi SQL 99

Data Manipulation Language

Pemetaan dengan Aljabar Relasional

Relasi, Table name

Projection operator, SELECT

Selection operator, klausa WHERE

Join, klausa Inner Join dalam klausa WHERE

Kalkulus Relasional 2

SQL Statement Statemen SQL tidak case sensitif

Statemen SQL dapat terdiri dari satu atau lebih baris

Keyword tidak boleh disingkat atau terpisah pada baris yang berbeda

Klausa biasanya ditempatkan pada baris yang berbeda

Indentasi biasanya digunakan untuk memudahkan pembacaan statemen

Kalkulus Relasional 3

SQL SELECT Statement Operasi Projection dalam Kalkulus Relasional

Pernyataan paling sederhana SELECT kolom1, kolom2, . . , kolom-n

FROM tabel

Contoh SELECT last_name, salary, dept_id

FROM employees;

Kalkulus Relasional 4

SQL SELECT Menghilangkan duplikasi baris dengan DISTINCT

SELECT department_id

FROM employees;

Bandingkan dengan SELECT DISTINCT department_id

FROM employees;

Kalkulus Relasional 5

Klausa WHERE Operasi Selection dalam Kalkulus Relasional

SELECT employee_id, last_name,

job_id, department_id

FROM employees

WHERE department_id = 90;

Tampilkan Nomor pegawai, Nama belakang, Jenis pekerjaan, dan Nomor departemen bagi pegawai yang bekerja di departemen nomor 90

Kalkulus Relasional 6

Tipe data Char dan Number Atribut last_name diapit oleh 'single-quote'

Tipe data string (CHAR, VARCHAR2)

Atribut department_id tidak diapit 'single-quote'

NUMBER

SELECT last_name, job_id, department_id

FROM employees

WHERE last_name = 'King';

Kalkulus Relasional 7

Kondisi Perbandingan dalam klausa WHERE Operator perbandingan aritmatik (=, >=, <=, <, >)

berlaku seperti dalam bahasa pemrograman

Operator ketidaksamaan: <>

Bandingkan dengan != dalam Java atau C++

Operator tambahan

BETWEEN . . AND . .

IN

NOT

LIKE

Kalkulus Relasional 8

Operator BETWEEN . . AND . . Tampilkan Nama belakang pegawai dan Gajinya bagi

mereka yang memiliki gaji dalam rentang di antara 2500 dan 3500

SELECT last_name, salary

FROM employees

WHERE salary BETWEEN 2500 AND 3500;

Bersifat inklusif (batas atas dan batas bawah dimasukkan ke dalam hasil kueri)

Kalkulus Relasional 9

Operator IN Tampilkan Nomor karyawan, Nama belakang, Gaji,

dan Nomor departemen untuk semua pegawai yang bekerja di departemen 100, 101, dan 102 SELECT employee_id, last_name,

salary, department_id

FROM employees

WHERE department_id IN (100, 101, 102);

Setara dengan WHERE department_id = 100 OR department_id =

101 OR department_id = 102;

Kalkulus Relasional 10

Operator LIKE Berlaku untuk tipe data String

Bersifat case-sensitive

Tampilkan Nama depan pegawai yang diawali dengan huruf 'S' SELECT first_name

FROM employees

WHERE first_name LIKE 'S%';

Bandingkan dengan klausa WHERE first_name LIKE 's%';

Kalkulus Relasional 11

Operator LIKE Tampilkan Nama belakang para pegawai yang

memiliki nama terdiri atas empat huruf, diawali dengan huruf 'K' SELECT last_name

FROM employees

WHERE last_name LIKE 'K___';

Karakter '%' mewakili nol, satu, atau lebih huruf

Karakter '_' mewakili satu huruf

Kalkulus Relasional 12

Operator Logika Gunakan keyword AND, OR, NOT untuk

menggabungkan kondisi dalam klausa WHERE

Perhatikan prioritas (presedensi) operator dalam klausa WHERE SELECT employee_id, last_name,

job_id, salary

FROM employees

WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK',

'SA_REP');

Kalkulus Relasional 13

Prioritas Evaluasi Operator

Ketentuan dapat diabaikan dengan menggunakan tanda kurung ( )

Urutan evaluasi Operator

1 Operator aritmatika

2 Operator konkatenation

3 Perbandingan kondisi

4 IS [NOT] NULL, LIKE, [NOT] IN

5 [NOT] BETWEEN

6 NOT kondisi lojik

7 AND kondisi lojik

8 OR kondisi lojik

14 Kalkulus Relasional

Contoh Presedensi Operator Menampilkan pegawai yang menjabat sebagai

presiden perusahaan dan gajinya lebih dari 15000 atau pegawai yang bertugas sebagai sales representatif SELECT last_name, job_id, salary

FROM employees

WHERE job_id = 'SA_REP'

OR job_id = 'AD_PRES'

AND salary > 15000;

Kalkulus Relasional 15

Contoh Presedensi Operator Menampilkan pegawai yang menjabat sebagai

presiden perusahaan atau bertugas sebagai sales representatif dan juga pegawai yang gajinya lebih besar dari 15000 SELECT last_name, job_id, salary

FROM employees

WHERE (job_id = 'SA_REP'

OR job_id = 'AD_PRES')

AND salary > 15000;

Kalkulus Relasional 16

Klausa ORDER BY Mengurutkan baris dengan klausa ORDER BY

ASC (default) terurut dari kecil ke besar

DESC terurut dari besar ke kecil

Klausa ORDER BY terdapat dibagian akhir dari statement SELECT SELECT last_name, job_id

department_id, hire_date

FROM employees

ORDER BY hire_date DESC;

17 Kalkulus Relasional

Memperoleh data dari banyak table

EMPLOYEE_ID LAST_NAME DEPARTMENT_ID

100

101

...

...

205

206

King

Kochar

Higgins

Giant

90

90

110

110

DEPARTMENT_ID DEPARTMENT_NAME LOCATION_ID

10

20

50

.....

100

Administration

Marketing

Shipping

Contracting

1700

1900

1500

1700

18 Kalkulus Relasional

Join dalam klausa WHERE Operasi Join dalam Kalkulus Relasional

Atribut Nama departemen tidak tercantum di dalam tabel employees

DESC employees;

Untuk menampilkan nama pegawai beserta nama departemen, perlu merelasikan dua tabel

Natural Join SELECT employees.last_name,

departments.depatment_name

FROM employees, department;

Kalkulus Relasional 19

Equijoin Natural join merelasikan setiap baris di tabel pertama

dengan setiap baris di tabel kedua

Equijoin hanya menampilkan baris-baris yang Equal

Kesamaan atribut didasarkan pada rancangan ERD SELECT employees.last_name,

departments.department_name

FROM employees, departments

WHERE employees.department_id =

departments.department_id;

Kalkulus Relasional 20

Equijoin Biasanya atribut di dua tabel yang direlasikan melalui

Equijoin bernama sama

Employees.department_id

Departments.department_id

Bandingkan juga dengan

Departments.location_id

Locations.location_id

Belum tentu sama!

Akan dibahas dalam pertemuan berikutnya

Kalkulus Relasional 21

Penulisan Alias SELECT e.last_name, d.department_name

FROM employees e, departments d

WHERE e.department_id = d.department_id;

Lebih singkat daripada SELECT employees.last_name,

departments.department_name

FROM employees, departments

WHERE employees.department_id =

departments.department_id;

Kalkulus Relasional 22

Kondisi Tambahan Equijoin merelasikan dua tabel

Kondisi tambahan bisa disebutkan dengan operator AND atau OR SELECT e.last_name, e.department_id,

d.department_name

FROM employees e, departments d

WHERE e.department_id = d.department_id

AND e.last_name = 'King';

Klausa ORDER BY juga bisa ditambahkan jika perlu

Kalkulus Relasional 23

Join Tiga Tabel Untuk melakukan join n tabel, kita memerlukan

paling sedikit n-1 kondisi join.

Contoh untuk melakukan join menggunakan 3 tabel, diperlukan paling sedikit 2 buah join

Contoh melakukan join menggunakan tabel EMPLOYEES, DEPARTMENTS dan LOCATIONS SELECT e.employee_id, e.last_name, l.city

FROM employees e, departments d, locations l

WHERE e.department_id = d.department_id

AND d.location_id = l.location_id;

Kalkulus Relasional 24

Self Join Relasi rekursif dalam Diagram ER

Tampilkan nama pegawai dan nama atasannya SELECT worker.last_name || ' works for ' ||

manager.last_name

FROM employees worker, employees manager

WHERE worker.manager_id =

manager.employee_id;

Operator || digunakan untuk menggandengkan (concatenate) data String

Kalkulus Relasional 25

Pustaka http://tjerdastangkas.blogspot.com/search/label/ikd312

26 Kalkulus Relasional

Kamis, 20 Oktober 2011

top related