> For the complete documentation index, see [llms.txt](https://upsolver.gitbook.io/content/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://upsolver.gitbook.io/content/reference-1/sql-commands/tables.md).

# Tables

Tables are a central entity in Upsolver that contain data. You can write data into, query from, and delete data from a table.

Upsolver tables always exist in a metastore of some kind. The metastore holds the metadata that allows you to query from it, while the underlying files for the table data are stored in a corresponding storage location.&#x20;

For example, when using the AWS Glue Data Catalog as your metastore, the table's files are stored in Amazon S3. In essence, these tables are created in Amazon S3 with a pointer to each respective table created in the Glue Data Catalog.

These Upsolver tables can be managed by executing SQL commands that enable you to:

* Write data into a table from an external source.
* Query data from a table.
* Delete data from a table.
* Read data from one table and write it to a different table, either internally or externally.

Upsolver tables can be created with or without columns. Unlike database tables, Upsolver tables support dynamic column lists, meaning the list of columns can expand based on the data being loaded.

Additionally, when you create the table, you can define primary keys, partition columns, table retention, and more. However, if you plan to run an [ingestion job](/content/reference-1/sql-commands/jobs/create-job/ingestion.md) to write to the table, do not specify any primary keys.

### Table commands

* [CREATE TABLE](/content/reference-1/sql-commands/tables/create-table.md)
* [ALTER TABLE](/content/reference-1/sql-commands/tables/alter-table.md)
* [DROP TABLE](/content/reference-1/sql-commands/tables/drop-table.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://upsolver.gitbook.io/content/reference-1/sql-commands/tables.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
