MySQL - Bagian 1

I.       Pendahuluan
MySQL merupakan salah satu Relational Database Management System yang bersifat Open Source. Struktur database disimpan dalam tabel-tabel yang saling berelasi. Karena sifat open source maka MySQL dapat dipergunakan dan didistribusikan baik untuk kepentingan individu maupun corporate secara gratis, tanpa memerlukan lisensi dari pembuatnya. MySQL dapat dijalankan dalam  berbagai platform sistem operasi antara lain Windows, Linux, Unix, Sun OS dan lain-lain. Source dan dokumentasi lengkap dapat diperoleh melalui situs www.mysql.com .

II.    Koneksi ke MySQLServer
Untuk melakukan koneksi ke server MySQL diperlukan nama user, nama host dan password user.

[root@server]# mysql -h <host> -u <nama_user>  -p
Enter password: ********

<host> menyatakan nama host / ip address server MySQL.
<nama_user> merupakan nama user yang berhak melakukan akses terhadap database MySQL. Option –p menyatakan menggunakan password untuk login. Setelah login ke MySQL server berhasil maka akan ditampilkan prompt :

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10 to server version: 5.0.0-alpha-standard-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

Untuk keluar dari MySQL perintah yang dipergunakan adalah :
mysql>quit

III. MySQL Statements
Jika sudah login pada server maka kita dapat memberikan perintah-perintah pada server tersebut.


Contoh pernyataan (statement) dalam MySQL untuk menampilkan versi dari MySQL dan tanggal :

mysql> SELECT VERSION(), CURRENT_DATE;
+--------------------------+--------------+
| VERSION()                | CURRENT_DATE |
+--------------------------+--------------+
| 5.0.0-alpha-standard-log | 2004-12-15   |
+--------------------------+--------------+
1 row in set (0.03 sec)

Perintah-perintah pada MySQL diakhiri dengan tanda semicolon (;), antara satu perintah dengan perintah yang lain dibatasi dengan tanda koma (,).

mysql> SELECT VERSION();SELECT NOW();
+--------------------------+
| VERSION()                |
+--------------------------+
| 5.0.0-alpha-standard-log |
+--------------------------+
1 row in set (0.00 sec)
+---------------------+
| NOW()               |
+---------------------+
| 2004-12-10 15:42:56 |
+---------------------+
1 row in set (0.00 sec)
  
Tanda semicolon (;) yang diberikan diantara dua command dianggap sebagai dua perintah. Apabila tanda (;) belum diberikan maka dianggap perintah tersebut belum selesai.

mysql> SELECT USER();
+----------------+
| USER()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

Perintah tersebut dipergunakan untuk mengetahui nama user yang bersangkutan dan nama client tempat user melakukan login. Dalam contoh di atas user yang melakukan login adalah root dan login melalui komputer lokal server MySQL (localhost).
Untuk melakukan query pada tabel-tabel pada database MySQL terlebih dahulu harus melakukan koneksi pada database. Untuk melihat  nama-nama database yang ada pada MySQL gunakan perintah :

mysql> SHOW DATABASES;
| Database |
+----------+
   | mysql    |
   | test     |
   +----------+
   2 rows in set (0.06 sec)

Perintah tersebut memberikan informasi nama-nama database yang ada pada server. Secara bawaan terdapat dua database yaitu MySQL dan test.  Ada kemungkinan daftar nama database tersebut berbeda diantara server yang berbeda, tergantung pada database yang sudah dibuat pada server. Untuk menggunakan database tertentu dipergunakan perintah :

mysql> USE mysql;
Database changed

Perintah tersebut dipergunakan untuk menggunakan database bernama MySQL. Untuk menggunakan database dengan nama latihan dipergunakan perintah :

mysql> USE latihan;
Database changed

Setelah database tertentu dipergunakan maka dapat dilihat daftar tabel yang ada pada database tersebut dengan perintah : 

mysql> USE mysql;
Database changed
mysql> SHOW TABLES;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv    |
| db              |
| func            |
| help_category   |
| help_keyword    |
| help_relation   |
| help_topic      |
| host            |
| proc            |
| tables_priv     |
| user            |
+-----------------+
11 rows in set (0.00 sec)

Daftar tersebut menunjukkan tabel-tabel yang berada di bawah database MySQL. Setelah menggunakan database tertentu dan melihat nama-nama tabel pada database tersebut dapat dilakukan query pada tabel tersebut.

IV. Menggunakan MySQL

