Garden Shop SQL Practice Dataset
Orders, products, inventory, suppliers, and customers for store-operations SQL practice.
Download this dataset, free
No account, no email, no attribution required — free for any use, including commercially. Take the single .sql file to load everything into PostgreSQL, MySQL, SQLite, DuckDB, or SQL Server, or grab the raw CSVs.
Garden Shop is the main SQLShed business dataset. It connects customers, orders, order line items, products, categories, and suppliers, so it works well for practicing the joins and aggregate reports people write in real operational databases.
The data includes shipped, pending, processing, and cancelled orders; products with price and cost; inventory quantities; reorder levels; and a few intentional gaps such as null shipped dates and missing supplier email addresses. Those details make it useful for learning how SQL behaves when the data is imperfect.
Schema
Schema · Garden ShopView dataset schema6 tables
One row per customer. Some customers have no phone on file.
One row per product, with price, cost, and inventory levels.
Lookup table of product categories.
One row per order. Unshipped orders have a null shipped_date.
One row per line item within an order.
One row per supplier. Some suppliers have no contact email.
Best for
- Multi-table joins from orders to line items and products.
- Revenue, margin, customer value, and inventory reports.
- NULL handling for unshipped orders and missing supplier contacts.
Starter questions
- Which products are below their reorder level?
- How much shipped revenue did each month produce?
- Which suppliers have the highest gross margin?