---
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: 2237
product: InfluxDB OSS v2
version: v2
---

# Query data with InfluxQL

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

<!-- Tabbed content: Select one of the following options -->

**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:
    
    ```sh
    influx v1 shell
    ```
    
3. Execute an InfluxQL query inside the InfluxQL shell.
    
    ```sql
    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/).

**InfluxDB API:**

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
            
            URL-encode query parameters that may contain whitespace or other special characters.
            
    
    ```sh
    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/).

<!-- End tabbed content -->

## 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/)
