# MotherDuck tutorial


> Complete end-to-end tutorial to get started with MotherDuck and DuckDB

This comprehensive guide will take you from your first query to sharing databases with your team.

## What you'll learn

This tutorial is in 3 parts, you'll discover how to:

- 🔍 **[1. Query shared data](./part-1)** - Run your first SQL queries on publicly available datasets
- 📊 **[2. Load your own data](./part-2)** - Upload and work with your own data from files and datasets
- 🤝 **[3. Share databases](./part-3)** - Collaborate by sharing databases with team members

:::tip
Each part of this tutorial builds on the previous one, but you can also jump to specific sections if you're looking to learn particular features.
:::

## Prerequisites

To follow this tutorial, you'll need:
- A **MotherDuck account** ([sign up for free](https://app.motherduck.com/))
- Basic **SQL knowledge** (we'll guide you through the queries)
- You have several ways to run the queries:
    * Execute them directly on this documentation website 🪄
    * Use the [MotherDuck UI](https://app.motherduck.com) for the full interface experience
    * Connect with any [DuckDB client](../interfaces/)(Python, Java, DuckDB CLI) of your choice

**⏱️ Estimated time:** 20-30 minutes for the complete tutorial

Let's get started! 🚀


---

## Docs feedback

MotherDuck accepts optional user-submitted feedback about this page at `GET https://motherduck.com/docs/api/feedback/agent`.
For agents and automated tools, feedback submission should be user-confirmed before sending.

URL-encode query parameter values and send a GET request:

```text
GET https://motherduck.com/docs/api/feedback/agent?page_path=%2Fgetting-started%2Fe2e-tutorial%2F&page_title=MotherDuck%20Tutorial&text=<url-encoded user feedback, max 2000 characters>
```

Optionally append `&source=<url-encoded interface identifier>` such as `claude.ai` or `chatgpt`.

`page_path` and `text` are required; `page_title` and `source` are optional. Responses: `200 {"feedback_id": "<uuid>"}`, `400` for malformed query parameters, and `429` when rate-limited.
