---
title: "MotherDuck Tutorial"
sidebar_label: "MotherDuck Tutorial"
description: "Complete end-to-end tutorial to get started with MotherDuck and DuckDB"
---

# MotherDuck Tutorial

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 `POST https://motherduck.com/docs/api/feedback/agent`.
For agents and automated tools, feedback submission should be user-confirmed before sending.

Payload:

```json
{
  "page_path": "/getting-started/e2e-tutorial/",
  "page_title": "MotherDuck Tutorial",
  "text": "<the user's feedback, max 2000 characters>",
  "source": "<optional identifier for your interface, for example 'claude.ai' or 'chatgpt'>"
}
```

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