MySQL Tutorial

Pada bagian ini akan dibahas tentang server database MySQL.  MySQL merupakan server database yang banyak digunakan di Internet karena kehandalannya dan juga karena sifatnya yang shareware (gratis).

1. Pendahuluan

SQL (Structured Query Language) adalah bahasa standar yang digunakan untuk mengakses server database.  Dengan menggunakan SQL, maka proses akses database menjadi lebih user friendly.
SQL server adalah sebuah program yang berfungsi melayani permintaan query database, misalnya :
MySQL, Microsoft SQL Server, Oracle, dll.

2. Instalasi MySQL

MySQL dapat didownload pada alamat http://www.mysql.com. Seperti halnya SQL engine lainnya, MySQL memiliki tiga sub bahasa, yaitu Data Definition Language (DDL) yang berfungsi pada obyek database seperti membuat, mengubah dan menghapus table, Data Manipulation Language (DML) yang berfungsi pada tabel seperti melihat, menambah, mengubah dan menghapus isi table, serta Data Control Language (DCL) yang berfungsi untuk mengatur sekuritas database seperti memberikan dan meghapus hak akses user ke database.

3. Koneksi ke Server

Untuk bisa koneksi ke server MySQL diperlukan autorisasi berupa username dan password.  Jika server MySQL baru pertama kali digunakan setelah instalasi, hanya user dengan nama “root” yang bisa masuk ke dalam server.  Untuk saat pertama Anda tidak akan ditanya password koneksi ke server. Perintah untuk masuk ke server MySQL dengan user “root” adalah sbb :
C:\> mysql –h localhost –u root

Localhost menyatakan bahwa komputer yang sedang kita gunakan untuk koneksi ke server adalah komputer server itu sendiri (lokal).  Jika koneksi dilakukan dari komputer luar, maka localhost harus diganti dengan alamat IP dari komputer server.
Yang pertama kali harus dilakukan sebagai user root pada server database MySQL adalah memastikan bahwa tidak ada orang lain lagi yang bias mendeklarasikan posisi tsb.  Oleh karena itu perlu dilakukan proteksi dengan cara mengubah password dari ‘blank’ menjadi suatu kata yang tidak mudah ditebak dengan instruksi sbb :
mysql> SET PASSWORD FOR ‘root’@’localhost’=PASSWORD(‘rahasia’);
Lebih khusus lagi, instruksi tsb akan mengubah isi tabel user (dalam database mysql) dengan mengubah field password pada baris yang field usernya berisi ‘root’.  Isi field password akan diubah menjadi nilai hasil enkripsi dari string yang dimasukkan dalam fungsi PASSWORD().  Tentu saja jangan sampai Anda lupa dengan password ini, karena password tsb disimpan pada server database dalam teks yang terenkripsi  sehingga tidak mudah dilihat jika terlupa.

4. Keluar dari Server

Untuk keluar dari server, user cukup menuliskan perintah quit. Maka user akan kembali ke prompt system operasi.
mysql> \q
Bye
C:\mysql\bin>_
Berikutnya, jika user root  melakukan login ke server instruksinya dan hasilnya sbb :

Jika atribut –p tidak ditulis sedangkan user sudah diberi password untuk masuk ke server, koneksi akan ditolak.  Sebaliknya jika atribut –p disertakan, maka akan ditanyakan password untuk koneksi ke server.  Jika password yang dimasukkan cocok, maka user bisa masuk ke server MySQL.
Selain root, user bisa dapat masuk ke server dengan nama yang lain, bergantung pada isi tabel user dalam database mysql.  Dalam tabel user telah diatur semua nama berikut hak akses ke server.  Sehingga untuk membuat user baru atau merubah hak aksesnya, maka user tsb harus memiliki hak akses ke tabel user dalam database mysql.  Oleh karena itu, hendaknya hak akses ke database mysql tidak diberikan kepada orang lain, karena disitulah pusat keamanan diatur dalam server MySQL.
Setelah terkoneksi ke server, berikutnya user memilih database yang akan diakses.  Jika user belum mengetahui database apa saja yang sudah tersedia, user perlu melihatnya terlebih dahulu.  Selengkapnya bisa dilihat pada sub bagian 7.2 dan 7.3.

5. Cara Menulis Perintah

Ada beberapa catatan ketika menuliskan perintah (query) dalam MySQL, antara lain :
  • Penulisan statemen bisa ditulis dalam huruf besar maupun huruf kecil
  • Penulisan nama kolom (field) membedakan huruf besar dan huruf kecil (case sensitive)
