dml (data manipulation language) dalam sql

Apr 15th, 2009 | Posted by

Data Manipulation Language (DML)

SELECT
Menampilkan sebagian atau seluruh isi dari suatu tabel
Menampilkan kombinasi isi dari beberapa tabel
UPDATE
Mengubah isi satu atau beberapa atribut dari suatu tabel
INSERT
Menambah satu atau beberapa baris nilai baru ke dalam suatu tabel
DELETE
Menghapus sebagian atau seluruh isi dari suatu tabel

1

2

3

SELECT
Bentuk umum perintah select
select [distinct] field(s) from table(s)
[where predicate]
[group by field(s) [having predicate]]
[order by field(s)];

Catatan:
Predicate kondisi yang bisa diberikan

Retrieval Sederhana
Tampilkan nomor anggota yang pernah mengajukan kredit
select noang from bkredit;

Dari hasil query di atas kemungkinan mendapatkan duplikasi data, untuk mendapatkan data tuggal maka query diatas menjadi:
select distinct noang from bkredit;

Tampilkan semua  informasi mengenai seluruh anggota.
select * from anggota;

Retrieval dengan komputasi sederhana
Tampilkan nomor anggota dan jumlah pinjaman dari semua kredit dalam dolar (uang dalam tabel bkredit menggunakan satuan rupiah).
select noang, ‘$’, jmkredit / 10000 from bkredit;

Retrieval dengan Kondisi
Tampilkan nama-nama anggota untuk yang beralamat di Ciledug
select nmang from anggota where alamat = ‘ciledug’;

Retrieval dengan pengurutan
Tampilkan nama-nama anggota untuk yang beralamat di Ciledug diurutkan secara descending
select nmang from anggota where alamat = ‘ciledug’ order by nmang desc;

Klausa where secara spesifik menyatakan kondisi bahwa hasilnya harus sesuai
Berbanding lurus pada predikat selection dari relational algebra.
Hasil pembanding dapat dikombinasi menggunakan konektivitas logika and, or, dan not.
Pembanding dapat dihasilkan dari ekspresi arithmetic.

SQL termasuk between sebagai operator pembanding

Contoh:  Tampilkan nomor angsuran dari relasi angsuran dengan jumlah angsuran antara 500,000 dan 1.000.000.
select noangs from angsuran where jmangs between 500000 and 1000000;

Query dengan melibatkan lebih dari satu tabel
Simple Equijoin

Tampilkan semua kombinasi anggota dan bkredit untuk anggota yang melakukan kredit
select anggota.*, bkredit.* from anggota, bkredit where anggota.cnoang = bkredit.noang;

Join operations mengambil 2 relasi dan mengembalikan hasilnya sebagai sebuah relasi lain.
Operasi tambahan secara typical digunakan sebagai subquery expressions dalam klausa from
Join condition – mendefinisikan tuple dalam 2 relasi match, dan atribut apa yang ada dalam hasil join.
Join type – mendefinisikan bagaimana tuple dalam setiap relasi yang tidak match pada beberapa tuple dalam relasi lain (berdasarkan pada join condition) dihasilkan.

picture1

Tampilkan nomor anggota yang jumlah kreditnya diatas nomor kredit B02.
select distinct A.nokredit from bkredit A, bkredit B where A.jmkredit > B.jmkredit and B.nokredit=‘B02’;

Query yang sama mengunakan klausa  > some
select noang from bkredit where jmkredit > some (select jmkredit from bkredit where nokredit=‘B02’);

Dapatkan noang dari semua bkredit yang mempunyai jmkredit lebih besar dari semua bkredit yang mempunyai nomor anggota A2.
select noang from bkredit where jmkredit > all (select jmkredit from bkredit where noang=‘A2’);

Join Query dengan Kondisi Majemuk
Tampilkan semua kombinasi anggota dan kredit untuk nomor anggota yang ada di kredit dan abaikan kredit yang sudah lunas
select anggota.*, bkredit.* from anggota,bkredit where anggota.noang=bkredit.noang and bkredit.tdlunas=‘Lunas’;

Join antara tiga tabel
Tampilkan nama anggota dan nomor kredit yang mempunyai nomor angsuran ‘T05’
select distinct a.nmang, b.nokredit from anggota a, bkredit b, angsuran c where c.noangs=‘T05’ and c.nokredit=b.nokredit and b.noang=a.noang;

FUNCTION PADA SQL

COUNT : Banyaknya nilai-nilai pada satu kolom
SUM : Jumlah nilai dari satu kolom
AVG : Rata-rata nilai dari satu kolom
MAX : Nilai terbesar yang ada pada satu kolom
MIN : Nilai terkecil yang ada pada satu kolom

Tampilkan banyaknya anggota yang ada
select count (*) from anggota;

Tampilkan banyaknya anggota yang mengajukan kredit
select count (distinct noang) from bkredit;

Tampilkan jumlah kuantitas kredit yang diajukan oleh anggota A1
select sum(jmkredit) from bkredit where noang=‘A1’;

