pengantar sql
DESCRIPTION
E-book ini berisi tutorial perintah SQL , wajib bagi yang masih pemula di bidang database programmingTRANSCRIPT
Mudah Belajar SQL
Langkah Awal menguasai bahasa SQL
Oleh :David Kurniawan
1
Pengantar SQL
Sejarah dan Tujuan mempelajari SQL Menurut yang tertulis di wikipedia, Standarisasi SQL dimulai pada tahun 1986,
ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut
dengan SQL86. Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian
diperbaiki lagi pada tahun 1992. Versi terakhir dikenal dengan SQL92. Pada tahun 1999
dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan
implementasi mereferensi pada SQL92.
SQL merupakan bahasa standar yang digunakan untuk melakukan manipulasi
database relational maka penting artinya bagi siapapun yang mempelajari pemrograman
database mengerti tentang SQL, tidak peduli apakah anda bekerja dengan SQL Server
Familiy, MtSql, Postgre SQL, dan DBMS lain. Bahasa SQL tetap menjadi pedoman
utama meskipun masing-masing DBMS memiliki “dialeknya” masing-masing.
Dengan menguasai bahasa SQL, berarti anda sudah siap untuk membuat aplikasi
database dengan variasi DBMS yang tersedia.
Tools
Untuk mempraktekan isi E-book ini , anda bisa menggunakan Tools-Tools SQL yang
tersedia sesuai dengan DBMS yang digunakan.
Seperti : Query Analyzer untuk SQL Server, Heidi SQL untuk MYSQL, Query
di MsAccess, dsb.
Bentuk dasar SQL
Sebelum kita belajr lebih lanjut tentang SQL ada baiknya anda mempersiapkan
4 buah table sebagai berikut:
a. Transaksi Notrans Tgl Waktu Userid
GrandTotal
------------ --------------------------- ------------ -----------
--------- ---------------------
TRK-00000001 2007-03-03 00:00:00.000 4:40:02 PM Ika
54000.0000
TRK-00000002 2007-03-03 00:00:00.000 4:49:21 PM Gafoer
30108000.0000
TRK-00000003 2007-03-06 00:00:00.000 7:16:09 PM Wahyu
15270000.0000
TRK-00000004 2007-03-06 00:00:00.000 7:18:52 PM Ika
54000.0000
TRK-00000005 2007-03-08 00:00:00.000 7:30:35 PM Wahyu
61908000.0000
2
b. DetailJual Notrans KodeBarang Hargajual JML
------------ ---------- --------------------- -----------
TRK-00000002 BRG-01 54000.0000 2
TRK-00000002 BRG-02 15000000.0000 2
TRK-00000003 BRG-01 54000.0000 5
TRK-00000003 BRG-02 15000000.0000 1
TRK-00000003 BRG-01 54000.0000 5
TRK-00000003 BRG-02 15000000.0000 1
TRK-00000004 BRG-01 54000.0000 1
TRK-00000005 BRG-01 54000.0000 2
TRK-00000005 BRG-02 15000000.0000 3
TRK-00000005 BRG-03 1200000.0000 3
TRK-00000005 BRG-26 13200000.0000 1
c. Operator Userid Password
-------------------- ----------------------------------------
Gafoer Gafoer
Ika 123456
Wahyu Cakep
d. Barang Kodebarang Namabarang Jenis Harga Stock
---------- ------------------------- --------------------- ------
BRG-01 KEYBOARD KOMPUTER 54000.0000 23
BRG-02 MONITOR ELEKTRONIK 15000000.0000 20
BRG-03 MOTHERBOARD ELEKTRONIK 1200000.0000 2
BRG-26 INFOCUS ELEKTRONIK 13200000.0000 0
BRG-90 MOTHERBOARD INTEL 3.12 KOMPUTER 750000.0000 36
Rumus DASAR SQL Perintah SELECT SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...]
FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ON
kondisi_penghubung]
[, nama_tabel3 [AS alias3], ...]
[WHERE kondisi]
[ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]]
[GROUP BY nama_field1[, nama_field2, ...]]
[HAVING kondisi_aggregat]
Bagian-bagian utama dalam SQL 1. SELECT
Perintah ini gunakan untuk menampilkan Field yang akan di tampilkan dalam
hasil Query
Contoh : SELECT Barang.namabarang,barang.jenis…..
2. FROM
Merujuk kepada nama Tabel asal dari Field-field yang sudah dituliskan
sebelumnya
Contoh : SELECT Barang.namabarang,barang.jenis FROM Barang
3. INNER |LEFT | RIGHT Join
Menjelaskan metode relasional antar table [table1] dan [table2]
a. INNER : Di tampilkan apabila data di [table1] juga ada di [table2]
3
b. LEFT : Menampilkan seluruh data di [table1] sekalipun di [table2] data
tersebut tidak ada.
c. RIGHT : Menampilkan seluruh data di [table2] sekalipun di [table1] data
tersebut tidak ada.
[table1] sebagai table (one), [table2] sebagai table (many)
Contoh INNER 2 Table: SELECT Transaksi.notrans,detailjual.kodebarang FROM
Transaksi INNER JOIN Detailjual ON Transaksi.notrans=Detailjual.notrans
Hasil : notrans kodebarang
------------ ----------
TRK-00000002 BRG-01
TRK-00000002 BRG-02
TRK-00000003 BRG-01
TRK-00000003 BRG-02
TRK-00000003 BRG-01
TRK-00000003 BRG-02
TRK-00000004 BRG-01
Contoh INNER 3 Table: SELECT
Transaksi.notrans,Transaksi.Tgl,detailjual.kodebarang,barang.namabarang
FROM (Transaksi INNER JOIN detailjual ON
Transaksi.notrans=detailjual.notrans) INNER JOIN Barang
ON barang.kodebarang=detailjual.kodebarang
Hasil : notrans Tgl kodebarang namabarang
------------ --------------------------- ---------- -------------
TRK-00000002 2007-03-03 00:00:00.000 BRG-01 KEYBOARD
TRK-00000002 2007-03-03 00:00:00.000 BRG-02 MONITOR
TRK-00000003 2007-03-06 00:00:00.000 BRG-01 KEYBOARD
TRK-00000003 2007-03-06 00:00:00.000 BRG-02 MONITOR
TRK-00000003 2007-03-06 00:00:00.000 BRG-01 KEYBOARD
TRK-00000003 2007-03-06 00:00:00.000 BRG-02 MONITOR
TRK-00000004 2007-03-06 00:00:00.000 BRG-01 KEYBOARD
TRK-00000005 2007-03-08 00:00:00.000 BRG-01 KEYBOARD
TRK-00000005 2007-03-08 00:00:00.000 BRG-02 MONITOR
TRK-00000005 2007-03-08 00:00:00.000 BRG-03 MOTHERBOARD
TRK-00000005 2007-03-08 00:00:00.000 BRG-26 INFOCUS
Contoh LEFT 2 Table : SELECT Barang.namabarang,detailjual.kodebarang
FROM Barang LEFT JOIN Detailjual ON
Barang.Kodebarang=Detailjual.Kodebarang
Hasil : namabarang kodebarang
------------------------- ----------
KEYBOARD BRG-01
KEYBOARD BRG-01
KEYBOARD BRG-01
4
KEYBOARD BRG-01
KEYBOARD BRG-01
MONITOR BRG-02
MONITOR BRG-02
MONITOR BRG-02
MONITOR BRG-02
MOTHERBOARD BRG-03
INFOCUS BRG-26
MOTHERBOARD INTEL 3.12 NULL
NULL artinya data tidak terdapat di table detailjual
Cobalah menggunakan metode Right, dan perhatikan kenapa hasilnya kosong/
tidak ada data yang ditampilkan?
Jawab :
Hasil Kosong karena tidak ada data di Table detailjual yang berbeda dengan data
di table Barang
4. WHERE
WHERE berlaku untuk melakukan filter-ing data yang ditampilkan
Contoh :
SELECT barang.namabarang,barang.harga FROM
barang WHERE barang.harga > 20000
Hasil : namabarang harga
------------------------- ---------------------
KEYBOARD 54000.0000
MONITOR 15000000.0000
MOTHERBOARD 1200000.0000
INFOCUS 13200000.0000
MOTHERBOARD INTEL 3.12 750000.0000
Selain symbol pembanding seperti “=”, ”>”, ”>=”, ”<”, ”<=” anda juga bisa
menggunakan perintah BETWEEN(antara). Fungsi “AND” dan “OR” juga bisa
digunakan untuk menghubungkan 2 kriteria atau lebih.
Sebagai contoh untuk menampilkan data barang yang memiliki harga antara
750000 sampai dengan 2000000. Bisa menggunakan 2 cara :
a. SELECT barang.namabarang,barang.harga FROM
barang WHERE (barang.harga >= 750000 AND barang.harga
<=2000000)
b. SELECT barang.namabarang,barang.harga FROM
barang WHERE barang.harga BETWEEN 750000 and 2000000
5
Sedangkan untuk pen-filter-an tipe tanggal and bisa menggunakan sama dengan
tipe data string yaitu dengan pemberian tanda petik seperti
SELECT Notrans,Tgl from transaksi WHERE tgl='03-06-2007'
Hasil:
Notrans Tgl
------------ ---------------------------
TRK-00000003 2007-03-06 00:00:00.000
TRK-00000004 2007-03-06 00:00:00.000
5. ORDER BY
Digunakan untuk mengurut data berdasarkan field yang ditentukan, pengurutan
memiliki 2 pilihan yaitu ASC (A-Z) dan DESC(Z-A).
Contoh :
SELECT barang.namabarang,barang.harga FROM BARANG ORDER BY
barang.harga DESC
Hasil : namabarang harga
------------------------- ---------------------
MONITOR 15000000.0000
INFOCUS 13200000.0000
MOTHERBOARD 1200000.0000
MOTHERBOARD INTEL 3.12 750000.0000
KEYBOARD 54000.0000
6. GROUP BY
Digunakan untuk memberikan kunci penghitungan Agregat(Sum,Avg,Count)
Contoh :
SELECT Transaksi.Tgl,Sum(GrandTotal) As TotalPerTgl FROM Transaksi
Group BY Transaksi.Tgl
Susunan Tanggal di T-SQL (SQL Server) – “mm-dd-yyyy”
Anda juga bisa menggunakan
Tgl= „April 15, 1998‟
Atau
Tgl=‟19980415‟ untuk April 15,1998
6
Hasil : Tgl TotalPerTgl
------------------------ ---------------------
2007-03-03 00:00:00.000 30162000.0000
2007-03-06 00:00:00.000 15324000.0000
2007-03-13 00:00:00.000 61908000.0000
7. HAVING
Fungsi Having mirip dengan perintah WHERE yang bemanfaat untuk men-filter
data, Havig di tujukan untuk melakukan filter agregat(SUM,AVG,COUNT)
Contoh :
SELECT Transaksi.Tgl,Sum(GrandTotal) As TotalPerTgl FROM Transaksi
Group BY Transaksi.Tgl Having Sum(GrandTotal) Between 30000000 and
70000000
Hasil : Tgl TotalPerTgl
--------------------------- ---------------------
2007-03-03 00:00:00.000 30162000.0000
2007-03-13 00:00:00.000 61908000.0000
Rumus DASAR SQL yang Lain Selain perintah SELECT yang sering digunakan untuk menampilkan data, SQL juga
memiliki fungsi lain yang berguna untuk memanipulasi data.
1. INSERT INTO
Menembahkan data ke table
Contoh :
INSERT INTO OPERATOR(UserID,Password) VALUES('adi-1','1234')
2. UPDATE
Merubah isi table tambah perintah WHERE untuk memberikan kriteria data yang
bisa di rubah, apabila anda tidak mencantumkan WHERE berarti semua data akan
dirubah.
Contoh :
Update Operator Set Password='a' WHERE UserID=‟adi‟
3. DELETE
Menghapus Data
Contoh :
DELETE barang WHERE stock=0
7
Penutup
Saya berharap tutorial singkat tentang Perintah SQL ini dapat membantu anda untuk
meningkatkan kemampuan. Meskipun tidak di pungkiri bahwa banyak sekali Tools SQL
tersedia untuk mempermudah proses penulisan SQL. Namun dengan memahami hal-hal
penting dalam perintah SQL otomatis anda sudah meningkatkan kemampuan penting
yang harus dimiliki oleh Programming Database.
Akhir Kata, Semoga Tulisan ini Bermanfaat Bagi Anda Sekalian.
David Kurniawan
Profile
David Kurniawan, Lahir di Surabaya pada tanggal 24 Juli 1980,
Disela-sela waktu senggang sebagai Branch Manager sebuah
Lembaga Pendidikan Komputer Wearnes Education Center di
Madiun, aktif menulis seputar Tutorial berkomputer, Internet, dan
Wordpress hasil tulisannya bisa anda lihat di BLOG
http://davidkurniawan.web.id.