Contohnya, pernyataan di bawah ini tidak akan bekerja dikarenakan penulisan nama tabel yang tidak konsisten (my_table dan MY_TABLE).
mysql>SELECT * FROM my_table WHERE MY_TABLE.col=1;
Untuk mengurangi kesalahan akibat penulisan, disarankan untuk selalu menggunakan huruf kecil.
  • Pernyataan tidak harus ditulis dalam satu baris (single line).  Jika layar tidak mencukupi dalam menulis panjangnya query, dapat dilanjutkan di bawahnya (multiple line) dengan menekan tombol Enter. Contoh di bawah ini query yang dinyatakan dalam beberapa baris:

Dari contoh di atas terlihat bahwa prompt “mysql>“  berubah menjadi “->” jika pernyataan dituliskan tidak lengkap.  Pernyataan dianggap lengkap jika sidah diakhiri dengan titik koma (;).  Namun meskipun lengkap, belum tentu dianggap benar, sehingga perlu berhati-hati dalam menuliskan query.  Jika penulisan query sudah terlanjur salah dan tidak dapat dibetulkan dalam baris berikutnya, untuk membatalkan query tsb dapat mengetikkan “\c“.

6. User dan Hak Akses Server

6.1 Membuat  User Baru
Sebagai seorang administator server MySQL (root), Anda mempunyai hak untuk membuat user baru beserta hak akses di dalam server. Seperti yang telah disinggung di atas, pembuatan user dapat dilakukan jika Anda mempunyai hak untuk mengakses tabel user yang ada di dalam database mysql. Untuk membuat user baru dengan nama ‘ahmad’ dan mempunyai password ‘ahmad01’, maka perintah yang harus ditulis adalah

Dari hasil pernyataan di atas, terbuat satu user baru yang dapat mengakses server MySQL dengan nama ‘ahmad’ dan password ‘ahmad01’. User ini hanya dapat mengakses database dari lokal komputer server saja (localhost). Agar lebih jelas, berikut ini dibahas unsur‑unsur utama yang ada di dalam tabel ini.
  • Host
Merupakan lokasi di mana user dapat mengakses server MySQL melalui komputer tertentu. Host diisi dengan `localhost’ jika dalam aksesnya, user menggunakan komputer yang juga berfungsi sebagai server MySQL (lokal). Sehingga, user tersebut dibuat untuk bisa digunakan pada komputer server saja. Jika tingkat keamanan server pada sistem operasi cukup terjamin,, tidak seorang pun kecuali administrator yang dapat mengubah konfigurasi yang ada di server MySQL. Jika `localhost’ diganti dengan “%”, user mempunyai keleluasaan dalam mengakses dari komputer mana pun, meskipun dari segi keamanan menjadi lebih rawan. Karena “%” mengandung arti bahwa user dapat mengakses melalui komputer apapun, selama masih dalam satu jaringan, termasuk komputer yang berfungsi sebagai server MySQL. Untuk akses di luar server yang terbatas pada komputer tertentu saja, `localhost’ dapat diganti dengan IP address dari komputer masing‑masing.
  • User
Nama yang digunakan untuk masuk sebagai ID. Dalam penulisan nama, disarankan untuk menggunakan huruf pada awal penulisan nama.
  • Password
Agar keamanan server database terjamin, penggunaan password pada setiap user sangat disarankan, kecuali jika user tidak diberikan hak apapun dalam operasional server. Penulisan password disarankan untuk menggunakan huruf pada awal penulisan password.
  • Hak akses
Pemberian hak dalam operasional server dapat diberikan pada saat pembuatan user. 14 hak yang bisa dimiliki oleh seorang user dapat dilihat pada tabel di bawah ini.
Tabel 1. Hak Penggunaan Query
Nama Field Isian Default Hak untuk panggunaan Query
Select_priv ‘N’, ‘Y’ ‘N’ SELECT (Tabel)
Insert_priv ‘N’, ‘Y’ ‘N’ INSERT (Tabel)
Update_priv ‘N’, ‘Y’ ‘N’ UPDATE (Tabel)
Delete_priv ‘N’, ‘Y’ ‘N’ DELETE (Tabel)
Create_priv ‘N’, ‘Y’ ‘N’ CREATE (Database, Tabel, Index)
Drop_priv ‘N’, ‘Y’ ‘N’ DROP (Database, Tabel)
Reload_priv ‘N’, ‘Y’ ‘N’ RELOAD (Server Administration)
Shutdown_priv ‘N’, ‘Y’ ‘N’ SHUTDOWN (Server Administration)
Process_priv ‘N’, ‘Y’ ‘N’ PROCESS (Server Administration)
File_priv ‘N’, ‘Y’ ‘N’ FILE (Akses File di Server)
Grant_priv ‘N’, ‘Y’ ‘N’ GRANT (Database, Tabel)
References_priv ‘N’, ‘Y’ ‘N’ REFERENCES (Database, Tabel)
Index_priv ‘N’, ‘Y’ ‘N’ INDEX (Tabel)
Alter_priv ‘N’, ‘Y’ ‘N’ ALTER (Tabel)
Jika hak tsb dimasukkan pada saat pembuatan user, maka user akan langsung mempunyai hak-hak yang disebutkan pada saat pembuatan.  Contoh di bawah ini menunjukkan user langsung diberi hak untuk menggunakan perintah SELECT dan UPDATE.

6.2 Mengubah host
Lokasi akses server MySQL dapat saja diperluas atau dipersempit. Jika host diisi dengan `%’, user mempunyai hak yang sangat luas dalam lokasi akses. Namun, jika host diisi dengan `localhost’ atau IP tertentu seperti `192.168.1.1′, user mempunyai hak yang sangat sempit, yaitu hanya pada komputer dengan alamat IP yang dimaksudkan. Untuk memperluas host, dapat dilakukan sbb:

