Sunday, January 8, 2017

Bab 14. PHP/MySQL Untuk Pemula


Fungsi-Fungsi Pustaka MySQL



Menciptakan Tabel
Berikut diciptakan sebuah tabel bernama mobil:

mysql> CREATE TABLE mobil(
    -> PEMBUAT VARCHAR (25),
    -> MODEL VARCHAR (25),
    -> HARGA NUMERIC
    -> );
Query OK, 0 rows affected (0.37 sec)

mysql> INSERT INTO mobil VALUES ('CHRYSLER', 'CROSSFIRE', 33620);
Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO mobil VALUES ('CHRYSLER', '300M', 29185);
Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO mobil VALUES ('CHRYSLER', 'CIVIC', 15610);
Query OK, 1 row affected (0.06 sec)

mysql> INSERT INTO mobil VALUES ('HONDA', 'ACCORD', 19300);
Query OK, 1 row affected (0.06 sec)

mysql> INSERT INTO MOBIL VALUES('FORD', 'MUSTANG', 15610);
Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO MOBIL VALUES('FORD', 'LATESTnGREATEST', NULL);
Query OK, 1 row affected (0.08 sec)

mysql> INSERT INTO MOBIL VALUES('FORD', 'FOCUS', 13005);
Query OK, 1 row affected (0.06 sec)

Fungsi AVG()
Fungsi AVG() menghitung rerata aritmatik dari serangkaian angka pada argumennya. Sebagai contoh, query berikut dapat dipakai untuk mengumpulkan informasi statistik tentang setiap kendaraan pada tabel mobil:

mysql> SELECT
    -> AVG(harga) harga_rerata
    -> FROM mobil;
+--------------+
| harga_rerata |
+--------------+
|   21055.0000 |
+--------------+
1 row in set (0.00 sec)

Untuk menghitung harga rerata untuk tiap manufaktur (pembuat), Anda bisa menggunakan klausa GROUP BY:

mysql> SELECT
    -> pembuat,
    -> AVG(harga) harga_rerata
    -> FROM mobil
    -> GROUP BY pembuat;
+----------+--------------+
| pembuat  | harga_rerata |
+----------+--------------+
| CHRYSLER |   26138.3333 |
| FORD     |   14307.5000 |
| HONDA    |   19300.0000 |
+----------+--------------+
3 rows in set (0.00 sec)


Fungsi COUNT()
Fungsi ini menjawab pertanyaan, “Berapa banyak kendaraan yang Anda miliki di parkir?”. Perhatikan contoh berikut:

mysql> SELECT
    -> COUNT(*) hitung_mobil
    -> FROM mobil;
+--------------+
| hitung_mobil |
+--------------+
|            7 |
+--------------+
1 row in set (0.00 sec)

Dengan menggunakan klausa GROUP BY, Anda bisa menghitung berapa banyak mobil dari tiap vendor yang Anda miliki di garasi Anda:

mysql> SELECT
    -> pembuat,
    -> COUNT(harga) hitung_mobil
    -> FROM mobil
    -> GROUP BY pembuat;
+----------+--------------+
| pembuat  | hitung_mobil |
+----------+--------------+
| CHRYSLER |            3 |
| FORD     |            2 |
| HONDA    |            1 |
+----------+--------------+
3 rows in set (0.00 sec)

Fungsi COUNT(*) melaporkan bahwa nilai dari hitung_mobil sama dengan 7, sedangkan COUNT(harga) menegaskan bahwa Anda hanya memiliki enam mobil. Anda bisa mengamati bahwa pada tabel mobil terlihat bahwa satu model Ford memiliki harga NULL.

mysql> SELECT
    -> pembuat,
    -> COUNT(*) hitung_total,
    -> COUNT(harga) harga_mobil
    -> FROM mobil
    -> GROUP BY pembuat;
+----------+--------------+-------------+
| pembuat  | hitung_total | harga_mobil |
+----------+--------------+-------------+
| CHRYSLER |            3 |           3 |
| FORD     |            3 |           2 |
| HONDA    |            1 |           1 |
+----------+--------------+-------------+
3 rows in set (0.00 sec)


Fungsi MAX() dan MIN()
Dari namanya, kedua fungsi ini bisa ditebak maknanya. Kedua fungsi tersebut dapat Anda pakai untuk menampilkan nilai maksimum dan nilai minimum dari suatu himpunan nilai. Untuk mencari harga tertinggi dan harga terendah dari semua mobil, query berikut dapat digunakan:

mysql> SELECT
    -> MAX(harga) harga_maks,
    -> MIN(harga) harga_min
    -> FROM mobil;
+------------+-----------+
| harga_maks | harga_min |
+------------+-----------+
|      33620 |     13005 |
+------------+-----------+
1 row in set (0.05 sec)

Untuk menghitung rentang harga mobil yang dikaitkan dengan pembuatnya, Anda bisa menggunakan klausa GROUP BY berikut:

mysql> SELECT
    -> pembuat,
    -> MAX(harga) harga_maks,
    -> MIN(harga) harga_min
    -> FROM mobil
    -> GROUP BY pembuat;
+----------+------------+-----------+
| pembuat  | harga_maks | harga_min |
+----------+------------+-----------+
| CHRYSLER |      33620 |     15610 |
| FORD     |      15610 |     13005 |
| HONDA    |      19300 |     19300 |
+----------+------------+-----------+
3 rows in set (0.00 sec)


Fungsi SUM()
Fungsi SUM() melakukan penjumlahan. Sebagai contoh, untuk menghitung total harga dari semua mobil, Anda menggunakan query berikut:

mysql> SELECT
    -> SUM(harga) total
    -> FROM mobil;
+--------+
| total  |
+--------+
| 126330 |
+--------+
1 row in set (0.00 sec)

Fungi GROUP BY akan menghasilkan sudut lain terhadap data: total inventori yang terdistribusi pada pelbagai vendor:

mysql> SELECT
    -> pembuat,
    -> SUM(harga) total
    -> FROM mobil
    -> GROUP BY pembuat;
+----------+-------+
| pembuat  | total |
+----------+-------+
| CHRYSLER | 78415 |
| FORD     | 28615 |
| HONDA    | 19300 |
+----------+-------+
3 rows in set (0.00 sec)


Fungsi ASCII()
Fungsi ini menghasilkan nilai numerik dari karakter pojok-kiri dari sebuah string. Menghasilkan 0 jika string adalah string kosong. Menghasilkan NULL jika string adalah NULL. Fungsi ASCII() dipakai untuk karakter dengan nilai numerik dari 0 sampai 255.

mysql> SELECT
    -> ASCII('A') a_hurufbesar,
    -> ASCII('abc') a_hurufkecil;
+--------------+--------------+
| a_hurufbesar | a_hurufkecil |
+--------------+--------------+
|           65 |           97 |
+--------------+--------------+
1 row in set (0.01 sec)


