Tutorial Bassic Mysql Bagian 9 - Subquery

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Tutorial Bassic Mysql Bagian 9 - Subquery

Di tutorial sebelumnya kita telah belajar tentang bagaimana cara mengubah struktur table di database Mysql.

Pada tuorial bassic Mysql yang ke-9 ini kita akan belajar tentang penggunaan SUBQUERY pada database Mysql.

A) Apa Itu SUBQUERY ?


Sub-Query adalah query di dalam query lain sering disebut juga sebagai INNER QUERY.

Dalam subquery, query SQL SELECT yang ditempatkan sebagai bagian dari kueri lain disebut OUTER QUERY.

Tempatkan sub-query di klausa SELECT, FROM, atau WHERE dan sub-query diawali dengan tanda kurung buka dan tutup "( statement-query )".

Sub-query bisa juga mengembalikan satu nilai, satu baris, satu kolom, atau beberapa baris dari satu atau beberapa kolom.

Saat menulis sub-query dimungkinkan untuk menggunakan operator pembanding seperti =, >, >=, <, <=, != (atau <>).

Selain itu, Anda juga dapat menggunakan operator ALL, ANY dan SOME diikuti dengan operator pembanding.

B) Tipe-tipe Subquery


1) Subquery dalam clausa FROM

SELECT some_column, some_column FROM (Subquery) AS alias;

 

2) Subquery dalam statement INSERT

INSERT INTO table1 SELECT column1,column2,column3 FROM table2 WHERE some_column some_operator(Subquery);

 

3) Subquery dalam statement UPDATE

UPDATE table1 SET column1 = some_value WHERE some_column some_operator(Sub-query);

 

4) Subquery dalam statement DELETE

DELETE FROM table1 WHERE some_column some_operator(Subquery);

 

C) Studi Kasus


Untuk lebih memahami tentang subquery yuks coba selesaikan studi kasus berikut:

Halovina Aja merupakan perusahaan konsultan yang membantu sebuah restoran di kota Semarang, Halovina mencoba mengolah data yang ada untuk kebutuhan pertumbuhan bisnis usaha restoran.

Restoran ini berfokus pada resep tradisional yang disajikan dengan sentuhan modern. Di tutorial ini, Anda harus menyelesaikan tugas-tugas berikut untuk memudahkan restoran mencetak pemesanan yang relevan dan detail menu dengan bantuan subquery.

Sebelum Anda membantu menyelesaikan masalah diatas, persiapkan terlebih dahulu sample data berikut:

 

CREATE DATABASE halovinaaja_db;
USE halovinaaja_db;

CREATE TABLE MenuItems (
ItemID INT,
Name VARCHAR(200),
Type VARCHAR(100),
Price INT,
PRIMARY KEY (ItemID)
);

CREATE TABLE Menus (
MenuID INT,
ItemID INT,
Cuisine VARCHAR(100),
PRIMARY KEY (MenuID,ItemID)
);

CREATE TABLE Bookings (
BookingID INT,
TableNo INT,
GuestFirstName VARCHAR(100),
GuestLastName VARCHAR(100),
BookingSlot TIME,
EmployeeID INT,
PRIMARY KEY (BookingID)
);

CREATE TABLE TableOrders (
OrderID INT,
TableNo INT,
MenuID INT,
BookingID INT,
BillAmount INT,
Quantity INT,
PRIMARY KEY (OrderID,TableNo)
);

INSERT INTO MenuItems VALUES(1,'Olives','Starters', 5),
(2,'Flatbread','Starters', 5),
(3, 'Minestrone', 'Starters', 8),
(4, 'Tomato bread','Starters', 8),
(5, 'Falafel', 'Starters', 7),
(6, 'Hummus', 'Starters', 5),
(7, 'Greek salad', 'Main Courses', 15),
(8, 'Bean soup', 'Main Courses', 12),
(9, 'Pizza', 'Main Courses', 15),
(10,'Greek yoghurt','Desserts', 7),
(11, 'Ice cream', 'Desserts', 6),
(12, 'Cheesecake', 'Desserts', 4),
(13, 'Athens White wine', 'Drinks', 25),
(14, 'Corfu Red Wine', 'Drinks', 30),
(15, 'Turkish Coffee', 'Drinks', 10),
(16, 'Turkish Coffee', 'Drinks', 10),
(17, 'Kabasa', 'Main Courses', 17);

