MySQL (bisa dibaca dengan mai-es-ki-el atau bisa jugamai-se-kuel) adalah suatu perangkat lunak database relasi(Relational Database Management System atau disingkatRDBMS), seperti halnya database ORACLE, Postgresql, Microsoft SQL, dan sebagainya.
Perlu dipahami bahwa kata 'MySQL' berbeda dengan kata 'SQL'. SQL(singkatan dari Structured Query Language) adalah suatu sintaks perintah-perintah
tertentu atau bahasa (pemrograman?) yang digunakan untuk mengelola suatu
database. Jadi, MySQL dan SQL adalah dua 'hal' yang berbeda. Singkatnya, MySQL
adalah perangkat lunaknya, sedangkan SQL adalah bahasa perintahnya. Cukup jelas
kan?
sejarah MySQL dan SQL
Selengkapnya tentang apa dan bagaimana MySQL, perjalanan
sejarah, fungsi dan perintah-perintahnya, dan lain-lainnya silakan kunjungi
situs resminya http://www.mysql.com.
sistem operasi apa
saja yang mendukung?
MySQL didukung oleh banyak sistem operasi, seperti Linux, Unix, Windows, Solaris, FreeBSD, Mac OS X, HP UX, IBM AIX, SCO Unix, SGI Irix, Dec OSF, dan sebagainya. Dapat digunakan baik pada komputer dengan prosesor 32-bit maupun 64-bit (generasi prosesor masa kini dari keluaran AMD maupun Intel Core2 Duo yang mendukung kinerja 64-bit).
hal yang perlu
disiapkan sebelumnya...
Sebelum melanjutkan tutorial ini, Anda harus memiliki aplikasi
MySQL yang telah terpasang dengan baik di komputer Anda. MySQL dapat dapat
diunduh (di-download)
langsung dari situsnya di www.mysql.com. Ada 2 jenis produk yang ditawarkan: Community
Edition dan Enterprise
Edition.
Perbedaannya, Community Edition menggunakan bendera Open Source yang berarti bebas dan gratis diunduh, gratis
digunakan, tapi dengan fasilitas dukungan yang terbatas dari pengembangnya.
Sebaliknya, Enterprise Edition, ada biaya lisensi dan biaya service maintenance yang harus dibayarkan kepada pengembangnya (per tahun atau sesuai kontrak perjanjian), sehingga Anda pun akan mendapatkan dukungan "service" penuh dari pengembangnya.
Untuk tutorial ini, kita akan menggunakan jenis Community Edition saja. Itu sudah mencukupi.
Sebaliknya, Enterprise Edition, ada biaya lisensi dan biaya service maintenance yang harus dibayarkan kepada pengembangnya (per tahun atau sesuai kontrak perjanjian), sehingga Anda pun akan mendapatkan dukungan "service" penuh dari pengembangnya.
Untuk tutorial ini, kita akan menggunakan jenis Community Edition saja. Itu sudah mencukupi.
Sangat disarankan untuk menggunakan versi MySQL yang terbaru dan telah dinyatakan stabil oleh pengembangnya. Biasanya ada kata recommended di samping versi MySQL-nya. Pada April 2013, MySQL versi terbaru adalah MySQL 5.5.32 dan MySQL 5.6.12 (Community Edition). Silakan Anda unduh dulu (download)langsung melalui link http://dev.mysql.com dan kemudian dipasang ke dalam komputer Anda. Silakan baca juga tutorial terkait di situs ini untuk menginstall MySQL.
Catatan:
Tutorial ini menggunakan MySQL versi 5.5.32. Anda dapat saja menggunakan MySQL versi sebelumnya maupun versi terbarunya lagi (kalau sudah ada). Pada umumnya perintah-perintahnya masih tetap sama (atau tidak berbeda jauh) sehingga masih dapat mengikuti langkah-langkah tutorial di sini
menjalankan MySQL...
Menjalankan MySQL dapat dilakukan melalui menu:
Start ->
Programs -> MySQL -> MySQL Server 5.5 -> MySQL Command Line Client.
Setelah muncul tampilan, silakan Anda masukkan password yang telah Anda buat
pada saat instalasi MySQL.
Enter password:
*******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 68
Server version: 5.5.32 MySQL Community Server (GPL)
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 68
Server version: 5.5.32 MySQL Community Server (GPL)
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mengetahui versi MySQL yang
digunakan
Untuk melihat versi MySQL yang kita gunakan dapat menggunakan perintah VERSION(). Setiap perintah pada MySQL umumnya selalu diawali dengan kata SELECT, dan diakhiri dengan tanda ";" atau titik-koma.
Perhatikan contoh berikut ini:
mysql>
select version() ;
+-----------+
| version() |
+-----------+
| 5.5.32 |
+-----------+
1 row in set (0.00 sec)
+-----------+
| version() |
+-----------+
| 5.5.32 |
+-----------+
1 row in set (0.00 sec)
menampilkan database yang ada
Kita coba dengan perintah "SHOW DATABASES" yang akan menampilkan nama database yang telah ada di dalam sistem MySQL kita.
mysql> show
databases ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
---------------------+
4 rows in set (0.00 sec)
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
---------------------+
4 rows in set (0.00 sec)
Catatan:
Istilah database perlu dipahami dengan baik. Database di dalam MySQL adalah sekumpulan tabel-tabel.Jumlah tabel minimal satu buah, dan maksimalnya tidak terbatas. Semakin banyak tabel, maka akan semakin besar ukuran database Anda. Yang membatasi besarnya database adalah kemampuan sistem operasi yang digunakan, kapasitas ruang dalam harddisk dan kapasitas memori komputer. Keterangan selengkapnya mengenai hal ini dapat dilihat pada situs MySQL http://www.mysql.com).
membuat database baru
Sudah ada 3 buah database di dalam sistem MySQL. Sekarang kita
akan membuat sebuah database untuk latihan kita. Gunakan perintah "CREATE DATABASE"
untuk membuat sebuah database.
mysql>
create database latihan1 ;
Query OK, 1 row affected (0.02 sec)
Query OK, 1 row affected (0.02 sec)
Anda perhatikan dari dua perintah MySQL di atas,bahwa setiap perintah selalu diakhiri dengan tanda ";" (titik-koma). Memang pada umumnya perintah-perintah MySQL diakhiri oleh tanda ";" ini.
Perhatikan perintah dibawah ini bila ditulis TANPA tanda titik-koma ";".
mysql> create database latihan2
->
Sistem MySQL akan menampilkan tanda panah '->' yang menyatakan bahwa perintah MySQL tersebut dianggap belum selesai (karena belum diakhiri dengan tanda titik-koma ';').
Sekarang kita lengkapi perintah sebelumnya dengan tanda titik-koma ';'
mysql>
create database latihan2
-> ;
Query OK, 1 row affected (0.02 sec)
-> ;
Query OK, 1 row affected (0.02 sec)
Nah, semuanya berjalan normal bukan? Mari kita lanjutkan tutorialnya...
Kita periksa lagi hasil dari perintah di atas dengan "SHOW DATABASE".
mysql> show
databases ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| latihan1 |
| latihan2 |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
+--------------------+
| Database |
+--------------------+
| information_schema |
| latihan1 |
| latihan2 |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
Sekarang kita sudah punya 6 database.
menghapus database
Kita tidak memerlukan database latihan2, maka kita dapat menghapusnya dengan perintah DROP DATABASE. Hati-hati dalam menggunakan perintahDROP DATABASE ini, karena database beserta seluruh isinya
akan lenyap dari muka bumi tanpa bisa kita kembalikan lagi! Parahnya lagi,
sistem MySQL tidak memberikan pertanyaan konfirmasi kepada Anda sebelum
melakukan proses penghapusan database ini!
mysql> drop database latihan2 ;
Query OK, 0 row affected (0.02 sec)
Anda bisa memeriksanya lagi hasil dari perintah di atas dengan "SHOW DATABASE".
mysql>
show databases ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| latihan1 |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
+--------------------+
| Database |
+--------------------+
| information_schema |
| latihan1 |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
Anda perhatikan, database latihan2 sudah menghilang. Sekali lagi, hati-hati dalam menggunakan perintah DROP DATABASE!
memilih dan membuka
sebuah database
Sekarang kita pilih database "latihan1" dan kita buka dengan perintah "USE"
mysql>
use latihan1 ;
Database change
Database change
Melihat isi sebuah
database
Untuk melihat apa isi dari sebuah database, kita gunakan perintah "SHOW TABLES". Mari kita coba.
mysql>
show tables ;
Empty set (0.00 sec)
Empty set (0.00 sec)
Hasil dari perintah SHOW TABLES diatas adalah "Empty Set", yang berarti belum ada tabel apapun didalam
database latihan1.
membuat tabel baru
Kita akan membuat sebuah tabel baru "karyawan" dengan menggunakan perintah "CREATE
TABLE". Contohnya sebagai
berikut..
mysql>
create table karyawan ;
ERROR 1113 (42000): A table must have at least 1 column
ERROR 1113 (42000): A table must have at least 1 column
Ternyata ada kesalahan yang terjadi. Untuk membuat sebuah tabel di MySQL, kita harus menentukan minimal satu buah field/kolom di dalamnya. Sekarang kita ubah perintah di atas menjadi sebagai berikut...
mysql>
create table karyawan
-> (nopeg INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-> nama VARCHAR(50) NOT NULL)
-> ;
Query OK, 0 rows affected (0.14 sec)
-> (nopeg INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-> nama VARCHAR(50) NOT NULL)
-> ;
Query OK, 0 rows affected (0.14 sec)
Cukup panjang ya perubahan perintahnya. Mungkin sintaks
perintahnya agak membingungkan pada awalnya. Tidak apa-apa, nanti akan kita
bahas artinya. Secara umum, kita akan membuat sebuah tabel Karyawan dengan 2 buah kolom/field. Kolom pertama
adalah NOPEG dengan jenis data bilangan bulat (INTeger),
tanpa tanda negatif (UNSIGNED),
yang akan bertambah nilainya secara otomatis (AUTO_INCREMENT), dan kolom NOPEG adalah kolom utama (PRIMARY KEY).
Kemudian pada kolom kedua, NAMA akan menampung nama karyawan, dengan jenis data VARiabel CHARacter, lebar datanya dapat menampung maksimal 50 karakter, dan tidak boleh dikosongkan (NOT NULL). Kurang lebih seperti itulah ceritanya.. :)
Kita lihat kembali apa isi dari database latihan1:
Kemudian pada kolom kedua, NAMA akan menampung nama karyawan, dengan jenis data VARiabel CHARacter, lebar datanya dapat menampung maksimal 50 karakter, dan tidak boleh dikosongkan (NOT NULL). Kurang lebih seperti itulah ceritanya.. :)
Kita lihat kembali apa isi dari database latihan1:
mysql>
show tables ;
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| karyawan |
+--------------------+
1 row in set (0.00 sec)
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| karyawan |
+--------------------+
1 row in set (0.00 sec)
Dari hasil perintah di atas, kita lihat bahwa database latihan1 telah memiliki sebuah tabel yang bernamakaryawan. Selanjutnya kita akan lihat apa struktur dari tabel karyawan tersebut.
melihat struktur tabel
Untuk melihat struktur sebuah tabel dapat menggunakan perintah "DESCRIBE" atau bisa juga menggunakan perintah "SHOW COLUMNS FROM".
Contohnya berikut ini...
mysql>
describe karyawan ;
+-----+----------------+----+---+-------+--------------+
|Field|Type |Null|Key|Default|Extra |
+-----+----------------+----+---+-------+--------------+
|nopeg|int(10) unsigned|NO |PRI|NULL |auto_increment|
|nama |varchar(50) |NO | | | |
+-----+----------------+----+---+-------+--------------+
2 rows in set (0.02 sec)
+-----+----------------+----+---+-------+--------------+
|Field|Type |Null|Key|Default|Extra |
+-----+----------------+----+---+-------+--------------+
|nopeg|int(10) unsigned|NO |PRI|NULL |auto_increment|
|nama |varchar(50) |NO | | | |
+-----+----------------+----+---+-------+--------------+
2 rows in set (0.02 sec)
Atau menggunakan perintah "SHOW COLUMNS FROM..."
mysql> show
columns from karyawan ;
+-----+----------------+----+---+-------+--------------+
|Field|Type |Null|Key|Default|Extra |
+-----+----------------+----+---+-------+--------------+
|nopeg|int(10) unsigned|NO |PRI|NULL |auto_increment|
|nama |varchar(50) |NO | | | |
+-----+----------------+----+---+-------+--------------+
2 rows in set (0.00 sec)
+-----+----------------+----+---+-------+--------------+
|Field|Type |Null|Key|Default|Extra |
+-----+----------------+----+---+-------+--------------+
|nopeg|int(10) unsigned|NO |PRI|NULL |auto_increment|
|nama |varchar(50) |NO | | | |
+-----+----------------+----+---+-------+--------------+
2 rows in set (0.00 sec)
Tidak ada perbedaan hasil dari dua perintah di atas, bukan?
Sekarang kita buat sebuah tabel baru lagi, kita namakan saja tabel contoh1.
mysql> create
table contoh1
-> (noid INT)
-> ;
Query OK, 0 rows affected (0.13 sec)
-> (noid INT)
-> ;
Query OK, 0 rows affected (0.13 sec)
Sekarang kita lihat berapa tabel yang ada di dalam database latihan1:
mysql> show
tables ;
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| contoh1 |
| karyawan |
+--------------------+
2 rows in set (0.00 sec)
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| contoh1 |
| karyawan |
+--------------------+
2 rows in set (0.00 sec)
menghapus tabel
Tabel contoh1 yang baru saja kita buat
ini akan kita hapus kembali. Perintah untuk menghapus sebuah tabel dalam MySQL
adalah "DROP TABLE".
Cukup mirip dengan perintah menghapus database, bukan? Kita harus menggunakan perintah "DROP" ini
dengan kehati-hatian yang tinggi. Sistem MySQL tidak akan memberikan
peringatan awal atau konfirmasi untuk proses penghapusan tabel. Dan bila sudah
dihapus, maka tabel tersebut tidak bisa lagi kita kembalikan. Maka,
berhati-hatilah!
mysql> drop
table contoh1 ;
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.03 sec)
Kita lihat lagi tabel yang ada di dalam database latihan1:
mysql> show
tables ;
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| karyawan |
+--------------------+
1 rows in set (0.00 sec)
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| karyawan |
+--------------------+
1 rows in set (0.00 sec)
mengubah struktur
sebuah tabel
Ada saatnya kita perlu mengubah struktur tabel yang pernah kita
buat sebelumnya. Pengubahan struktur bisa dalam hal penambahan kolom (ADD), pengubahan lebar dan jenis kolom (MODIFY), atau bisa saja penghapusan kolom dan indeks
(DROP), penggantian nama kolom (CHANGE), pengantian nama tabel (RENAME), dan sebagainya. Apa pun juga yang anda
lakukan pada kolom tersebut tentu akan mempunyai dampak langsung pada data-data
yang sudah ada.
Nah, sekarang kita perlu menambahkan beberapa kolom baru, yaitu
kolom jenis
kelamin, kota, tanggal lahirdankodepos pada tabel karyawan.
Perintah untuk mengubah struktur tabel adalah "ALTER TABLE". Mari kita coba...
Perintah untuk mengubah struktur tabel adalah "ALTER TABLE". Mari kita coba...
mysql>
alter table karyawan
-> ADD jenkelamin CHAR(2) NOT NULL,
-> ADD kota VARCHAR(25) NOT NULL,
-> ADD kodepos CHAR(5) NOT NULL,
-> ADD tgllahir DATE
-> ;
Query OK, 0 rows affected (0.20 sec)
Records: 0 Duplicates: 0 Warnings: 0
-> ADD jenkelamin CHAR(2) NOT NULL,
-> ADD kota VARCHAR(25) NOT NULL,
-> ADD kodepos CHAR(5) NOT NULL,
-> ADD tgllahir DATE
-> ;
Query OK, 0 rows affected (0.20 sec)
Records: 0 Duplicates: 0 Warnings: 0
Sekarang kita lihat hasilnya:
mysql>
describe karyawan ;
+----------+-----------+----+---+-------+--------------+
|Field |Type |Null|Key|Default|Extra |
+----------+-----------+----+---+-------+--------------+
|nopeg |int(10) |NO |PRI|NULL |auto_increment|
|nama |varchar(50)|NO | | | |
|jenkelamin|char(2) |YES | |NULL | |
|kota |varchar(25)|NO | | | |
|kodepos |char(5) |NO | | | |
|tgllahir |date |YES | |NULL | |
+----------+-----------+----+---+-------+--------------+
6 rows in set (0.00 sec)
+----------+-----------+----+---+-------+--------------+
|Field |Type |Null|Key|Default|Extra |
+----------+-----------+----+---+-------+--------------+
|nopeg |int(10) |NO |PRI|NULL |auto_increment|
|nama |varchar(50)|NO | | | |
|jenkelamin|char(2) |YES | |NULL | |
|kota |varchar(25)|NO | | | |
|kodepos |char(5) |NO | | | |
|tgllahir |date |YES | |NULL | |
+----------+-----------+----+---+-------+--------------+
6 rows in set (0.00 sec)
Mungkin ada baiknya kalau nama kolom nopeg kita ubah aja menjadi noid. Begitupun dengan nama kolomjenkelamin, kita ubah namanya menjadi jenkel saja. Dalam pengubahan kolom ini sebaiknya 'sifat-sifat' kolom yang asli tetap ditulis ulang. Misal bila kolom nopeg memiliki sifat 'auto_increment', maka selama sifat itu tetap dipertahankan, maka dia (auto_increment) harus ditulis ulang. Begini caranya...
Mengubah kolom jenkelamin menjadi jenkel, sekaligus mengubah jenis datanya dari CHAR(2) menjadi CHAR(1):
mysql>
alter table karyawan
-> change jenkelamin jenkel char(1) ;
Query OK, 0 rows affected (0.24 sec)
Records: 0 Duplicates: 0 Warnings: 0
-> change jenkelamin jenkel char(1) ;
Query OK, 0 rows affected (0.24 sec)
Records: 0 Duplicates: 0 Warnings: 0
Mengubah kolom nopeg menjadi noid, tanpa mengubah jenis datanya (tetap INT(10), dan tetap auto_increment):
mysql>
alter table karyawan
-> change nopeg noid int(10) auto_increment
-> ;
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0
-> change nopeg noid int(10) auto_increment
-> ;
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0
Sekarang kita lihat struktur tabel karyawan setelah pengubahan:
mysql>
describe karyawan ;
+--------+-----------+----+----+-------+--------------+
|Field |Type |Null|Key |Default|Extra |
+--------+-----------+----+----+-------+--------------+
|noid |int(10) |NO |PRI |NULL |auto_increment|
|nama |varchar(50)|NO | | | |
|jenkel |char(1) |YES | |NULL | |
|kota |varchar(25)|NO | | | |
|kodepos |char(5) |NO | | | |
|tgllahir|date |YES | |NULL | |
+--------+-----------+----+----+-------+--------------+
6 rows in set (0.00 sec)
+--------+-----------+----+----+-------+--------------+
|Field |Type |Null|Key |Default|Extra |
+--------+-----------+----+----+-------+--------------+
|noid |int(10) |NO |PRI |NULL |auto_increment|
|nama |varchar(50)|NO | | | |
|jenkel |char(1) |YES | |NULL | |
|kota |varchar(25)|NO | | | |
|kodepos |char(5) |NO | | | |
|tgllahir|date |YES | |NULL | |
+--------+-----------+----+----+-------+--------------+
6 rows in set (0.00 sec)
Bagaimana, sudah sesuai dengan perubahan struktur yang kita inginkan, bukan?
Nah, sekarang bagaimana kalau kita ingin mengubah nama tabel karyawan menjadi tabel pegawai? Silakan dicoba dibawah ini:
mysql>
alter table karyawan
-> rename pegawai ;
Query OK, 0 rows affected (0.09 sec)
-> rename pegawai ;
Query OK, 0 rows affected (0.09 sec)
Kita lihat lagi hasilnya:
mysql>
show tables ;
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| pegawai |
+--------------------+
1 row in set (0.00 sec)
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| pegawai |
+--------------------+
1 row in set (0.00 sec)
Sekarang kita kembalikan lagi nama tabel pegawai menjadi karyawan. Tetapi dengan perintah yang berbeda, yaitu"RENAME TABLE".
mysql>
rename table pegawai
-> to karyawan
-> ;
Query OK, 0 rows affected (0.06 sec)
-> to karyawan
-> ;
Query OK, 0 rows affected (0.06 sec)
Jangan lupa untuk memeriksa hasilnya:
mysql>
show tables ;
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| karyawan |
+--------------------+
1 row in set (0.00 sec)
+--------------------+
| Tables_in_latihan1 |
+--------------------+
| karyawan |
+--------------------+
1 row in set (0.00 sec)
Nah, sampai sejauh ini tidak sulit kan untuk mempelajari MySQL?
Sekarang kita lanjutkan dengan cara-cara pengisian data...
mengisi
data ke dalam tabel
Kita akan mulai mengisi data ke dalam tabel karyawan. Perintah yang digunakan
adalah "INSERT INTO".
Caranya sebagai berikut:
mysql>
insert into karyawan
-> (nama, jenkel, kota, kodepos, tgllahir)
-> values
-> ("Ahmad Zobari", "L", "Bandung","41011","1977-10-02")
-> ;
Query OK, 1 row affected (0.17 sec)
-> (nama, jenkel, kota, kodepos, tgllahir)
-> values
-> ("Ahmad Zobari", "L", "Bandung","41011","1977-10-02")
-> ;
Query OK, 1 row affected (0.17 sec)
Anda perhatikan bahwa dalam pemasukkan data yang berjenis
karakter, selalu diapit dengan tanda kutip ganda(").
Bisa juga digunakan tanda kutip tunggal ('). Tetapi
jangan dicampur dengan tanda kutip ganda dan tanda kutip tunggal, misal: "Ahmad Sobari'.
Perhatikan juga pada penulisan tanggal lahir, menggunakan format "tahun-bulan-tanggal". Memang agak janggal. Tapi begitulah memang standar MySQL untuk format penulisan tanggal.
Kalau Anda perhatikan lebih teliti, mengapa kita tidak memasukkan data untuk kolom "noid"? Ini karena sifat kolom noid yang auto_increment, sehingga dia akan secara otomatis berisi dengan angka 1, dan terus bertambah 1, seiring dengan penambahan data.
Perhatikan juga pada penulisan tanggal lahir, menggunakan format "tahun-bulan-tanggal". Memang agak janggal. Tapi begitulah memang standar MySQL untuk format penulisan tanggal.
Kalau Anda perhatikan lebih teliti, mengapa kita tidak memasukkan data untuk kolom "noid"? Ini karena sifat kolom noid yang auto_increment, sehingga dia akan secara otomatis berisi dengan angka 1, dan terus bertambah 1, seiring dengan penambahan data.
Nah,
kita akan masukkan 4 buah record lagi dengan cara:
mysql>
insert into karyawan
-> (nama, jenkel, kota, kodepos, tgllahir)
-> values
-> ("Sundariwati", "P", "Bandung", "40123", "1978-11-12"),
-> ("Ryan Cakep", "L", "Jakarta", "12111", "1981-03-21"),
-> ("Zukarman","L", "Bekasi", "17211", "1978-08-10"),
-> ("Yuliawati", "P", "Bogor", "00000", "1982-06-09")
-> ;
Query OK, 4 rows affected (0.05 sec)
Records: 4 Duplicates: 0 Warnings: 0
-> (nama, jenkel, kota, kodepos, tgllahir)
-> values
-> ("Sundariwati", "P", "Bandung", "40123", "1978-11-12"),
-> ("Ryan Cakep", "L", "Jakarta", "12111", "1981-03-21"),
-> ("Zukarman","L", "Bekasi", "17211", "1978-08-10"),
-> ("Yuliawati", "P", "Bogor", "00000", "1982-06-09")
-> ;
Query OK, 4 rows affected (0.05 sec)
Records: 4 Duplicates: 0 Warnings: 0
Sekarang kita coba memasukkan data dengan cara yang lain lagi:
mysql>
insert into karyawan
-> set nama="Mawar",
-> jenkel="P",
-> kota="Bogor",
-> kodepos="12345",
-> tgllahir="1985-07-07"
-> ;
Query OK, 1 row affected (0.05 sec)
-> set nama="Mawar",
-> jenkel="P",
-> kota="Bogor",
-> kodepos="12345",
-> tgllahir="1985-07-07"
-> ;
Query OK, 1 row affected (0.05 sec)
Kita
sudah memasukkan beberapa data. Bagaimana untuk melihat data-data yang sudah
kita masukkan tadi?
melihat data pada tabel
Kita bisa melihat data yang ada di dalam tabel dengan
menggunakan perintah "SELECT".
Perintah SELECT adalah perintah yang akan sering kita gunakan nantinya. Kita
mulai dengan cara yang paling sederhana dulu yaa..
mysql>
select * from karyawan ;
+----+------------+------+-------+-------+----------+
|noid|nama |jenkel|kota |kodepos|tgllahir |
+----+------------+------+-------+-------+----------+
| 1 |Ahmad Sobari|L |Bandung|41011 |1977-10-02|
| 2 |Sundariwati |P |Bandung|40123 |1978-11-12|
| 3 |Ryan Cakep |L |Jakarta|12111 |1981-03-21|
| 4 |Zukarman |L |Bekasi |17211 |1978-08-10|
| 5 |Yuliawati |P |Bogor |00000 |1982-06-09|
| 6 |Mawar |P |Bogor |12345 |1985-07-07|
+----+------------+------+-------+-------+----------+
6 rows in set (0.02 sec)
+----+------------+------+-------+-------+----------+
|noid|nama |jenkel|kota |kodepos|tgllahir |
+----+------------+------+-------+-------+----------+
| 1 |Ahmad Sobari|L |Bandung|41011 |1977-10-02|
| 2 |Sundariwati |P |Bandung|40123 |1978-11-12|
| 3 |Ryan Cakep |L |Jakarta|12111 |1981-03-21|
| 4 |Zukarman |L |Bekasi |17211 |1978-08-10|
| 5 |Yuliawati |P |Bogor |00000 |1982-06-09|
| 6 |Mawar |P |Bogor |12345 |1985-07-07|
+----+------------+------+-------+-------+----------+
6 rows in set (0.02 sec)
Perintah di atas menampilkan seluruh data yang ada di dalam tabel karyawan, karena menggunakan tanda asterik "*" di dalam perintah SELECT.
Bagaimana kalau kita hanya mau menampilkan kolom nama dan jenis kelamin saja dari tabel karyawan?
mysql>
select nama, jenkel from karyawan
-> ;
+--------------+--------+
| nama | jenkel |
+--------------+--------+
| Ahmad Sobari | L |
| Sundariwati | P |
| Ryan Cakep | L |
| Zukarman | L |
| Yuliawati | P |
| Mawar | P |
+--------------+--------+
6 rows in set (0.00 sec)
-> ;
+--------------+--------+
| nama | jenkel |
+--------------+--------+
| Ahmad Sobari | L |
| Sundariwati | P |
| Ryan Cakep | L |
| Zukarman | L |
| Yuliawati | P |
| Mawar | P |
+--------------+--------+
6 rows in set (0.00 sec)
Kalau kita hanya mau menampilkan data-data karyawan yang berjenis kelamin perempuan saja, bagaimana caranya? Cukup dengan menambahkan perintah "WHERE" pada "SELECT".
mysql>
select nama, jenkel from karyawan
-> where jenkel="P"
-> ;
+-------------+--------+
| nama | jenkel |
+-------------+--------+
| Sundariwati | P |
| Yuliawati | P |
| Mawar | P |
+-------------+--------+
3 rows in set (0.00 sec)
-> where jenkel="P"
-> ;
+-------------+--------+
| nama | jenkel |
+-------------+--------+
| Sundariwati | P |
| Yuliawati | P |
| Mawar | P |
+-------------+--------+
3 rows in set (0.00 sec)
Kita tampilkan data berdasarkan urutan nama karyawan dengan menambahkan perintah "ORDER BY" pada "SELECT":
mysql>
select * from karyawan
-> order by nama ;
+----+-------------+------+-------+-------+-----------+
|noid|nama |jenkel|kota |kodepos|tgllahir |
+----+-------------+------+-------+-------+-----------+
| 1 |Ahmad Sobari |L |Bandung|41011 |1977-10-02 |
| 6 |Mawar |P |Bogor |12345 |1985-07-07 |
| 3 |Ryan Cakep |L |Jakarta|12111 |1981-03-21 |
| 2 |Sundariwati |P |Bandung|40123 |1978-11-12 |
| 5 |Yuliawati |P |Bogor |00000 |1982-06-09 |
| 4 |Zukarman |L |Bekasi |17211 |1978-08-10 |
+----+-------------+------+-------+-------+-----------+
6 rows in set (0.00 sec)
-> order by nama ;
+----+-------------+------+-------+-------+-----------+
|noid|nama |jenkel|kota |kodepos|tgllahir |
+----+-------------+------+-------+-------+-----------+
| 1 |Ahmad Sobari |L |Bandung|41011 |1977-10-02 |
| 6 |Mawar |P |Bogor |12345 |1985-07-07 |
| 3 |Ryan Cakep |L |Jakarta|12111 |1981-03-21 |
| 2 |Sundariwati |P |Bandung|40123 |1978-11-12 |
| 5 |Yuliawati |P |Bogor |00000 |1982-06-09 |
| 4 |Zukarman |L |Bekasi |17211 |1978-08-10 |
+----+-------------+------+-------+-------+-----------+
6 rows in set (0.00 sec)
Atau diurut berdasarkan kota:
mysql>
select * from karyawan
-> order by kota ;
+----+-------------+------+--------+-------+----------+
|noid|nama |jenkel|kota |kodepos|tgllahir |
+----+-------------+------+--------+-------+----------+
| 1 |Ahmad Sobari |L |Bandung |41011 |1977-10-02|
| 2 |Sundariwati |P |Bandung |40123 |1978-11-12|
| 4 |Zukarman |L |Bekasi |17211 |1978-08-10|
| 5 |Yuliawati |P |Bogor |00000 |1982-06-09|
| 6 |Mawar |P |Bogor |12345 |1985-07-07|
| 3 |Ryan Cakep |L |Jakarta |12111 |1981-03-21|
+----+-------------+------+--------+-------+----------+
6 rows in set (0.00 sec)
-> order by kota ;
+----+-------------+------+--------+-------+----------+
|noid|nama |jenkel|kota |kodepos|tgllahir |
+----+-------------+------+--------+-------+----------+
| 1 |Ahmad Sobari |L |Bandung |41011 |1977-10-02|
| 2 |Sundariwati |P |Bandung |40123 |1978-11-12|
| 4 |Zukarman |L |Bekasi |17211 |1978-08-10|
| 5 |Yuliawati |P |Bogor |00000 |1982-06-09|
| 6 |Mawar |P |Bogor |12345 |1985-07-07|
| 3 |Ryan Cakep |L |Jakarta |12111 |1981-03-21|
+----+-------------+------+--------+-------+----------+
6 rows in set (0.00 sec)
Atau diurut berdasarkan tanggal lahir:
mysql>
select * from karyawan
-> order by tgllahir ;
+----+-------------+------+---------+--------+------------+
|noid|nama |jenkel| kota | kodepos| tgllahir |
+----+-------------+------+---------+--------+------------+
| 1 |Ahmad Sobari |L | Bandung | 41011 | 1977-10-02 |
| 4 |Zukarman |L | Bekasi | 17211 | 1978-08-10 |
| 2 |Sundariwati |P | Bandung | 40123 | 1978-11-12 |
| 3 |Ryan Cakep |L | Jakarta | 12111 | 1981-03-21 |
| 5 |Yuliawati |P | Bogor | 00000 | 1982-06-09 |
| 6 |Mawar |P | Bogor | 12345 | 1985-07-07 |
+----+-------------+------+---------+--------+------------+
6 rows in set (0.00 sec)
-> order by tgllahir ;
+----+-------------+------+---------+--------+------------+
|noid|nama |jenkel| kota | kodepos| tgllahir |
+----+-------------+------+---------+--------+------------+
| 1 |Ahmad Sobari |L | Bandung | 41011 | 1977-10-02 |
| 4 |Zukarman |L | Bekasi | 17211 | 1978-08-10 |
| 2 |Sundariwati |P | Bandung | 40123 | 1978-11-12 |
| 3 |Ryan Cakep |L | Jakarta | 12111 | 1981-03-21 |
| 5 |Yuliawati |P | Bogor | 00000 | 1982-06-09 |
| 6 |Mawar |P | Bogor | 12345 | 1985-07-07 |
+----+-------------+------+---------+--------+------------+
6 rows in set (0.00 sec)
Nah kalo yang sekarang diurut berdasarkan nama, tetapi dengan urutan terbalik (descending). Cukup dengan menambahkan perintah "DESC" pada SELECT:
mysql>
select * from karyawan
-> order by nama DESC ;
+----+--------------+-------+---------+---------+------------+
|noid| nama | jenkel| kota | kodepos | tgllahir |
+----+--------------+-------+---------+---------+------------+
|4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
|5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
|2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
|3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
|6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
|1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
+----+--------------+-------+---------+---------+------------+
6 rows in set (0.00 sec)
-> order by nama DESC ;
+----+--------------+-------+---------+---------+------------+
|noid| nama | jenkel| kota | kodepos | tgllahir |
+----+--------------+-------+---------+---------+------------+
|4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
|5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
|2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
|3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
|6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
|1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
+----+--------------+-------+---------+---------+------------+
6 rows in set (0.00 sec)
Bisa juga kalau yang diurutnya adalah tanggal lahir secara urutan terbalik (descending):
mysql>
select * from karyawan
-> order by tgllahir DESC ;
+----+--------------+--------+---------+---------+------------+
|noid| nama | jenkel | kota | kodepos | tgllahir |
+----+--------------+--------+---------+---------+------------+
|6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
|5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
|3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
|2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
|4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
|1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
+----+--------------+--------+---------+---------+------------+
6 rows in set (0.00 sec)
-> order by tgllahir DESC ;
+----+--------------+--------+---------+---------+------------+
|noid| nama | jenkel | kota | kodepos | tgllahir |
+----+--------------+--------+---------+---------+------------+
|6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
|5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
|3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
|2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
|4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
|1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
+----+--------------+--------+---------+---------+------------+
6 rows in set (0.00 sec)
0 comments:
Post a Comment