Sunday, March 18, 2012

Perintah-Perintah SQL dalam MySQL - tingkat dasar

Bahasa SQL dalam MySQL terdiri dari 2 kelompok Utama, antara lain:

1.DDL(Data Definition Languane)
Perintah-perintah SQL yang secara langsung membuat obyek database, perintah-perintah ini meliputi:

1.1.Membuat database
Sintaksis : CREATE DATABASE [IF NOT EXISTS] `dbname`;

Contoh penggunaan:
Perintah ini akan menghasilkan database yang bernama “db_karyawan”.
mysql> CREATE DATABASE IF NOT EXIST  `db_karyawan`;

1.2.Menghapus database
Sintaksis : DROP DATABASE [IF EXISTS] `dbname`;

Contoh penggunaan:
Perintah ini akan menghapus database yang bernama “db_karyawan”.
mysql> DROP DATABASE IF EXISTS `db_karyawan`;

1.3.Membuat table
Sintaksis : CREATE TABLE [IF NOT EXISTS] `tbl_name`;

Contoh penggunaan:
Perintah ini akan menghasilkan tabel yang bernama “tbl_karyawan” dengan menggunakan induk database yang bernama “db_karyawan”

dengan field-field sbb:
• Id (primary key, type data integer, panjang karakter 11 digit,tidak mengijinkan nilai null atau kosong, terisi id record secara otomatis)
• no_induk (index key yg bersifat uniq, type data varchar, panjang karakter 255 digit)
• nama (type data varchar, panjang karakter 255 digit, mengijinkan nilai null atau kosong)
• jenis_kelamin (type data varchar,panjang karakter 255 digit, mengijinkan nilai null atau kosong)
• alamat (type data varchar, panjang karakter 255 digit,mengijinkan nilai null atau kosong)
• keterangan (type data varchar, panjang karakter 255 digit, mengijinkan nilai null atau kosong)

mysql> USE `db_karyawan`; <enter>
mysql> CREATE TABLE IF NOT EXISTS `tbl_karyawan`( <enter>
->`Id` int(11) not null auto_increment, <enter>
->`no_induk` varchar(255) default null, <enter>
->`nama` varchar(255) default null, <enter>
->`jenis_kelamin` varchar(255) default null, <enter>
->`alamat` varchar(255) default null, <enter>
->`keterangan` varchar(255) default null, <enter>
->primary key (`Id`), <enter>
-> unique key `no_induk` (`no_induk`)); <enter>

apabila berhasil akan muncul pesan sbb:
“query OK, 0 rows affected (0.17 sec)”
mysql>

1.4.Menghapus table
Sintaksis : DROP TABLE IF EXISTS `tblname`;

Contoh penggunaan:
Perintah berikut akan menghapus table `tbl_karyawan` pada database `db_karyawan`.

mysql>USE `db_karyawan`; <enter>
mysql>DROP TABLE IF EXISTS `tbl_karyawan`; <enter>

2.DML (Data Manipulation Language)
Perintah-perintah SQL ini bertujuan mengolah data di dalam database yang sudah terbentuk strukturnya. Perintah-perintah ini meliputi:

2.1 Mengambil data dari table

2.1.1 Mengambil semua kolom data pada table.
Sintaksis : SELECT * FROM `tblname`;

Contoh penggunaan:
Perintah ini akan menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan`

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan`; <enter>

2.1.2 Mengambil isi kolom data tertentu pada table.
Sintaksis : SELECT `columname1`,`columname2` ... FROM `tbl_karyawan`;

Contoh penggunaan:
Perintah berikut menghasilkan data kolom nama dan no induk table `tbl_karyawan` pada database `db_karyawan`

mysql>USE `db_karyawan`; <enter>
mysql>SELECT `nama`,`no_induk` FROM `tbl_karyawan`; <enter>

2.1.3 Mengambil data dengan kondisi tertentu (Klausa WHERE).

