Tutorial SQL
(Structured Query Language)
Structured Query Language (SQL) merupakan bahasa yang banyak digunakan dalam berbagai produk database. SQL dibangun di laboratorium IBM-San Jose California sekitar akhir tahun 70-an. Pertama kali dikembangkan sebagai bahasa di produk database DB2 yang sampai saat ini merupakan produk database andalan IBM. SQL sering di lafalkan dengan “sequel”. Saat ini organisasi standar America (ANSI) menetapkan standar bahasa SQL yaitu ANSI-92 standard.
Masing-masing vendor database memiliki dialeknya sendiri sebagaian besar spesifikasinya mengacu pada standar ANSI tersebut dengan berbagai ekstensi tambahan. SQL Server menggunakan bahasa Transact-SQL dalam produknya, sedangkan Oracle menggunakan PL/SQL. Dalam tutorial ini penulis menggunakan database NorthWind yang merupakan database sampel di SQL Server sebagai sarana latihan. Tools yang digunakan adalah Query Analyzer, yang dapat diakses dari menu Start > Program > Microsoft SQL Server > Query Analyzer. Anda juga dapat menggunakan produk database lain seperti MySQL atau Oracle dengan konsep yang sama.
Dasar SQL
Fungsi paling dasar dari SQL adalah untuk menampilkan data dari database. Data tersebut selanjutnya dapat difilter dan dimanipulasi sesuai kebutuhan aplikasi. Perintah perintah dalam SQL terbagi dalam 2 kelompok besar :
• Data Manipulation Language
• Data Definition Language
Perintah DDL :
1. CREATE DATABASE
2. CREATE TABLE
3. DROP TABLE
4. ALTER TABLE
CREATE DATABASE
à Sintak :
Create Database perpustakaan;
CREATE : Perintah ini digunakan untuk membuat, termasuk diantaranya membuat database baru, tabel baru, view baru, dan kolom.
à Sintak :
CREATE TABLE `tabel_anggota` (`no_anggota` INT UNSIGNED AUTO_INCREMENT, `nama_anggota` VARCHAR (255) DEFAULT ‘0’, `alamat_anggota` VARCHAR (255) DEFAULT ‘0’, PRIMARY KEY(`no_anggota`))
ALTER : Perintah ini digunakan untuk mengubah struktur tabel yang telah dibuat. Pekerjaannya mencakup mengganti nama tabel, menambah kolom, mengubah kolom, menghapus kolom, maupun memberikan atribut pada kolom.
à Sintak : ALTER TABLE `tabel_anggota` ADD `jenis_kelamin` VARCHAR(10)
DROP : Perintah ini digunakan untuk menghapus database dan tabel
à Sintak : Drop table perpustakaan;
Perintah DML :
1. SELECT – mengambil data
2. DELETE – menghapus data
3. INSERT – menyisipkan data
4. UPDATE – mengubah
Menampilkan Data dengan Statement SELECT
Syntax paling dasar untuk mengambil data dari database adalah sebagai berikut :
Buka query Analyser dan pastikan anda telah terkoneksi dengan database Northwind. Tuliskan kode berikut untuk menampilkan data customer yang terdapat di tabel Customers.
à Sintak :
SELECT no_anggota,nama_anggota FROM tabel_anggota;
Untuk menampilkan semua kolom dari suatu table, digunakan tanda asterik (*), dari pada menyebutkan nama kolomnya satu per satu. Tiluskan statement berikut :
à Sintak :
SELECT * FROM table_anggota
Maka akan ditampilkan seluruh kolom di table Customers yang berjumlah 11 kolom.
Meskipun cara ini sangat sederhana untuk menampilkan isi seluruh kolom dari suatu table, anda tetap dianjurkan untuk hanya mengambil data dari kolom yang anda perlukan saja. Pengambilan data yang tidak perlu mengakibatkan penurunan performa aplikasi.
Filter Data dengan WHERE
Perintah SELECT dan FROM diatas hanya membatasi jumlah kolom yang ditampilkan saja, sedangkan jumlah baris yang dihasilkan tidak dibatasi. Anda sering memerlukan hanya baris atau data yang memenuhi kriteria tertentu saja yang ditampilkan.
Klausa WHERE digunakan untuk menentukan kriteria RECORD yang ditampilkan. Syntax umumnya adalah sebagai berikut :
à Sintak :
SELECT * FROM tabel_anggota WHERE no_anggota=2;
Sortir Data dengan ORDER BY
ORDER BY digunakan untuk mengurutkan hasil pencarian data. Secara default data yang ditampilkan disortir berdasarkan urutan masuknya data ke dalam tabel. Dengan menggunakan ORDER BY anda dapat mengurutkan berdasarkan kolom tertentu yang anda kehendaki.
Bila anda perhatikan perintah SQL diatas maka data yang dihasilkan telah diurutkan berdasarkan kolom CustomerID. Anda dapat merubahnya dengan mengurutkan berdasarkan kolom ContactName dengan perintah berikut :
à Sintak :
SELECT no_anggota,nama_anggota,alamat_anggota,jenis_kelamin FROM tabel_anggota ORDER BY nama_anggota;
Perhatikan baik-baik bahwa ORDER BY harus diletakkan setelah WHERE. Apabila urutan tersebut terbalik
maka statement SQL tidak dapat dijalankan dan menghasilkan pesan error berikut :
Server: Msg 156, Level 15, State 1, Line 4
Incorrect syntax near the keyword ‘WHERE’.
Melakukan Perhitungan
Selain mengambil data dari database anda dapat juga melakukan berbagai perhitungan terhadap data tersebut.
Berbagai fungsi yang dapat dilakukan adalah penjumlahan, perkalian, pembagian dan pengurangan. Simbolsimbol
yang digunakan adalah sebagai berikut :
• * Perkalian
• / Pembagian
• + Penjumlahan
• – Pengurangan
Contoh berikut menghitung harga setiap produk yang terjual dengan mengalikan Quantity dan UnitPrice.
à Sintak :
SELECT (denda * lama_pinjam) as Total FROM pengembalian
INSERT
Insert berfungsi untuk memasukkan atau menyimpan data dari luar ke sistem dalam
database. Ada beberapa cara dalam memasukkan data yaitu dengan menyamakan kolom
dan data, menyebutkan kolom, tanpa menyebutkan kolom, memasukkan hanya sebagai
pada kolom.
à Sintak :
INSERT INTO tabel_anggota (no_anggota, nama_anggota, alamat_anggota, jenis_kelamin) VALUES (NULL, ‘marck’, ‘bandung’, ‘laki-laki’)
UPDATE
Update fungsinya untuk memperbaharui data lama menjadi data yang baru, dalam
penggunaanya harus disertai dengan klausa WHERE, Sintaksnya adalah sebagai
berikut.
à Sintak :
UPDATE tabel_anggota SET alamat_anggota= ‘bali’ WHERE no_anggota=1
Before
After
Catatan: Pengunaan perintah UPDATE tanpa klausa WHERE mengakibatkan semua
data dalam satu kolom akan diubah.
DELETE.
Perintah ini digunakan untuk menghapus atau menghilangkan baris data (record) dari
tabel. Sintaksnya sebagai berikut
à Sintak :
DELETE FROM tabel_anggota WHERE no_anggota=2
Before
After
Catatan: Apabila tidak menggunakan klausa WHERE maka akan menyebabkan semua
record dalam tabel terhapus.
INNER JOIN
Penggabungan tabel dalam perintah SQL menggunakan keyword JOIN. Jenis penggabungan tabel yang pertama adalah INNER JOIN. INNER JOIN hanya menampilkan data yang benar-benar terdapat di dalam tabel yang saling dihubungkan.
à Sintak :
SELECT pengembalian.no_anggota,tabel_anggota.nama_anggota,pengembalian.nama_buku FROM tabel_anggota
INNER JOIN pengembalian ON tabel_anggota.no_anggota = pengembalian.no_anggota;
LEFT JOIN dan RIGHT JOIN
Berbeda dengan INNER JOIN yang hanya menampilkan irisan data dari tabel yang digabungkan maka LEFT JOIN akan menampilkan data dari tabel yang disebutkan terlebih dahulu.
à Sintak :
SELECT pengembalian.no_anggota,tabel_anggota.nama_anggota,pengembalian.nama_buku FROM tabel_anggota
RIGHT JOIN pengembalian ON tabel_anggota.no_anggota = pengembalian.no_anggota;
TRIGGER
Trigger adalah prosedur yang dapat berlaku pada 1 tabel yang berelasi dengan tabel lain sehingga jika kita melakukan sebuah aksi seperti insert atau update atau delete maka akan terjadi hal yang sama seperti apa yang kita eventkan pada tabel yang pertama.
CREATE TRIGGER pengurangan AFTER INSERT ON peminjaman FOR
EACH ROW BEGIN UPDATE pengembalian SET lama_pinjam=lama_pinjam-new.lama_hari WHERE
no_anggota=new.no_anggota;
END;
Dalam program php juga bias memakai kode berikut, tanpa memakai trigger
$sql=”INSERT INTO pengeluaran (kode_barang,tanggal,jumlah_barang,no_fak,nama_pemesan)
VALUES
(‘”.$_POST[kode_barang].”‘,'”.$_POST[tanggal].”‘,'”.$_POST[jumlah_barang].”‘,'”.$_POST[no_fak].”‘,'”.$_POST[nama_pemesan].”‘)”;
if (!mysql_query($sql,$con))
{
die(‘Error: ‘ . mysql_error());
}else
{
$sql=”UPDATE pemasukan SET jumlah_barang = jumlah_barang – “.$_POST[jumlah_barang].” WHERE kode_barang='”.$_POST[kode_barang].”‘”;




