Assalamualainkum wr wb
QUERY
Pilih Menu Create
Pilih Query Design
Close Jendela Show Tables
Pada View pilih SQL View
Query Design
Terdapat 3 pilihan pada toolbars View, yaitu :
1. Design View
untuk menampilkan desain tabel query
2. Datasheet View
untuk menampilkan data hasil query
3. SQL View
untuk membuat query dengan script SQL
Pada bagian ini, jika kita sudah membuat
desain query menggunakan design view, kita
bisa melihat langsung script SQLnya pada SQL
View.
Membuat Query menggunakan
SQL
Query adalah proses penggabungan field dari beberapa tabel yang saling ber-relasi dalam satu database. Relasi dalam database ada banyak macamnya.
Copy Table (Perintah untuk membuat duplikat tabel) Perintah :
Contoh : copy tabel mahasiswa menjadi tabel mhs
SELECT * into mhs FROM mahasiswa; Select * into nama_table_baru from
Ekspresi
Membuat atribut tambahan pada tampilan query. Dapat berupa pengolahan operator.Ekspresi as nm_inisial ; Perintah :
Contoh : Relasi
• Perintah untuk menggabungkan field dari beberapa tabel yang saling berrelasi. Sebelum menggabungkan kita harus menentukan relasi nya terlebih dahulu Relasi pada tabel terbagi 3 jenis :
– Inner Join
Menggabungkan setiap record dari dua table atau lebih yang memiliki field tertentu yang sama.
– Outer Join
Merelasikan tabel satu arah, sehingga memungkinkan ada data yang NULL (kosong) di satu sisi.
Ekspresi as nm_inisial ; Harga * jumlah as total ;
RELASI
Inner Join
Proses merelasikan field dari beberapa tabel yang memiliki field yang sama, dan menampilkan data yang equal, isi
record dari kedua tabel saling menyeimbangkan. 1. Inner join 2 tabel (One to One)
Menggabungkan setiap record dari dua table yang memiliki field tertentu yang sama.
Bentuk Umum :
Select nm_table.nm_field,nm_table.nm_field from tabel_pertama inner join tabel_kedua on
Inner join 2 tabel (One to One)
Contoh : munculkan field : nmkaryawan,nofaktur,tglfaktur dari tabel karyawan dan penjualan. Dan tentukan
relasinya.
Sintaks SQL :
SELECT karyawan.nmkaryawan, penjualan.nofaktur, penjualan.tglfaktur
FROM karyawan INNER JOIN penjualan ON karyawan.nik=penjualan.nik;
Field Asal Tabel
nmkaryawan karyawan
nofaktur penjualan
2. Inner join 3 tabel (One to Many)
Menggabungkan setiap record dari tiga table atau lebih yang memiliki field tertentu yang sama.
Bentuk Umum :
Select nm_table.nm_field,nm_table.nm_field from tabel_pertama1 inner join ( tabel_pertama2 inner join tabel_kedua on
table_pertama2.nm_field = tabel_kedua.nm_field) on tabel_pertama1.nm_field = tabel_kedua.nm_field ;
Inner join 3 tabel (One to Many)
Contoh : munculkan field tglfaktur, nmbarang, harga, jumbel, total dgn ekspresi (total = harga x jumbel).
Sintaks SQL :
SELECT penjualan.tglfaktur, barang.nmbarang,
barang.harga, detail_penjualan.jumbel, harga*jumbel as total
FROM penjualan INNER JOIN (barang INNER JOIN detail_penjualan ON barang.kdbarang =
detail_penjualan.kdbarang) ON penjualan.nofaktur=
detail_penjualan.nofaktur;
Field Asal Tabel
tglfaktur penjualan
nmbarang barang
harga barang
jumbel detail_penjualan
total Ekspresi
Hasilnya :
Outer Join
Merelasikan tabel satu arah, sehingga memungkinkan ada data yang NULL (kosong) di satu sisi. Outer Join terdiri dari Left Join dan Right Join.
1. Left Join
Left Join merelasikan tabel dengan bentuk relasi tabel yang pertama akan dimunculkan semua datanya.
Bentuk Umum :
Select nm_table.nm_field,nm_table.nm_field from tabel_pertama left join tabel_kedua on
Contoh : tampilkan field nofaktur, nmkaryawan
dengan relasi Left Join.
Sintaks :
SELECT
penjualan.nofaktur,karyawan.nmkaryawan
FROM karyawan LEFT JOIN penjualan
ON karyawan.nik = penjualan.nik;
Field Asal Tabel
nofaktur penjualan
nmkaryawan karyawan
Left Join
Hasilnya :
Ket : data pada tabel pertama (karyawan)
dimunculkan semua, walaupun tidak ada
datanya pada tabel kedua (penjualan)
Outer Join
2. Right JoinRight Join merelasikan tabel dengan bentuk relasi tabel yang kedua akan dimunculkan semua datanya.
Bentuk Umum :
Select nm_table.nm_field,nm_table.nm_field from tabel_pertama right join tabel_kedua on
Contoh : tampilkan field nofaktur,
nmkaryawan dengan relasi Right Join.
Sintaks :
Field Asal Tabel
nofaktur penjualan
nmkaryawan karyawan
Tampilkan dgn relasi Right Join
SELECT penjualan.nofaktur,karyawan.nmkaryawan FROM karyawan RIGHT JOIN penjualan
Right Join
Hasilnya :
Ket : data pada tabel kedua (penjualan)
dimunculkan semua dan tabel pertama
(karyawan) menyesuaikan diri pada tabel
kedua (penjualan).
FUNGSI IIF
Pernyataan if mempunyai pengertian “Jika kondisi bernilai benar maka
perintah akan dikerjakan, dan jika tidak memenuhi kondisi/syarat maka perintah akan diabaikan”
Rumus If
Untuk menyebutkan syarat biasanya digunakan operator logika dan relasi.
Contoh Soal :
1) Jika total >= 8000, maka bonus Payung
Selain itu bonus Tidak Dapat
Sintaks :
iif(total>=8000,"Payung“,"Tidak Dapat“) AS bonus
2) Jika total >= 8000, maka bonus Payung
Jika total >= 5000, maka bonus Gelas Selain itu bonus Tidak Dapat
Sintaks :
iif(total>=8000,"Payung",iif(total>=5000,"Gelas","Tidak Dapat")) AS bonus
3) Jika anggota=“Member”, maka potongan=10% dari total
Selain itu tidak dapat potongan
Sintaks :
iif(anggota=“Member”,0.1*total,0) AS potongan
4) Jika lamapinjam >=10, maka denda=5% dari hargasewa
Jika lamapinjam >5, maka denda=2% dari hargasewa Selain itu tidak dapat denda
Sintaks :
iif(lamapinjam>=10,0.05*hargasewa,
iif(lamapinjam>5,0.02*hargasewa,0) ) AS denda
5) Jika jabatan=“Direktur”, maka gaji= Rp. 7.000.000
Jika jabatan =“Manager”, maka gaji= Rp. 5.000.000 Jika jabatan =“Staff”, maka gaji= Rp.3.000.000
Selain itu gaji = Rp. 2.000.000
Sintaks :
iif(jabatan=“Direktur”,7000000, iif(jabatan=“Manager”,5000000,
Membuat Query menggunakan
SQL Lanjutan
Contoh :
1) Menampilkan seluruh record yang ada pada Tabel barang
Sintaks SQL : SELECT * FROM barang;
(perintah SELECT * digunakan untuk menapilkan seluruh data pada tabel sedangkan FROM barang digunakan untuk menerangkan data dari tabel mana yang akan di pakai atau ditampilkan).
Klik RUN untuk menjalankan Hasilnya :
2) Menampilkan kode barang dan nama barang yang ada pada Tabel barang dengan syarat kode barang “B003”
Sintaks SQL : SELECT Barang.kdbarang, Barang.nmbarang FROM Barang WHERE Barang.kdbarang="B003";
3) M
Menampilkan data dari Barang dan Detail_Penjualan, dengan Syarat No Faktur = “F0001”
Sintaks SQL :
SELECT barang.kdbarang, barang.nmbarang, barang.harga,
detail_penjualan.nofaktur, detail_penjualan.jumbel FROM barang
INNER JOIN detail_penjualan ON
barang.kdbarang=detail_penjualan.kdbarang WHERE detail_penjualan.nofaktur='F0001';
Tampilkan data penjualan karyawan
dengan NIK 200803618 dengan perintah
SELECT
SELECT penjualan.nofaktur, penjualan.tglfaktur, penjualan.nik, karyawan.nmkaryawan, karyawan.bagian FROM penjualan
INNER JOIN karyawan ON penjualan.nik=karyawan.nik WHERE karyawan.nik='200803618';
LATIHAN QUERY DI MODUL HALAMAN 16
1. Berdasarkan database Koperasi yang telah dibuat, buatlah Query dari tabel Penjualan dan tabel Karyawan menggunakan sintaks SQL pada SQL View di toolbars View.
2. Berdasarkan database Koperasi yang telah dibuat, buatlah Query dari tabel Barang dan tabel Detail_Penjualan menggunakan sintaks SQL pada SQL View di toolbars View.
Total : Harga X Jumbel Diskon
Jika Total > Rp 50.000, maka mendapat diskon 15% dari Total Jika Total > Rp 30.000, maka mendapat diskon 10% dari Total Jika Total > Rp 20.000, maka mendapat diskon 7% dari Total Selain itu mendapat diskon 5% dari Total.
Bonus
Jika membeli barang dengan kode barang B001 maka mendapat bonus 1 Pcs Kopi ABC Susu, selain itu mendapat 1 Pcs permen Kopiko.
Field Asal Tabel
Nofaktur Detail_penjualan Kdbarang Detail_penjualan Nmbarang Barang Satuan Barang Harga Barang Jumbel Detail_penjualan Total Ekspresi Diskon Ekspresi Bonus Ekspresi
Sintaks SQL :
SELECT detail_penjualan.nofaktur, detail_penjualan.kdbarang, barang.nmbarang,
barang.satuan, barang.harga, detail_penjualan.jumbel,
barang.harga * detail_penjualan.jumbel as total,
iif(total>5000,0.15*total,iif(total>3000,0.10*total,iif(total>2000,0.07*total,0.05*to tal))) as diskon,
iif(barang.kdbarang="B001","1 Pcs Kopi ABC Susu","1 Pcs permen Kopiko") as bonus
FROM detail_penjualan INNER JOIN barang ON
detail_penjualan.kdbarang=barang.kdbarang; Hasilnya :