Sedangkan jika ingin mempersempit hak akses `ahmad’ ke server MySQL, hanya dari komputer dengan IP 192.168.1.1, tinggal merubah : set host=’192.168.1.1’
6.3 Mengubah nama user
Selain host, Anda juga dapat mengubah nama user yang salah atau tidak diinginkan. Di bawah ini perintah untuk mengganti nama user `ahmad’ diubah dengan `ahmad2002′.

6.4 Mengubah Password
Jika password menginginkan untuk dirubah karena lupa ataupun antisipasi keamanan, berikut ini cara untuk mengubahnya:

6.5 Mengubah hak akses
Jika dalam pembuatan user, hak tersebut tidak disertakan, maka yang harus dilakukan adalah mengubahnya melalui perintah UPDATE. Berikut ini cara untuk memberikan hak SELECT, INSERT dan UPDATE untuk user `ahmad2002′:

6.6 Menghapus user
Apabila user sudah tidak dipakai, ada perlunya nama user dibuang untuk memudahkan administrasi server database. Perintah untuk menghapus user ‘ahmad2002’ adalah:

7. Database
Database merupakan kumpulan dari beberapa tabel. sehingga untuk dapat membuat tabel, user harus membuat database lebih dahulu sebagai `induk’ yang memayungi tabel‑tabel di bawahnya.
7.1 Membuat Database
Dalam pembuatan database, yang harus diperhatikan adalah penulisan nama database tidak diperbolehkan menggunakan spasi dan karakter nonstandar. Bentuk penulisan perintah untuk membuat database baru adalah:
mysql> create database nama_database;
Berikut ini adalah perintah untuk membuat database universitas:
mysql> create database universitas;
7.2 Melihat keseluruhan database
Perintah untuk melihat semua database yang ada dalam server adalah sebagai berikut:


7.3 Menggunakan database
Setelah database terbuat, untuk bisa menggunakannya diperlukan perintah untuk menyatakan di bawah ini

7.4 Menghapus database
Sedangkan untuk menghapus database tersebut, Anda dapat menggunakan perintah berikut ini:
mysql> drop database nama_database;
Contoh:
mysql> drop database universitas;

8.  Data Definition Language (DDL)
DDL bertugas untuk membuat obyek SQL dan menyimpan definisinya dalam tabel. Contoh dari obyek yang dimaksud di atas adalah tabel, view, dan index. Pembuatan tabel, perubahan struktur tabel, perubahan nama tabel, serta perintah untuk menghapus tabel, dilakukan dengan sub bahasa yang tergolong dalam DDL. Perintah­-perintah yang digolongkan dalam DDL adalah CREATE, ALTER dan DROP.
8.1 Membuat Tabel
Dalam membuat tabel yang perlu diperhatikan, apakah database sudah dipanggil sebelumnya. Jika belum, panggil database tersebut atau buat database baru jika belum tersedia. Hal ini dilakukan agar tabel yang Anda buat mempunyai tempat dalam database. Tabel sebagai tempat penampungan data, mempunyai 2 bagian utama yaitu nama dan tipe data.
Format penulisan:
create tabel nama_tabel (nama_field type, _);
Contoh:

8.2 Melihat struktur tabel
Perintah describe narna_tabel; digunakan untuk melihat struktur tabel yang telah dibuat. Namun sebelumnya, pastikan Anda sudah berada pada database yang mempunyai tabel tersebut. Perhatikan contoh di bawah ini:

8.3 Mengubah struktur tabel
Jika struktur yang Anda buat terjadi kesalahan atau Anda menginginkan penggantian, gunakan perintah ALTER untuk mengubahnya. Terdapat dua jenis perubahan struktur tabel, yaitu:
  • Perubahan nama field
Format penulisan:
alter table nama_tabel change nama_fleld_lama nama_fleld_baru tipe_data;
Contoh:

  • Perubahan tipe data
Format penulisan:  alter table nama_ tabel modify nama_field  tipe_data_baru;
Contoh:

  • Penambahan field
Format penulisan: alter table nama_tabel add nama‑field tipe_data_baru;
Contoh:

  • Penghapusan field
Format penulisan: alter table nama_tabel drop column nama_field;
Contoh:


8.4 Mengganti nama tabel
Seringkali penggantian tabel juga meliputi nama tabel itu sendiri. Karena masih dalam obyek database, perintah penggantian nama tabel juga bisa dilakukan dengan DDL. Perintah DDL untuk kepentingan tersebut adalah ALTER.
Format penulisan:
alter table nama_tabe_ lama rename nama_tabel_baru
Contoh:

8.5 Menghapus tabel
Tabel dapat raja dihapus karma sudah tidak dibutuhkan lagi, atau terjadi kesalahan. Perintah untuk menghapus tabel adalah drop tabel.
Format penulisan: drop table nama_tabel;
Contoh:
drop table dosen;
9. Data Manipulation Language (DML)
DML digunakan untuk menampilkan, mengubah, menambah dan menghapus baris dalam tabel. Perintah‑perintah yang digolongkan dalam DML adalah INSERT, SELECT, DELETE dan UPDATE.
9.1 Memasukkan Data (Insert)
Ada dua perintah yang dapat Anda gunakan untuk memasukkan data ke dalam tabel:
  • insert into nama_tabel values (isi_field_l, isi_field_2, . ., isi_­field_n);
Contoh :




  • insert into nama_tabel (nama‑field_l, namo field 2, …, nama_field_n) values (isi‑field_l, isi‑field_2, …, isi_fleld_n);
Contoh :


9.2 Memilih dan Menampilkan Data (Select)
Query untuk menampilkan data akan banyak kita gunakan untuk menampilkan informasi berdasarkan kriteria dan urutan tertentu. Berikut ini perintah untuk menampilkan data:
Sintaks:
select nama_field 1, nama_field_2, .., nama_field_n from nama_tabel where kriteria
order by nama_field asc | desc;
Contoh:
•    Untuk menampilkan NIP, nama, dan alamat dosen yang namanya diawali dengan huruf N. Hasilnya akan diurutkan dari NIP terkecil (ascending).

•    Untuk menampilkan NIP, nama, dan alamat dosen yang diurutkan berdasarkan urutan abjad nama (ascending).

•    Untuk menampilkan NIP, nama dan tanggal lahir dosen yang diurutkan berdasarkan dari dosen yang termuda (descending).

9.3 Menghapus Data (Delete)
Apabila terdapat kesalahan data atau data sudah tidak dipakai lagi, hapus dengan perintahDELETE. Sintaks:
delete from nama tabel where kriteria;
Contoh penggunaannya bisa dilihat pada sub bagian 6.6.
9.4 Mengubah Data (Update)
Apabila data sudah kadaluwarsa, berikut ini perintah yang digunakan untuk mengubah data.
Sintaks:
update nama_tabel set nama_field_1=isi_baru_1, nama_field 2=isi baru_2, …, nama_field_n=isi_baru_n where kriteria;
Contoh penggunaannya bisa dilihat pada sub bagian 6.2, 6.3, 6.4 dan 6.5.
8. Data Control Language (DCL)
DCL digunakan sebagai alat kontrol keamanan terhadap database dan tabelnya. Dua perintah utama di dalam DCL adalah GRANT dan REVOKE.  GRANT digunakan untuk mengijinkan user mengakses tabel dalam database tertentu, sedangkan REVOKE sebaliknya.  REVOKE digunakan untuk mencabut kembali ijin yang sudah pernah diberikan sebelumnya oleh GRANT.

Sumber
Previous
Next Post »