---
title: Query data with InfluxQL
description: Use the InfluxDB v1 /query compatibility endpoint to query data in InfluxDB v2 using InfluxQL.
url: https://docs.influxdata.com/influxdb/v2/query-data/influxql/
estimated_tokens: 1408
product: InfluxDB OSS v2
version: v2
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb/v2/query-data/influxql/
date: '2025-05-23T15:13:18-05:00'
lastmod: '2025-05-23T15:13:18-05:00'
---

This page documents an earlier version of InfluxDB OSS.[InfluxDB 3 Core](/influxdb3/core/) is the latest stable version.

#### API token hashing is enabled by default in InfluxDB OSS 2.9.0

Stronger token security: tokens are stored as hashes on disk, so a
copy of the database file doesn’t expose usable tokens. Existing
tokens are hashed on first startup and the original strings can’t
be recovered afterward — **capture any plaintext tokens you still
need before you upgrade**.

For more information, see [Token hashing](/influxdb/v2/admin/tokens/#token-hashing).

Use InfluxQL (an SQL-like query language) to interact with InfluxDB, and API features analyze your times series data.

In InfluxDB 1.x, data is stored in [databases](/influxdb/v1/concepts/glossary/#database)and [retention policies](/influxdb/v1/concepts/glossary/#retention-policy-rp).
In InfluxDB OSS 2.9, data is stored in [buckets](/influxdb/v2/reference/glossary/#bucket).
Because InfluxQL uses the 1.x data model, a bucket must be mapped to a database and retention policy (DBRP) before it can be queried using InfluxQL.

**To query data with InfluxQL, complete the following steps:**

1. [Verify buckets have a mapping](#verify-buckets-have-a-mapping).
2. [Create DBRP mappings for unmapped buckets](#create-dbrp-mappings-for-unmapped-buckets).
3. [Query a mapped bucket with InfluxQL](#query-a-mapped-bucket-with-influxql).

#### InfluxQL reference documentation

For complete InfluxQL reference documentation, see the[InfluxQL specification for InfluxDB 2.x](/influxdb/v2/reference/syntax/influxql/spec/).

## Verify buckets have a mapping

1. To verify the buckets you want to query are mapped to a database and retention policy, use the [`influx` CLI](/influxdb/v2/reference/cli/influx/) or the [InfluxDB API](/influxdb/v2/reference/api/).*For examples, see [List DBRP mappings](/influxdb/v2/query-data/influxql/dbrp/#list-dbrp-mappings).*

2. If you **do not find a DBRP mapping for a bucket**, [create a new DBRP mapping](/influxdb/v2/query-data/influxql/dbrp/#create-dbrp-mappings) to
   map the unmapped bucket.

## Create DBRP mappings for unmapped buckets

* Use the [`influx` CLI](/influxdb/v2/reference/cli/influx/) or the [InfluxDB API](/influxdb/v2/reference/api/)to manually create DBRP mappings for unmapped buckets.*For examples, see [Create DBRP mappings](/influxdb/v2/query-data/influxql/dbrp/#create-dbrp-mappings).*

## Query a mapped bucket with InfluxQL

#### InfluxQL shell ####

The [`influx` CLI](/influxdb/v2/reference/cli/influx/) provides an [InfluxQL shell](/influxdb/v2/tools/influxql-shell/) where you can execute InfluxQL queries in an interactive Read-Eval-Print-Loop (REPL).

1. If you haven’t already, do the following:

   * [Download and install the `influx` CLI](/influxdb/v2/tools/influx-cli/#install-the-influx-cli)
   * [Configure your authentication credentials](/influxdb/v2/tools/influx-cli/#provide-required-authentication-credentials)

2. Use the following command to start an InfluxQL shell:

   ```
   influx v1 shell
   ```

3. Execute an InfluxQL query inside the InfluxQL shell.

   ```
   SELECT used_percent FROM "example-db"."example-rp"."example-measurement" WHERE host=host1
   ```

   For more information, see how to [use the InfluxQL shell](/influxdb/v2/tools/influxql-shell/). For more information about DBRP mappings, see [Manage DBRP mappings](/influxdb/v2/query-data/influxql/dbrp/).

The [InfluxDB 1.x compatibility API](/influxdb/v2/reference/api/influxdb-1x/) supports
all InfluxDB 1.x client libraries and integrations in InfluxDB 2.9.

1. To query a mapped bucket with InfluxQL, use the [`/query` 1.x compatibility endpoint](/influxdb/v2/reference/api/influxdb-1x/query/), and include the following in your request:

   * **Request method:** `GET`
   * **Headers:**
     * **Authorization:** *See [compatibility API authentication](/influxdb/v2/reference/api/influxdb-1x/#authentication)*

   * **Query parameters:**
     * **db**: 1.x database to query

     * **rp**: 1.x retention policy to query *(if no retention policy is specified, InfluxDB uses the default retention policy for the specified database)*

     * **q**: URL-encoded InfluxQL query

       > [!Note]
> URL-encode query parameters that may contain whitespace or other special characters.

   ```
   curl --get http://localhost:8086/query?db=example-db \
     --header "Authorization: Token YourAuthToken" \
     --data-urlencode "q=SELECT used_percent FROM \"example-db\".\"example-rp\".\"example-measurement\" WHERE host=host1"
   ```

   By default, the `/query` compatibility endpoint returns results in **JSON**.

2. (Optional) To return results as **CSV**, include the `Accept: application/csv` header.

For more information about DBRP mappings, see [Manage DBRP mappings](/influxdb/v2/query-data/influxql/dbrp/).

## InfluxQL support

InfluxDB OSS 2.x supports the following InfluxQL statements and clauses. See supported and unsupported queries below.

##### Supported InfluxQL queries

* `DELETE`\*
* `DROP MEASUREMENT`\*
* `EXPLAIN ANALYZE`
* `SELECT` *(read-only)*
* `SHOW DATABASES`
* `SHOW SERIES`
* `SHOW MEASUREMENTS`
* `SHOW TAG KEYS`
* `SHOW FIELD KEYS`
* `SHOW SERIES EXACT CARDINALITY`
* `SHOW TAG KEY CARDINALITY`
* `SHOW FIELD KEY CARDINALITY`

\* These commands delete data.

##### Unsupported InfluxQL queries

* `SELECT INTO`
* `ALTER`
* `CREATE`
* `DROP` *(limited support)*
* `GRANT`
* `KILL`
* `REVOKE`
* `SHOW SERIES CARDINALITY`

#### Related

* [Use the InfluxQL shell](/influxdb/v2/tools/influxql-shell/)

[influxql](/influxdb/v2/tags/influxql/)[query](/influxdb/v2/tags/query/)