Fungsi CHAR()
Fungsi CHAR() kebalikan dari fungsi ASCII(), yang menghasilkan sebuah karakter bila diberikan kode ASCII. Sebagai contoh, perhatikan berikut:

mysql> SELECT
    -> CHAR(65) a_hurufbesar,
    -> CHAR(97) a_hurufkecil;
+--------------+--------------+
| a_hurufbesar | a_hurufkecil |
+--------------+--------------+
| A            | a            |
+--------------+--------------+
1 row in set (0.00 sec)


Fungsi CONCAT()
Fungsi CONCAT() menggabungkan dua (atau lebih) string. MySQL mengijinkan penggabungan lebih dari dua string. Perhatikan contoh berikut:

mysql> SELECT
    -> CONCAT('Teknik', 'Elektro', 'Yamaguchi') hasil;
+------------------------+
| hasil                  |
+------------------------+
| TeknikElektroYamaguchi |
+------------------------+
1 row in set (0.05 sec)


Fungsi LOWER() dan UPPER()
Fungsi LOWER() dan UPPER() saling berkomplemen. Fungsi LOWER() mengkonversi semua karakter dalam sebuah string menjadi huruf kecil dan fungsi UPPER() mengkonversinya menjadi huruf besar. Perhatikan contoh berikut:

mysql> SELECT
    -> LOWER('INFORMATIKA') hurufkecil,
    -> UPPER('inforMATIKA') hurufbesar;
+-------------+-------------+
| hurufkecil  | hurufbesar  |
+-------------+-------------+
| informatika | INFORMATIKA |
+-------------+-------------+
1 row in set (0.02 sec)


Fungsi LENGTH() dan LEN()
Fungsi LENGTH() menghasilkan banyaknya karakter dalam sebuah string. Perhatikan query berikut:

mysql> SELECT
    -> LENGTH('elektro') hasil;
+-------+
| hasil |
+-------+
|     7 |
+-------+
1 row in set (0.00 sec)


Fungsi REPLACE()
Contoh berikut mengganti setiap huruf besar “A” dalam sebuah string menjadi asterisk “*” pada bidang pertama. Pada bidang kedua, dimana argumen ketiga diabaikan, dihasilkan sebuah string dengan semua “A” dihapus.

mysql> SELECT
    -> REPLACE('ABCDA', 'A', '*') ganti_A,
    -> REPLACE('ABCDA', 'A', '') hapus_A;
+---------+---------+
| ganti_A | hapus_A |
+---------+---------+
| *BCD*   | BCD     |
+---------+---------+
1 row in set (0.00 sec)


Fungsi ABS()
Fungsi ABS() menghasilkan nilai absolut dari sebuah argumen masukan numerik. Seperti contoh-contoh berikut, angka yang dihasilkan selalu positif:

mysql> SELECT
    -> ABS(-100) negatif,
    -> ABS(100) positif;
+---------+---------+
| negatif | positif |
+---------+---------+
|     100 |     100 |
+---------+---------+
1 row in set (0.03 sec)


Fungsi ACOS()
Fungsi ACOS() dipakai untuk menghasilkan arkus kosinus dari ekspresi numerik yang dilewatkan kepadanya. Ekspresi numerik tersebut harus berupa suatu nilai pecahan dalam rentang -1 dan 1. Nilai yang dihasilkan adalah dalam format radian. Kode berikut memberikan contoh penggunaan fungsi ACOS():

mysql> SELECT
    -> ROUND(DEGREES(ACOS(.5)),0) as SUDUT_PERTAMA,
    -> ROUND(DEGREES(ACOS(.75)),0) as SUDUT_KEDUA,
    -> ROUND(DEGREES(ACOS(1.0)),0) as SUDUT_KETIGA;
+---------------+-------------+--------------+
| SUDUT_PERTAMA | SUDUT_KEDUA | SUDUT_KETIGA |
+---------------+-------------+--------------+
|            60 |          41 |            0 |
+---------------+-------------+--------------+
1 row in set (0.05 sec)


Fungsi ASIN()
Fungsi ASIN() dipakai untuk menghasilkan arkus sinus dari ekspresi numerik yang dilewatkan kepadanya. Ekspresi numerik tersebut harus berupa suatu nilai pecahan dalam rentang -1 dan 1. Nilai yang dihasilkan adalah dalam format radian. Kode berikut memberikan contoh penggunaan fungsi ASIN():

mysql> SELECT
    -> ROUND(DEGREES(ASIN(.5)),0) as SUDUT_PERTAMA,
    -> ROUND(DEGREES(ASIN(.75)),0) as SUDUT_KEDUA,
    -> ROUND(DEGREES(ASIN(1.0)),0) as SUDUT_KETIGA;
+---------------+-------------+--------------+
| SUDUT_PERTAMA | SUDUT_KEDUA | SUDUT_KETIGA |
+---------------+-------------+--------------+
|            30 |          49 |           90 |
+---------------+-------------+--------------+
1 row in set (0.00 sec)





Fungsi ATAN() dan ATAN2()
Fungsi ATAN dan ATAN2() dipakai untuk menghasilkan format arkus tangent dari argumen yang dilewatkan. Kode berikut menampilkan sebuah contoh penggunaan kedua fungsi tersebut:

mysql> SELECT
    -> ATAN(.5) AS HASIL_PERTAMA,
    -> ATAN2(.5, 1.0) AS HASIL_KEDUA
    -> FROM DUAL;
+--------------------+--------------------+
| HASIL_PERTAMA      | HASIL_KEDUA        |
+--------------------+--------------------+
| 0.4636476090008061 | 0.4636476090008061 |
+--------------------+--------------------+
1 row in set (0.00 sec)


Fungsi CEIL() dan FLOOR()
Kedua fungsi membulatkan angka, secara berbeda. CEIL() membulatkan ke integer terdekat atas. FLOOR() membulatkan ke integer bawah terdekat. Perhatikan contoh berikut:

mysql> SELECT
    -> CEIL(109.19) nil_ceil,
    -> FLOOR(109.19) nil_floor;
+----------+-----------+
| nil_ceil | nil_floor |
+----------+-----------+
|      110 |       109 |
+----------+-----------+
1 row in set (0.00 sec)


Fungsi COS()
Fungsi COS() menghasilkan nilai kosinus dari argumen yang dilewatkan kepadanya. Argumen harus berupa sebuah nilai pecahan yang merepresentasikan sudut dalam radian. Contoh berikut mendemonstrasikan kegunaan dari fungsi COS():

mysql> SELECT
    -> COS(RADIANS(0)) AS SUDUT_PERTAMA,
    -> COS(RADIANS(45)) AS SUDUT_KEDUA,
    -> COS(RADIANS(90)) AS SUDUT_KETIGA;
+---------------+--------------------+-----------------------+
| SUDUT_PERTAMA | SUDUT_KEDUA        | SUDUT_KETIGA          |
+---------------+--------------------+-----------------------+
|             1 | 0.7071067811865476 | 6.123233995736766e-17 |
+---------------+--------------------+-----------------------+
1 row in set (0.00 sec)