Langkah-langkah untuk membuat tabel menggunakan MySQL adalah :
1.      Membuat basis data MySQL (create database), dimana dalam sebuah basis data MySQL dapat menampung lebih dari 1 tabel dengan relasinya.
2.      Gunakan (use) basis data yang telah dibuat
3.      Membuat tabel (create table) dalam basis data yang telah dibuat.
4.      Mengisi tabel (insert) dengan record
5.  Melakukan permintaan (query) dan manipulasi terhadap tabel dengan menggunakan Structure Query Language. Contoh manipulasi tabel dalam modul ini adalah menghapus isi tabel (delete) dan menghapus seluruh basis data (drop)

V.    Create Database
Untuk membuat database pada MySQL perintah yang dipergunakan adalah :

mysql> create database latmodul4;
Query OK, 1 row affected (0.07 sec) 

VI. Create Table
Untuk membuat tabel, perintah yang dipergunakan adalah create table. Sebelum perintah tersebut diberikan terlebih dahulu diberikan perintah menggunakan database tertentu:

mysql> use latmodul4;
Database changed

Membuat tabel KOMPUTER :

mysql> create table komputer(
    -> id_komputer char(5) NOT NULL primary key,
    -> merk_komputer char(15),
    -> tipe_komputer char(10),
    -> processor char(15),
    -> harddisk INT);
Query OK, 0 rows affected (0.49 sec)

Perintah tersebut dipergunakan untuk membuat tabel dengan nama komputer dengan struktur tabelnya terdiri atas field id_komputer sebagai primary key dan tidak boleh kosong (not null), merk_komputer, tipe_komputer, processor yang field type nya karakter (char) dan harddisk dengan field type nya integer (INT). Untuk mengetahui struktur tabel komputer tersebut perintah yang diberikan adalah :

mysql> desc komputer;
+---------------+----------+------+-----+---------+-------+
| Field         | Type     | Null | Key | Default | Extra |
+---------------+----------+------+-----+---------+-------+
| id_komputer   | char(5)  | NO   | PRI | NULL    |       |
| merk_komputer | char(15) | YES  |     | NULL    |       |
| tipe_komputer | char(10) | YES  |     | NULL    |       |
| processor     | char(15) | YES  |     | NULL    |       |
| harddisk      | int(11)  | YES  |     | NULL    |       |
+---------------+----------+------+-----+---------+-------+
5 rows in set (0.25 sec)

VII.          INSERT data pada Tabel
Untuk melakukan penyisipan data pada tabel dipergunakan perintah INSERT INTO dan VALUES. Misalnya pada tabel komputer yang telah dibuat pada bagian sebelumnya akan kita sisipkan sebuah record maka perintahnya adalah sebagai berikut :

mysql> insert into komputer
    -> (id_komputer, merk_komputer, tipe_komputer,processor,
    -> harddisk)
    -> values
    -> ('K01','Acer','Aspire2727','IntelCore88',500);
Query OK, 1 row affected (0.08 sec)

Untuk melihat data yang telah diisikan pada tabel tersebut dipergunakan perintah SQL dengan format pernyataan sebagai berikut :
·         SELECT : memilih satu atau banyak field yang akan di tampilkan. Gunakan tanda ‘*’ jika akan memilih seluruh field dalam sebuah tabel.
·         FROM : tabel asal field yang telah di pilih dalam perintah SELECT.
Berikut adalah contoh menampilkan semua record dalam tabel KOMPUTER

mysql> select * from komputer;
+---------+---------------+---------------+-------------+----------+
|id_komputer | merk_komputer| tipe_komputer| processor  | harddisk |
+---------+---------------+---------------+-------------+----------+
| K01     | Acer          | Aspire2727    | IntelCore88 |      500 |
+---------+---------------+---------------+-------------+----------+
1 row in set (0.00 sec)

Untuk latihan, isilah tabel KOMPUTER dengan 10 record yang berbeda lalu tampilkan menggunakan perintah SQL.

VIII.       Menghapus Data pada tabel MySQL
Untuk menghapus data pada tabel MySQL dipergunakan perintah Delete, perintahnya adalah :

mysql> DELETE FROM komputer;
Query OK, 2 rows affected (0.00 sec)

Jika kita lihat isi dari tabel komputer maka hasilnya akan kosong karena semua data sudah dihapus dengan perintah delete.:

mysql> SELECT * FROM komputer;
Empty set (0.00 sec)

Tetapi perintah delete tidak akan menghilangkan struktur data pada tabel karena yang dihapus adalah data pada tabel bukan tabel. Untuk menghapus tabel pada suatu database dipergunakan perintah DROP TABLE:

