Kami membuat database menggunakan contoh layanan pengiriman dan kueri SQL parse

Hari ini kita akan melihat contoh database dan berbagai perintah untuk agregasi, pengelompokan, pengurutan, penggabungan tabel, dan lainnya menggunakan MySQL sebagai contoh. Datanya sendiri adalah sekumpulan tabel dengan nama dan nilai yang berubah-ubah. Struktur tabel dan hubungannya disajikan di bawah ini.





Untuk memahami lebih jauh, Anda akan menginginkan pengetahuan awal tentang SQL dan database. Tutorial ini akan membantu Anda menyusun informasi, memperbarui memori, dan dapat bertindak sebagai lembar sontekan yang dapat Anda gunakan saat diperlukan. Permintaan untuk membuat semua tabel dapat ditemukan di sini .





excel:





Tabel produk
"products"
Meja pelanggan
"customers"
Tabel "courier_info"
"courier_info"
Tabel pesanan
"orders"
Tabel "delivery_list"
"delivery_list"
Tabel "orders_products"
"orders_products"

, , . .





: , , .





Tabel "year_statistics"
Table "year_statistics"

, ,





:





SELECT SUM(amount_of_orders) AS orders_per_year FROM year_statistics;







:





SELECT month_name, amount_of_orders

FROM year_statistics

ORDER BY amount_of_orders DESC;








, :





SELECT month_name, amount_of_orders FROM year_statistics

WHERE amount_of_orders = (SELECT MAX(amount_of_orders)

FROM year_statistics);








:





SELECT district

FROM customers

GROUP BY district

ORDER BY COUNT(district) DESC;








:





SELECT courier_id, COUNT(order_id)

From delivery_list

WHERE date_arrived IS NOT NULL

GROUP BY courier_id;








IN, EXISTS, UNION .





, "South":





SELECT * FROM Customers

WHERE district IN ('South');








, :





SELECT * FROM delivery_list

WHERE taken NOT IN ('Yes');








, :





SELECT menu_name FROM products

WHERE EXISTS

(SELECT * FROM orders_products

WHERE orders_products.product_id = products.product_id);





, :





SELECT menu_name FROM products

WHERE NOT EXISTS

(SELECT * FROM orders_products

WHERE orders_products.product_id = products.product_id);








:





SELECT 'Customer' AS category, first_name, last_name, phone_number

FROM customers

UNION

SELECT 'Employee' AS category, first_name, last_name, phone_number

FROM courier_info;








INNER, NATURAL, CROSS, LEFT JOIN





, (, , ). ROUND, :





SELECT orders_products.order_id, products.menu_name, quantity,

ROUND(price*quantity, 2) AS total_price

FROM orders_products

INNER JOIN products ON orders_products.product_id = products.product_id

ORDER BY order_id, quantity;








, , :





SELECT *, SEC_TO_TIME(TIMESTAMPDIFF(second, date_get, date_arrived))

AS time_of_delivery

FROM orders

NATURAL JOIN delivery_list;








, :





SELECT DISTINCT courier_info.courier_id, customers.district

FROM courier_info

CROSS JOIN customers WHERE courier_info.delivery_type = 'car'

ORDER BY courier_id;








, :





SELECT customers.first_name, customers.last_name,

customers.phone_number, orders.order_id

FROM customers

LEFT JOIN orders ON customers.customer_id = orders.customer_id;












Hasilnya, kami telah menganalisis banyak kueri pengambilan SQL yang berguna. Operasi dasar dan lebih jarang ditampilkan. Faktanya, tidak masalah berapa banyak data dalam tabel Anda sepuluh atau seribu, ini tidak akan mengubah kueri, tetapi akan selalu tetap sama. Yang utama adalah maknanya jelas, jumlah data memainkan peran yang jauh lebih kecil. Benar-benar bodoh untuk merasa takut dan kesal karena Anda belum bisa mendapatkan permintaan yang diinginkan. Sangat normal jika Anda google, membaca buku tentang topik yang menarik, dan masih tidak ada hasil. Ini bisa memakan waktu belasan menit hingga berhari-hari. Kita semua adalah manusia dan satu orang tidak bisa mengetahui segalanya. Bersabarlah, tanyakan pada rekan-rekan Anda, di forum dan terus cari sendiri, Anda akan berhasil! Semoga berhasil.








All Articles