Fungsi COT()
Fungsi COT() menghasilkan nilai kosinus hiperbolik dari argumen yang dilewatkan kepadanya. Argumen harus berupa sebuah nilai pecahan yang merepresentasikan sudut dalam radian. Contoh berikut mendemonstrasikan kegunaan dari fungsi COT():

mysql> SELECT
    -> COT(RADIANS(90)) AS SUDUT;
+-----------------------+
| SUDUT                 |
+-----------------------+
| 6.123233995736766e-17 |
+-----------------------+
1 row in set (0.00 sec)


Fungsi DEGREES() dan RADIANS()
Fungsi DEGREES() dan RADIANS() saling melengkapi satu sama lain. DEGREES() mengambil argumen radian dan menghasilkan derajat, sedangkan RADIANS() melakukan operasi kebalikannya. Perhatikan contoh berikut:

mysql> SELECT
    -> RADIANS(45) radian,
    -> CEIL(DEGREES(0.7853981633)) derajat;
+--------------------+---------+
| radian             | derajat |
+--------------------+---------+
| 0.7853981633974483 |      45 |
+--------------------+---------+
1 row in set (0.00 sec)


Fungsi EXP()
Fungsi EXP() menghasilkan e (basis dari logaritma natural) yang dipangkatkan dengan argumennya. Perhatikan contoh berikut:

mysql> SELECT
    -> EXP(10) eksponen;
+--------------------+
| eksponen           |
+--------------------+
| 22026.465794806718 |
+--------------------+
1 row in set (0.00 sec)


Fungsi MOD()
Fungsi MOD() menghasilkan sisa dari ekspresi numerik 1 yang dibagi dengan ekspresi numerik 2, seperti ditunjukkan sebagai berikut:

mysql> SELECT
    -> MOD(10, 5) sisa1,
    -> MOD(10, 3) sisa2;
+-------+-------+
| sisa1 | sisa2 |
+-------+-------+
|     0 |     1 |
+-------+-------+
1 row in set (0.01 sec)


Fungsi PI()
Fungsi PI() menghasilkan nilai konstan dari pi. Kode berikut mendemonstrasikan hasil dari fungsi PI():

mysql> SELECT
    -> PI() AS HASIL_DARI_PI;
+---------------+
| HASIL_DARI_PI |
+---------------+
|      3.141593 |
+---------------+
1 row in set (0.00 sec)


Fungsi POWER()
Fungsi POWER() menghasilkan ekspresi numerik (argumen pertama) yang dipangkatkan dengan argumen kedua. Berikut adalah sebuah contoh pemangkatan 100 dengan 2:

mysql> SELECT
    -> POWER(100, 2) pangkat;
+---------+
| pangkat |
+---------+
|   10000 |
+---------+
1 row in set (0.00 sec)


Fungsi RAND()
Fungsi RAND() dipakai untuk menghasilkan suatu angka acak. Perhatikan contoh berikut:

mysql> SELECT
    -> RAND() angka_acak;
+------------------+
| angka_acak       |
+------------------+
| 0.77515100108008 |
+------------------+
1 row in set (0.00 sec)

Untuk menghasilkan angka acak dalam rentang di luar 0-1, Anda dapat mengalikan keluaran fungsi RAND() dengan sebuah faktor pengali, dan kemudian melakukan pemotongan (dengan fungsi TRUNCATE()) atau pembulatan (dengan fungsi ROUND()) terhadap hasil. Berikut adalalah salah satu contohnya:

mysql> SELECT
    -> ROUND((RAND() * 10000), 0) dari_nol_sampai_10000
+-----------------------+
| dari_nol_sampai_10000 |
+-----------------------+
|                  8124 |
+-----------------------+
1 row in set (0.00 sec)


Fungsi SIGN()
Fungsi SIGN() menghasilkan -1 ketika argumen masukan bernilai negatif, 1 ketika argumen bernilai positif, dan 0 ketika argumen bernilai nol, seperti berikut:

mysql> SELECT
    -> SIGN(-50) minus,
    -> SIGN(50) plus,
    -> SIGN(0) nol,
    -> SIGN(NULL) nilai_null;
+-------+------+-----+------------+
| minus | plus | nol | nilai_null |
+-------+------+-----+------------+
|    -1 |    1 |   0 |       NULL |
+-------+------+-----+------------+
1 row in set (0.00 sec)


Fungsi SQRT()
Fungsi SQRT() mengekstrak akar kuadrat dari argumen masukan. Fungsi ini hanya menerima argumen positif dan menghasilkan error bila argumen negatif dilewatkan kepadanya.

mysql> SELECT
    -> SQRT(100) akar;
+------+
| akar |
+------+
|   10 |
+------+
1 row in set (0.00 sec)


Fungsi TAN()
Fungsi TAN() menghasilkan nilai tangent dari argumen yang dilewatkan kepadanya. Argumen merepresentasikan sudut dalam radian. Kode berikut memberikan contoh dari penggunaan fungsi TAN():

mysql> SELECT
    -> TAN(36) AS HASIL;
+-------------------+
| HASIL             |
+-------------------+
| 7.750470905699148 |
+-------------------+
1 row in set (0.00 sec)


Fungsi FORMAT()
Fungsi FORMAT() dipakai untuk memformat angka X dalam format berikut:###,###,###.### yang dipotong menjadi D titik desimal. Contoh berikut mendemonstrasikan kegunaan dan keluaran dari fungsi FORMAT():

mysql> SELECT
    -> FORMAT(423423234.65434452,2) AS ANGKA_BESAR;
+----------------+
| ANGKA_BESAR    |
+----------------+
| 423,423,234.65 |
+----------------+
1 row in set (0.03 sec)


Fungsi GREATEST()
Fungsi GREATEST() menghasilkan nilai terbesar dari suatu himpunan argumen (n1, n2, n3, dan seterusnya). Contoh berikut menggunakan fungsi GREATEST untuk menghasilkan angka terbesar dari suatu himpunan nilai numerik:

mysql> SELECT
    -> GREATEST(2,3,4,5,32,34,65,97,65,32,3) AS PEMENANG;
+----------+
| PEMENANG |
+----------+
|       97 |
+----------+
1 row in set (0.00 sec)


Fungsi INTERVAL()
Fungsi INTERVAL() membandingkan nilai N dengan suatu daftar nilai (N1, N2, N3, dan seterusnya). Fungsi ini menghasilkan 0 jika N<N1, 1 jika N<N2, 2 jika N<N3, dan seterusnya. Ia akan menghasilkan -1 jika N adalah NULL. Daftar nilai harus dalam format N1<N2<N3. Kode berikut merupakan contoh sederhana bagaimana fungsi INTERVAL() bekerja:

