Kamis, 07 Agustus 2014

SQL, (DML,DDI & DCL )




http://razzaktheprovider.blogspot.com/

Perintah Dasar SQL

 SQL (Structured Query Language)
Terdapat 3 (dua) jenis perintah SQL, yaitu DDL, DML dan DCL.
1. DDL atau Data Definition Language
DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal inidatabase dan table. Beberapa perintah dasar yang termasuk DDL ini antara lain :
  • CREATE
  • ALTER
  • RENAME
  • DROP
2. DML atau Data Manipulation Language
DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam DML antara lain :
  • SELECT
  • INSERT
  • UPDATE
  • DELETE
3. DCL atau Data Control Language
DCL (bukan BCL) merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :
  • GRANT
  • REVOKE

Membuat, Menampilkan, Membuka dan Menghapus Database

1. Membuat Database
Sintaks umum membuat database baru adalah:
CREATE DATABASE [IF NOT EXISTS] nama_database;
Bentuk perintah di atas akan membuat sebuah database baru dengan nama nama_database. Aturan penamaan sebuah database sama seperti aturan penamaan sebuah variabel, dimana secara umum nama database boleh terdiri dari huruf, angka dan under-score (_). Jika database yang akan dibuat sudah ada, maka akan muncul pesan error. Namun jika ingin otomatis menghapus database yang lama jika sudah ada, aktifkan option IF NOT EXISTS.Setiap kita membuat database baru, maka sebenarnya MySQL akan membuat suatu folder (direktori) sesuai dengan nama databasenya yang ditempatkan secara default di \mysql\data. Di dalam folder tersebut nantinya akan terdapat file-file yang berhubungan dengan tabel dalam database.
Berikut ini contoh perintah untuk membuat database baru dengan nama “mahasiswa” :
CREATE DATABASE mahasiswa;
Jika query di atas berhasil dieksekusi dan database berhasil dibuat, maka akan ditampilkan pesan sebagai berikut :
Query OK, 1 row affected (0.02 sec)
2. Melihat Database
Untuk melihat database yang baru saja dibuat atau yang sudah ada, dapat menggunakan perintah sebagai berikut :
SHOW DATABASES;
Hasil dari perintah di atas akan menampilkan semua database yang sudah ada di MySQL. Berikut ini contoh hasil dari query di atas :
+--------------+
| Database     |
+--------------+
| mahasiswa    |
| mysql        |
| test         |
+--------------+
3 rows in set (0.02 sec)
3. Membuka Database
Sebelum melakukan manipulasi tabel dan record yang berada di dalamnya, kita harus membuka atau mengaktifkan databasenya terlebih dahulu. Untuk membuka database “mahasiswa”, berikut ini querynya :
USE mahasiswa;
Jika perintah atau query di atas berhasil, maka akan ditampilkan pesan sebagai berikut :
Database changed
4. Menghapus Database
Untuk menghapus suatu database, sintaks umumnya adalah sbb :
DROP DATABASE [IF EXISTS] nama_database;
Bentuk perintah di atas akan menghapus database dengan nama nama_database. Jika databasenya ada maka database dan juga seluruh tabel di dalamnya akan dihapus. Jadi berhati-hatilah dengan perintah ini! Jika nama database yang akan dihapus tidak ditemukan, maka akan ditampilkan pesan error. Aktifkan option IF EXISTS untuk memastikan bahwa suatu database benar-benar ada.
Berikut ini contoh perintah untuk menghapus database dengan nama “mahasiswa” :
DROP DATABASE mahasiswa;
-----

Membuat, Mengubah dan Menghapus Table

1. Membuat Table
Bentuk umum perintah SQL untuk membuat tabel baru adalah sbb:
CREATE TABLE nama_tabel (
field1 tipe(panjang),
field2 tipe(panjang),
...
fieldn tipe(panjang),
PRIMARY KEY (field_key)
);
Bentuk umum di atas merupakan bentuk umum pembuatan tabel yang sudah disederhanakan. Penamaan tabel dan field memiliki aturan yang sama dengan penamaan database.
MySQL menyediakan berbagai tipe data dengan spesifikasi dan panjang masing-masing. Tipe data untuk field dalam MySQL diantaranya ditampilkan pada tabel berikut ini :
JENIS TIPETIPEKETERANGAN
NUMERIKTINYINT-128 s/d 127 SIGNED
0 s/d 255 UNSIGNED
SMALLINT-32768 s/d 32767 SIGNED
0 s/d 65535 UNSIGNED.
MEDIUMINT-8388608 s/d 8388607 SIGNED
0 s/d 16777215 UNSIGNED
INT-2147483648 s/d 2147483647 SIGNED
0 s/d 4294967295 UNSIGNED.
BIGINT-9223372036854775808 s/d 9223372036854775807 SIGNED
0 s/d 18446744073709551615 UNSIGNED.
FLOATBilangan pecahan presisi tunggal
DOUBLEBilangan pecahan presisi ganda
DECIMALBilangan dengan desimal



DATE/TIMEDATETanggal dengan format YYYY-MM-DD
DATETIMETanggal dan waktu dengan format :
YYYY-MM-DD HH:MM:SS
TIMESTAMPTanggal dan waktu dengan format :
YYYYMMDDHHMMSS
TIMEWaktu dengan format HH:MM:SS
YEARTahun dengan format YYYY



STRINGCHAR0 – 255 karakter
VARCHAR0 – 255 karakter
TINYTEXTString dengan panjang maksimum 255 karakter
TEXTString dengan panjang maksimum 65535 karakter
BLOBString dengan panjang maksimum 65535 karakter
MEDIUMTEXTString dengan panjang maksimum 16777215 karakter
MEDIUMBLOBString dengan panjang maksimum 16777215 karakter
LONGTEXTString dengan panjang maksimum 4294967295 karakter
LONGBLOBString dengan panjang maksimum 4294967295 karakter



KHUSUSENUMTipe data dengan isi tertentu
SETTipe data dengan isi tertentu
Sebagai contoh, kita akan membuat tabel baru dengan struktur sebagai berikut :
Nama tabel: mhs
NoNama FieldTipePanjang
1nimVarchar10
2namaVarchar30
3tgllahirDate-
4alamatText-
Untuk membuat tabel tersebut di atas, query atau perintah SQL-nya adalah sebagai berikut :
CREATE TABLE mhs (
nim varchar(10) NOT NULL,
nama varchar(30) NOT NULL,
tgllahir date,
alamat text,
PRIMARY KEY(nim)
 );
Jika query untuk membuat tabel di atas berhasil dijalankan, maka akan ditampilkan pesan sebagai berikut :
Query OK, 0 rows affected (0.16 sec)
Pada perintah di atas, beberapa hal yang perlu diperhatikan :
  • CREATE TABLE merupakan perintah dasar dari pembuatan table.
  • mhs merupakan nama tabel yang akan dibuat.
  • Nim, nama, tgllahir dan alamat merupakan nama field
  • Varchar, date dan text merupakan tipe data dari field
  • NOT NULL merupakan option untuk menyatakan bahwa suatu field tidak boleh kosong.
  • PRIMARY KEY merupakan perintah untuk menentukan field mana yang akan dijadikan primary key pada tabel.
  • 10 dan 30 di belakang tipe data merupakan panjang maksimal dari suatu field
  • Untuk tipe data date dan text (dan beberapa tipe data lainnya) panjang karakter maksimalnya tidak perlu ditentukan.
  • Jangan lupa akhiri perintah dengan titik-koma (;)
