SHIVERY Parfum Unisex PriaAroma bertahan hingga 48 jam di baju dan hingga 6 jam di kulit (kulit yang tidak terbasuh air/keringat) Buy |
Pada tutorial sebelumnya kita telah belajar tentang bagaimana cara membuat virtual tabel di database mysql.
Di tutorial ini kita akan belajar cara membuat FUNCTION di database Mysql. Yuks ikuti tutorial ini sampai selesai agar pengetahun SQL kita semakin bertambah.
MySQL memiliki banyak Function bawaan yang termasuk dalam kategori berbeda, diantarannya sebagai berikut:
Anda telah meninjau banyak contoh dari banyak fungsi agregat MySQL. Anda juga telah melihat banyak fungsi matematika.
Dalam bacaan ini, Anda akan mempelajari beberapa fungsi matematika lagi.
Fungsi matematika memungkinkan Anda melakukan tugas matematika pada data numerik.
Mari kita lihat dua fungsi matematika : CEIL dan FLOOR.
Fungsi CEIL mengembalikan nilai bilangan bulat terkecil, yang tidak kurang dari nilai yang diteruskan. Misalnya, meneruskan nilai 1,23 ke fungsi CEIL akan mengembalikan nilai 2.
SELECT CEIL(15.50);
Fungsi FLOOR melakukan kebalikan dari CEIL. Floor mengembalikan nilai integer terbesar tidak lebih besar dari nilai yang diteruskan.
Floor mengembalikan NULL jika nilai yang diteruskan adalah NULL.
SELECT FLOOR(15.60);
Fungsi FORMAT memformat angka yang diteruskan ke dalam format seperti '#,###,###.##', dibulatkan ke angka desimal yang ditentukan. Ini mengembalikan hasilnya sebagai string.
SELECT FORMAT(3750.753, 2)
Jika jumlah tempat desimal adalah 0, hasilnya tidak memiliki titik desimal atau bagian pecahan.
Jika angka yang akan diformat atau angka tempat desimal adalah NULL, maka fungsi mengembalikan NULL.
Sekarang mari pelajari beberapa fungsi tanggal yang lebih penting dengan beberapa contoh.
Fungsi ADDDATE memiliki tiga bagian penting:
SELECT ADDDATE(date, INTERVAL expr unit);
SELECT ADDDATE("2020-05-10", INTERVAL 5 DAY);
2) Sintaks untuk bentuk kedua sebagai berikut:
SELECT ADDDATE(date, days);
SELECT ADDDATE("2020-06-15", 10);
Nilai yang dikembalikan berada dalam rentang 1 hingga 4, atau NULL jika tanggalnya NULL.
Syntaksnya sebagai berikut:
SELECT QUARTER(date_value);
SELECT QUARTER("2020-09-15");
COALESCE adalah fungsi perbandingan lain yang mengambil beberapa argumen dan mengembalikan argumen non-NULL pertama.
Jika semua argumen adalah NULL, fungsi COALESCE mengembalikan NULL. Anda dapat menganggap fungsi ini sebagai fungsi pemeriksaan NULL.
Sintaks untuk fungsi ini adalah sebagai berikut:
SELECT COALESCE (value1, value2);
Contoh : Kode berikut mengembalikan Halovina.com, karena fungsi COALESCE() mengembalikan nilai non-null pertama dalam daftar.
SELECT COALESCE(NULL, 'Halovina.com', NULL, 'Property145.com');
Anda harus terbiasa dengan fungsi CASE di MySQL dan IFNULL, serta dengan beberapa fungsi lainnya.
IFNULL menerima dua argumen dan mengembalikan argumen pertama jika bukan NULL. Jika tidak, fungsi IFNULL mengembalikan argumen kedua. Kedua argumen tersebut dapat berupa nilai literal atau ekspresi.
Sintaksnya adalah sebagai berikut:
SELECT IFNULL(evaluated_expression, alternative_value);
SELECT IFNULL(NULL, "Halovina");
Ada juga fungsi NULLIF yang mengambil dua nilai atau ekspresi. Jika mereka sama maka mengembalikan NULL. Jika tidak, ia mengembalikan nilai atau ekspresi pertama.
Syntaksnya adalah sebagai berikut:
SELECT NULLIF(expression1, expression2);
SELECT NULLIF(10, 15);
=== CREATE TABLE clients ===
CREATE TABLE clients
(ClientID int NOT NULL,
ClientName varchar(255) DEFAULT NULL,
Address varchar(255) DEFAULT NULL,
ContactNo varchar(10) DEFAULT NULL,
PRIMARY KEY (ClientID));=== CREATE TABLE client_orders ===
CREATE TABLE client_orders
(OrderID INT NOT NULL,
ClientID INT DEFAULT NULL,
ItemID INT DEFAULT NULL,
Cost INT DEFAULT NULL,
PRIMARY KEY (OrderID));=== CREATE TABLE item ====
CREATE TABLE item
(ItemID INT NOT NULL,
Name varchar(150) DEFAULT NULL,
Cost INT DEFAULT NULL,
PRIMARY KEY (ItemID));=== CREATE TABLE mg_orders ===
CREATE TABLE mg_order
(OrderID INT NOT NULL,
ItemID INT DEFAULT NULL,
Quantity INT DEFAULT NULL,
Cost INT DEFAULT NULL,
OrderDate DATE DEFAULT NULL,
DeliveryDate DATE DEFAULT NULL,
OrderStatus VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (OrderID));=== INSERT INTO clients ===
INSERT INTO clients VALUES
(1, 'Kishan Hughes','223 Golden Hills, North Austin, TX','387986345'),
(2, 'Indira Moncada','119 Silver Street, Bouldin Creek, TX','334567243'),
(3, 'Mosha Setsile','785 Bronze Lane, East Austin, TX','315642597'),
(4, 'Laura Mills','908 Diamond Crescent, South Lamar, TX','300842509'),
(5, 'Henrik Kreida','345, Golden Hills, North Austin, TX','358208983'),
(6, 'Millicent Blou','812, Diamond Crescent, North Burnet, TX','347898755');=== INSERT INTO item ==
INSERT INTO item VALUES
(1,'Engagement ring',2500),
(2,'Silver brooch',400),
(3,'Earrings',350),
(4,'Luxury watch',1250),
(5,'Golden bracelet',800),
(6,'Gemstone',1500);=== INSERT INTO client_orders ====
INSERT INTO client_orders VALUES
(1,1,1,2500),
(2,2,2,400),
(3,3,3,350),
(4,4,4,1250),
(5,5,5,800),
(6,6,6,1500),
(7,2,4,400),
(8,3,4,1250),
(9,4,2,400),
(10,1,3,350);=== INSERT INTO mg_orders ====
INSERT INTO mg_orders VALUES
(1,1,50,122000,'2022-04-05','2022-05-25', 'Delivered'),
(2,2,75,28000,'2022-03-08',NULL, 'In progress'),
(3,3,80,25000,'2022-05-19','2022-06-08', 'Delivered'),
(4,4,45,100000,'2022-01-10',NULL, 'In progress'),
(5,5,70,56000,'2022-05-19',NULL, 'In progress'),
(6,6,60,90000,'2022-06-10','2022-06-18', 'Delivered');
Berikan diskon 5% kepada klien yang telah memesan jam tangan mewah. Nyatakan biaya setelah diskon dalam bentuk bilangan bulat terkecil.
Tugas 2: Memformat nilai kolom afterDiscount dari hasil sebelumnya untuk diskon 5% dalam format '#,###,###.##' dibulatkan menjadi 2 angka desimal menggunakan fungsi FORMAT.
Tugas 3: Temukan tanggal pengiriman dan tanggal pengiriman yang dijadwalkan adalah 30 hari setelah tanggal pemesanan. Gunakan fungsi ADDDATE.
Tugas 4 : Hasilkan data yang diperlukan untuk laporan dengan rincian semua pesanan yang belum terkirim.
Kolom DeliveryDate memiliki nilai NULL untuk pesanan yang belum terkirim. Gunakan fungsi COALESCE untuk melakukannya.
Tugas 5 : Hasilkan data yang diperlukan untuk laporan dengan mengambil daftar pesanan M&G yang belum dikirimkan.
Pesanan ini memiliki status 'In Progress' menggunakan fungsi NULLIF.