Upload
anung-ariwibowo
View
376
Download
1
Tags:
Embed Size (px)
Citation preview
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