Selanjutnya untuk melihat tabel mhs sudah benar-benar sudah ada atau belum, ketikkan perintah berikut ini :
SHOW TABLES;
Perintah di atas akan menampilkan seluruh tabel yang sudah ada dalam suatu database. Contoh hasil dari perintah di atas adalah sebagai berikut :
+---------------------+
| Tables_in_mahasiswa |
+---------------------+
| mhs                 |
+---------------------+
1 rows in set (0.01 sec)
Untuk melihat struktur tabel “mhs” secara lebih detail, cobalah perintah atau query sebagai berikut :
DESC mhs;
DESC merupakan singkatan dari DESCRIBE (dalam query bisa ditulis lengkap atau hanya 4 karakter pertama) dan mhs adalah nama tabel yang akan dilihat strukturnya. Dari perintah di atas, akan ditampilkan struktur tabel mhs sebagai berikut :
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| nim      | varchar(10) |      | PRI |         |       |
| nama     | varchar(30) |      |     |         |       |
| tgllahir | date        | YES  |     | NULL    |       |
| alamat   | text        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
Dari struktur tabel mhs yang ditampilkan di atas, dapat diketahui bahwa :
  • Terdapat 4 (empat) field dengan tipe masing-masing.
  • Primary Key dari tabel mhs adalah nim. Lihat kolom Key pada field nim.
  • Untuk field nim dan nama defaultnya tidak boleh kosong. Lihatlah kolom Null dan Default pada field nim dan nama
  • Untuk field tgllahir dan alamat defaultnya boleh kosong. Lihatlah kolom Null dan Default pada field tgllahir dan alamat.

Minggu, 03 Februari 2013


Perintah Dasar SQL

SQL (Structured Query Language)

            Bahasa SQL sangat luas sekali digunakan dan sebagian besar bahasa pemrograman banyak yang mendukung bahasa ini. Anda bisa menggunakan MS SQL keluaran Microsoft (SQL Server), Oracle atau My SQL yang sering digunakan di WEB karena free, juga Microsoft Acces pun dalam mengelola data menggunakan bahasa SQL.
Sedangkan Delphi, VB, Visual Foxpro, dan lain-lain dapat diintegrasikan dengan dengan produk SQL diatas.
Disini saya coba menguraikan perintah-perintah SQL sederhana dengan acuan SQL server produknya Microsoft, tapi My SQL dan lainnya juga pasti mengenali bahasa ini.
Perintah SQL dibentuk dari 4 (empat perintah utama) artinya yang paling sering digunakan yaitu :
1. Select
2. Insert
3. Delete
3. Update
Walaupun masih sangat banyak lagi perintah-perintahnya tapi empat perintah itu yang paling sering digunakan, dan memang kelihatan sederhana tapi sebenarnya satu perintah banyak sekali kombinasinya.
Sebelum kita memulai diharapkan Program SQL Server sudah terinstall di Komputer. Karena kita akan menjalnkan perintah SQL ini lewat Program SQL Server tersebut.
Pertama kita membuat database terlebih dahulu dan membuat database ini bisa dengan perintah CREATE DATABASE, tapi untuk memudahkan sebaiknya kita lewat Enterprise Manager saja yaitu suatu perangkat yang sudah disediakan untuk mengelola seluruh database.
Seperti gambar disamping ini,
Pada bagian Databases kita bisa menggunakan Klik kanan untuk membuat Database yang akan kita gunakan, kemudian pilih New Database, dan isikan nama database yang akan kita gunakan. Misalnya data1.
Setelah itu Klik OK, database anda langsung terbentuk. Cukup mudah bukan?
Cara membuat database ini cukup saat awal saja saja kita gunakan, selanjutnya kita lebih banyak memakai 4 (empat) perintah seperti yang telah saya ceritakan.
Untuk mengetik perintah pun sebenarnya di SQL Server ini telah disediakan sarananya untuk itu, yaitu Query Anlyzer, kalau komputer Anda terinstall dengan baik menu Query Analyzer ini tentu sudah tersedia Windows.
Seperti gambar disamping, tapi jangan lupa mengarahkan databasenya ke data1.
Setelah itu Kita butuh tahap kedua, yaitu membuat tabel didalam database data1 tersebut dengan mengetik perintah Create Table di Area kosong untuk mengetik perintah.
Misalnya kita butuh table dengan field sebagai berikut                          
Kode_brg char(15)
Nama_brg char(50)
Perintahnya
create table tb_brg(kode_brg char(15) primary key, nama_brg char(50) )
Untuk eksekusi perintah diatas harus diblok dulu baru setelah itu tekan tombol CTRL+E.
Maka kita sudah punya table tb_brg.
Sampai disini dulu, tunggu kelanjutannya.

