Rabu, 22 September 2010

SQL

SQL : Sequential Query Language
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
Argumen :
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
Argumen :
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
Argumen :
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
Argumen :
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
Argumen :
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

Gambar Relasitional Database

Gambar Relasitional Database

Gambar Hierarkhi Database

Gambar Hierarkhi Database

Gambar Network Database

Gambar Network Database

Pengikut