Rabu, 19 Desember 2012
TUGAS PERTEMUAN-6 SPBD
mencari first_name, last_name,salary :
select first_name,last_name,salary,employees.department_id,department_name
from employees,departments
where departments.department_id=employees.department_id;
menampilkan first_name,last_name, department_name, salary, job_title:
select first_name,last_name,salary,department_name,job_title
from employees,departments,jobs
where employees.department_id=departments.department_id
and employees.job_id=jobs.job_id;
menampilkan region_name, country_name, street_addres, city:
select region_name,country_name,street_adress,city
from regions,countries,locations
where regions.region_id=countries.region_id and
locations.co=countries.co;
Rabu, 12 Desember 2012
TUGAS PERTEMUAN-5 SPBD
Klausul SQL bergabung menggabungkan catatan dari dua atau lebih tabel dalam database. Ini menciptakan satu set yang dapat disimpan sebagai meja atau digunakan sebagaimana mestinya. BERGABUNG adalah sarana untuk menggabungkan field dari dua tabel dengan menggunakan nilai-nilai bersama untuk masing-masing. Standar ANSI SQL menetapkan empat jenis BERGABUNG: INNER, OUTER, KIRI, dan KANAN. Sebagai kasus khusus, meja (dasar meja, pandangan, atau meja bergabung) dapat BERGABUNG untuk dirinya sendiri dalam diri bergabung.
Seorang pemrogram menulis predikat BERGABUNG untuk mengidentifikasi catatan untuk bergabung. Jika predikat dievaluasi adalah benar, catatan gabungan ini kemudian diproduksi dalam format yang diharapkan, dengan rekor atau tabel sementara.
Seorang pemrogram menulis predikat BERGABUNG untuk mengidentifikasi catatan untuk bergabung. Jika predikat dievaluasi adalah benar, catatan gabungan ini kemudian diproduksi dalam format yang diharapkan, dengan rekor atau tabel sementara.
1. INNER JOIN
Sebuah inner join adalah operasi bergabung paling umum digunakan dalam aplikasi dan dapat dianggap sebagai default bergabung-jenis. Inner join membuat tabel hasil baru dengan menggabungkan nilai kolom dari dua tabel (A dan B) berdasarkan predikat join-. Permintaan membandingkan setiap baris A dengan setiap baris dari B untuk menemukan semua pasang baris yang memenuhi join-predikat. Ketika join-predikat puas, nilai kolom untuk setiap pasangan yang cocok dari baris A dan B digabungkan menjadi satu baris hasil. Hasil dari join dapat didefinisikan sebagai hasil pertama mengambil produk Cartesian (atau Cross join) dari semua catatan dalam tabel (menggabungkan setiap record dalam tabel A dengan setiap record dalam tabel B)-kemudian kembali semua catatan yang memenuhi bergabung predikat. Aktual SQL implementasi biasanya menggunakan pendekatan lain seperti hash bergabung atau semacam-menggabungkan bergabung mana mungkin, karena menghitung produk Cartesian sangat tidak efisien.
SQL menetapkan dua cara yang berbeda untuk mengekspresikan sintaksis bergabung: "eksplisit bergabung notasi" dan "implisit bergabung notasi".
The "eksplisit bergabung notasi" menggunakan BERGABUNG kata kunci untuk menentukan tabel untuk bergabung, dan kata kunci ON untuk menentukan predikat untuk bergabung, seperti dalam contoh berikut:
SQL menetapkan dua cara yang berbeda untuk mengekspresikan sintaksis bergabung: "eksplisit bergabung notasi" dan "implisit bergabung notasi".
The "eksplisit bergabung notasi" menggunakan BERGABUNG kata kunci untuk menentukan tabel untuk bergabung, dan kata kunci ON untuk menentukan predikat untuk bergabung, seperti dalam contoh berikut:
SELECT * FROM employee INNER JOIN department ON employee.DepartmentID = department.DepartmentID;
FROM employee, department WHERE employee.DepartmentID = department.DepartmentID;
2.EQUI-JOIN
Sebuah equi-join adalah jenis tertentu dari komparator berbasis join, yang hanya
menggunakan perbandingan kesetaraan dalam predikat join-. Menggunakan operator
perbandingan lainnya (seperti <) mendiskualifikasi bergabung sebagai equi-join.
Permintaan yang ditampilkan di atas telah
memberikan contoh dari equi-join:
SELECT * FROM employee JOIN department ON employee.DepartmentID = department.DepartmentID;
SELECT * FROM employee, department WHERE employee.DepartmentID =
department.DepartmentID;
3.NATURAL JOIN
Sebuah join alami adalah jenis equi-join mana predikat bergabung timbul implisit
dengan membandingkan semua kolom di kedua tabel yang memiliki kolom yang sama-nama
dalam tabel bergabung. Tabel bergabung dihasilkan hanya berisi satu kolom untuk
setiap pasangan kolom sama bernama.Kebanyakan ahli setuju bahwa ALAM bergabung
berbahaya dan karenanya sangat tidak menyarankan penggunaan. Bahayanya berasal
dari sengaja menambahkan kolom baru, bernama sama dengan kolom lain dalam tabel
lainnya. Sebuah bergabung alam yang ada maka mungkin "alami" menggunakan kolom
baru untuk perbandingan, membuat perbandingan / pertandingan menggunakan kriteria
yang berbeda (dari kolom yang berbeda) dari sebelumnya. Jadi query yang ada dapat
menghasilkan hasil yang berbeda, meskipun data dalam tabel belum berubah, tapi
hanya ditambah.Permintaan contoh di atas untuk bergabung dalam dapat dinyatakan
sebagai alami bergabung dengan cara berikut:
SELECT * FROM employee NATURAL JOIN department;
4.CROSS JOIN
CROSS JOIN mengembalikan produk Cartesian dari baris dari tabel dalam bergabung. Dengan kata lain, hal itu akan menghasilkan baris yang menggabungkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua. [4]
Contoh eksplisit bergabung:
SELECT * FROM employee CROSS JOIN department;
5.LEFT OUTER JOIN
Hasil dari kiri luar bergabung (atau hanya kiri bergabung) untuk tabel A dan B selalu berisi semua catatan dari tabel "kiri" (A), bahkan jika bergabung-kondisi tidak menemukan catatan yang cocok dalam tabel "benar" (B). Ini berarti bahwa jika klausa ON cocok 0 (nol) catatan dalam B (untuk record diberikan dalam A), bergabung masih akan kembali baris dalam hasil (untuk catatan itu)-tetapi dengan NULL di setiap kolom dari B. outer join kiri mengembalikan semua nilai dari inner join ditambah semua nilai dalam tabel kiri yang tidak cocok dengan tabel kanan. Dari Oracle 9i seterusnya statement JOIN KIRI Outer dapat digunakan serta lama sintaks Oracle (+) .
Sebagai contoh, ini memungkinkan kita untuk menemukan departemen karyawan, namun masih menunjukkan karyawan (s) bahkan ketika mereka belum ditugaskan ke departemen (bertentangan dengan contoh inner-join di atas, di mana karyawan ditugaskan dikeluarkan dari hasil).
Contoh kiri luar bergabung, dengan baris hasil tambahan (dibandingkan dengan inner join) dicetak miring:
Sebagai contoh, ini memungkinkan kita untuk menemukan departemen karyawan, namun masih menunjukkan karyawan (s) bahkan ketika mereka belum ditugaskan ke departemen (bertentangan dengan contoh inner-join di atas, di mana karyawan ditugaskan dikeluarkan dari hasil).
Contoh kiri luar bergabung, dengan baris hasil tambahan (dibandingkan dengan inner join) dicetak miring:
SELECT * FROM employee LEFT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
6.RIGHT OUTER JOIN
Sebuah luar hak bergabung (atau kanan bergabung) mirip kiri luar bergabung, kecuali dengan
perlakuan terhadap tabel terbalik. Setiap baris dari tabel "benar" (B) akan muncul dalam
tabel bergabung setidaknya sekali. Jika tidak ada baris yang cocok dari tabel "kiri" (A) ada,
NULL akan muncul dalam kolom dari A bagi mereka yang tidak memiliki catatan pertandingan di B.
Sebuah outer join yang tepat mengembalikan semua nilai dari tabel kanan dan nilai-nilai
cocok dari tabel kiri (NULL dalam kasus tidak ada predikat bergabung pencocokan). Sebagai
contoh, ini memungkinkan kita untuk menemukan setiap karyawan dan departemen nya, namun
masih menunjukkan departemen yang tidak memiliki karyawan. Di bawah ini adalah contoh dari outer join yang tepat, dengan baris hasil tambahan dicetak
miring:
SELECT * FROM employee RIGHT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
7.FULL OUTER JOIN
Secara konseptual, sebuah outer join penuh menggabungkan efek dari penerapan luar baik kiri dan kanan bergabung. Dimana
catatan dalam tabel LENGKAP bergabung OUTER tidak cocok, set hasil akan
memiliki nilai NULL untuk setiap kolom tabel yang tidak memiliki baris
yang cocok. Bagi
mereka yang melakukan catatan pertandingan, satu baris akan diproduksi
dalam hasil set (berisi field diisi dari kedua tabel).
Sebagai
contoh, ini memungkinkan kita untuk melihat setiap karyawan yang berada
dalam departemen dan masing-masing departemen yang memiliki karyawan,
tetapi juga melihat masing-masing karyawan yang bukan merupakan bagian
dari departemen dan masing-masing departemen yang tidak memiliki
karyawan.
Contoh penuh outer join:
SELECT * FROM employee FULL OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
Langganan:
Postingan (Atom)