·         Perintah INSERT
·         Pada kesempatan ini saya coba untuk menjelaskan perintah INSERT.
·         Perintah INSERT digunakan untuk menambah data pada tabel. Sebenarnya ada berbagai macam kombinasi dari perintah insert ini.
·         Disini saya coba jelaskan 3 macam model, yang sekiranya cukup bagi kita untuk berkiprah di dunia SQL.
·         A. Model 1.
·         Disini INSERT yang dipakai merupakan perintah standard
·         Misalnya pada tabel tb_brg yang telah kita bikin pada 
·         insert into tb_brg(kode_brg, nama_brg) values(’1001′, ‘Buku’)
·         insert into tb_brg(kode_brg, nama_brg) values(’1002′, ‘Pencil’)
·         insert into tb_brg(kode_brg, nama_brg) values(’1003′, ‘Penggaris’)
·         Jalankan ketiga perintah diatas maka tb_brg akan terisi dari nilai2 yang ada pada values.
·         Untuk dapat melihat hasilnya bisa menjalankan perintah di bawah ini
·         select* from tb_brg
·         maka akan terlihat tabel dibawah ini :
·        
·         B. Model 2.
·         Perintah INSERT disini lebih ringkas, tapi butuh hapal susunan field tabelnya kalau tidak bisa ketukar informasi yang diberikan antara kode_brg dengan nama_brg.
·         Perintah INSERT ini juga bisa dengan model dibawah ini
·         insert into tb_brg values(’1004′, ‘Pulpen’)
·         Perintah seperti ini semua field harus terisi oleh values, tidak boleh tidak.
·         C. Model 3.
·         Perintah ini dikombinasikan dengan SELECT, bisa dengan kriteria yang ingin kita tentukan.
·         Biasanya perintah ini untuk memindah data dari tabel1 ke tabel2
·         Mari kita coba :
·         Buat tabel kedua seperti pada 
·         create table tb_brg2(kode_brg char(15) primary key, nama_brg char(50))
·         maka terbentuk tabel dengan nama tb_brg2, kemudian isi tabel tb_brg2 kita isikan dengan tabel tb_brg dengan kriteria kode_brg >= ’1002′, seperti yang dituliskan dibawah ini :
·         insert into tb_brg2 select* from tb_brg where kode_brg >= ’1002′
·         hasilnya dapat dilihat pakai perintah select* from tb_brg2.
·        
·         Disini terlihat isi data tb_brg2 akan terisi dengan kode_brg >= ’1002′
·         Perintah Model ke-3 ini sangat praktis apabila kita mengelola data dengan jumlah ribuan bahkan jutaan record.
·         Untuk perintah INSERT saya cukupkan sampai disini dulu, nanti akan saya lanjutkan dengan perintah SELECT.
·         Dasar-Dasar SQL-3
·         Perintah SELECT
·         Perintah ini sangat sering sekali dipakai dan paling efektif dalam mengelola (meng Query) Data. Dan apabila dibandingkan dengan bahasa program lain dalam mengelola atau meng Query data perintah SELECT di SQL ini sangat mudah sekali dan sangat efisien dalam melakukan tugas-tugasnya dan juga mempunyai kecepatan yang sangat tinggi sekali. Untuk itulah kenapa SQL dijadikan bahasa standard dalam pemrograman komputer. Jadi sebagian besar mungkin seluruh bahasa pemrograman banyak mengacu kepada bahasa SQL ini, sehingga bahasa-bahasa program selalu menyediakan fasilitas untuk menjalankan perintah-perintah SQL.
·         Perintah SELECT sangat domininan sekali digunakan apabila kita membuat program lewat SQL, dan Perintah ini banyak sekali kombinasi-kombinasinya sehingga butuh banyak pengalaman juga dalam melakukan kombinasi-kombinasi tersebut. Tetapi Programmer yang berpengalaman sangat menyukai Perintah ini, karena sangat membantu sekali dalam pembuatan suatu Aplikasi.
·         Perintah dasar SELECT adalah sebagai berikut
·         SELECT* FROM table_name
·         contoh : SELECT* FROM tb_brg
·         Tanda bintang menyatakan keseluruhan fied yang akan ditampilkan. Tapi ada kalanya kita hanya ingin menampilkan field tertentu saja maka perintahnya menjadi :
·         SELECT kode_brg, nama_brg FROM tb_brg
·         ORDER BY
·         Perintah ini dapat digabungkan dengan perintah SELECT diatas. Fungsinya untuk mengurutkan data berdasarkan nama_field tertentu.
·         Contoh : SELECT kode_brg, nama_brg FROM tb_brg ORDER BY kode_brg
·         dari perintah tersebut Query yang dihasilkan akan urut berdasarkan dengan kode_brg dan urutan dari Kecil ke Besar (ASCENDING).
·         Dan apabila urutan ingin kita balik dari Besar ke Kecil (DESCENDING) maka perintah menjadi
·         SELECT kode_brg, nama_brg FROM tb_brg ORDER BY kode_brg DESC
·         WHERE
·         Perintah ini untuk memberikan syarat data akan ditampilkan.
·         Untuk memudahkan saya dalam memberikan penjelasan baiknya kita memakai DATABASE yang sudah tersedia atau bawaan dari SQL Server.
·         Jalankan perintah USE northwind
·         Perintah USE disini artinya kita menggunakan DATABASE yang bernama nortwind, dan DATABASE ini sudah tersedia di SQL Server. Sekarang coba jalankan perintah berikut :
·         1. SELECT productID, productName, categoryID FROM products
·         2. SELECT productID, productName, categoryID FROM products WHERE categoryID = 2
·         Kita bisa membandingkan langsung antara 1 dan 2, dimana perintah 1 merupakan perintah tanpa bersyarat sehingga seluru data akan ditampilkan. Sedangkan perintah 2 merupakan perintah bersyarat dimana hanya categoryID = 2 saja yang akan ditampilkan.
·         Perintah WHERE operatornya berbeda-beda seperti :
·         1. = : untuk menyatakan sama dengan.
·         2. >= : untuk lebih besar atau sama dengan,
·         3. <= : lebih kecil atau sama dengan.
·         4. <> : tidak samadengan,
·         dan banyak lagi operator-operator yang bisa digunakan yang tidak bisa jelaskan disini dan nantinya akan saya jelas pada session tersendiri saja.
·         INNER JOIN.
·         Perintah ini merupakan untuk merelasikan data antara 2(dua) atau lebih table yang berbeda
·         contoh :
·         1. SELECT* FROM products
·         2. SELECT* FROM categories
·         3. SELECT SELECT a.productID, a.ProductName, b.CategoryName FROM products a inner join categories b
·         ON a.categoryID = b.categoryID
·         Perintah 1 : menampilkan isi products
·         Perintah 2 : menampilkan isi categories
·         Perintah 3 : menampilkan isi dari 2(dua) table yang berbeda yang di relasikan berdasarkan field categoryID. Untuk ‘a’ dan ‘b’ diatas merupakan suatu ALIAS untuk meringkas nama table.
·         Dalam merelasikan table ini ada juga yang menggunakan LEFT JOIN dan RIGHT JOIN yang nantinya juga akan saya jelaskan pada sesion tersendiri saja.
·         Untuk perintah SELECT saya rasa sudah cukup sampai disini, dan pada pembahasan berikutnya kita akan menggunakan DATABASE bawaannya SQL Server saja untuk meringkas pembahasan
·         Disini saya menerangkan bagaimana cara pemakaian UPDATE dalam bentuk perintah SQL.
Perintah UPDATE merupakan suatu perintah untuk mengedit suatu data table di DATABASE dalam bentuk perintah/ script SQL.
Dan perintah ini bisa dilakukan per-record data atau bisa juga sekaligus beberapa record data secara bersamaan. Disini saya menggunakan DATABASE northwind bawaannya SQL Server
·         Coba kita analisa perintah berikut :
·         SELECT orderID, shipRegion FROM orders
·         result :
OrderID shipRegion
10.248,00 NULL
10.249,00 NULL
10.250,00 RJ
10.251,00 NULL
10.252,00 NULL
10.253,00 RJ
10.254,00 NULL
·         Sekarang kita berikan perintah UPDATE
·         UPDATE orders SET shipRegion = ‘JKT’ WHERE orderID = 10248
·         lihat hasil dengan perintah SELECT orderID, shipRegion FROM orders
·         result :
OrderID shipRegion
10.248,00 JKT
10.249,00 NULL
10.250,00 RJ
10.251,00 NULL
10.252,00 NULL
10.253,00 RJ
10.254,00 NULL
·         disini terlihat OrderID no = 10248 kolom shipRegion berubah menjadi ‘JKT’
Sekarang kalau kita diberi suatu kasus begini, bagamana seluruh shipRegion yang bernilai NULL diganti dengan ‘SBY’
Maka perintahnya menjadi
·         UPDATE orders SET shipRegion = ‘SBY’ WHERE shipRegion IS NULL
·         result :
OrderID shipRegion
10.248,00 JKT
10.249,00 SBY
10.250,00 RJ
10.251,00 SBY
10.252,00 SBY
10.253,00 RJ
10.254,00 SBY
·         Disini terlihat nilai shipRegion yang isinya NULL akan berubah menjadi ‘SBY’ semua.
·         Kekuatan dari perintah SELECT dalam bahasa SQL terletak pada kemudahan metodenya dalam membentuk suatu relasi data dari 2 (dua) tabel atau lebih. Ada 3 ( tiga ) perintah utama dalam merelasikan data tersebut, yaitu ;
INNER JOIN, LEFT JOIN, dan RIGHT JOIN. Tapi yang paling sering dipakai adalah INNER JOIN.
Baiklah disini saya coba untuk menerangkan dengan metode konsep himpunan dalam menerangkan relasi data ini.
1. Pemakaian INNER JOIN
Seandainya kita mempunyai 2 ( dua ) himpunan :
·         A = {’1001′, ’1002′, ’1003′, ’1004′, ’1005′}
B = {’1002′, ’1004′, ’1006′, ’1007′}
·         Maka anggota A dan B adalah C = {’1002′, ’1004′}
Dalam bentuk gambar terlihat seperti dibawah ini:
·         Jadi C merupakan irisan dari himpunan A dan B
Dan bentuk perintah SQL menjadi
·         SELECT* FROM A INNER JOIN B ON A.KODE = B.KODE
·         Jadi A dan B dihubungan dengan field yang bernama KODE dimana isi dari kode tersebut merupakan anggota dari suatu himpunan.
·         2. Pemakaian LEFT JOIN
Pemakaian perintah ini memang agak susah dipahami kalau kita tidak bergelut di bidang programming, walaupun agak jarang dipakai tetapi ada kalanya kita harus memakai perintah ini, tujuannya agar semua data utama (A) ditampilkan semua sedangkan data B yang diperlukan atau ditampilkan adalah field-field kedua yang muncul akibat dari relasi tersebut. Akan saya coba terangkan dengan konsep Himpunan.
·         A = {’1001′, ’1002′, ’1003′, ’1004′, ’1005′}
B = {’1002′, ’1004′, ’1006′, ’1007′}
·         Dari 2 ( dua ) himpunan tersebut kalau kita memakai LEFT JOIN hasilnya
C = {’1001′, ’1002′, ’1003′, ’1004′, ’1005′}
·         Dalam bentuk gambar terlihat seperti dibawah ini :
·         Bagian yang diarsir hitam merupakan hasil relasi, dan perintah dalam bentuk SQL sebagai berikut ;
·         SELECT* FROM A LEFT JOIN B ON A.KODE = B.KODE
·         Selintas himpunan A dan himpunan C sama tidak ada bedanya, tetapi kalau dalam bentuk tabel akan terasa bedanya seperti akan saya perlihatkan dibawah ini :
·         Tabel A :
·         kode_brg nama_brg
1001 Buku
1002 Pencil
1003 Penggaris
1004 Pulpen
1005 Penghapus
·         Tabel B :
·         kode_trans kode_brg QTY
T2124 1002 10
T3212 1004 5
T8952 1006 3
T1215 1007 20
·         Apabila kita menggunakan perintah
SELECT A.kode_brg, A.nama_brg, B.kode_trans, B.Qty FROM A LEFT JOIN B ON A.kode_brg = B.kode_brg
·         Maka hasilnya
kode_brg nama_brg kode_trans QTY
1001 Buku Null Null
1002 Pencil T2124 10
1003 Penggaris Null Null
1004 Pulpen T3212 5
1005 Penghapus Null Null
·         3. Pemakaian RIGHT JOIN
Ini adalah kebalikan dari pemakaian LEFT JOIN, Perintah RIGHT JOIN ini hampir-hampir tidak pernah dipakai artinya sangat jarang sekali dipakai. Dan bentuk himpunannya adalah sebagai berikut :
·         A = {’1001′, ’1002′, ’1003′, ’1004′, ’1005′}
B = {’1002′, ’1004′, ’1006′, ’1007′}
·         Dari 2 ( dua ) himpunan tersebut kalau kita memakai RIGHT JOIN hasilnya
C = {’1002′, ’1004′, ’1006′, ’1007′}
·         Dalam bentuk gambar terlihat seperti dibawah ini :
·        
·         Bagian yang diarsir hitam merupakan hasil relasi, dan perintah dalam bentuk SQL sebagai berikut ;
·         SELECT* FROM A RIGHT JOIN B ON A.KODE = B.KODE
·         Apabila kita menggunakan perintah
SELECT A.kode_brg, A.nama_brg, B.kode_trans, B.Qty FROM A RIGHT JOIN B ON A.kode_brg = B.kode_brg
·         kode_brg nama_brg kode_trans QTY
1002 Pencil T2124 10
1004 Pulpen T3212 5
1006 Null T8952 3
1007 Null T1215 20
·         Instalasi MySQL
·         MySQL adalah suatu program aplikasi dibidang database, dan program ini bersifat free atau gratis jadi tidak perlu lisensi untuk memakainya. Walaupun program ini gratisan jangan dikira murahan. Program ini banyak dipakai oleh perusahaan-perusahaan besar didunia cyber. Dan tidak bisa dipungkiri lagi bahwa MySQL merupakan program yang sangat luas pemakainya hingga sampai saat ini. Hal ini terlihat program-program yang berbasis web sebagian besar memanfaatkan sarana MySQL untuk penyimpanan maupun dalam men-query database-nya. Dan sepertinya ada suatu kewajiban bagi orang-orang yang berkecimpung didunia WEB harus menguasai MySQL ini.
·         Dan dalam kesempatan ini saya membuat tulisan bagaimana cara meng-instalasi program MySQL, yang ditujukan bagi yang ingin memulai untuk mendalami bahasa SQL dibawah fasilitas My SQL ini.
·         Berbeda dengan MS.SQL kepunyaan Microsoft kalau kita menginstall program sudah satu paket semua, jadi lebih mudah untuk mempelajarinya. Kelebihan dari MySQL ini kita bisa mendapatkan programnya secara gratis di internet. Tetapi untuk mengelolanya querynya kita harus punya sarana yaitu MySQL Tools yang juga digratiskan. Kalau mau yang lebih bagus lagi memakai versi Enterprise, disini dilengkapi dengan MySQL Query Analyzer, jadi memudahkan kita untuk menganalisa perintah-perintah SQL. Sayangnya versi Enterprise ini kita harus membayar, walaupun begitu kita diberi kesempatan untuk trial selama 30 hari. Atau kalau mau yang lebih extrim lagi kita tidak perlu memakai tools, jadi perintah-perintahnya dilakukan dengan dos prompt. Bagi angkatan-angkatan lama mungkin masih lebih suka dengan fasilitas ini, soalnya masih susah membuang kebiasaan lama.
·         Yang akan saya jelaskan disini hanya cara mendownload dan menginstalasi MySQL dan bagaimana cara mencobanya, apakah MySQL yang kita sudah running atau belum. Karena hal ini biasanya merupakan tahap yang lumayan sulit dan merepotkan bagi pemula. Jadi saya disini menulis untuk memudahkan bagi pemula untuk menjalankan MySQL dan dijadikan jalan pembuka dalam penerapan perintah-perintah SQL.
·         Cara Mendapatkan Download free MySQL :
·         Seperti yang telah saya terangkan diatas MySQL merupakan program free, jadi kita bisa mendapatkannya secara bebas di internet. Silakan berkunjung http://www.mysql.com, akan muncul tampilan seperti ini :
·        
·         Kita bisa memilih download untuk mendapatkan file installer, dan akan muncul tampilan seperti ini :
·        
·         Dari gambar di atas kita bisa memilih versi MySQL 6.0 – Alpha, tampilan berikutnya
·        
·         Pada langkah ini kita bisa memilih MySQL yang mau dijalankan di bawah Operating System apa. Anggap saja Windows, karena kebetulan saya memakai windows.
·        
·         Pada gambar di atas pilih windows ZIP/setup.EXE (x86), tekan tulisan Pick a mirror ( tidak ditunjukan pada gambar di atas ). Tampilan yang akan muncul seperti dibawah ini ;
·        
·         Pada tampilan diatas kita boleh isi login tapi ini tidak wajib, kalau kita ingin langsung klik saja tulisan “No thanks, jus take me …….”, dan tampilan berikutnya ;
·        
·         Setelah muncul gambar diatas pilih Indonesia, klik tulisan HTTP.
·         Tunggu sampai download selesai.
·         Setelah download selesai jangan lupa men-download MySQL Tools caranya sama seperti diatas, Cuma setelah kita meng-klik download cari saja MySQL Tools yang tampilannya seperti dibawah ini ;
·         Download MySQL Tools ;
·        
·         Kalau sudah muncul tampilan seperti diatas klik MySQL GUI Tools, dan tampilan berikutnya ;
·         Pada tampilan ini pilih MySQL Query Browser, tampilan selanjutnya
·        
·         Tunggu sampai selesai proses download.
·         Setelah kita mendapatkan file download baik MySQL maupun MySQL Tool, file tersebut berupa compress-an dalam bentuk zip, jadi sebelum melakukan instalasi harus di extract terlebih dahulu, selanjutnya adalah bagaimana cara menginstall hasil download-an tersebut.
·         Instalasi MySQL
·         Pertama-tama kita harus meng-install MySQL terlebih dahulu, cari file hasil extract dari MySQL nama file-nya Setup. Setelah file tersebut dijalankan akan muncul suatu window kemudian tekan tombol Next, akan muncul tampilan yang berupa pilihan Typical, Complete, Custom. Anda boleh memilih sembarang, tapi dalam hal ini pilih saja Typical. Kemudian tekan tombol Install. Selanjutnya tekan tombol Next, terus tekan Next kembali, dan akan muncul tampilan seperti berikut :
·        
·         Centang pada tulisan Configure the MySQL Server now, kemudian klik tombol Finish. Setelah itu tekan tombol Finish. Dan untuk menghemat waktu dan tempat Anda terus klik saja Next, sampai muncul tampilan berikut
·        
·         Pada Current root password isikan passwords, kalau belum punya password lama kosongkan saja.
·         New root password : disini kita harus isikan password tapi harus diingat baik-baik jangan sampai lupa, kalau perlu dicatat terlebih dahulu
·         Cofirm : isikan password persis sama seperti di atas.
·         Kemudian klik next, muncul gambar berikut :
·        
·         Tekan tombol finish.
·         Tahap instalasi MySQL sudah selesai, berikutnya adalah Instalasi MySQL Tools
·         Instalasi MySQL Tools
·         Untuk tahapan ini lebih mudah. Cari file yang sudah didownload diatas mysql-gui-tools-5.0-r14-win32.msi, kita tinggal jalankan saja file ini dan ikuti terus perintah-perintahnya sampai selesai.
·         Tahap Implementasi :
·         Untuk menjalankannya kita harus lewat menu Start > All Program > My SQL > My SQL Query Browser
·         Tampilan yang akan muncul
·        
·         Stored Connection : boleh diisi dengan nama yang kita inginkan.
·         Server Host harus diisi dengan localhost”,
·         sedangkan username harus diisi dengan “root”,
·         dan password diisi dengan password yang kita bikin waktu menginstalasi MySQL di atas.
·         Default Schema boleh diisi boleh tidak. Kalau kita ingin menuju langsung ke Database yang sudah ada misalnya saja “test” isikan saja sesuai nama databasenya, kalau tidak ditemukan secara otomatis membentuk database sendiri dengan nama yang kita isikan disini.
·         Kalau sampai tahap ini sudah tidak ada error berarti MySQL kita sudah jalan dengan baik, silakan Anda mencoba perintah-perintah SQL ditempat yang telah disediakan di program MySQL Tool Query Browser ini.
Secara default Delphi menggunakan Database bertype Paradox, atau kalau menggunakan database server biasanya menggunakan Interbase. Tapi pada kenyataannya didunia programming terutama di Indonesia kedua database tersebut diatas jarang digunakan. Tapi yang sering digunakan justru SQL Server atau MS. SQL keluaran dari Microsoft. Padahal antara Delphi dan SQL Server bukanlah satu paket, bahkan berbeda Vendor.  Tapi walaupun begitu antara Delphi dan SQL Server tetap memungkinkan untuk saling terkoneksi.  SQL Server digunakan untuk menyimpan Database sedangkan Delphi dapat digunakan untuk membuat suatu tampilan interface ke user, baik itu berupa tampilan entri data maupun tampilan report. Untuk itu diperlukan suatu koneksi antara Program Delphi dan SQL Server. Ada 2 (dua cara) untuk membuat koneksi, yaitu lewat sarana ODBC yang telah disediakan Microsoft Windows. Dan yang kedua kita bisa langsung koneksi dari Delphi ke SQL Server. Tapi yang akan dibahas disini yang lebih ringkas saja, yaitu koneksi langsung. Langkah-langkahnya :
  1. Yakinkan terlebih dahulu bahwa SQL Server Anda dalam keadaan       Running.
  2. Anda harus mengetahui lokasi komputer SQL Server di jalankan atau nama komputernya. Kalau dikomputer Anda sendiri berarti harus memakai nama komputer Anda sendiri (Computer Name).
  3. Anda harus mengetahui username masuk SQL Sever beserta passwordnya. Hal ini mutlak diperlukan untuk masuk ke sistem database tersebut.
