rss
twitter
    Selamat Datang di Dunia Pengetahuan

MySQL

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

c. Tipe Data Waktu

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’) ;

· UPDATE

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’ ;

· SELECT

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

  1. definer menunjukkan nama user yang mempunyai hak akses untuk mengakses triger.
  2. trigger_time menunjukkan saat triger tersebut dijalankan. terdiri dari before atau after
  3. trigger_stmt menandakan saat keadaan bagaimana triger tersebut aktif. terdiri dari
    1. insert : triger aktif saat baris baru dimasukkan ke dalam tabel
    2. update : triger aktif saat ada baris diperbaharui dimasukkan di dalam tabel
    3. delete :triger aktif saat baris dihapus dalam tabel

Contoh Triggers

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