INSERT INTO Menus VALUES(1, 1, 'Greek'),
(1, 7, 'Greek'),
(1, 10, 'Greek'),
(1, 13, 'Greek'),
(2, 3, 'Italian'),
(2, 9, 'Italian'),
(2, 12, 'Italian'),
(2, 15, 'Italian'),
(3, 5, 'Turkish'),
(3, 17, 'Turkish'),
(3, 11, 'Turkish'),
(3, 16, 'Turkish');

INSERT INTO Bookings VALUES(1,12,'Anna','Iversen','19:00:00',1),
(2, 12, 'Joakim', 'Iversen', '19:00:00', 1),
(3, 19, 'Vanessa', 'McCarthy', '15:00:00', 3),
(4, 15, 'Marcos', 'Romero', '17:30:00', 4),
(5, 5, 'Hiroki', 'Yamane', '18:30:00', 2),
(6, 8, 'Diana', 'Pinto', '20:00:00', 5);

INSERT INTO TableOrders VALUES(1, 12, 1, 1, 2, 86),
(2, 19, 2, 2, 1, 37),
(3, 15, 2, 3, 1, 37),
(4, 5, 3, 4, 1, 40),
(5, 8, 1, 5, 1, 43);

 

1) Tugas 1: Buat query SQL SELECT untuk menemukan semua pemesanan yang jatuh tempo setelah pemesanan tamu 'Vanessa McCarthy'.

2) Tugas 2: Buat query SQL SELECT untuk menemukan item menu yang lebih mahal daripada semua tipe item menu 'Starters' dan 'Desserts'.

3) Tugas 3: Buat query SQL SELECT untuk menemukan item menu yang harganya sama dengan item menu Starters yang merupakan masakan Italia.

4) Tugas 4: Buat query SQL SELECT untuk menemukan item menu yang tidak dipesan oleh tamu yang melakukan pemesanan.

D) Video Tutorial


 

Baca artikel lainya:


  1. Tutorial bassic Mysql bagian 1 - Create Read Update Delete

  2. Tutorial bassic Mysql bagian 2 - Inner, Left, Right, Cross Join

  3. Tutorial bassic Mysql bagian 3 - Filtering Data

  4. Tutorial bassic Mysql bagian 4 - Grouping Data 

  5. Tutorial bassic Mysql bagian 5 - Operator dan Clausa

  6. Tutorial bassic Mysql bagian 6 - Replace Statement

  7. Tutorial bassic Mysql bagian 7 - Constraint Data

  8. Tutorial bassic Mysql bagian 8 - Mengubah Struktur tabel

  9. Membuat service OTP bagian 1 - OTP dan PIN

  10. Membuat service OTP bagian 2 - Sequence Diagram

  11. Membuat service OTP bagian 3 - Model dan Serializer

  12. Membuat  service OTP bagian 4 - Validate OTP

  13. Membuat  service OTP bagian 5 - Api Client Service

  14. Membuat service user login bagian 1 - Konfigurasi Database

  15. Membuat service user login bagian 2 - Serializer dan JWT

  16. Membuat CRUD service product bagian 1 - Models Product

  17. Membuat CRUD service product bagian 2 - Function Serializer

  18. Membuat CRUD service product bagian 3 - Api Client Service

  19. Membaut CRUD service product bagian 4 - Auth User

  20. Membuat CRUD service product bagian 5 - TDR File Log

  21. Membuat CRUD service product bagian 6 - Unit Test

  22. Membuat service user register bagian 1 - Django

  23. Membuat Service user register bagian 2 - Django

  24. Membuat service filter dan download file CSV di django

  25. Django upload file menggunakan FileSystemStorage

  26. Tips meningkatkan kualitas code pada bahasa python

  27. Cara memfilter tipe data string pada golang dan python

  28. Mengubah format datetime pada bahasa python

  29. Mengolah data CSV dengan python pandas

  30. Sample join data CSV di python menggunakan pandas