Setelah 3 (tiga) langkah tersebut diatas sudah diketahui Anda tinggal membuat settingan di Delphi. Untuk meringkas kata, dalam contoh ini kita menggunakan database default bawaan dari SQL Server yaitu Database yang bernama Pubs. Buka Aplikasi baru pada program Delphi dan letakkan komponen Database di dalam form. Seperti gambar berikut ;   Seperti gambar diatas Anda tinggal double klik (klik dua kali) pada komponen database sehingga muncul gambar berikut ; Untuk pengisian Name terserah Anda, nama inilah yang nantinya digunakan sebagai acuan nama database  Anda di Delphi. Alias Name, dikosongkan saja. Driver Name, pilih MS SQL Untuk Parameter,  klik saja tombol Default, maka akan muncul list parameter default. Yang perlu Anda perhatikan dari parameter tersebut adalah : DATABASE NAME Merupakan suatu nama database yang akan kita koneksikan yang ada di SQL Server, kalau Anda mempunyai database sendiri kasih nama sesuai dengan nama database Anda saja, tapi dalam contoh ini kita menggunakan database Pubs. SERVER NAME Lokasi Database di SQL Server digunakan atau dijalankan, apabila Anda menggunakan jaringan isi parameter ini dengan nama komputernya atau (computer name). Begitu pula dengan dikomputer lokal, isikan saja parameter ini dengan nama komputernya. Tapi nama komputer Anda harus jelas terlebih dahulu, dan jangan ada sepasi. Apabila Computer Name Anda memakai spasi lebih baik diubah terlebih dahulu untuk menghilangkan spasinya. USER NAME Pada saat masuk SQL Server biasanya Anda ditanyai username, jadi Anda isikan saja username tersebut. PASSWORD Parameter ini terletak paling bawah sendiri, digambar tidak kelihatan. Untuk mengisinya gunakan saja password yang Anda bikin pada saat instalasi SQL pertama kali apabila memakai passwordnya, jika tidak ada kosongkan saja passwordnya. Jadi tergantung saat Anda menginstall SQL  pertama kali. Login Prompt dihilangkan centangnya untuk menghindari pertanyaan permintaan username dan password setiap kali koneksi ke SQL Server. Setelah semuanya sudah diatur seperti diatas klik tombol OK. Tapi ini belum selesai, Anda harus mengatur propertis dari Komponen Database. Klik satu kali Komponen Database kemudian tekan tombol F11, maka akan muncul gambar dibawah ini : isikan parameternya seperti diatas, untuk mengetes apakah Anda sudah terhubung dengan Database,  Connected diganti dengan true. Apabila tidak ada error berarti setting Anda sudah sudah berhasil dan kembalikan lagi nila ini false, biarkan didefaultkan false saja. Jika langkah-langkah tersebut diatas sudah berhasil, Anda tinggal memberikan perintah-perintah SQL lewat Komponen Query yang telah disediakan Delphi. Tapi sebelumnya kita pilih terlebih dahulu tabel apa yang ingin kita tampilkan dari database Pubs tadi. Anda bisa masuk lewat Query Analyzer bawaannya SQL Server dan cari tabel mana yang ingin ditampilkan di Delphi. Sebagai contoh  kita ambil saja tabel stores yang ada di database Pubs. Pertama tambahkan komponen Query di form. object inspector untuk Query : DatabaseName : diisi dengan jrdata sesuai setting Anda waktu bikin paramater di komponen Database. SQL :  pada TStrings klik dua kali dan muncul gambar berikut. Kemudian isikan perintah Query pada box tersebut dengan “select* from stores”. Terus tekan OK. Untuk menampilkan hasilnya Anda butuh 2(dua) komponen lagi untuk ditambahkan, yaitu DATASOURCE dan DBGRID. Seperti gambar barikut ini ; Komponen DATASOURCE Parameter yang perlu diisikan di Object Inspector pada komponen ini  Dataset : Query1 sesuai dengan nama komponen Query yang telah diberikan sebelumnya. Komponen DBGRID Parameter yang perlu diisikan pada Object Inspector  DataSource : DataSource1 Berikutnya kita akan coba untuk mengaktifkan apakah perintah Anda sudah terkoneksi dengan SQL Server. Pilih Komponen Query dan pada object Inspector properties pada Active ganti true, apabila dalam komponen Grid muncul suatu daftar berarti perintah Anda sudah benar. Saya kira pembahasan saya untuk koneksi antara Delphi dengan SQL Server saya cukupkan sampai disini saja. Mudah-mudahan bermanfaat bagi para pemakai Delphi pemula yang ingin bermain-main dengan SQL Server lewat Delphi.  
Melanjutkan artikel saya yang berjudul Konsep Himpunan Dalam SQL , disini saya akan melengkapi 2 (perintah) lagi yaitu Full Join dan Cross Join. Perintah ini merupakan salah satu bentuk kombinasi dari beberapa kombinasi dalam merelasikan 2 (tabel) atau lebih. Memang perintah ini sangat jarang dipakai, tapi tidak ada salahnya untuk saya tuliskan disini karena saya sendiri sebenarnya sudah lupa dengan dua perintah ini. Untung ada yang mengingatkan saya lewat komentar di artikel yang telah saya sebutkan di atas. Jadi walaupun nantinya saya lupa lagi masih bisa dibaca di artikel ini, dan mungkin ada pengunjung yang lebih bisa memanfaatkannya.
Full Join :
Apabila Anda punya 2 (dua) table yaitu tabel A dan tabel B.
Tabel A : Berisi nama-nama person.
Kode
Nama
Kota
1001
Udin
Surabaya
1002
Imul
Jakarta
1003
Dede
Jakarta
1004
Vina
Bandung
1005
Tutik
Semarang
Tabel B : Berisi daftar kota.
Kota
Area
Ambon
0911
Surabaya
031
Jakarta
021
Yogyakarta
0274
Solo
0271
Dengan perintah Full Join maka gabungan dari dua tabel tersebut seluruhnya akan ditampilkan, disini kita contohkan field “kota” sebagai kunci penghubung.
SELECT a.kode, a.nama,
a.kota as kota_person, b.kota as daft_kota FROM tabelA a FULL JOIN tabelB b on a.kota=b.kota
ORDER BY kode
Maka tabel yang dihasilkan :
Kode
Nama
Kota_Person
Daft_Kota
Area
null
null
null
Ambon
0911
null
null
null
Yogyakarta
0274
null
null
null
Solo
0271
1001
Udin
Surabaya
Surabaya
031
1002
Imul
Jakarta
Jakarta
021
1003
Dede
Jakarta
Jakarta
021
1004
Vina
Bandung
null
null
1005
Tutik
Semarang
null
null
Hasil tabel tersebut terlihat, untuk kolom kota_person = “Bandung” dan “Semarang” mempunyai daft_kota dan Area yang bernilai “null” (tidak punya nilai). Sebab dua kota tersebut tidak terdaftar di tabel B.
Begitu pula dengan kolom Daft_kota = “Ambon”, “Yogyakarta”, “Solo” mempunyai Kode, nama, kota_person = “null”. Penyebabnya kota-kota tersebut terdaftar didalam tabel B tapi tidak ada dalam tabel A.
Jadi semua sudah jelas bagaimana cara menggunakan FULL JOIN.
CROSS JOIN :
Untuk memahami perintah ini saya berikan 2 (dua) tabel yang sederhana saja sebagai contoh.
Dari tabel diatas cuma saya ringkas saja garis relasinya, sebenarnya diteruskan sampai kode A = ’1005′.
Jadi himpunan yang terbentuk dari CROSS JOIN di atas
hasil := {’1001A’, ’1001B’, ’1001C’, ’1002A’, ’1002B’, ’1002C’, …, ’1005B’, ’1005C’}.
Bentuk perintahnya sebagai berikut :
SELECT kodeA, kodeB FROM tabelA
CROSS JOIN tabelB ORDER BY KodeA
Tabel yang dihasilkan :
KodeA
KodeB
1001
A
1001
B
1001
C
1002
A
1002
B
1002
C
1003
A
1003
B
1003
C
1004
A
1004
B
1004
C
1005
A
1005
B
1005
C
Demikian penjelasan mengenai FULL JOIN dan CROSS JOIN mudah-mudah bermanfaat bagi pembaca.

          Didalam query sebenarnya bisa disisipkan lagi perintah query yang diistilahkan dengan subquery. Statement yang biasanya dipakai SELECT, EXIST dan IN. Untuk memudahkan penjelasan dalam pemakaian perintah tersebut kita akan menggunakan konsep himpunan.