2.1.3.1 Klausa WHERE dengan menggunakan OPERATOR “=” (sama dengan)
Sintaksis : SELECT * FROM `tblname` WHERE `columname` = ‘kondisi’

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama karyawan sama dengan ‘Paijo’

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama`=’Paijo`; <enter>

2.1.3.2 Klausa WHERE dengan menggunakan OPERATOR “>” (lebih besar)
Sintaksis : SELECT * FROM `tblname` WHERE `columname` > ‘kondisi’

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan Id lebih besar dari 1

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `Id` > 1; <enter>

2.1.3.3 Klausa WHERE dengan menggunakan OPERATOR “<” (lebih kecil)
Sintaksis : SELECT * FROM `tblname` WHERE `columname` < ‘kondisi’

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan Id lebih kecil dari 2

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `Id` < 1; <enter>

2.1.3.4 Klausa WHERE dengan menggunakan OPERATOR “<>” (tidak sama dengan)
Sintaksis : SELECT * FROM `tblname` WHERE `columname` <> ‘kondisi’

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama karyawan selain Paijo

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` <> ‘Paijo’; <enter>

2.1.3.5 Klausa WHERE dengan menggunakan OPERATOR “>=” (lebih besar atau sama dengan)
Sintaksis : SELECT * FROM `tblname` WHERE `columname` >= ‘kondisi’

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan Id lebih besar atau sama dengan 1

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `Id` >= 1; <enter>

2.1.3.6.Klausa WHERE dengan menggunakan OPERATOR “<=” (lebih kecil atau sama dengan)
Sintaksis : SELECT * FROM `tblname` WHERE `columname` <= ‘kondisi’

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan Id lebih kecil atau sama dengan 2

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `Id` <= 2; <enter>

2.1.3.7.Klausa WHERE dengan menggunakan OPERATOR nilai Null

Sintaksis : SELECT * FROM `tblname` WHERE `columname` IS NULL

Catatan : Nilai Null berbeda pengertian dengan string blank atau numeric 0, null terjadi karena data belum didefinisikan, sedangkan string blank adalah nilai yg sudah didefinisikan tetapi nilai stringnya blank atau nilai numeric =0

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama sama dengan null

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` IS NULL; <enter>

sedangkan perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama tidak null

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` IS NOT NULL; <enter>

2.1.3.8.Klausa WHERE dengan menggunakan OPERATOR “AND” (DAN)

Sintaksis : SELECT * FROM `tblname` WHERE `columname1` = ‘kondisi1’ AND `columname2` =’kondisi2’

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama PAIJO yang alamatnya di Wonogiri (dalam hal ini nama karyawan Paijo lebih dari satu)

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` = ‘PAIJO’ AND `alamat`=’Wonogiri’; <enter>

2.1.3.9.Klausa WHERE dengan menggunakan OPERATOR “OR” (Atau)

Sintaksis : SELECT * FROM `tblname` WHERE `columname1` = ‘kondisi1’ OR `columname2` = ‘kondisi2’

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan semua data yang bernama Paijo atau semua alamat yang di Wonogiri.

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` = ‘PAIJO’ OR `alamat` =’Wonogiri’; <enter>

2.1.3.10.Klausa WHERE dengan menggunakan OPERATOR “IN”
Sintaksis : SELECT * FROM `tblname` WHERE `columname` IN (‘kondisi1’,’kondisi2’,’kondisi3...)

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama Paijo,Paimin dan Paijem.

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` IN (‘PAIJO’,’PAIMIN’,’PAIJEM’); <enter>

2.1.3.11.Klausa WHERE dengan menggunakan OPERATOR “BETWEEN” Sintaksis : SELECT * FROM `tblname` WHERE `columname` BETWEEN ‘kondisi1’ AND ‘kondisi2’

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan Id antara 20 sampe 30

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `Id` BETWEEN 20 AND 30; <enter>