mysql> SELECT INTERVAL(6,1,2,3,4,5,6,7,8,9,10) AS PEMENANG;
+----------+
| PEMENANG |
+----------+
|        6 |
+----------+
1 row in set (0.03 sec)


Fungsi LEAST()
Fungsi LEAST() merupakan kebalikan dari fungsi GREATEST(). Tujuannya adalah untuk menghasilkan item dengan nilai terkecil dari suatu daftar nilai (N1, N2, N3, dan seterusnya). Contoh berikut menunjukkan kegunaan dan keluaran dari fungsi LEAST():

mysql> SELECT
    -> LEAST(3,5,1,8,7,44,55,67,43) AS PEMENANG;
+----------+
| PEMENANG |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)


Fungsi LOG()
Versi satu argumen dari fungsi ini akan menghasilkan logaritma natural dari argumennya. Jika ia dipanggil dengan dua argumen, maka akan dihasilkan logaritma dari argumen kedua untuk basis pada argumen pertama. Perhatikan contoh berikut:

mysql> SELECT LOG(45);
+--------------------+
| LOG(45)            |
+--------------------+
| 3.8066624897703196 |
+--------------------+
1 row in set (0.00 sec)

mysql> SELECT LOG(2,63727);
+--------------------+
| LOG(2,63727)       |
+--------------------+
| 15.959617125863682 |
+--------------------+
1 row in set (0.00 sec)


Fungsi LOG10()
Fungsi ini menghasilkan logaritma basis-10 dari argumennya. Perhatikan contoh berikut:

mysql> SELECT LOG10(100);
+------------+
| LOG10(100) |
+------------+
|          2 |
+------------+
1 row in set (0.00 sec)


Fungsi CONV()
Tujuan dari fungsi CONV() adalah mengkonversi angka dengan pelbagai basis yang berbeda. Fungsi ini menghasilkan sebuah string dengan nilai argumen pertama yang dikonversi dari basis pada argumen kedua menjadi basis pada argumen ketiga. Nilai basis minimum adalah 2 dan maksimum 36. Jika terdapat argumen yang bernilai NULL, maka fungsi ini menghasilkan NULL. Perhatikan contoh berikut, yang mengkonversi angka 5 dari basis 16 menjadi basis 2:

mysql> SELECT
    -> CONV(5,16,2) AS KONVERSI;
+----------+
| KONVERSI |
+----------+
| 101      |
+----------+
1 row in set (0.00 sec)


Fungsi OCT()
Fungsi OCT() menghasilkan representasi string dari bilangan oktal yang menjadi argumennya. Ini sama dengan CONV(N, 10, 8). Kode berikut mendemonstrasikan kegunaan dari fungsi OCT():

mysql> SELECT
    -> OCT(12) AS OKTAL;
+-------+
| OKTAL |
+-------+
| 14    |
+-------+
1 row in set (0.00 sec)


Fungsi STD() atau STDDEV()
Fungsi STD dipakai untuk menghasilkan deviasi standar dari sebuah ekspresi. Ini ekivalen dengan akar kuadrat dari VARIANCE() atas suatu ekspresi. Contoh berikut menghitung deviasi standar dari kolom harga pada tabel mobil:

mysql> SELECT
    -> STD(HARGA) DEVIASI_STD
    -> FROM MOBIL;
+-------------------+
| DEVIASI_STD       |
+-------------------+
| 7650.214593940051 |
+-------------------+
1 row in set (0.00 sec)


Fungsi BIT_AND()
Fungsi BIT_AND() menghasilkan AND bitwise dari semua bit. Premis dasarnya adalah bahwa jika dua bit sama, maka operasi AND bitwise akan menghasilkan 1, sedangkan jika kedua bit berbeda, maka operasi AND bitwise akan menghasilkan 0. Contoh berikut menerapkan fungsi BIT_AND() pada kolom HARGA yang dikolompokkkan berdasarkan PEMBUAT mobil:

mysql> SELECT
    -> PEMBUAT, BIT_AND(HARGA) HASIL
    -> FROM MOBIL
    -> GROUP BY PEMBUAT;
+----------+-------+
| PEMBUAT  | HASIL |
+----------+-------+
| CHRYSLER |     0 |
| FORD     | 12488 |
| HONDA    | 19300 |
+----------+-------+
3 rows in set (0.00 sec)


Fungsi BIT_COUNT()
Fungsi BIT_COUNT() menghasilkan jumlah bit yang aktif pada argumennya. Contoh berikut mendemonstrasikan penggunaan fungsi BIT_COUNT() untuk menghasilkan jumlah bit aktif pada beberapa angka:

mysql> SELECT BIT_COUNT(2) AS DUA,
    -> BIT_COUNT(4) AS EMPAT,
    -> BIT_COUNT(7) AS TUJUH;
+-----+-------+-------+
| DUA | EMPAT | TUJUH |
+-----+-------+-------+
|   1 |     1 |     3 |
+-----+-------+-------+
1 row in set (0.00 sec)


Fungsi BIT_OR()
Fungsi BIT_OR() menghasilkan OR bitwise dari semua bit. Premis dasarnya adalah bahwa jika dua bit sama, maka operasi OR bitwise akan menghasilkan 0, sedangkan jika kedua bit berbeda, maka operasi OR bitwise akan menghasilkan 1. Contoh berikut menerapkan fungsi BIT_OR() pada kolom HARGA yang dikolompokkkan berdasarkan PEMBUAT mobil:

mysql> SELECT
    -> PEMBUAT, BIT_OR(HARGA) HASIL
    -> FROM MOBIL
    -> GROUP BY PEMBUAT;
+----------+-------+
| PEMBUAT  | HASIL |
+----------+-------+
| CHRYSLER | 65535 |
| FORD     | 16127 |
| HONDA    | 19300 |
+----------+-------+
3 rows in set (0.00 sec)


Fungsi TRUNCATE()
Fungsi TRUNCATE() menghasilkan argumen yang dipotong menjadi sejumlah titik desimal yang ditetapkan pada argumen kedua. Perhatikan contoh berikut:

mysql> SELECT
    -> TRUNCATE(109.29, 1) DIPOTONG;
+----------+
| DIPOTONG |
+----------+
|    109.2 |
+----------+
1 row in set (0.00 sec)


Fungsi COALESCE()
Fungsi COELESCE() menghasilkan ekspresi tak-null pertama dalam daftar ekspresi. Sedikitnya harus terdapat satu ekspresi yang tidak NULL. Jika semua ekspresi bernilai NULL, maka fungsi ini menghasilkan NULL. Perhatikan contoh berikut:

mysql> SELECT
    -> COALESCE(NULL, NULL, 'TAK NULL', NULL) UJI
    -> ;
+----------+
| UJI      |
+----------+
| TAK NULL |
+----------+
1 row in set (0.03 sec)