Contohnya himpunan A ={’1001′, ’1002′, ’1003′, ’1004′, ’1005′}
Ada himpunan B = {’1001′, ’1004′, ’1006′}.
Kita ingin suatu data dimana data tersebut terdiri dari himpunan A yang juga bukan merupakan anggota himpunan B
Dari gambar samping terlihat gambar diagram himpunan. Dimana yang berwana hitam merupakan suatu data yang kita cari.
Jawaban dari contoh soal diatas sangat mudah yaitu {’1002′, ’1003′, ’1005′}
Karena jumlah datanya sangat sedikit dan dapat dilihat dengan mata telanjang jadi sangat mudah sekali. Tapi bagaimana kalau kita mempunyai ribuan data atau lebih, baik yang ada di himpunan A maupun di himpunan B. Tentunya kita membutuhkan suatu trik-trik sendiri. Dengan bantuan SQL kita sangat mudah untuk mendapatkan data-data yang kita inginkan. Disinilah fungsi dari subquery berperanan sangat penting sekali.
Anggap saja himpunan A merupakan tabel_A, dan himpunan B merupakan tabel_B. Dimana tabel-tabel tersebut mengandung suatu field kode yang isinya berupa data-data himpunan tersebut.
tabel A
tabel B
Kode
1001
1002
1003
1004
1005
Kode
1001
1004
1006


