Basis Data 2
Function dan Operator
Overview• Dalam implementasi pengolahan data, sering digunakan
ekspresi-ekspresi baik ekspresi aritmatik, pengolahan teks/string, maupun ekspresi logika.
Contoh-contoh penerapan ekspresi aritmatik :perhitungan jumlah, cacah, rata-rata, standar deviasi, pencarian nilai maksimal, minimal, dsb
Contoh-contoh penerapan pengolahan string :pengambilan beberapa karakter dari sebuah teks, konversi huruf besar ke kecil / sebaliknya, pencarian kata/penggalan kata, dsb.
Contoh-contoh ekspresi logika :operator AND, OR, NOT, XOR dsb
Operator• Berikut adalah daftar operator yang dapat
diterapkan dalam statement SQL :
Catatan:Operator-operator yang tertulis dalam 1 baris memiliki prioritas eksekusi yang sama
Contoh-contoh penerapan operator (aritmatik)
mysql> select 1+2*3; -> 7;mysql> select (1+2)*3; -> 9;mysql> select 1 < 0; -> 0 mysql> select 0.1 <= 2;
-> 1 mysql> select 1 <=> 1, null<=> null, 1 <=> null;
-> 1, 1, 0 mysql> select '.01' <> '0.01’ , ‘.01' !='0.01’ ;
-> 1,1mysql> select '.01' <> '0.01’ , ‘.01' !='0.01’ ;
-> 1,1
Contoh-contoh penerapan operator is dan isnull
mysql> select 1 is true, 0 is false, null is unknown; - > 1, 1, 1
mysql> select 1 is null, 0 is null, null is null; -> 0, 0, 1
mysql> select 1 is null, 0 is null, null is null; -> 0, 0, 1
mysql> select 1 is not null, 0 is not null, null is not null; -> 1, 1, 0
Operator – operator logika (not, !)
mysql> SELECT NOT 10; -> 0mysql> SELECT NOT 0; -> 1 mysql> SELECT NOT NULL; -> NULL mysql> SELECT ! (1+1); -> 0 mysql> SELECT ! 1+1; -> 1
Operator – operator logika (AND [&&], OR [||])
mysql> SELECT 1 && 0; -> 0 mysql> SELECT 1 && NULL; -> NULLmysql> SELECT 1 || 0; -> 1 mysql> SELECT 0 || NULL; -> NULLmysql> SELECT 1 || NULL; -> 1
Operator – operator logika (AND [&&], OR [||] dan XOR)
mysql> SELECT 1 && 0; -> 0 mysql> SELECT 1 &&
NULL; -> NULLmysql> SELECT 1 || 0; -> 1 mysql> SELECT 0 || NULL; -> NULLmysql> SELECT 1 || NULL; -> 1
• mysql> SELECT 1 XOR 1; -> 0
• mysql> SELECT 1 XOR 0; -> 1
• mysql> SELECT 1 XOR NULL;
-> NULL• mysql> SELECT 1 XOR 1
XOR 1; -> 1
Control Flow Function
• Merupakan ekspresi yang outputnya dikendalikan oleh kondisi input.
• Pengendali kondisi yang digunakan dalam function ini serupa dengan struktur kendali dalam pemrograman yakni struktur if dan case
Format umum struktur case :select CASE [nilai] WHEN [nilai_pembanding_1] THEN [output_1] WHEN [nilai_pembanding_2] THEN [output_2 ...] [ELSE output_n] END
Format umum struktur if :select IF([kondisi],[output_jika true],[output_jika false])
Contoh Control Flow Function
mysql> SELECT CASE 1 WHEN 1 THEN 'one' -> WHEN 2 THEN 'two' ELSE 'more' END;
-> 'one‘mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE
'false' END; -> 'true'
mysql> SELECT IF(1>2,2,3); -> 3
mysql> SELECT IF(1<2,'yes','no'); -> 'yes‘
mysql> SELECT IF(STRCMP('test','test1'),'no','yes'); -> 'no'
Fungsi-fungsi string (1) Konversi tipe dataAuto cast type :
Secara otomatis, MySQL akan mengkonversikan teks yang berupa angka menjadi nilai numerik dan juga sebaliknya.
Contoh :mysql> select 1+’1’;
-> ‘mysql> select concat(‘test ke’,2);
-> ‘’tes ke 2’
Secara eksplisit dapat pula digunakan fungsi cast Format instruksi cast :
select cast([nilai_numerik] as char)Contoh :
mysql> SELECT 38.8, CAST(38.8 AS CHAR); -> 38.8, '38.8'
Fungsi-fungsi string (1) Beberapa fungsi untuk memanipulasi
Fungsi-fungsi string (2) Konversi tipe dataAuto cast type :
Secara otomatis, MySQL akan mengkonversikan teks yang berupa angka menjadi nilai numerik dan juga sebaliknya.
Contoh :mysql> select 1+’1’;
-> 2 mysql> select concat(‘test ke’,2);
-> ‘tes ke 2’
Secara eksplisit dapat pula digunakan fungsi cast Format instruksi cast :
select cast([nilai_numerik] as char)Contoh :
mysql> SELECT 38.8, CAST(38.8 AS CHAR); -> 38.8, '38.8'
Pencarian teks
• SELECT * FROM articles • WHERE MATCH (title,body) AGAINST
('database');
CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), body TEXT, FULLTEXT (title,body) );
mysql> INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...')
, ('How To Use MySQL Well','After you went through a ...')
, ('Optimizing MySQL','In this tutorial we will show ...')
, ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...')
, ('MySQL vs. YourSQL','In the following database comparison ...')
, ('MySQL Security','When configured properly, MySQL ...');