"ALJABAR
RELATIONAL"
UNION (U)
UNION (Gabungan) pada prinsipnya bertujuan untuk menggabungkan dua
query atau lebih menjadi satu kesatuan query.
Syarat :
Kedua query atau sub query yang
akan digabung harus mempunyai domain kolom yang sama.
Query
SELECT field-1,…, field-n, aggregate_function
FROM tabel
[WHERE] [kriteria]
[GROUP BY] [field-1,…,field-n]
UNION
SELECT field-1,…, field-n, aggregate_function
FROM tabel
[WHERE] [kriteria]
[GROUP BY] [field-1,…,field-n]
Contoh :
Query 1
SELECT field-1,…, field-n, aggregate_function
FROM tabel
[WHERE] [kriteria]
[GROUP BY] [field-1,…,field-n]
UNION
SELECT field-1,…, field-n, aggregate_function
FROM tabel
[WHERE] [kriteria]
[GROUP BY] [field-1,…,field-n]
Contoh :
Query 1
Tampilkan kode
pelanggan, berapa kali pembelian dan total pembelian per-pelanggan.
Kode_pelanggan yang ditampilkan adalah ‘J-0001’
SELECT
Kode_Pelanggan,
COUNT
(JUMLAH_PEMBELIAN) as CACAH_BELI
SUM (JUMLAH_PEMBELIAN)
as TOTAL_BELI
FROM pasok
WHERE
Kode_supplier = ‘J-0001’
GROUP BY Kode_Pelanggan
|
Query 2
Tampilkan kode
pelanggan, berapa kali pembelian dan total pembelian per pelanggan.
Kode_pelanggan yang ditampilkan adalah ‘J-0002’
SELECT
Kode_Pelanggan,
COUNT(JUMLAH_PEMBELIAN)
as CACAH_BELI
SUM (JUMLAH_PEMBELIAN)
as TOTAL_BELI
FROM pasok
WHERE
Kode_supplier = ‘J-0002’
GROUP BY Kode_Pelanggan
|
Union Query1 &
Query2
Tampilkan kode
pelanggan, berapa kali pembelian dan total pembelian per pelanggan.
Kode_pelanggan yang ditampilkan adalah ‘J-0001 dan J-0002’.
SELECT
Kode_Pelanggan,
COUNT
(JUMLAH_PEMBELIAN) as CACAH_BELI
SUM (JUMLAH_PEMBELIAN)
as TOTAL_BELI
FROM pasok
WHERE
Kode_supplier = ‘J-0001’
GROUP
BY Kode_Pelanggan
UNION
SELECT
Kode_Pelanggan,
COUNT
(JUMLAH_PEMBELIAN) as CACAH_BELI
SUM (JUMLAH_PEMBELIAN)
as TOTAL_BELI
FROM pasok
WHERE
Kode_supplier = ‘J-0002’
GROUP BY Kode_Pelanggan
|
Contoh Sederhana Union
dalam bentuk tabel :
Union akan
menggabungkan kedua tabel menjadi satu, jika ada kesamaan record dari kedua
tabel maka hanya akan ditampilkan satu saja.
SELECT
* FROM MHS
UNION
SELECT
* FROM MHS2;
INTERSECTION
INTERSECTION
(Perpotongan). Intersection akan menggabungkan kedua tabel
menjadi satu, record yang ditampilkan hanya record yang sama dari kedua
tabel. Yang menjadi acuan adalah tabel pertama.
Syarat :
Kedua query atau sub query yang akan digabung harus mempunyai domain kolom yang sama.
Kedua query atau sub query yang akan digabung harus mempunyai domain kolom yang sama.
Query
SELECT field-1,…, field-n, aggregate_function
FROM
tabel
[WHERE]
[kriteria]
[GROUP
BY] [field-1,…,field-n]
INTERSECT
SELECT
field-1,…, field-n, aggregate_function
FROM
tabel
[WHERE]
[kriteria]
[GROUP BY] [field-1,…,field-n]
|
Contoh:
Query 1
Tampilkan kode pelanggan, berapa kali pembelian dan total pembelian per-pelanggan. Kode_pelanggan yang ditampilkan adalah ‘J-0001’
Query 1
Tampilkan kode pelanggan, berapa kali pembelian dan total pembelian per-pelanggan. Kode_pelanggan yang ditampilkan adalah ‘J-0001’
SELECT
Kode_Pelanggan,
COUNT
(JUMLAH_PEMBELIAN) as CACAH_BELI
SUM (JUMLAH_PEMBELIAN)
as TOTAL_BELI
FROM pasok
WHERE
Kode_supplier = ‘J-0001’
GROUP BY Kode_Pelanggan
|
Query 2
Tampilkan kode
pelanggan, berapa kali pembelian dan total pembelian per pelanggan.
Kode_pelanggan yang ditampilkan adalah ‘J-0002’
SELECT
Kode_Pelanggan,
COUNT(JUMLAH_PEMBELIAN)
as CACAH_BELI
SUM (JUMLAH_PEMBELIAN)
as TOTAL_BELI
FROM pasok
WHERE
Kode_supplier = ‘J-0002’
GROUP BY Kode_Pelanggan
|
Intersection Query1
& Query2
Tampilkan kode
pelanggan, berapa kali pembelian dan total pembelian per pelanggan.
Kode_pelanggan yang ditampilkan adalah ‘J-0001 dan J-0002’
SELECT
Kode_Pelanggan,
COUNT
(JUMLAH_PEMBELIAN) as CACAH_BELI
SUM (JUMLAH_PEMBELIAN)
as TOTAL_BELI
FROM pasok
WHERE
Kode_supplier = ‘J-0001’
GROUP
BY Kode_Pelanggan
INTERSECT
SELECT
Kode_Pelanggan,
COUNT
(JUMLAH_PEMBELIAN) as CACAH_BELI
SUM (JUMLAH_PEMBELIAN)
as TOTAL_BELI
FROM pasok
WHERE
Kode_supplier = ‘J-0002’
GROUP BY Kode_Pelanggan
|
Contoh Sederhana
intersection dalam bentuk tabel :
SELECT
* FROM MHS
INTERSECT
SELECT
* FROM MHS2;
SET DIFFERENCE (-)
Set Difference digunakan untuk mengambil data yang berbeda
dalam dua tabel yang sama
Syarat :
Kedua query atau sub query yang akan digabung harus mempunyai domain kolom yang sama.
Contoh Sederhana set difference dalam bentuk tabel :
Syarat :
Kedua query atau sub query yang akan digabung harus mempunyai domain kolom yang sama.
Contoh Sederhana set difference dalam bentuk tabel :
Set Difference akan menggabungkan kedua tabel menjadi satu, record yang ditampilkan hanya record yang berbeda dari tabel pertama dengan tabel kedua.
SELECT * FROM MHS
MINUS
SELECT * FROM MHS2;
CROSS JOIN
Cross join akan menggabungkan kedua tabel. Masing masing record dari tabel
pertama akan di gabungkan dengan semua record di tabel kedua.
Contoh Sederhana cross
join dalam bentuk tabel :
SELECT *
FROM MHS CROSS JOIN NILAI;
NATURAL JOIN
Natural join akan menggabungkan kedua tabel. Record di tabel pertama akan
digabungkan dengan record di tabel kedua jika memiliki Key yang sama.
Contoh Sederhana natural join dalam bentuk
tabel :
SELECT *
FROM MHS NATURAL JOIN NILAI;
PROYEKSI / DISTINCT
Distinct digunakan
untuk menghilangkan nilai ganda. Jadi nilai yang sama dan diulang-ulang akan
dijadikan nilai tunggal atau satu nilai saja.
SELECT
DISTINCT field-1,…, field-n, aggregate_function
FROM tabel
WHERE
[kriteria]
GROUP BY [field-1,…,field-n]
|
Tampilkan jumlah
pembelian berdasarkan kode barang dan tanggal pembelian
Perhatikan !
Sebelum ada perintah distinct :
SELECT
Kode_Barang, Tanggal_Pembelian, Jumlah Pembelian
FROM Pembelian
GROUP BY Kode_Barang, Tanggal_Pembelian
|
Setelah ada perintah distinct :
SELECT
DISTINCT Kode_Barang, Tanggal_Pembelian, Jumlah Pembelian
FROM Pembelian
GROUP BY Kode_Barang, Tanggal_Pembelian
|
JOIN
Join/Inner join/Normal Join/Equal Join bertujuan untuk mencari kesamaan data antara
tabel yang satu dengan tabel yang lain.
Data yang sama
tersebut akan ditampilkan setelah terjadi operasi join ini.
SELECT
tabel-1.field-1,…, tabel-1.field-n,
tabel-2.field-1,…,
tabel-2.field-n,
tabel-n.field-1,…,
tabel-n.field-n,
FROM
tabel.1,…,tabel-2,…,tabel-n
WHERE
tabel-1.field_PK = tabel-2.field_PK AND
tabel.2.field_PK = tabel-n.field_PK
|
Tampilkan nama barang, tanggal berapa terjadi pembelian dan
berapa jumlah pembelian barang
SELECT
barang.NAMA_BARANG,pembelian.TGL_PEMBELIAN,
pembelian.JUMLAH_PEMBELIAN
FROM barang,
pembelian
WHERE
barang.KODE_BARANG=pembelian.KODE_BARANG
Menggunakan
sintak join :
SELECT
barang.NAMA_BARANG,pembelian.TGL_PEMBELIAN,
pembelian.JUMLAH_PEMBELIAN
FROM barang JOIN pembelian
ON barang.KODE_BARANG=pembelian.KODE_BARANG
|
LATIHAN ALJABAR RELATIONAL (TUGAS 15 DESEMBER 2015)
1. UNION
a). Tampilkan NIM, berapa kali nilai yang muncul dan total nilai per
mahasiswa. NIM yang ditampilkan adalah ‘201381001’
b). Tampilkan NIM, berapa kali nilai yang
muncul dan total nilai per mahasiswa. NIM yang ditampilkan adalah ‘201381005’
c). Dengan UNION Tampilkan NIM, berapa kali
nilai yang muncul dan total nilai per mahasiswa. NIM yang ditampilkan adalah
‘201381002’ dan ‘201381005’
2.
DISTINCT
Tampilkan nilai berdasarkan kode mata kuliah,
dengan menghilangkan data yang bernilai ganda
3. JOINT
a). Dengan menggunakan sintax joint tampilkan nama matakuliah,
SKS, dan nilai
b). Tampilkan nama mahasiswa, kota dan nilai
c). Tampilkan nama mata kuliah, nama
mahasiswa,dan nilai
Sumber :
Tidak ada komentar:
Posting Komentar