Bahasa pemrograman basis data berbentuk tabel
Perintah SELECT : menampilkan data
Argumen :
SELECT nama_field-1,...,nama_field-n
FROM nama tabel
SELECT nama_tabel.nama_field-1,...,nama_tabel.nama_field-n
FROM nama_tabel
SELECT nama_alias_tabel.nama_field-1,...,nama_alias_tabel.nama_field-n
FROM nama_tabel AS nama_alias_tabel
SELECT nama_field-1 AS nama_alias_field-1,...,nama_field-n AS nama_alias_field-n
FROM nama tabel
Contoh :
SELECT nip, nama, pendidikan
FROM pegawai
SELECT pegawai.nip, pegawai.nama, pegawai.pendidikan
FROM pegawai
SELECT p.nip, p.nama, p.pendidikan
FROM pegawai AS p
SELECT nip AS Nomor_Induk_Pegawai, nama AS Nama_Pegawai, pendidikan
FROM pegawai
Tugas :
Tampilkan Nama_Pegawai, Tanggal_Lahir, Status dan Jumlah_Anak dari semua pegawai
SELECT nama AS nama_pegawai, tanggal_lhr AS tanggal_lahir, status, jm_anak AS jumlah_anak
FROM pegawai
Group by dan Fungsi Agregat
Group by digunakan untuk memilih atau menampilkan sekumpulan data berdasarkan kelompok tertentu
Fungsi Agregat adalah fungsi matematik : Min( ), Max( ), Avg( ), Sum( ) dan Count ( )
- Min ( ) : menampilkan nilai terendah
SELECT nama_field-1,..., nama_field-n, Min(nama_field)
FROM nama_tabel
GROUP BY nama_field
Contoh :
SELECT gol, Min(gpo) AS minimal_gaji_pokok
FROM g_pokok
GROUP BY gol
- Max ( ) : menampilkan nilai tertinggi
SELECT nama_field-1,..., nama_field-n, Max(nama_field)
FROM nama_tabel
GROUP BY nama_field
Contoh :
SELECT gol, Max(gpo) AS maximal_gaji_pokok
FROM g_pokok
GROUP BY gol
- Avg ( ) : menampilkan nilai rata-rata
SELECT nama_field-1,..., nama_field-n, Avg(nama_field)
FROM nama_tabel
GROUP BY nama_field
Contoh :
SELECT gol, Avg(gpo) AS rata_rata_gaji_pokok
FROM g_pokok
GROUP BY gol
- Sum ( ) : menampilkan jumlah nilai
SELECT nama_field-1,..., nama_field-n, Sum(nama_field)
FROM nama_tabel
GROUP BY nama_field
Contoh :
SELECT gol, Sum(gpo) AS total_gaji_pokok
FROM g_pokok
GROUP BY gol
- Count ( ) : menampilkan banyaknya cacah data
SELECT nama_field-1,..., nama_field-n, Count(nama_field)
FROM nama_tabel
GROUP BY nama_field
Contoh :
SELECT gol, Count(nip) AS banyaknya_pegawai
FROM pegawai
GROUP BY gol
Pengurutan data (Order By) berdasarkan field tertentu
Argumen :
SELECT nama_field-1,..., nama_field-n
FROM nama_tabel
ORDER BY nama_field ASC/DESC
Contoh :
SELECT nm_jabatan, tj_jabatan
FROM jabatan
ORDER BY tj_jabatan
Menyeleksi Data
· Kriteria Having
Argumen :
SELECT nama_field-1,..., nama_field-n
FROM nama_tabel
GROUP BY nama_field-1, …, nama_field-n
HAVING fungsi kriteria_agregat
Contoh :
SELECT gol AS golongan, max(gpo) AS maximum_gaji_pokok
FROM g_pokok
GROUP BY gol
HAVING max(gpo)>1000000
SELECT gol AS golongan, min(gpo) AS maximum_gaji_pokok
FROM g_pokok
GROUP BY gol
HAVING min(gpo)>1000000
· Kriteria Where Comparison
SELECT nama_field-1,..., nama_field-n,
FROM nama_tabel
WHERE criteria
Contoh :
SELECT nm_jabatan, tj_jabatan
FROM jabatan
WHERE tj_jabatan > 500000
· Kriteria Where Between
SELECT nama_field-1,..., nama_field-n,
FROM nama_tabel
WHERE nama_field BETWEEN … AND …
Contoh :
SELECT nip, jam_lembur
FROM lembur
WHERE jam_lembur BETWEEN 20 AND 40
· Kriteria In
SELECT nama_field-1,..., nama_field-n,
FROM nama_tabel
WHERE nama_field IN (…,…,…)
Contoh :
SELECT kd_jabatan, gol, gpo
FROM g_pokok
WHERE gpo IN (600000, 4000000)
· Kriteria Like/Not Like
SELECT nama_field-1,..., nama_field-n,
FROM nama_tabel
WHERE LIKE/NOT LIKE …
Contoh :
SELECT nama, alamat, kota
FROM pegawai
WHERE nama LIKE ‘Su*’
Tugas :
Tampilkan semua jabatan yang mempunyai tunjangan jabatan 400.000, 700.000 dan 1.200.000. Field yang ditampilkan adalah kode_jabatan, golongan dan gaji_pokok
Seleksi lebih dari satu tabel
SELECT nama_tabel.nama_field-1,...,nama_tabel.nama_field-n, fungsi agregat
FROM nama_tabel-1, nama_tabel-n
WHERE criteria
GROUP BY nama_field-1, …, nama_field-n
HAVING criteria fungsi agregat
ORDER BY nama_field
Seleksi lebih dari satu tabel
SELECT nama_tabel.nama_field-1,...,nama_tabel.nama_field-n, fungsi agregat
FROM nama_tabel-1, nama_tabel-n
WHERE criteria
GROUP BY nama_field-1, …, nama_field-n
HAVING criteria fungsi agregat
ORDER BY nama_field
Contoh :
SELECT p.nama, p.pendidikan, j.nm_jabatan, j.tj_jabatan
FROM pegawai AS p, jabatan AS J
WHERE p.kd_jabatan = j.kd_jabatan
Tampilkan data pegawai yaitu nip, nama, status dan tunjangan istri atau suami. Tunjangan istri atau suami hanya diberikan untuk pegawai yang menikah.
SELECT p.nip, p.nama, p.status, iif(p.status = "menikah"; g.tj_istri_suami; 0) AS tunjangan_istri_atau_suami
FROM pegawai AS p, golongan AS g
WHERE p.gol = g.gol
Tampilkan data pegawai yaitu nama, status, tunjangan istri atau suami, jumlah anak, tunjangan tiap anak dan total tunjangan anak. Tunjangan istri atau suami hanya berlaku bagi pegawai yang menikah. Total tunjangan anak adalah jumlah anak dikalikan tunjangan tiap anak.
SELECT p.nama, p.status,iif(p.status="menikah",g.tj_istri_suami,0) AS tunjangan_istri_atau_suami, p.jm_anak AS jumlah_anak, g.tj_anak AS tunjangan_tiap_anak, (p.jm_anak*g.tj_anak) AS total_tunjangan_anak
FROM pegawai AS p, golongan AS g
WHERE p.gol = g.gol
Tidak ada komentar:
Posting Komentar