2.1.3.12.Klausa WHERE dengan menggunakan OPERATOR “LIKE” Sintaksis : SELECT * FROM `tblname` WHERE `columname` LIKE ‘kondisi%’

catatan : tanda karakter persen (%) adalah wildcard, dipakai untuk menyatakan karakter lain yang ada.

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama yang berawalan huruf ‘P’

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` LIKE ‘P%’; <enter>

MySQL tidak membedakan huruf kapital (upper case) dan (lower case). Penulisan diatas akan menghasilkan data yang sama dengan penulisan dibawah ini :

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` LIKE ‘p%’; <enter>

Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama yang berakhiran

huruf ‘P’

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` LIKE ‘%P’; <enter>

atau

nama yang mengandung huruf ‘P’

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` WHERE `nama` LIKE ‘%P%’; <enter>

2.1.4.Mengambil data dengan limit tertentu
Sintaksis : SELECT * FROM `tblname` LIMIT [int]

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan limit 5 record

mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` LIMIT 5 <enter>

catatan : penggunaan limit ini bisa dikombinasikan dengan klausa WHERE apa saja. Sehingga , sintaksisnya:
SELECT * FROM `tblname` WHERE `columname` =’kondisi` LIMIT [int]

2.1.5.Mengambil data dengan nama alias
Pengambilan data dengan nama alias adalah pemberian nama field yang berbeda dari nama field dalam struktur tabel aslinya dan ini bersifat sementara. Alias ini diterapkan untuk kemudahan pembacaan user dalam pembuatan laporan atau penggabungan data dari beberapa kolom atau untuk keperluan query yang lebih komplek. Nama alias kolom ini tidak bisa dipakai sebagai definisi kondisi dalam klausa WHERE.

Sintaksis : SELECT `Id` AS `Identitas`, `nama` AS `Nama Lengkap` FROM `tblname`

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama field/kolom yang berbeda dari Strukture aslinya

mysql>USE `db_karyawan`; <enter>
mysql>SELECT `Id` AS `Identitas`,`nama` AS `Nama Lengkap` FROM `tbl_karyawan` <enter>

hasil query tersebut sbb:
-----------------------------
 Identitas  Nama Lengkap 
-----------------------------
 1              Paijo                
 2              Paimin              
-----------------------------
perintah berikut menghasilkan data gabungan nama dan alamat

mysql>USE `db_karyawan`; <enter>
mysql>SELECT CONCAT(`nama`,’ dari ‘,`alamat`) AS `Identitas` FROM `tbl_karyawan; <enter>

hasil query tersebut sbb:

-------------------------------
 Identitas                              
-------------------------------
 Paijo dari Wonogiri              
 Paimin dari Solo                  
-------------------------------
2.1.6.Mengambil data dengan mengurutkan hasil query
Sintaksis : SELECT * FROM `tblname` ORDER BY `Fieldname`

Contoh penggunaan:
Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan urutan berdasarkan Id dari nilai terkecil ke nilai terbesar.

Mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` ORDER BY `Id` ASC <enter>

Perintah berikut menghasilkan semua data kolom table `tbl_karyawan` pada database `db_karyawan` dengan urutan berdasarkan Id dari nilai terbesar ke nilai terkecil.

Mysql>USE `db_karyawan`; <enter>
mysql>SELECT * FROM `tbl_karyawan` ORDER BY `Id` DESC <enter>

2.2.Menambah data pada tabel

2.2.1.Menambah data dengan INSERT
Sintaksis:INSERT INTO `tblname` (`columname1`,`columname2`,`columname3`...) VALUES (‘data1’,’data2’,’data3’...)

Contoh penggunaan:
Perintah berikut menambahkan data kolom table `tbl_karyawan` pada database `db_karyawan`

mysql>USE `db_karyawan`; <enter>
mysql>INSERT INTO `tbl_karyawan` (`no_induk`,`nama`,`jenis_kelamin`,`alamat`,`keterangan`)
VALUES (’01-2012-01’,’PAIJO’,’Laki-Laki’,’Wonogiri’,’Karyawan Kontrak’ ); <enter>