Fungsi NULLIF()
Fungsi NULLIF() membandingkan dua ekspresi. Jika keduanya sama, maka fungsi ini menghasilkan NULL. Sebaliknya, ia menghasilkan ekspresi pertama. Berikut adalah contohnya:

mysql> SELECT
    -> NULLIF('ABC', 'ABC') sama,
    -> NULLIF('ABC', 'DEF') beda;
+------+------+
| sama | beda |
+------+------+
| NULL | ABC  |
+------+------+
1 row in set (0.00 sec)


Fungsi BIN()
Fungsi BIN() menghasilkan sebuah representasi string atas nilai biner pada argumen masukannya. Argumen harus bertipe BIGINT. Jika nilai argumen adalah NULL, maka fungsi ini menghasilkan NULL. Perhatikan contoh berikut:

mysql> SELECT BIN(48) AS NILAI_BIT;
+-----------+
| NILAI_BIT |
+-----------+
| 110000    |
+-----------+
1 row in set (0.00 sec)


Fungsi COMPRESS()
Fungsi COMPRESS() dipakai untuk memampatkan isi sebuah string. String yang termampatkan dapat dikembalikan menggunakan fungsi UNCOMPRESS(). Perhatikan contoh berikut yang memampatkan sebuah frase dan kemudian menggunakan fungsi UNCOMPRESS() untuk membalikannya:

mysql> SELECT
    -> COMPRESS('SAYA ADALAH MAHASISWA TEKNIK INFORMATIKA') AS TERMAMPATKAN,
    -> UNCOMPRESS(COMPRESS('SAYA ADALAH MAHASISWA TEKNIK INFORMATIKA')) AS TAK_MAMPAT;
