> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rowbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Datasets

> Create, manage, and organize your data with Rowbase datasets

## Overview

Datasets are the foundation of Rowbase. They store your structured data in a tabular format with automatic type detection, versioning, and schema validation.

## Creating Datasets

### From File Upload

Upload files by navigating to your project:

1. Click **Upload** or drag and drop files
2. Supported formats: CSV, Excel (.xlsx, .xls), JSON
3. Rowbase automatically detects:
   * Column headers
   * Data types
   * Date formats
   * Number formats

<Tip>
  You can upload multiple files at once. Each file becomes a separate dataset.
</Tip>

## Schema & Data Types

Each dataset has a schema that defines its columns and their types.

### Supported Types

| Type | Description | Auto-Detection Examples |
| - | - | - |
| `text` | String values | "Hello", "[user@email.com](mailto:user@email.com)" |
| `number` | Integers and decimals | 42, 3.14, -100 |
| `boolean` | True/false | true, false, yes, no, 1, 0 |
| `date` | Dates and timestamps | 2024-01-15, 01/15/2024, Jan 15 2024 |
| `json` | Nested objects | `{"key": "value"}` |

### Type Coercion

Rowbase attempts to coerce values to match column types:

```
"123" in a number column → 123
"true" in a boolean column → true
"2024-01-15" in a date column → 2024-01-15T00:00:00Z
```

<Warning>
  Values that can't be coerced are stored as `null`. Check the import preview for any conversion issues.
</Warning>

## Primary Keys

Use the **Primary Key** operation to designate one or more columns as the primary key:

* Ensures rows are unique based on key columns
* Validates that key columns are not null
* Enables identity tracking across updates

## Versioning

Rowbase automatically tracks changes to your datasets:

* Each import or update creates a new version
* Operations are stored separately from data
* You can re-run operations on new data versions

<Info>
  Versions are created automatically when you import data or update datasets via API.
</Info>

## Column Operations

### Rename Columns

Click any column header to rename it. The new name is applied across all operations and formulas.

### Change Column Type

1. Click the column header
2. Select **Change Type**
3. Choose the new type
4. Review any coercion warnings
5. Confirm the change

### Hide/Show Columns

Hide columns to simplify your view without deleting them:

* Hidden columns are still available in formulas and API responses
* Toggle visibility from the column menu or view settings

### Reorder Columns

Drag column headers to reorder them, or use the column settings panel for bulk reordering.

## Filtering & Search

### Quick Filter

Click the filter icon on any column to:

* Filter by exact value
* Filter by condition (contains, starts with, etc.)
* Filter by multiple values

### Global Search

Use the search bar to find rows containing specific text across all columns.

### Advanced Filters

Create complex filter conditions with AND/OR logic:

```
(status = "active" AND created_at > "2024-01-01")
OR
(status = "pending" AND priority = "high")
```

## Exporting Data

Export your dataset in multiple formats:

<CardGroup cols="3">
  <Card title="CSV" icon="file-csv">
    Standard comma-separated values
  </Card>

  <Card title="Excel" icon="file-excel">
    .xlsx format with formatting
  </Card>

  <Card title="JSON" icon="brackets-curly">
    Array of objects
  </Card>
</CardGroup>

Export options:

* **All data** - Export the complete dataset
* **Filtered data** - Export only rows matching current filters
* **Selected columns** - Choose specific columns to include
