MySQL merupakan multiuser database yang menggunakan bahasa Structured Query Language (SQL). Dalam konteks bahasa SQL, pada umumnya informasi tersimpan dalam tabel-tabel yang secara logika merupakan sturktur dua dimensi yang terdiri atas baris-baris data yangberada dalam satu atau lebih kolom. Baris pada tabel sering disebut sebagai instance dari data, sedangkan kolom sering disebut sebagai attribute atau field. Keseluruhan tabel itu dihimpun dalam satu kesatuan yang disebut database.
Tipe Data Pada MySQL
a. Tipe Data Numerik
| Tipe Data | Jangkauan Signed | Jangkauan Unsigned |
| TINYINT | -128 - 127 | 0 – 255 |
| SMALLINT | -32768 – 32767 | 0 – 65535 |
| MEDIUMINT | -8388608 – 8388607 | 0 – 16777215 |
| INT | -2147483648 - 2147483647 | 0 – 4294967295 |
| BIGINT | -9223372036854775808 - 9223372036854775807 | 0 - 18446744073709551615 |
b. Tipe Data String
| Tipe Data | Max Size |
| CHAR(size) | 255 byte |
| VARCHAR(size) | 255 byte |
| TINYTEXT | 255 byte |
| TINYBLOB | 255 byte |
| TEXT | 65535 byte |
| BLOB | 65535 byte |
| MEDIUMTEXT | 1.6 MB |
| MEDIUMBLOB | 1.6 MB |
| LONGTEXT | 4.2 GB |
| LONGBLOB | 4.2 GB |
| Tipe Data | Format Standard |
| DATETIME | YYYY-MM-DD HH:MM:SS |
| DATE | YYYY-MM-DD |
| TIME | HH:MM:SS |
| YEAR | YYYY |
| TIMESTAMP | YYYYMMDDHHMMSS |
Pada tipe data waktu, walaupun data yang disimpan numerik namun pembacaan terhadap data adalah string, jadi perlu dilakukan konversi jika ingin melakukan perhitungan.
Menjalan MySQL
Untuk menjalankan MySQL, langkah awal yang harus dilakukan adalah dengan mengaktifkan MySQL terlebih dahulu, yaitu dengan mengetikan pada command prompt:
cd\
C:\ > webserver\mysql\bin\mysql –h localhost –u root
*webserver(XAMPP,Apache,dll)
Apabila berhasil maka akan keluar command seperti dibawah ini:
Welcome to the MySQL monitor. Command end with ; or \g.
Your MySQL connection id is 48 to server version: 4.1.10a-nt-log
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>
Mengenal Bahasa MySQL
a. Membuat Database
Langkah awal dalam penyimpanan data, kita harus membentuk suatu database dengan mengetikan perintah dibawah ini pada command prompt:
| mysql>create database nama_database; |
Selanjutnya gunakan database yang telah kita buat dengan menggunakan perintah:
| mysql>use nama_database; |
Untuk menhapus database dapat menggunakan perintah:
| mysql>drop database nama_database; |
b. Membuat Tabel
Untuk mengisi database maka harus membuat tabel-tabel, caranya dengan perintah:
| mysql>create table nama_tabel (nama_field1 tipe_data, nama_field2 tipe_data); |
Keterangan:
Nama_table => nama tabel yang akan dibuat
Nama_field => nama suatu kolom dalam tabel
Tipe_data(size) => tipe data yang digunakan pada masing-masing kolom
Perintah lain:
Primary key => untuk mengidentifikasi record menjadi unik, sehingga tidak ada yang sama pada setiap recordnya.
Auto_increment => memberikan nilai secara otomatis dengan menaikan 1 angka setelah data sebelumnya.
Null/Not Null => untuk mengidentifikasi saat record pada suatu field kosong
c. Modifikasi Tabel
Untuk mengganti nama tabel dapat menggunakan perintah:
| mysql> alter table nama_tabel_lama rename nama_tabel_pengganti ; |
Untuk penambahan kolom/field dapat menggunakan perintah:
| mysql> alter table nama_tabel add column nama_kolom tipe_data letak ; |
*untuk letak merupakan pendiskripsian letak kolom yang akan ditambahkan
| Letak | Keterangan |
| first | Apabila ingin menambah kolom pada awal tabel |
| after nama_kolom_tertentu | Apabila ingin menambah kolom setelah kolom tertentu |
Untuk mengubah nama kolom beserta tipe datanya dapat menggunakan perintah:
| mysql> alter table nama_table change nama_kolom nama_kolom_pengganti tipe_data ; |
Untuk menghapus kolom dapat menggunakan perintah:
| mysql> alter table nama_tabel drop column nama_kolom ; |
Untuk menghapus tabel dapat menggunakan perintah:
| mysql> drop table nama_tabel ; |
d. Mengolah Isi Tabel
| QUERY | TUJUAN |
| INSERT | Memasukan Data |
| UPDATE | Memodifikasi Data |
| DELETE | Menghapus Data |
| SELECT | Mengambil Data |
· INSERT
Untuk memasukan data dalam tabel dapat menggunakan perintah:
| mysql> insert into nama_tabel (nama_kolom1, nama_kolom2) values (’isi_data1’,’ isi_data2’) ; |
Untuk mengganti isi data pada suatu kolom dapat menggunakan perintah:
| mysql> update nama_tabel set nama_kolom_tujuan1= ’isi_data_baru1’, nama_kolom_tujuan2= ’isi_data_baru2’ where nama_kolom_tujuan= ’isi_data_lama’ ; |
· DELETE
Untuk menghapus data satu baris dalam suatu tabel dapat menggunakan perintah:
| mysql> delete from nama_tabel where nama_kolom_tujuan=’ isi_data’ ; |
Dalam mengambil data dapat dilakukan dengan banyak cara, yaitu mengambil semua isi data dalam satu tabel atau dengan memilih data yang akan diambil dalam suatu tabel.
Untuk mengambil semua data dalam satu tabel dapat menggunakan perintah:
| mysql> select * from nama_tabel ; |
Untuk memilih data yang akan diambil dapat menggunakan perintah:
| mysql> select nama_kolom1, nama_kolom2 from nama_tabel ; |
Selain itu untuk menyaring data yang akan diambil dapat memanfaatkan operator-operator seperti dibawah ini
| OPERATOR | KETERANGAN |
| = | Menyatakan persamaan |
| < > atau != | Menyatakan pertidaksamaan |
| < | Menyatakan kurang dari |
| <= | Menyatakan kurang dari sama dengan |
| > | Menyatakan lebih dari |
| >= | Menyatakan lebih dari sama dengan |
Perintah untuk penggunaan operator tersebut adalah sebagai berikut:
| mysql> select * from nama_tabel where nama_kolom operator ’nilai_data’ ; |
| OPERATOR | KETERANGAN |
| and | Menyatakan penggabungan syarat lebih dari satu untuk semua nilai bernilai benar |
| or | Menyatakan penggabungan syarat lebih dari satu untuk salah satu nilai bernilai benar |
Perintah untuk penggunaan operator tersebut adalah sebagai berikut:
| mysql> select * from nama_tabel where nama_kolom1 = ’nilai_data1’ operator nama_kolom2 = ’nilai_data2’ ; | ||
| OPERATOR | KETERANGAN |
|
| Like | Menyatakan perbandingan nilai data |
|
Perintah untuk penggunaan operator tersebut adalah sebagai berikut:
| mysql> select * from nama_tabel where nama_kolom operator ’nilai_data’ ; |
Untuk menyatakan kemiripan dari nilai data dapat menggunakan perintah:
| mysql> select * from nama_tabel where nama_kolom operator ’%nilai_data%’ ; |
| OPERATOR | KETERANGAN |
| Between | Menyatakan pencarian nilai pada range tertentu |
Perintah untuk penggunaan operator tersebut adalah sebagai berikut:
| mysql> select * from nama_tabel where nama_kolom operator nilai_data1 and nilai_data2 ; |
| OPERATOR | KETERANGAN |
| In | Menyatakan nilai dalam list tertentu |
| Not in | Menyatakan nilai yang tidak ada dalam list tertentu |
Perintah untuk penggunaan operator tersebut adalah sebagai berikut:
| mysql> select * from nama_tabel where nama_kolom operator ( ’nilai_data1’, ’ nilai_data2’ ) ; |
Selain penyaringan, dalam pengambilan data juga dapat dilakukan pengurutan data. Untuk pengurutan data dari kecil ke besar dapat menggunakan perintah:
| mysql> select * from nama_tabel order by nama_kolom_acuan; |
Untuk pengurutan data dari besar ke kecil dapat menggunakan perintah:
| mysql> select * from nama_tabel order by nama_kolom_acuan desc ; |
Apabila ingin menampilkan acak dapat menggunakan perintah:
| mysql> select * from nama_tabel order by rand() ; |
e. Pengenalan Trigger MySQL
Trigger merupakan suatu fungsi pada MySQL yang dapat digunakan untuk menjalankan banyak perintah (insert, update, delete) dengan urutan-urutan tertentu yang diakibatkan dari satu even atau perintah yang dijalankan.
Untuk menjalankan trigger dapat dilakukan dengan perintah:
| mysql> create [definer = { user | current_user }] trigger trigger_name trigger_time trigger_event on tabel_name FOR EACH ROW trigger_stmt |
- definer menunjukkan nama user yang mempunyai hak akses untuk mengakses triger.
- trigger_time menunjukkan saat triger tersebut dijalankan. terdiri dari before atau after
- trigger_stmt menandakan saat keadaan bagaimana triger tersebut aktif. terdiri dari
- insert : triger aktif saat baris baru dimasukkan ke dalam tabel
- update : triger aktif saat ada baris diperbaharui dimasukkan di dalam tabel
- delete :triger aktif saat baris dihapus dalam tabel
mysql>CREATE TABLE test1(a1 INT);
CREATE TABLE test2(a2 INT);
CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE test4(a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,b4 INT DEFAULT 0);
mysql> DELIMITER |
mysql> CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
->DELETE FROM test3 WHERE a3 = NEW.a1;
->UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
->END;
-> |
Query OK, 0 rows affected (0.08 sec)
mysql> DELIMITER ;
mysql> INSERT INTO test3 (a3) VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
Query OK, 10 rows affected (0.00 sec)
Record: 10 Duplicates: 0 Warnings: 0
mysql> INSERT INTO test4 (a4) VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
Query OK, 10 rows affected (0.00 sec)
Record: 10 Duplicates: 0 Warnings: 0
mysql> INSERT INTO test1 VALUES
-> (1), (3), (1), (7), (1), (8), (4), (4);
Query OK, 8 rows affected (0.01 sec)
Records: 8 Duplicates: 0 Warnings: 0
Setelah memasukan nilai pada test1, dapat dilihat hasil dari trigger sebagai berikut;
mysql> SELECT * FROM test1;+------+| a1 |+------+| 1 || 3 || 1 || 7 || 1 || 8 || 4 || 4 |+------+8 rows in set (0.00 sec) mysql> SELECT * FROM test2;+------+| a2 |+------+| 1 || 3 || 1 || 7 || 1 || 8 || 4 || 4 |+------+8 rows in set (0.00 sec) mysql> SELECT * FROM test3;+----+| a3 |+----+| 2 || 5 || 6 || 9 || 10 |+----+5 rows in set (0.00 sec) mysql> SELECT * FROM test4;+----+------+| a4 | b4 |+----+------+| 1 | 3 || 2 | 0 || 3 | 1 || 4 | 2 || 5 | 0 || 6 | 0 || 7 | 1 || 8 | 1 || 9 | 0 || 10 | 0 |+----+------+10 rows in set (0.00 sec) Dari trigger diatas dapat diambil dilihat, ketika ada inputan pada tabel test1 maka secara otomatis tabel test2 akan terisi sama dengan data pada test1, pada tabel test3 akan menghapus data yang nilainya sama dengan nilai data pada tabel test1, dan pada tabel test4 akan menghitung jumlah data yang ada pada tabel test1. Sehingga apabila ada inputan lagi pada tabel test1 maka proses trigger pun akan kembali berjalan.
Untuk menghapus trigger dapat dilakukan dengan perintah:
| mysql> drop trigger trigger_name ; |


0 komentar:
Posting Komentar