mysql> DROP TABLE komputer;
Query OK, 0 rows affected (0.00 sec) 

IX.             Latihan SQL
Buatlah tabel dengan nama mahasiswa, dengan struktur basisdata sebagai berikut :

mysql> create table mahasiswa(
    -> nrp char(10) primary key not null,
    -> nama char(30),
    -> alamat char(30),
    -> umur int,
    -> no_hp char(15));
Query OK, 0 rows affected (0.19 sec)

Perhatikan tabel diatas, field nrp dari tabel mahasiswa ditentukan sebagai primary key dan not null yang artinya field tersebut mewakili table mahasiswa, isinya harus unik dan tidak boleh kosong. Untuk melihat struktur basisdatanya gunakan perintah desc seperti berikut :

mysql> desc mahasiswa;
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| nrp    | char(10) | NO   | PRI | NULL    |       |
| nama   | char(30) | YES  |     | NULL    |       |
| alamat | char(30) | YES  |     | NULL    |       |
| umur   | int(11)  | YES  |     | NULL    |       |
| no_hp  | char(15) | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
5 rows in set (0.01 sec)

Isilah dengan sebuah record, contoh :

mysql> insert into mahasiswa
    -> (nrp, nama, alamat, umur, no_hp)
    -> values
    -> ('133040001','Asep','Setiabudi 223 Bandung',19,'08123334534');
Query OK, 1 row affected (0.09 sec)

Untuk mengisi record perhatikan urutan field, isi (value) field yang akan di input dan jika field yang akan diinput bertipe data char harus memakai tanda kutip (‘).
Melihat isi record yang berada dalam tabel mahasiswa dengan perintah berikut :

mysql> select * from mahasiswa;
+-----------+------+-----------------------+------+-------------+
| nrp       | nama | alamat                | umur | no_hp       |
+-----------+------+-----------------------+------+-------------+
| 133040001 | Asep | Setiabudi 223 Bandung |   19 | 08123334534 |
+-----------+------+-----------------------+------+-------------+
1 row in set (0.00 sec)

Perintah select * from mahasiwa berarti pilihlah semua record (*) dari tabel mahasiswa. Latihan selanjutnya adalah mengisi tabel mahasiswa dengan beberapa record sekaligus, caranya adalah sebagai berikut :

mysql> insert into mahasiswa
    -> (nrp, nama, alamat, umur, no_hp)
    -> values
    -> ('133040002','Budi','Buah Batu 23 Bandung',18,'08123335555'),
    -> ('133040003','Cantika','A Yani 4 Sumedang',18,'08123335566'),
    -> ('133040004','Deddy','M Toha 78 Bandung',19,'08123337789'),
    -> ('133040005','Eman','Baros 11 Cimahi',20,'08123367543');
Query OK, 4 rows affected (0.08 sec)
Records: 4  Duplicates: 0  Warnings: 0

Lihatlah isi tabel mahasiswa dengan menggunakan perintah Select .... From ..., hasilnya adalah sebagai berikut :

Mysql> select * from mahasiswa;
-----------+---------+-----------------------+------+-------------+
 nrp       | nama    | alamat                | umur | no_hp       |
-----------+---------+-----------------------+------+-------------+
 133040001 | Asep    | Setiabudi 223 Bandung |   19 | 08123334534 |
 133040002 | Budi    | Buah Batu 23 Bandung  |   18 | 08123335555 |
 133040003 | Cantika | A Yani 4 Sumedang     |   18 | 08123335566 |
 133040004 | Deddy   | M Toha 78 Bandung     |   19 | 08123337789 |
 133040005 | Eman    | Baros 11 Cimahi       |   20 | 08123367543 |
-----------+---------+-----------------------+------+-------------+
 rows in set (0.00 sec)

Latihan berikut adalah mencari data tertentu dalam tabel mahasiswa, cara mencarinya adalah menggunakan keyword ‘where’ dalam query SQL yang berisi syarat atau kriteria pencarian, contoh :

mysql> select * from mahasiswa
    -> where umur = 19;
+-----------+-------+-----------------------+------+-------------+
| nrp       | nama  | alamat                | umur | no_hp       |
+-----------+-------+-----------------------+------+-------------+
| 133040001 | Asep  | Setiabudi 223 Bandung |   19 | 08123334534 |
| 133040004 | Deddy | M Toha 78 Bandung     |   19 | 08123337789 |
+-----------+-------+-----------------------+------+-------------+
2 rows in set (0.00 sec)