2.2.2.Menambah data dengan REPLACE
Perintah REPLACE hampir sama dengan INSERT kecuali pada nilai index atau primary key terdapat nilai yang sama dengan data sebelumnya. Data yang lama akan dihapus dan diganti dengan data baru.

Sintaksis:REPLACE INTO `tblname` (`columname1`,`columname2`,`columname3`...) VALUES (‘data1’,’data2’,’data3’...)

Contoh penggunaan:
Perintah berikut mengganti data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama PAIJO menjadi PAIMIN

mysql>USE `db_karyawan`; <enter>
mysql>INSERT INTO `tbl_karyawan` (`no_induk`,`nama`,`jenis_kelamin`,`alamat`,`keterangan`)
VALUES (’01-2012-01’,’PAIMIN’,’Laki-Laki’,’Wonogiri’,’Karyawan Kontrak’ ); <enter>

Catatan:
dalam hal ini no induk (index) ’01-2012-01’ pada data sebelumnya memiliki nama PAIJO, akan tetapi karena ditambahkan perintah diatas, maka nama PAIJO menjadi PAIMIN dengan data kolom lain yang mengikuti data baru pada perintah REPLACE.

2.3.Mengupdate data pada tabel
Sintaksis : UPDATE `tblname` SET `columname1` = ‘data1’,`columname2`=’data2’...[WHERE kondisi]

Contoh penggunaan:
Perintah berikut mengganti data kolom table `tbl_karyawan` pada database `db_karyawan` dengan nama PAIJO menjadi BEJO, alamat dari WONOGIRI menjadi SOLO, keterangan dari KARYAWAN KONTRAK menjadi KARYAWAN TETAP.

mysql>USE `db_karyawan`; <enter>
mysql>UPDATE `tbl_karyawan` SET `nama` =’BEJO’,`alamat`=’SOLO’,`keterangan`=’KARYAWAN TETAP’ WHERE `no_induk`=’01-2012-01’; <enter>

catatan: untuk pemakaian klausa WHERE pada update ini, penerapannya sama dengan klause WHERE pada perintah SELECT.

2.4.Delete data pada tabel

2.4.1.Menghapus semua data pada tabel

Sintaksis : DELETE FROM `tblname`

Contoh penggunaan:
Perintah berikut menghapus semua data kolom table `tbl_karyawan` pada database `db_karyawan`

mysql>USE `db_karyawan`; <enter>
mysql>DELETE FROM `tbl_karyawan`; <enter>

2.4.2 Menghapus sebagian data dengan klausa WHERE
Sintaksis : DELETE FROM `tblname` WHERE `columname` =’kondisi`

Contoh penggunaan:
Perintah berikut menghapus data kolom table `tbl_karyawan` pada database `db_karyawan` yang bernama PAIJO

mysql>USE `db_karyawan`; <enter>
mysql>DELETE FROM `tbl_karyawan` WHERE `nama`=’PAIJO’; <enter>

catatan: sama dengan DELETE untuk pemakaian klausa WHERE pada DELETE ini, penerapannya sama dengan klause WHERE pada perintah SELECT.

2.4.3 Menghapus sebagian data dengan limit tertentu
Sintaksis :DELETE FROM `tblname` LIMIT [int]

Contoh penggunaan:
Perintah berikut menghapus data kolom table `tbl_karyawan` pada database `db_karyawan` dengan data yang terhapus hanya 5 record

mysql>USE `db_karyawan`; <enter>
mysql>DELETE `tbl_karyawan` LIMIT 5

catatan: sama dengan perintah SELECT, penggunaan LIMIT pada perintah DELETE ini bisa dikombinasikan dengan klausa WHERE apa saja. Sehingga , sintaksisnya:
DELETE FROM `tblname` WHERE `columname` =’kondisi` LIMIT [int]

1 comment: