Anda di halaman 1dari 13

Macam-macam Query MySQL dan Fungsinya

Posted on 00.38, under

MySQL adalah multiuser database yang menggunakan bahasa Structured Query Language (SQL).
MySQL dalam operasi client-server melibatkan server daemon MySQL disisi server dam berbagai
program library yang berjalan disisi client. Dan SQL adalah bahasa standart yang digunakan untuk
mengakses database server.

Berikut adalah Sintaks query SQL dan fungsinya:

1. CREATE DATABASE nama_database;

Perintah CREATE DATABASE berfungsi untuk membuat database baru dalam query MySQL.
Contoh:
CREATE DATABASE toko_online;

Selain itu ada juga query CREATE TABLE nama_table (nama_field1 tipe_data1, nama_field2
tipe_data2 ); , perintah ini berfungsi untuk membuat table dalam database yang telah dibuat
sebelumnya.
Contoh:
CREATE TABLE buku (id_buku int(7), judul varchar(100), jenis varchar(30), penerbit varchar(30),
penulis varchar(30), harga (int) );

2. USE nama_database

Untuk membuat table-table di dalam sebuah database, terlebih dahulu kita buka dulu database
tersebut dengan perintah USE nama_database.

Contoh:
USE toko_online

Perintah USE boleh tidak menggunakan akhiran titik koma(;).

3. INSERT INTO nama_table (field1, field2, field3, ) VALUES (field1, field2, field3, );

Query ini berfungsi untuk memasukkan data pada suatu table yang telah dibuat.

Contoh:
INSERT INTO buku (judul, jenis, penerbit, penulis, harga) Values (Spiderman, Komik, Marvel
Publishing, Peter Parker, 15000);

4. SELECT (field1, field2, ) FROM nama_table;


Query SELECT berfungsi untuk mengambil dan menampilkan data dalam kolom(field) pada suatu
table.

Contoh:
SELECT judul, penulis, penerbit FROM buku;

Dan untuk melihat semua kolom(field) pada suatu table, digunakan perintah sebagai berikut:

SELECT * FROM nama_table;

Selain itu didalam query SELECT juga terdapat perintah untuk menyaring dan menampilkan data
sesuai Kriteria tertentu, sintaksnya sebagai berikut:

SELECT (field1, field2, ) FROM nama_table WHERE Kriteria;atau


SELECT (field1, field2, ) FROM nama_table WHERE Kriteria LIKE seperti ini;

Contoh:
SELECT judul FROM buku WHERE jenis = komik;

Bisa juga dituliskan :


SELECT judul FROM buku WHERE jenis LIKE komik;

Dari contoh diatas query akan menampilkan semua data judul dari table buku yang mempunyai jenis
komik.
Contoh2:
SELECT * FROM buku WHERE penulis LIKE Peter%;

Pada perintah diatas query akan menampilkan semua data penulis yang nama depanya Peter.
Sedangkan apabila kita menulisnya seperti ini:

SELECT * FROM buku WHERE penulis = Peter;

Pasti hasilnya menampilkan peringatan Empety set. Itu karena apabila kita ingin menggunakan =
(sama dengan), kata yang dicari harus 100% sama dengan field tidak boleh ada singkatan atau
kekurangan. Maka dari itu perintah LIKE dibuat. Tapi perintah Like tidak bisa berdiri sendiri, harus
dibarengi dengan tanda % (persen).

5. SELECT (field1, field2, ) FROM nama_table ORDER BY Kriteria;

Query ini berfungsi untuk mensortir data sesuai kebutuhan dengan bantuan klausa ORDER BY.
Contoh:
SELECT judul, jenis, FROM buku ORDER By jenis;

Pada perintah diatas query akan menampilkan semua data field berdasarkan jenisnya, di urutkan
sesuai abjad.

Untuk mensortir dengan urutan terbalik, gunakan tambahan klausa DESC dibelakangnya. Sintaks
penulisanya adalah sebagai berikut:
SELECT (field1, field2, ) FROM nama_table ORDER BY Kriteria DESC;

Contoh:
SELECT judul, jenis, FROM buku ORDER By jenis DESC;

Perintah diatas akan mengurutkan semua data buku berdasarkan jenisnya secara DESC atau dimulai
dari abjad yang paling belakang.

6. DELETE nama_table WHERE Kriteria;

Sesuai format sintaksnya, perintah ini digunakan untuk menghapus data record sesuai kriteria yang
di inginkan.

Contoh:
DELETE FROM buku WHERE penulis = Peter Parker;

Untuk menghapus seluruh record pada suatu table, gunakan perintah DELETE tanpa menetukan
kriterianya. Namun perlu waspada dalam menggunakan perintah ini karena data yang telah terhapus
tidak dapat dikembalikan lagi:

DELETE FROM nama_table;

7. UPDATE nama_table SET nama_field1=nilai_baru1, nama_field2=nilai_baru2, WHERE Kriteria;

Perintah ini berfungsi untuk memodifikasi nilai kolom (field) dari suatu record.

Contoh:
UPDATE buku SET judul = Pengobatan Alternatif WHERE penulis = Peter Parker;

Untuk memodifikasi nilai suatu kolom (field) secara keseluruhan, gunakan perintah UPDATE tanpa
menentukan kriterianya.
Selain fungsi YEAR(), MONTH() dan DAY() yang saya gunakan, tabel berikut
merangkum beberapa fungsi lain yang bisa digunakan untuk tipe
data DATE dan TIMESTAMP:
Nama Fungsi Hasil

YEAR() Menampilkan nilai tahun

MONTH() Menampilkan nilai bulan (1..12)

MONTHNAME() Menampilkan nama bulan (January..December)

DAYOFMONTH() Menampilkan nilai tanggal (1..31)

DAYNAME() Menampilkan nama hari (Sunday..Saturday)

DAYOFWEEK() Menampilkan nilai hari (angka 1..7)

WEEKDAY() Menampilkan nilai hari (angka 0..6)

DAYOFYEAR() Menampilkan urutan hari (1..366)

HOUR() Menampilkan nilai jam (0..23)

MINUTE() Menampilkan nilai menit (0..59)

SECOND() Menampilkan nilai detik(0..59)

(1) Fungsi untuk menampilkan tanggal dan waktu


saat ini
Untuk menampilkan tanggal dan waktu saat ini (server), saya sering
menggunakan fungsi NOW(). Selain itu, dapat juga
menggunakan CURDATE() yang akan menghasilkan tanggal saat ini
dan CURTIME() yang akan menghasilkan waktu saat ini (tanpa tanggal).
Berikut ini contoh dan hasil tampilannya:

mysql> SELECT NOW(), CURDATE(), CURTIME();


+---------------------+------------+-----------+
| NOW() | CURDATE() | CURTIME() |
+---------------------+------------+-----------+
| 2010-09-20 22:01:22 | 2010-09-20 | 22:01:22 |
+---------------------+------------+-----------+
1 row in set (0.00 sec)

(2) Fungsi untuk Mengatur (Format) Tampilan


Tanggal dan Waktu
Seperti kita ketahui bersama, format default tanggal di MySQL adalah YYYY-
MM-DD. Format tersebut harus diikuti, terutama saat menyimpan nilai
kedalam field yang bertipe DATE. Nah, seringkali dalam menyajikan data ke
user, kita memerlukan format tanggal yang berbeda dari format tanggal
default tersebut. Misalnya kita ingin menampilkan tanggal dalam format
DD/MM/YYYY atau format panjang seperti September 20th, 2010. Lalu,
bagaimana caranya? Saya sering menggunakan
fungsi DATE_FORMAT() untuk mengatur tampilan tanggal dan waktu.
Dengan fungsi ini kita dapat menampilkan tanggal dalam berbagai format.
Format selengkapnya dapat dilihat di sini.

Berikut ini contohnya:

mysql> SELECT DATE_FORMAT(NOW(), '%d/%m/%Y') as tanggal1,


DATE_FORMAT(NOW(), '%M %D, %Y') as tanggal2;
+------------+----------------------+
| tanggal1 | tanggal2 |
+------------+----------------------+
| 20/09/2010 | September 20th, 2010 |
+------------+----------------------+
1 row in set (0.00 sec)

(3) Fungsi untuk Memecah Tanggal dan Waktu


Dari suatu field tanggal dan waktu yang tersimpan secara lengkap, seringkali
kita hanya ingin mengambil bagian tertentu saja. Misalnya hanya ingin
mengambil tahun atau tanggalnya saja. Selain menggunakan fungsi
DATE_FORMAT(), kita dapat memecah tanggal dengan menggunakan fungsi
seperti YEAR() untuk mengambil tahun, MONTH() untuk mengambil
bulan, DAY() untuk mengambil hari, HOUR() untuk mengambil jam, MINUTE()
untuk mengambil menit dan SECOND() untuk mengambil detik.

Berikut ini contoh perintahnya:

mysql> SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW()), HOUR(NOW()),


MINUTE(NOW()), SECOND(NOW());
+-------------+--------------+------------+-------------+---------------+--
-------------+
| YEAR(NOW()) | MONTH(NOW()) | DAY(NOW()) | HOUR(NOW()) | MINUTE(NOW()) |
SECOND(NOW()) |
+-------------+--------------+------------+-------------+---------------+--
-------------+
| 2010 | 9 | 20 | 22 | 21
| 11 |
+-------------+--------------+------------+-------------+---------------+--
-------------+
1 row in set (0.00 sec)

(4) Fungsi untuk Penambahan dan Pengurangan


Tanggal dan Waktu
Penambahan dan Pengurangan tanggal dan waktu merupakan operasi yang
sering dilakukan terhadap tanggal. Contohnya jika kita ingin mengetahui
tanggal berapakah 1 minggu ke depan, atau tanggal berapakah 10 hari yang
lalu. Operasi tersebut dapat menggunakan
fungsi DATE_ADD() dan DATE_SUB().
Berikut ini contoh sederhananya:

mysql> SELECT CURDATE() as sekarang, DATE_ADD(CURDATE(), INTERVAL 1 WEEK)


as '+ 1 minggu',
-> DATE_SUB(CURDATE(), INTERVAL 10 DAY) as '- 10 hari';
+------------+------------+------------+
| sekarang | + 1 minggu | - 10 hari |
+------------+------------+------------+
| 2010-09-20 | 2010-09-27 | 2010-09-10 |
+------------+------------+------------+
1 row in set (0.00 sec)

(5) Fungsi untuk Mencari Perbedaan diantara Dua


Tanggal atau Waktu
Sebelumnya, kita sudah mengenal fungsi untuk menambah dan mengurangi
tanggal atau waktu dengan interval tertentu. Lalu bagaimana caranya untuk
mencari perbedaan di antara dua tanggal atau waktu? Contoh sederhananya
misalnya untuk mencari umur seseorang berdasarkan tanggal lahirnya.
Solusinya sebenarnya cukup beragam, dapat menggunakan
fungsi PERIOD_DIFF() yang akan menghasilkan selisih bulan dari dua tanggal
(tanggal sekarang dan tanggal lahir), lalu tinggal dibagi dengan 12 untuk
mendapatkan umur dalam tahun. Selain itu, kita juga dapat mencari tahun dari
masing-masing tanggal sekarang dan tanggal lahir lalu dikurangkan. Lihat
contoh perintahnya sebagai berikut:

mysql> SELECT ((year(curdate())-year('1982-06-05')) - (right(curdate(),5) <


right('1982-06-05',5))) as umur;
+------+
| umur |
+------+
| 28 |
+------+
1 row in set (0.00 sec)
Tipe data tanggal (DATE) merupakan salah satu tipe data yang cukup sulit
digunakan. Selain memerlukan format tersendiri, hasil dari kolom dengan tipe data
date juga terbalik, yakni dengan format tampilan YYYY-MM-DD.
Dalam tutorial belajar MySQL kali ini saya akan membahas beberapa fungsi MySQL
yang bisa digunakan untuk mengambil dan menampilkan tipe data DATE.

Penjelasan cara penggunaan tipe data DATE MySQL telah dibahas pada: Tutorial MySQL Tipe
Data Date (Tanggal).

Mempersiapkan Tabel belajar_date


Sebagai tabel sample, saya akan membuat tabel belajar_date. Tabel ini terdiri dari
dua kolom bertipe DATE dan TIMESTAMP. Berikut query yang saya gunakan:
mysql> CREATE TABLE belajar_date (dt DATE,ts TIMESTAMP);
1
Query OK, 0 rows affected (0.08 sec)
2

3
mysql> INSERT INTO belajar_date VALUES ('2015-08-10','2015-08-10 08:30:15');
4
Query OK, 1 row affected (0.03 sec)
5

6
mysql> INSERT INTO belajar_date VALUES ('2016-08-17','2016-08-17 10:01:01');
7 Query OK, 1 row affected (0.04 sec)
8

9 mysql> INSERT INTO belajar_date VALUES ('2017-12-31','2017-12-31 23:59:59');

10 Query OK, 1 row affected (0.05 sec)

11

12 mysql> SELECT * FROM belajar_date;

+------------+---------------------+
13
| dt | ts |
14
+------------+---------------------+
15
| 2015-08-10 | 2015-08-10 08:30:15 |
16
| 2016-08-17 | 2016-08-17 10:01:01 |
17
| 2017-12-31 | 2017-12-31 23:59:59 |
18 +------------+---------------------+

19 3 rows in set (0.00 sec)

20

21

Seperti yang terlihat, MySQL menyimpan kolom bertipe data DATE menggunakan
format YYYY-MM-DD, dan untuk tipe data TIMESTAMP dengan format YYYY-MM-DD
HH:MM:SS.

Fungsi MySQL untuk Mengambil Nilai Date


MySQL menyediakan beragam fungsi untuk mengambil sebagian data dari kolom
bertipe DATEdan TIMESTAMP. Sebagai contoh, kita bisa menggunakan
fungsi YEAR() untuk mengambil bagian tahun, seperti query berikut ini:
1
mysql> SELECT YEAR(dt) FROM belajar_date;
2
+----------+
3 | YEAR(dt) |
4 +----------+

5 | 2015 |

6 | 2016 |

| 2017 |
7
+----------+
8
3 rows in set (0.00 sec)
9

Pada query diatas, saya menampilkan hanya nilai tahun dari kolom dt. Bagaimana
dengan nilai Bulan dan Tanggal? Berikut querynya:
1 mysql> SELECT MONTH(dt) FROM belajar_date;

+-----------+
2
| MONTH(dt) |
3
+-----------+
4
| 8 |
5
| 8 |
6
| 12 |
7 +-----------+
8 3 rows in set (0.00 sec)
9

10 mysql> SELECT DAY(dt) FROM belajar_date;

11 +---------+

| DAY(dt) |
12
+---------+
13
| 10 |
14
| 17 |
15
| 31 |
16 +---------+
17 3 rows in set (0.00 sec)
18

19

Selain fungsi YEAR(), MONTH() dan DAY() yang saya gunakan, tabel berikut
merangkum beberapa fungsi lain yang bisa digunakan untuk tipe
data DATE dan TIMESTAMP:
Nama Fungsi Hasil

YEAR() Menampilkan nilai tahun

MONTH() Menampilkan nilai bulan (1..12)

MONTHNAME() Menampilkan nama bulan (January..December)

DAYOFMONTH() Menampilkan nilai tanggal (1..31)

DAYNAME() Menampilkan nama hari (Sunday..Saturday)

DAYOFWEEK() Menampilkan nilai hari (angka 1..7)

WEEKDAY() Menampilkan nilai hari (angka 0..6)

DAYOFYEAR() Menampilkan urutan hari (1..366)

HOUR() Menampilkan nilai jam (0..23)

MINUTE() Menampilkan nilai menit (0..59)

SECOND() Menampilkan nilai detik(0..59)


Dengan menggunakan fungsi-fungsi ini kita bisa mengambil nilai yang diinginkan
dari kolom DATE dan TIMESTAMP:
1 mysql> SELECT HOUR(ts) FROM belajar_date;

2 +----------+

| HOUR(ts) |
3
+----------+
4
| 8 |
5
| 10 |
6
| 23 |
7 +----------+
8 3 rows in set (0.00 sec)

10 mysql> SELECT MINUTE(ts) FROM belajar_date;

11 +------------+

| MINUTE(ts) |
12
+------------+
13
| 30 |
14
| 1 |
15
| 59 |
16
+------------+
17 3 rows in set (0.00 sec)
18

19 mysql> SELECT SECOND(ts) FROM belajar_date;

20 +------------+

21 | SECOND(ts) |

+------------+
22
| 15 |
23
| 1 |
24
| 59 |
25
+------------+
26
3 rows in set (0.00 sec)
27

28 mysql> SELECT DAYOFYEAR(ts) FROM belajar_date;


29 +---------------+
30 | DAYOFYEAR(ts) |

31 +---------------+

| 222 |
32
| 230 |
33
| 365 |
34
+---------------+
35
3 rows in set (0.00 sec)
36

37 mysql> SELECT DAYNAME(ts) FROM belajar_date;


38 +-------------+
39 | DAYNAME(ts) |

40 +-------------+

41 | Monday |

| Wednesday |
42
| Sunday |
43
+-------------+
44
3 rows in set (0.06 sec)
45

46
mysql> SELECT ts, DAYNAME(ts) FROM belajar_date;
47 +---------------------+-------------+
48 | ts | DAYNAME(ts) |

49 +---------------------+-------------+

50 | 2015-08-10 08:30:15 | Monday |

51 | 2016-08-17 10:01:01 | Wednesday |

| 2017-12-31 23:59:59 | Sunday |


52
+---------------------+-------------+
53
3 rows in set (0.00 sec)
54

55

56

57

58

59
Fungsi CURDATE() dan NOW()
Masih berkaitan dengan tipe data date, MySQL menyediakan fungsi bawaan untuk
menghasilkan nilai DATE dan TIMESTAMP sistem saat ini. Fungsi yang bisa digunakan
adalah CURDATE() dan NOW().
Berikut contohnya:

1
mysql> INSERT INTO belajar_date VALUES (CURDATE(), NOW());
2
Query OK, 1 row affected (0.03 sec)
3

4
mysql> SELECT * FROM belajar_date;
5 +------------+---------------------+
6 | dt | ts |
7 +------------+---------------------+

8 | 2015-08-10 | 2015-08-10 08:30:15 |

9 | 2016-08-17 | 2016-08-17 10:01:01 |

| 2017-12-31 | 2017-12-31 23:59:59 |


10
| 2015-08-04 | 2015-08-04 15:34:14 |
11
+------------+---------------------+
12
4 rows in set (0.00 sec)
13

Fungsi CURDATE() akan menghasilkan nilai DATE yang ada di server dengan
format YYYY-MM-DD, sedangkan fungsi NOW() akan menghasilkan
nilai TIMESTAMP dengan format YYYY-MM-DD HH:MM:SS. Dalam query diatas, saya
menggunakan kedua fungsi ini untuk menginput data baru ke dalam
tabel belajar_date.
Dapat anda lihat bahwa kode diatas dijalankan pada tanggal 4 Agustus 2015 pukul
15:34:14, sesuai dengan sistem komputer yang saya gunakan (baris terakhir pada
tabel).

Fungsi-fungsi tanggal yang kita bahas kali ini cocok untuk menformat tampilan
kolom dengan tipe data DATE dan TIMESTAMP di dalam MySQL. Untuk hasil yang
lebih fleksibel, bisa menggunakan fungsi DATE_FORMAT() yang akan saya bahas
pada tutorial terpisah.

Anda mungkin juga menyukai