Perintah SQL diatas adalah menampilkan semua record di tabel mahasiswa dengan syarat isi field umur harus sama dengan 19. Field umur dapat dikenai operator matematika (=, <, > dll.) karena tipe datanya adalah integer, cobalah dengan operator matematika yang lain dan lihat hasilnya !
Perhatikan instruksi SQL berikut :

mysql> update mahasiswa
    -> set nama = 'Asep Kasep'
    -> where nrp = '133040001';
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Perintah diatas dilakukan untuk mengubah isi sebuah record, dimana field yang diubah adalah nama dari record yang mempunyai nrp tertentu, hasilnya adalah :

mysql> select * from mahasiswa
    -> where nrp = '133040001';
+-----------+------------+-----------------------+------+-------------+
| nrp       | nama       | alamat                | umur | no_hp       |
+-----------+------------+-----------------------+------+-------------+
| 133040001 | Asep Kasep | Setiabudi 223 Bandung |   19 | 08123334534 |
+-----------+------------+-----------------------+------+-------------+
1 row in set (0.00 sec)

Contoh query pencarian yang lain :

mysql> select nrp, nama
    -> from mahasiswa;
+-----------+------------+
| nrp       | nama       |
+-----------+------------+
| 133040001 | Asep Kasep |
| 133040002 | Budi       |
| 133040003 | Cantika    |
| 133040004 | Deddy      |
| 133040005 | Eman       |
+-----------+------------+
5 rows in set (0.00 sec)


mysql> select nrp, nama
    -> from mahasiswa
    -> where nama = 'Cantika';
+-----------+---------+
| nrp       | nama    |
+-----------+---------+
| 133040003 | Cantika |
+-----------+---------+
1 row in set (0.00 sec)

mysql> select nrp, nama, umur
    -> from mahasiswa
    -> where nama like 'D%';
+-----------+-------+------+
| nrp       | nama  | umur |
+-----------+-------+------+
| 133040004 | Deddy |   19 |
+-----------+-------+------+
1   row in set (0.00 sec)

X.                Latihan membuat tabel
Buatlah tabel dibawah ini, isi dengan 10 – 15 record dan gunakan query untuk mencari dan mengperbarui field tertentu !

mysql> desc pegawai;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| nip       | varchar(5)  | NO   | PRI | NULL    |       |
| nama      | varchar(25) | YES  |     | NULL    |       |
| alamat    | varchar(30) | YES  |     | NULL    |       |
| tgl_lahir | date        | YES  |     | NULL    |       |
| no_telp   | varchar(15) | YES  |     | NULL    |       |
| thn_masuk | year(4)     | YES  |     | NULL    |       |
| golongan  | char(1)     | YES  |     | NULL    |       |
| gaji      | int(11)     | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
8 rows in set (0.01 sec)

Contoh isi tabel :

mysql> select * from pegawai;
+-----+-------------------+-------------------+------------+-------------+-----------+----------+---------+
| nip | nama              | alamat            | tgl_lahir  | no_telp     | thn_masuk | golongan | gaji    |
+-----+-------------------+-------------------+------------+-------------+-----------+----------+---------+
| 001 | Ahmad Burhanuddin | Jln Buah Batu 15b | 1990-12-12 | 08123334543 |      2010 | 3        | 1250000 |
| 002 | Amin Imsyorry     | Jln Cipaku 5      | 1989-12-02 | 08123337777 |      2009 | 2        | 1350000 |
| 003 | Budhy Bungaox     | Jln Cisoka 112    | 1989-01-20 | 0812367654  |      2011 | 4        | 1050000 |
| 004 | Zulkarnaen        | Jln Alhambra 2    | 1991-02-20 | 0812367655  |      2009 | 1        | 1450000 |
| 005 | Dewi Sudewa       | Jln Iman 34       | 1990-12-02 | 08123337766 |      2009 | 1        | 1450000 |
| 006 | Ina Nurlian       | Jln Cisatu 1      | 1993-08-09 | 0812345676  |      2011 | 4        | 1050000 |
| 007 | Cheppy Chardut    | Jln Cilama 13     | 1992-07-09 | 0812345688  |      2011 | 4        | 1050000 |
| 008 | Dodong M          | Jln Sutami 16     | 1990-07-10 | 0812345555  |      2010 | 3        | 1250000 |
+-----+-------------------+-------------------+------------+-------------+-----------+----------+---------+
8 rows in set (0.00 sec)




Comments