Kalau dalam perintah SQL
select kode from tabel_A where kode not in(select kode from tabel_B)
maka data yang dihasilkan
Kode
1002
1003
1005
Sampai disini dulu, artikel berikutnya saya akan membahas perintah EXISTS.
Perintah UNION digunakan untuk menggabungkan isi dari 2 (dua) tabel atau lebih. Perintah ini terdiri dari dua jenis, yaitu UNION dan UNION ALL. Seperti biasanya untuk menghasilkan suatu dataset perintah UNION ini harus disisipkan diantara perintah SELECT.
Agar lebih jelas kita ambil contoh sederhana dari sekumpulan data.
tabel_A = {‘1001’, ‘1002’, ‘1003’, ‘1004’, ‘1005’}
tabel_B = {‘1002’,’1005’,’1006’,’1007’}
UNION
Kalau kita ingin menggabungkan dari dua tabel tersebut dengan menggunakan UNION maka akan menghasilkan himpunan data berikut {{‘1001’, ‘1002’, ‘1003’, ‘1004’, ‘1005’, ’1006’,’1007’}
Dalam bentuk diagram himpunan terbentuk sebagai berikut :
Dalam bentuk tabel sebagai berikut
tabel_A

tabel_B

tabel Hasil
Kode

Kode

Kode
1001

1002

1001
1002

1005

1002
1003

1006
UNION
1003
1004

1007

1004
1005



1005




1006




1007
Bentuk perintahnya dalam SQL :
SELECT* FROM tabel_A UNION SELECT* FROM tabel_B
UNION ALL
Berbeda dengan perintah UNION, perintah UNION ALL menggabungkan keseluruhan data walaupun data tersebut mempunyai isi yang sama. Untuk jelasnya kita ambil kembali contoh yang di atas.
tabel_A = {‘1001’, ‘1002’, ‘1003’, ‘1004’, ‘1005’}
tabel_B = {‘1002’,’1005’,’1006’,’1007’}
Kalau kita memakai perintah UNION ALL, data yang dihasilkan {‘1001’, ‘1002’, ‘1003’, ‘1004’, ‘1005’, ‘1002’,’1005’,’1006’,’1007’}. Jadi semua data akan digabung walaupun menghasilkan data ganda seperti kode ’1002′ dan ’1005′ akan ditampilkan 2 (dua) kali.
Bentuk diagram himpunan
Dalam bentuk tabel dapat digambarkan sebagai berikut :
tabel_A

tabel_B

tabel Hasil
Kode

Kode

Kode
1001

1002

1001
1002

1005

1002
1003

1006
UNION ALL
1003
1004

1007

1004
1005



1005




1002




1005




1006




1007
Perintahnya dalam bentuk SQL
SELECT* FROM tabel_A UNION ALL SELECT* FROM tabel_B
Cara Membuat Store Procedure di SQL Server
Membuat STORE PROCEDURE di SQL sangat penting untuk dikuasai terutama bagi ingin mendalami bahasa pemrograman aplikasi yang berkaitan dengan DATABASE (entah itu Delphi, VBasic, VFoxro, bahkan Web Base). Karena didalam STORE PROCEDURE ini kita akan melakukan perhitungan-perhitungan data yang hasilnya berupa dataset langsung dapat kita ambil melalui program aplikasi yang kita bikin.Mungkin Anda pernah mendengar dengan program Client Server. Maksud dari program Client Server adalah kita membuat suatu program yang diletakkan diserver berupa bahasa SQL dimana didalam program tersebut biasanya ditugaskan untuk melakukan perhitungan-perhitungan data dimana hasil akhirnya dapat kita ambil dan ditampilkan lewat program-program aplikasi (seperti Delphi, Visual Basic, Visual Foxpro, dll) yang berhubungan langsung dengan end user. Jadi STORE PROCEDURE tersebut letaknya di Sever, sedangkan program aplikasi yang berhubungan langsung dengan end user letaknya di komputer Client. Untuk itulah diistilahkan dengan program Client Server. Penguasaan SQL wajib hukumnya bagi yang ingin mengembangkan suatu program dengan berbasis DATABASE. Kalau tidak kita akan mendapat suatu kesulitan yang sangat luar biasa dalam mengembangkan suatu program aplikasi. Apalagi bahasa SQL ini sangat welcome sekali terhadap berbagai macam jenis bahasa. Semuanya rata-rata mengenali bahasa ini. Kita kembali ke awal, dengan menggunakan STORE PROCEDURE traffic (lalu lintas) data dijaringan dapat dikurangi, karena perhitungan-perhitungan sudah dilakukan diserver dan program di Client tinggal mengambil hasil akhirnya saja yang akan ditampilkan kepada end user.
Disini saya akan membuat contoh membuat STORE PROCEDURE dengan memakai SQL Server dengan menggunakan fasilitas Query Analyzer.
Untuk memudahkan saya akan berikan contoh kasus sederhana dibawah ini :
Kita mempunyai dua tabel, yang pertama tb_masuk dimana tabel ini berisi quantity barang masuk. Dan yang kedua tabel tb_keluar yang berisi data quantity barang keluar. Sekarang hitung jumlah quantity dengan rumus qty_akhir = qtymasuk-qtykeluar.
tb_masuk

tb_keluar
Kode
Qty
Kode
Qty
1001
50
1002
10
1002
25
1003
11
1001
12
1004
15
1003
15
1006
20
1006
26
1002
5
1004
30
1003
3
1001
25
1001
20
1002
23
1006
2
Pertama kali buka Query Analyzer, dan diharapkan Anda sudah bisa membuat CREATE DATABASE dan CREATE TABLE dengan isinya seperti tabel diatas.
Kemudian pertama-tama bikin perintah seperti dibawah ini
CREATE PROC sp_hitungStok AS
Perintah tersebut di running terlebih dahulu.
Kemudian diedit melalui langkah-langkah berikut :
Klik Object Browser (F8)
muncul gambar seperti diatas, pilih database yang digunakan dan di expand, kemudian pilih folder Store Procedure, disini merupakan daftar dari Store Procedure termasuk Store Procedure yang kita bikin diatas. Cari nama Store Procedure yang telah kita bikin yaitu sp_hitungStok. Kemudian klik kanan dan edit…..
setelah ALTER PROC sp_hitungStok AS sisipkan perintah ini :
create table #tb_hasil(kode char(4), qty float)insert into #tb_hasil
select kode, qty from tb_masuk
insert into #tb_hasil
select kode, -qty from tb_keluar
select kode, sum(qty) from #tb_hasil group by kode order by kode
“create table #tb_hasil(kode char(4), qty float)” merupakan tabel temporary, setelah procedure selesai dijalankan table ini otomatis terhapus.
Setelah perintah disisipkan silakan di running terlebih dahulu procedure ini dengan menekan tombol Ctrl+E.
Setelah itu ditutup tidak apa-apa, atau masuk dalam window lain dengan menekan tombol Ctrl+W, pilih window sebelumnya atau untitled1.
Berikan perintah untuk memanggil procedure yang dibikin tadi dengan perintah berikut :
exec sp_hitungStok
kemudian perintah ini diblok, dan di running dengan Ctrl+E
Untuk lebih jelas hasilnya dalam bentuk grid Anda harus men-setting menu Query-Result in Grid
Anda akan melihat hasilnya :
Tabel hasil tersebut merupakan penjumlahan dari tabel tb_masuk dan tb_keluar.
Store Procedure dengan Parameter
Dengan contoh yang sama kita akan membuat suatu store procedure dengan parameter.
Seperti contoh diatas kita harus melakukan pengeditan dengan mengklik kanan Store Procedure yang kita bikin dan berikan perintah berikut :
ALTER PROC sp_hitungStok @kode char(4) AScreate table #tb_hasil(kode char(4), qty float)
insert into #tb_hasil
select kode, qty from tb_masuk where kode = @kode
insert into #tb_hasil
select kode, -qty from tb_keluar where kode = @kode
select kode, sum(qty)from #tb_hasil group by kode order by kode
Lengkapnya sbb :
Kemudian di running, terus untuk memanggilnya :
exec sp_hitungStok isi_paramater
contoh : exec sp_hitung ’1001′
silakan jalankan, kita akan mendapatkan hasil berikut :
Yang akan tampil hanya kode ’1001′
Anda bisa mencobannya dengan kode lainnya.
Perintah LIKE dalam SQL
Perintah ini sering digunakan bersama-sama dengan perintah SELECT, dan biasanya dimanfaatkan untuk pencarian data. Sesuai dengan artinya LIKE berarti mirip. Jadi yang dicari adalah suatu data yang mirip dengan apa yang kita inginkan.
Ada beberapa kombinasi untuk perintah ini,
Simbol “%”
Simbol ini biasanya digunakan untuk mengabaikan semua string atau zero.
Misalnya kita punya data tabel berikut :
Tabel A
Kode
Nama
1001
Budi Handoko
1002
Budi Salam
2003
Slamet Budiono
2005
Abdul Budiyanto
3006
Guntur Slamet
4007
Budi Guntur
5001
Slamet Raharjo
6003
Guntur Saputra
6004
Dwi Raharjo
Misalkan kita perintahkan begini :
Mencari nama depan :
SELECT* FROM tabel_A WHERE nama LIKE ‘Budi%’
Maka data yang ditampilkan atau dihasilkan adalah semua nama yang mempunyai nama awal “Budi”, seperti tabel yang dihasilkan dibawah ini,
Kode
Nama
1001
Budi Handoko
1002
Budi Salam
4007
Budi Guntur
Mencari nama belakang :
SELECT* FROM tabel_A WHERE nama LIKE ‘%Raharjo’
Perintah diatas ini artinya kita akan menampilkan seluruh nama yang mempunyai nama akhir Raharjo, tidak peduli dengan nama depan.
Maka tabel yang dihasilkan :
Kode
Nama
5001
Slamet Raharjo
6004
Dwi Raharjo
Mencari nama yang mengandung suatu nama yang kita cari :
SELECT* FROM tabel_A WHERE nama LIKE ‘%Budi%’
Perintah diatas merupakan pencarian dengan suatu nama yang mengandung nama “budi” dan data yang dihasilkan :
Kode
Nama
1001
Budi Handoko
1002
Budi Salam
2003
Slamet Budiono
2005
Abdul Budiyanto
4007
Budi Guntur
Create Trigger dalam SQL
Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE.
INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger.
Bentuk dasar perintahnya :
CREATE TRIGGER nama_trigger
ON nama_tabel
FOR INSERT, UPDATE, DELETE
AS
isi statement-statement Anda disini.
GO
Saya akan memberi contoh sederhana untuk mudah memahami bagaimana cara kerja trigger ini.
Misalkan kita punya data di table DaftarSiswa
DaftarSiswa
Kode
Status
1001

1002

1003

Di tabel yang lain kita juga punya tabel Daftar Nilai :
DaftarNilai
Kode
Nilai
Daftar nilai ini belum ada isinya yang nantinya akan kita isi dengan perintah INSERT.
Kolom Status pada tabel DaftarSiswa akan kita isi dengan “Lulus” dan “Tidak Lulus” secara automatis saat kita melakukan INSERT dan UPDATE pada tabel DaftarNilai.
Cara membuat dan mengisi kedua tabel diatas :
CREATE TABLE daftarSiswa (kode char(4), status char(10))
CREATE TABLE daftarnilai (kode char(4), nilai float)
Pada tabel DaftarSiswa diisi dengan perintah berikut :
INSERT INTO daftarSiswa VALUES(’1001′,”)
INSERT INTO daftarSiswa VALUES(’1002′,”)
INSERT INTO daftarSiswa VALUES(’1003′,”)
Setelah semuanya dijalankan di Query Analyzer, berikutnya kita akan membuat suatu trigger di tabel daftarNilai.
CREATE TRIGGER tr_status     
ON daftarnilai
FOR INSERT, UPDATE
AS
DECLARE @kode char(4)
DECLARE @nilai float
SELECT @kode = kode, @nilai = nilai FROM daftarNilai
IF @nilai >= 60
UPDATE daftarSiswa SET status = ‘Lulus’ WHERE kode=@kode
ELSE UPDATE daftarSiswa SET status = ‘Tidak Lulus’ WHERE kode=@kode
go
Untuk menganalisa lihat isi kedua tabel diatas dengan perintah
SELECT* FROM daftarSiswa
SELECT* FROM daftarNilai
Setelah Anda melihat hasilnya kemudian jalankan perintah dibawah ini :
INSERT INTO daftarNilai values(’1001′,70)
INSERT INTO daftarNilai values(’1002′,50)
INSERT INTO daftarNilai values(’1003′,80)
Setelah dijalankan Anda bisa lihat kembali isi tabel daftarSiswa dan daftarNilai.
DaftarSiswa
Kode
Status
1001
Lulus
1002
Tidak Lulus
1003
Lulus
DaftarNilai
Kode
Nilai
1001
70
1002
50
1003
80
Disini terlihat saat kita melakukan perintah INSERT di tabel daftarNilai secara otomatis program trigger melakukan pengisian pada tabel daftarSiwa pada kolom “status”
Cukup sampa
Perintah CASE sering digunakan untuk menampilkan nilai tertentu dari beberapa barisan data dengan syarat-syarat atau kondisi yang kita berikan.
Kalau kita belajar bahasa pemrograman tentu kita kenal dengan perintah IF Condition, fungsinya CASE hampir sama. Bedanya perintah CASE digunakan untuk beberapa kondisi sekaligus, dan didalam SQL perintah CASE tidak bisa berdiri sendiri melainkan harus disisipkan dalam perintah SELECT. Jadi berbeda dengan perintah IF yang lebih bebas, akan tetapi perintah IF hanya berguna apabila dimasukan dalam STORE PROCEDURE, FUNCTION dan TRIGGER. Perbedaannya dalam SQL sangat jelas sekali, karena perintah CASE disisipkan dalam perintah SELECT jadi yang dihasilkan langsung berupa DATASET dan langsung bisa dilihat hasilnya.
Perintah CASE ini mempunyai dua format :
1. Simple Case function :
Maksudnya adalah perintah CASE sederhana.
Bentuk Sintaknya
CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
2. Searched CASE function:
Maksudnya perintah CASE ini diikuti dengan syarat kondisi boolean, seperti >, <, >=, <= , dan lain-lain.
Sintaknya sebagai berikut.
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Saya akan memberikan contoh dari kedua jenis CASE tersebut agar dapat bisa membedakan, kapan saat kita memakai Simple Case dan kapan saat kita memakai Search Case.
Terlebih dahulu saya akan memberi contoh Simple Case,
Misalnya kita mempunyai lima kategori penilaian terhadap nilai ujian Mahasiswa.
A = Sangat Baik, B = ‘Baik’, C = ‘Cukup’, D = ‘Jelek’, E = ‘Sangat Jelek’
Dibawah ini ada tabel dasar berupa nilai ujian dari sejumlah Mahasiswa, kita namakan saja tb_nilai
No_induk
Nilai
M1001
A
M1002
B
M1003
D
M1004
E
M1005
A
M1006
C
M1007
B
M1008
E
M1009
A
M1010
D
Dari data tersebut kita ingin mengkonversikan nilai-nilai tersebut dengan memakai perintah CASE sehingga menghasilkan barisan data dibawah ini.
No_induk
Nilai
Keterangan
M1001
A
Sangat Baik
M1002
B
Baik
M1003
D
Jelek
M1004
E
Sangat Jelek
M1005
A
Sangat Baik
M1006
C
Cukup
M1007
B
Baik
M1008
E
Sangat Jelek
M1009
A
Sangat Baik
M1010
D
Jelek
Untuk menghasilkan data diatas kita menggunakan skrip SQL sebagai berikut :
SELECT no_induk, nilai,
keterangan =
CASE nilai
WHEN ‘A’ THEN ‘Sangat Baik’
WHEN ‘B’ THEN ‘Baik’
WHEN ‘C’ THEN ‘Cukup’
WHEN ‘D’ THEN ‘Jelek’
ELSE ‘Sangat Jelek’
END
FROM
tb_nilai
Dari skrip SQL tersebut terlihat kita membentuk kolom keterangan yang mana isinya sesuai dengan kondisi CASE.
Berikutnya saya akan memberi contoh Search Case,
Anggaplah kita mempunyai kategori nilai
nilai > 8,5 dapat kategori ‘A’,
nilai >6,5 dan <=8,5 kategori ‘B’
nilai > 5,5 dan <= 6,5 kategori ‘C’
nilai >4,5 dan <= 5,5 kategori ‘D’
Nilai <= 4,5 kategori E.
Dan kita mempunyai tabel kita beri nama saja daftar_nilai dengan isi sebagai berikut
No_induk
Nilai
M1001
9
M1002
8
M1003
6
M1004
4.5
M1005
3
M1006
5.5
M1007
8
M1008
7
M1009
6
M1010
6.5
Dan kita ingin menghasilkan suatu dataset yang bentuk tampilannya sebagai berikut :
No_induk
Nilai
Kategori
M1001
9
A
M1002
8
C
M1003
6
B
M1004
4.5
E
M1005
3
E
M1006
5.5
D
M1007
8
B
M1008
7
B
M1009
6
C
M1010
6.5
C
Maka Skrip yang akan harus ditulis sebagai berikut :
SELECT no_induk, nilai, kategori =
CASE
WHEN nilai > 8.5 THEN ‘A’
WHEN nilai > 6.5 THEN ‘B’
WHEN nilai > 5.5 THEN ‘C’
WHEN nilai > 4.5 THEN ‘D’
ELSE ‘E’
END
FROM daftar_nilai
Kedua contoh diatas merupakan contoh-contoh sederhana dan apabila sudah dipahami dapat dikembangkan lebih lanjut sesuai dengan kebutuhan situasi.
Mudah-mudahan dapat bermanfaat bagi yang suka bermain-main dengan SQL.



Tidak ada komentar:

Posting Komentar