Tampilkan jumlah angsuran dari stiap nomor kredit.
select nokredit, sum (jmangs) from angsuran group by nokrdit;

Tampilkan jumlah angsuran dari setiap nomor kredit dan nomor anggota.
select  bkredit.nokredit,bkredit.noang, count (*) from bkredit, angsuran where bkredit.nokredit = angsuran.nokredit group by bkredit.nokredit, bkredit.noang;

Catt:  Atribut dalam klausa select yang berada diluar aggregate functions  harus  muncul dalam list group by

Tampilkan nama semua anggota dimana rata-rata pinjamanya adalah lebih dari 1000000.
select anggota.nmang, avg (bkredit.jmkredit) from anggota, bkredit where anggota.noang = bkredit.noang group by anggota.nmang having avg (balance) > 1000000;

Catt: predikat dalam klausa having diberikan setelah formasi dari group yang dimiliki oleh predikat dalam klausa where diberikan sebelum pembentukan group

UPDATE

Bentuk Umum UPDATE
update table
set field = expression
[, field = expression]…
[where predicate];

Isi nomor telepon dengan ‘021-1111111’ untuk nomor anggota ‘A6’
update anggota
set telepon = ‘021-1111111’
where noang= ‘A6’;

Beri tanda ‘Lunas’ untuk bukti kredit yang belum lunas
update bkredit
set tdlunas=‘Lunas’
where tdlunas is null;

update dengan subquery
update bkredit
set tdlunas = ‘Lunas’
where ‘Agus’ = (select nmang from anggota
where anggota.noang = bkredit.noang);

DELETE

Bentuk Umum DELETE
DELETE FROM table
[WHERE predicate];

Single – record delete
delete from anggota
where noang = ‘A5’;
Multiple record delete
delete from anggota
where alamat =‘Ciledug’;
Multiple record delete
delete from anggota;

Delete dengan satu Subquery
delete from bkredit where ‘Ciledug’ = (select alamat from anggota where bkredit.noang= anggota.noang);

INSERT

Bentuk Umum INSERT
insert
into table [ (field [,field]…)]
values (constant [,constant]…);
Atau
insert into table [ (field [,field]…)]
select … from … where …;

Single – record Insert
insert into anggota (noang, nmang, alamat)
values (‘A8’, ’Budi’, ‘Jakarta Barang’);

Single – record Insert dengan nama-nama field diabaikan
insert into anggota
values (‘A9’, ‘Bodang’, Banten, ‘021-22222’);

Insert dari data hasil select
insert into anggota  select * from anggota1;

insert into anggota select * from anggota1 where cnoang not in (select noang from anggota);

SELECT-LIKE

Retrieval dengan LIKE
Tampilkan semua Anggota yang namanya dimulai dengan huruf “A”
select anggota.* from anggota where anggota.nmang like ‘A%’;

Tampilkan semua Anggota yang namanya mengandung huruf-huruf “n”
select * from anggota where nmang like ‘%n%’;

SELECT – NULL

Retrieval melibatkan NULL
Tampilkan nomor anggota untuk anggota dengan telepon kosong
select noang from anggota where telepon is null;

Tampilkan nomor anggota untuk anggota dengan telepon tidak kosong
select noang from anggota where telepon is not null;

Kondisi nilai ‘NULL’ tidak boleh dicek dengan =, >, >=, <= atau <>
select noang from anggota  where telepon=null;

SELECT

Retrieval melibatkan satu subquery
Tampilkan nama-nama anggota untuk anggota yang mempunyai pinjaman kredit.
select nmang from anggota where noang in (select noang from bkredit)

SELECT- MULTIPLE SUBQUERY

Retrieval dengan Multiple Subquery
Tampilkan nama-nama anggota untuk anggota yang mempunyai pinjaman dan pinjaman tersebut pernah diangsur.
select nmang from anggota where noang in (select  noang from bkredit where nokredit in (select nokredit from angsuran));

Tampilkan nama-nama anggota untuk anggota yang mempunyai pinjaman dan pinjaman tersebut belum pernah diangsur.
select nmang from anggota where noang in (select  noang from bkredit where nokredit not in (select nokredit from angsuran));

SELECT-EXIST

Query dengan EXIST
Tampilkan nama-nama anggota untuk anggota yang mempunyai pinjaman diatas 1 juta
select nmang from anggota where exist (select * from bkredit where noang = bkredit.noang and bkredit.jmkredit>1000000);

Query dengan NOT EXIST
Kebalikan contoh diatas

SELECT-IN

Subquery dengan operator pembanding selain IN
Tampilkan nama-nama anggota untuk anggota yang mempunyai pinjaman diatas 1 juta
select nmang from anggota where noang = (select noang from bkredit where jmkredit>1000000);

Query dengan NOT IN
Kebalikan contoh diatas

Related posts:

  1. data definition language dalam sql
  2. formal query language
  3. data dan analisis data
  4. penyimpanan data untuk database berorientasi object
  5. konsep dasar basis data
Tags:
No comments yet.
*