+------------------------------------------------------+------------------------------------------+
| TERMAMPATKAN                                         | TAK_MAMPAT                               |
+------------------------------------------------------+------------------------------------------+
| (   x£♂vîtTptq¶q¶P-u¶p♀÷♀♫wq§÷_¶V-¶s_☼_u♀±¶v♦ █Y
O | SAYA ADALAH MAHASISWA TEKNIK INFORMATIKA |
+------------------------------------------------------+------------------------------------------+
1 row in set (0.00 sec)


Fungsi ELT()
Fungsi ELT() menghasilkan argumen kedua jika argumen pertama sama dengan 1, argumen ketiga jika argumen pertama sama dengan 2, dan seterusnya. Nilai dari argumen pertama harus lebih dari 1 dan kurang dari banyak argumen dalam fungsi. Jika tidak,  maka fungsi ELT akan menghasilkan NULL. Perhatikan contoh berikut:

mysql> SELECT ELT(1, 'Pertama', 'Kedua', 'Ketiga', 'Keempat') AS TEMPAT;
+---------+
| TEMPAT  |
+---------+
| Pertama |
+---------+
1 row in set (0.05 sec)


Fungsi FIELD()
Fungsi FIELD merupakan komplemen dari fungsi ELT(). Tujuannya adalah untuk menghasilkan indeks dari string (pada argumen pertama) yang dilewatkan kepada fungsi tersebut dalam himpunan str1, str2, str3, …. Jika tidak ditemukan, maka 0 akan dihasilkan. Perhatikan contoh berikut, yang mendemonstrasikan perbedaan antara fungsi ini dengan ELT():

mysql> SELECT FIELD('KETIGA', 'PERTAMA', 'KEDUA', 'KETIGA', 'KEEMPAT') AS TEMPAT;
+--------+
| TEMPAT |
+--------+
|      3 |
+--------+
1 row in set (0.00 sec)


Fungsi HEX()
Jika argumen merupakan sebuah angka, maka fungsi HEX() akan menghasilkan representasi string yang merupakan nilai heksadesimal dari argumen. Jika argumen berupa string, maka fungsi ini menghasilkan sebuah string dimana di dalamnya setiap karakter dalam argumen dikonversi menjadi dua dijit heksadesimal. Perhatikan contoh berikut, yang menampilkan bagaimana mengkonversi sebuah angka numerik menjadi heksadesimal:

mysql> SELECT
    -> HEX(1234) AS ANGKA;
+-------+
| ANGKA |
+-------+
| 4D2   |
+-------+
1 row in set (0.00 sec)


Fungsi INSERT()
Berikut merupakan sintaks dari fungsi INSERT():

INSERT( str, pos, pjg, strbaru)

Fungsi ini menghasilkan string basis str, dimana substring yang diawali pada posisi pos dan dengan panjang pjg diganti dengan string baru strbaru. Perhatikan contoh berikut:

mysql> SELECT
    -> INSERT('Newfoundland',4,5,'Eng') HASIL;
+------------+
| HASIL      |
+------------+
| NewEngland |
+------------+
1 row in set (0.00 sec)


Fungsi INSTR()
Fungsi INSTR() menghasilkan posisi dari kemunculan pertama dari argumen kedua di dalam argumen pertama. Fungsi ini sama dengan fungsi LOCATE(). Jika argumen kedua tidak dapat ditemukan, maka fungsi ini menghasilkan 0. Perhatikan contoh berikut:

mysql> SELECT INSTR('pemberani','rani') AS DIMANA;
+--------+
| DIMANA |
+--------+
|      6 |
+--------+
1 row in set (0.00 sec)

mysql> SELECT INSTR('pemberanipemberanipemberani','rani') AS DIMANA;
+--------+
| DIMANA |
+--------+
|      6 |
+--------+
1 row in set (0.00 sec)


Fungsi ISNULL()
Fungsi ISNULL() menentukan apakah argumennya merupakan suatu nilai NULL atau tidak. Jika argumen bernilai NULL, maka 1 akan dihasilkan, sebaliknya 0 yang dihasilkan fungsi ini. Fungsi ISNULL() berguna untuk menempatkan sebuah nilai default untuk menggantikan NULL dalam query Anda. Contoh berikut mendemonstrasikan penggunaan fungsi ISNULL() jika bidang HARGA bernilai NULL:

mysql> SELECT MODEL, ISNULL(HARGA) AS APA_NULL
    -> FROM MOBIL;
+-----------------+----------+
| MODEL           | APA_NULL |
+-----------------+----------+
| CROSSFIRE       |        0 |
| 300M            |        0 |
| CIVIC           |        0 |
| ACCORD          |        0 |
| MUSTANG         |        0 |
| LATESTnGREATEST |        1 |
| FOCUS           |        0 |
+-----------------+----------+
7 rows in set (0.00 sec)


Fungsi LEFT()
Fungsi LEFT() menghasilkan sebanyak karakter (ditetapkan pada argumen kedua) dari string pada argumen pertama. Perhatikan contoh berikut:

mysql> SELECT
    -> LEFT('Namamu selalu terukir di hatiku', 11) AS NAMAMU;
+-------------+
| NAMAMU      |
+-------------+
| Namamu sela |
+-------------+
1 row in set (0.00 sec)


Fungsi LENGTH()
Fungsi LENGTH() menghasilkan panjang dari string pada argumennya dalam byte. Perhatikan contoh berikut:

mysql> SELECT
    -> MODEL, LENGTH(MODEL) AS PANJANG_MODEL
    -> FROM MOBIL;
+-----------------+---------------+
| MODEL           | PANJANG_MODEL |
+-----------------+---------------+
| CROSSFIRE       |             9 |
| 300M            |             4 |
| CIVIC           |             5 |
| ACCORD          |             6 |
| MUSTANG         |             7 |
| LATESTnGREATEST |            15 |
| FOCUS           |             5 |
+-----------------+---------------+
7 rows in set (0.00 sec)


Fungsi LOCATE()
Ada dua varian fungsi ini:

LOCATE(substr, str)
LOCATE(substr, str, pos)

Versi pertama menghasilkan posisi dari kemunculan pertama dari substring substr di dalam string str. Versi kedua melakukan hal yang sama, kecuali bahwa ia memulainya pada posisi pos di dalam string str. Jika substring tidak ditemukan, maka fungsi ini menghasilkan 0. Fungsi LOCATE() sama dengan fungsi INSTR(), tetapi dengan urutan argumen terbalik. Perhatikan contoh berikut:

mysql> SELECT LOCATE('tar','siantar') AS DIMANA;
+--------+
| DIMANA |
+--------+
|      5 |
+--------+
1 row in set (0.00 sec)

mysql> SELECT LOCATE('tar','siantarsiantarsiantar') AS DIMANA;
+--------+
| DIMANA |
+--------+
|      5 |
+--------+
1 row in set (0.00 sec)

mysql> SELECT LOCATE('tar','siantarsiantarsiantar', 10) AS DIMANA;
+--------+
| DIMANA |
+--------+
|     12 |
+--------+
1 row in set (0.00 sec)


Fungsi LPAD()
Sintaks dari fungsi LPAD() adalah

LPAD(str, pjg, padstr)

Fungsi ini menghasilkan str yang diganjal dengan karakter-karakter dalam padstr sampai panjang dari string str mencapai pjg. Jika panjang dari str lebih dari panjang pjg, maka string dipotong menjadi sebanyak pjg karakter. Perhatikan contoh berikut:

mysql> SELECT LPAD('NONTON',10,'*') AS HASIL;
+------------+
| HASIL      |
+------------+
| ****NONTON |
+------------+
1 row in set (0.03 sec)


Fungsi LTRIM()
Fungsi ini menghasilkan argumen str dengan semua spasi depan (leading space) dihapus. Perhatikan conton berikut:

mysql> SELECT
    -> LTRIM('     JOGJA') AS HASIL;
+-------+
| HASIL |
+-------+
| JOGJA |
+-------+
1 row in set (0.00 sec)



Fungsi MAKE_SET()
Sintaks dari fungsi MAKE_SET() adalah

MAKE_SET(himpbit,str1,str2,..........)

Fungsi ini menghasilkan sebuah string yang dibatasi dengan koma, sebuah himpunan, yang memuat string-string yang memiliki bit-bit terkait dalam himpunan himpbit. Dalam himpbit, str1 terkait dengan bit 0, str2 dengan bit 1, dan seterusnya. Perhatikan contoh berikut:

mysql> SELECT
    -> MAKE_SET(1|8, 'SELAMAT','SORE','MALAM','PAGI','SIANG','KERJA');
+----------------------------------------------------------------+
| MAKE_SET(1|8, 'SELAMAT','SORE','MALAM','PAGI','SIANG','KERJA') |
+----------------------------------------------------------------+
| SELAMAT,PAGI                                                   |
+----------------------------------------------------------------+
1 row in set (0.05 sec)


Fungsi REPEAT()
Sintaks dari fungsi REPEAT() adalah

REPEAT(str,hitung)

Fungsi REPEAT() menghasilkan sebuah nilai string yang memuat string str yang diulang sebanyak hitung kali. Jika hitung kurang dari 1, maka string kosong akan dihasilkan. Jika salah satu argumen bernilai NULL, maka NULL yang akan dihasilkan fungsi ini. Perhatikan contoh berikut:

mysql> SELECT
    -> REPEAT('BAH!',7) AS HASIL;
+------------------------------+
| HASIL                        |
+------------------------------+
| BAH!BAH!BAH!BAH!BAH!BAH!BAH! |
+------------------------------+
1 row in set (0.00 sec)


Fungsi REVERSE()
Fungsi REVERSE() membalik string basis pada argumen dengan semua karakter-karakternya dalam urutan terbalik. Perhatikan contoh berikut:

mysql> SELECT
    -> REVERSE('MEMAJUKAN') AS HASIL;
+-----------+
| HASIL     |
+-----------+
| NAKUJAMEM |
+-----------+
1 row in set (0.05 sec)


Fungsi RIGHT()
Sintaks dari fungsi RIGHT() adalah

RIGHT(str,pjg)

Fungsi RIGHT() menghasilkan sebanyak pjg dari karakter-karakter pojok-kanan dari string basis str. Perhatikan contoh berikut:

mysql> SELECT
    -> RIGHT('NERAKA ATAU SURGA',5) AS HASIL;
+-------+
| HASIL |
+-------+
| SURGA |
+-------+
1 row in set (0.00 sec)


Fungsi RPAD()
Sintaks dari fungsi RPAD() adalah

RPAD(str,pjg,padstr)

Fungsi RPAD() menghasilkan string str, yang diganjal (di kiri) dengan string padstr sampai panjangnya sebesar pjg karakter. Jika panjang dari str lebih dari pjg, maka string tersebut akan dipotong menjadi pjg karakter. Perhatikan contoh berikut:

mysql> SELECT RPAD('HALO',8,'!') AS HASIL;
+----------+
| HASIL    |
+----------+
| HALO!!!! |
+----------+
1 row in set (0.00 sec)


Fungsi RTRIM()
Fungsi ini menghasilkan string basis (argumennya) dengan semua spasi ekor (trailing space) dihapus. Perhatikan contoh berikut:

mysql> SELECT
    -> RTRIM('KEBERANIAN    ') AS HASIL;
+------------+
| HASIL      |
+------------+
| KEBERANIAN |
+------------+
1 row in set (0.00 sec)


Fungsi SOUNDEX()
Fungsi SOUNDEX() menghasilkan string SOUNDEX() dari string basis pada argumennya. Dua string yang mempunyai bunyi sama akan memiliki nilai SOUNDEX() yang sama. Perhatikan contoh berikut:

mysql> SELECT
    -> SOUNDEX('COW') AS COW,
    -> SOUNDEX('BOW') AS BOW,
    -> SOUNDEX('YOW') AS YOW,
    -> SOUNDEX('BROWN') AS BROWN;
+------+------+------+-------+
| COW  | BOW  | YOW  | BROWN |
+------+------+------+-------+
| C000 | B000 | Y000 | B650  |
+------+------+------+-------+
1 row in set (0.00 sec)


Fungsi SUBSTRING_INDEX()
Sintaks dari fungsi SUBSTRING_INDEX() adalah

SUBSTRING_INDEX(str,delim,hitung)

Fungsi SUBSTRING_INDEX() menghasilkan sebuah substring dari str sebelum sebanyak hitung dari delimiter dijumpai. Jika hitung bernilai positif, maka segala sesuatu sampai sebelah kiri dari delimiter terakhir akan dihasilkan. Jika hitung bernilai negatif, maka segala sesuatu sampai sebelah kanan dari delimiter akhir akan dihasilkan, dan fungsi mulai menghitung jumlah delimiter dari kanan. Perhatikan contoh berikut:

mysql> SELECT
    -> SUBSTRING_INDEX('www.namadomainku.com','.',1) AS BASIS;
+-------+
| BASIS |
+-------+
| www   |
+-------+
1 row in set (0.00 sec)

mysql> SELECT
    -> SUBSTRING_INDEX('www.namadomainku.com','.',-2) AS DOMAIN;
+------------------+
| DOMAIN           |
+------------------+
| namadomainku.com |
+------------------+
1 row in set (0.02 sec)


Fungsi CURDATE()
Fungsi ini menghasilkan tanggal sekarang sebagai YYYY-MM-DD atau YYYYMMDD. Format hasil tergantung dari apakah fungsi dipakai di dalam konteks sebuah string atau numerik. Perhatikan contoh berikut:

mysql> SELECT
    -> CURDATE();
+------------+
| CURDATE()  |
+------------+
| 2014-08-22 |
+------------+
1 row in set (0.03 sec)


Fungsi CURTIME()
Fungsi ini menghasilkan waktu sekarang sebagai HH:MM:SS atau HHMMSS. Format hasil tergantung dari apakah fungsi dipakai di dalam konteks sebuah string atau numerik. Perhatikan contoh berikut:

mysql> SELECT
    -> CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 18:33:25  |
+-----------+
1 row in set (0.00 sec)


Fungsi DATE_ADD() atau DATE_SUB()
Sintaks dari kedua fungsi ini adalah

DATE_ADD(tanggal,tipe ekspresi INTERVAL)
DATE_SUB(tanggal, tipe ekspresi INTERVAL)

Kedua fungsi ini melakukan aritmatika tanggal, dan tanggal merupakan sebuah nilai DATE atau DATETIME yang menetapkan tanggal awal yang akan digunakan. Argumen ekspresi merupakan sebuah ekspresi yang menetapkan nilai interval yang akan ditambahkan/dikurangi dari tanggal basis. Tabel berikut menjelaskan hubungan antara nilai tipe dan format ekspresi.





Contoh berikut menambahkan lima tahun pada nilai tanggal sekarang:

mysql> SELECT
    -> DATE_ADD(CURDATE(),INTERVAL 5 YEAR) AS TANGGAL_BARU;
+--------------+
| TANGGAL_BARU |
+--------------+
| 2019-08-22   |
+--------------+
1 row in set (0.03 sec)

Contoh berikut mengurangi tujuh tahun pada nilai tanggal sekarang:

mysql> SELECT
    -> DATE_SUB(CURDATE(),INTERVAL 7 YEAR) AS TANGGAL_BARU;
+--------------+
| TANGGAL_BARU |
+--------------+
| 2007-08-22   |
+--------------+
1 row in set (0.00 sec)



Fungsi DATE_FORMAT()
Sintaks dari fungsi DATE_FORMAT() adalah

DATE_FORMAT(tanggal, format)

Fungsi ini memformat tanggal menjadi string format. Perhatikan contoh berikut:

mysql> SELECT
    -> DATE_FORMAT(CURDATE(),'%a %e %M, %X') AS TANGGAL_BARU;
+---------------------+
| TANGGAL_BARU        |
+---------------------+
| Fri 22 August, 2014 |
+---------------------+
1 row in set (0.02 sec)


Fungsi DAYNAME()
Fungsi ini menghasilkan nama hari dari nilai tanggal tertentu. Perhatikan contoh berikut:

mysql> SELECT
    -> DAYNAME('1977-04-25');
+-----------------------+
| DAYNAME('1977-04-25') |
+-----------------------+
| Monday                |
+-----------------------+
1 row in set (0.05 sec)


Fungsi DAYOFMONTH()
Fungsi ini menghasilkan hari tertentu dari bulan pada tanggal tertentu. Rentang hari adalah 1 sampai 31. Perhatikan contoh berikut:

mysql> SELECT
    -> DAYOFMONTH('2001-04-09');
+--------------------------+
| DAYOFMONTH('2001-04-09') |
+--------------------------+
|                        9 |
+--------------------------+
1 row in set (0.05 sec)


Fungsi DAYOFYEAR()
Fungsi ini menghasilkan hari tertentu dari tahun pada tanggal tertentu. Rentang hari adalah 1 sampai 366. Perhatikan contoh berikut:

mysql> SELECT
    -> DAYOFYEAR('1998-02-27');
+-------------------------+
| DAYOFYEAR('1998-02-27') |
+-------------------------+
|                      58 |
+-------------------------+
1 row in set (0.00 sec)


Fungsi FROM_DAYS()
Fungsi ini menghasilkan sebuah nilai tanggal yang didasrkan pada nilai argumennya. Tanggal didasarkan pada jumlah hari sejak 1 Januari 1472 BC (awal dari kalender Julian). Perhatikan contoh berikut:

mysql> SELECT
    -> FROM_DAYS(710325) AS TANGGAL_LAMA;
+--------------+
| TANGGAL_LAMA |
+--------------+
| 1944-10-21   |
+--------------+
1 row in set (0.00 sec)


Fungsi FROM_UNIXTIME()
Fungsi ini menghasilkan sebuah representasi string dari argumennya. Format string dapat berupa YYYY-MM-DD HH:MM:SS atau YYYYMMDDHHMMSS. Format tergantung dari apakah fungsi ini digunakan dalam konteks string atau numerik. Perhatikan contoh berikut:

mysql> SELECT FROM_UNIXTIME(871723980) AS TANGGAL_LAMA;
+---------------------+
| TANGGAL_LAMA        |
+---------------------+
| 1997-08-16 16:33:00 |
+---------------------+
1 row in set (0.00 sec)


Fungsi HOUR()
Fungsi ini menghasilkan jam dari nilai waktu yang diberikan. Rentang nilai yang dihasilkan adalah 0 sampai 23. Perhatikan contoh berikut:

mysql> SELECT
    -> HOUR('14:32:33');
+------------------+
| HOUR('14:32:33') |
+------------------+
|               14 |
+------------------+
1 row in set (0.00 sec)


Fungsi MINUTE()
Fungsi ini menghasilkan menit dari nilai waktu yang diberikan. Rentang nilai yang dihasilkan adalah 0 sampai 59. Perhatikan contoh berikut:

mysql> SELECT
    -> MINUTE('14:32:33');
+--------------------+
| MINUTE('14:32:33') |
+--------------------+
|                 32 |
+--------------------+
1 row in set (0.00 sec)


Fungsi MONTH()
Fungsi ini menghasilkan bulan dari nilai tanggal yang diberikan. Rentang nilai yang dihasilkan adalah 1 sampai 12. Perhatikan contoh berikut:

mysql> SELECT
    -> MONTH('2001-04-03');
+---------------------+
| MONTH('2001-04-03') |
+---------------------+
|                   4 |
+---------------------+
1 row in set (0.00 sec)


Fungsi MONTHNAME()
Fungsi ini menghasilkan nama bulan dari nilai tanggal yang diberikan. Perhatikan contoh berikut:

mysql> SELECT
    -> MONTHNAME('2001-04-03');
+-------------------------+
| MONTHNAME('2001-04-03') |
+-------------------------+
| April                   |
+-------------------------+
1 row in set (0.00 sec)

Fungsi NOW() atau SYSDATE()
Fungsi ini menghasilkan waktu dan tanggal sekarang dalam format YYYY-MM-DD HH:MM:SS atau YYYYMMDDHHMMSS. Format yang dihasilkan ditentukan oleh konteks saat fungsi digunakan. Perhatikan contoh berikut:

mysql> SELECT
    -> NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2014-08-22 19:02:29 |
+---------------------+
1 row in set (0.01 sec)


Fungsi PERIOD_ADD()
Sintaks dari fungsi PERIOD_ADD() adalah

PERIOD_ADD(P,N)

Fungsi ini akan menambahkan sejumlah N bulan pada periode P, diformat sebagai YYMM atau YYYYMM. Fungsi ini menghasilkan sebuah nilai dalam format YYYYMM. P bukan merupakan nilai tanggal. Perhatikan contoh berikut:

mysql> SELECT
    -> PERIOD_ADD(200405,4);
+----------------------+
| PERIOD_ADD(200405,4) |
+----------------------+
|               200409 |
+----------------------+
1 row in set (0.00 sec)


Fungsi PERIOD_DIFF()
Sintaks dari fungsi PERIOD_DIFF() adalah

PERIOD_ADD(P1,P2)

Fungsi ini akan menambahkan jumlah bulan antara periode P1 dan P2, diformat sebagai YYMM atau YYYYMM. Perhatikan contoh berikut:

mysql> SELECT
    -> PERIOD_DIFF(200110,200102);
+----------------------------+
| PERIOD_DIFF(200110,200102) |
+----------------------------+
|                          8 |
+----------------------------+
1 row in set (0.00 sec)


Fungsi SECOND()
Fungsi ini menghasilkan nilai kedua dari nilai waktu pada argumen dalam sebuah rentang 0 sampai 59. Perhatikan contoh berikut:

mysql> SELECT
    -> SECOND(CURTIME()) AS DETIK_SKRG;
+------------+
| DETIK_SKRG |
+------------+
|         33 |
+------------+
1 row in set (0.00 sec)


Fungsi SEC_TO_TIME()
Fungsi ini menghasilkan argumen detik yang dikonversi menjadi jam, menit, dan detik. Format berupa HH:MM:SS atau HHMMSS, tergantung pada konteks yang dipakai. Perhatikan contoh berikut:

mysql> SELECT
    -> SEC_TO_TIME(487362);
+---------------------+
| SEC_TO_TIME(487362) |
+---------------------+
| 135:22:42           |
+---------------------+
1 row in set (0.00 sec)


Fungsi TIME_FORMAT()
Sintaks dari fungsi TIME_FORMAT() adalah

TIME_FORMAT(waktu,format)

Fungsi ini dipakai seperti fungsi DATE_FORMAT(). Namun, string format hanya dapat memuat penspesifikasi format yang menangani nilai-nilai waktu. Jika nilai jam lebih dari 23, maka Anda perlu menggunakan %H atau %h. Jika tidak, hasilnya akan berupa hasil dari modulo 12. Perhatikan contoh berikut:

mysql> SELECT
    -> TIME_FORMAT(CURTIME(),'%H %k %h %I %l') AS TANGGAL_FORMAT;
+----------------+
| TANGGAL_FORMAT |
+----------------+
| 19 19 07 07 7  |
+----------------+
1 row in set (0.00 sec)


Fungsi TIME_TO_SEC()
Fungsi ini merupakan kebalikan dari fungsi SEC_TO_TIME. Ia menghasilkan nilai waktu yang dikonversi menjadi detik. Perhatikan contoh berikut:

mysql> SELECT
    -> TIME_TO_SEC('16:43:23');
+-------------------------+
| TIME_TO_SEC('16:43:23') |
+-------------------------+
|                   60203 |
+-------------------------+
1 row in set (0.00 sec)


Fungsi TO_DAYS()
Fungsi ini kebalikan dari fungsi FROM_DAYS(). Jika diberikan sebuah nilai tanggal, maka fungsi ini akan menghasilkan jumlah hari sejak tahun 0. Perhatikan contoh berikut:

mysql> SELECT
    -> TO_DAYS(CURDATE()) AS JUM_HARI;
+----------+
| JUM_HARI |
+----------+
|   735832 |
+----------+
1 row in set (0.00 sec)


Fungsi UNIX_TIMESTAMP()
Sintaks dari fungsi UNIX_TIMESTAMP() adalah

UNIX_TIMESTAMP()
UNIX_TIMESTAMP(tanggal)

Fungsi ini, jika dipanggil tanpa argumen, akan menghasilkan sebuah stempel waktu UNIX berupa sebuah integer tak-bertanda. Stempel waktu UNIX merupakan jumlah detik sejak 1 Januari 1970. Jika argumen tanggal digunakan, maka fungsi ini menghasilkan jumlah detik sejak 1 Januari 1970 sampai tanggal yang diberikan pada argumen. Perhatikan contoh berikut:

mysql> SELECT UNIX_TIMESTAMP(CURDATE()) AS STEMPEL_UNIX;
+--------------+
| STEMPEL_UNIX |
+--------------+
|   1408640400 |
+--------------+
1 row in set (0.00 sec)


Fungsi LOAD_FILE()
Sintaks dari fungsi LOAD_FILE() adalah

LOAD_FILE(namafile)

Fungsi ini membaca file dengan nama namafile dan menghasilkan isi file sebagai sebuah string. Agar fungsi ini bisa digunakan, file harus ditempatkan pada server, Anda harus menetapkan nama path, dan Anda harus memiliki previlige FILE.

mysql> SELECT
    -> LOAD_FILE('C:\wamp\www\SQL.txt') AS ISI_FILE;
+----------+
| ISI_FILE |
+----------+
| Uji.....   |
1...2...3    |
Uji.....     |
+----------+
1 row in set (0.00 sec)