Use InfluxQL `SHOW` statements to return information about your data schema. {{% influxql/v1-v3-data-model-note %}} - [List measurements in a database](#list-measurements-in-a-database) - [List measurements that contain specific tag key-value pairs](#list-measurements-that-contain-specific-tag-key-value-pairs) - [List measurements that match a regular expression](#list-measurements-that-match-a-regular-expression) - [List field keys in a measurement](#list-field-keys-in-a-measurement) - [List tag keys in a measurement](#list-tag-keys-in-a-measurement) - [List tag keys in measurements that contain a specific tag key-value pair](#list-tag-keys-in-measurements-that-contain-a-specific-tag-key-value-pair) - [List tag values for a specific tag key](#list-tag-values-for-a-specific-tag-key) - [List tag values for multiple tags](#list-tag-values-for-multiple-tags) - [List tag values for tags that match a regular expression](#list-tag-values-for-tags-that-match-a-regular-expression) - [List tag values associated with a specific tag key-value pair](#list-tag-values-associated-with-a-specific-tag-key-value-pair) > [!Note] > > #### Sample data > > The following examples use data provided in [sample data sets](/influxdb3/version/reference/sample-data/). > To run the example queries and return identical results, follow the instructions > provided for each sample data set to write the data to your {{% product-name %}} > database. ## List measurements in a database Use [`SHOW MEASUREMENTS`](/influxdb3/version/reference/influxql/show/#show-measurements) to list measurements in your InfluxDB database. ```sql SHOW MEASUREMENTS ``` {{< expand-wrapper >}} {{% expand "View example output" %}} {{% influxql/table-meta %}} name: measurements {{% /influxql/table-meta %}} | name | | :----------- | | bitcoin | | home | | home_actions | | numbers | | weather | {{% /expand %}} {{< /expand-wrapper >}} ### List measurements that contain specific tag key-value pairs To return only measurements with specific tag key-value pairs, include a `WHERE` clause with tag key-value pairs to query for. ```sql SHOW MEASUREMENTS WHERE room = 'Kitchen' ``` {{< expand-wrapper >}} {{% expand "View example output" "1" %}} {{% influxql/table-meta %}} name: measurements {{% /influxql/table-meta %}} | name | | :----------- | | home | | home_actions | {{% /expand %}} {{< /expand-wrapper >}} ### List measurements that match a regular expression To return only measurements with names that match a [regular expression](/influxdb3/version/reference/influxql/regular-expressions/), include a `WITH` clause that compares the `MEASUREMENT` to a regular expression. ```sql SHOW MEASUREMENTS WITH MEASUREMENT =~ /^home/ ``` {{< expand-wrapper >}} {{% expand "View example output" "2" %}} {{% influxql/table-meta %}} name: measurements {{% /influxql/table-meta %}} | name | | :----------- | | home | | home_actions | {{% /expand %}} {{< /expand-wrapper >}} ## List field keys in a measurement Use [`SHOW FIELD KEYS`](/influxdb3/version/reference/influxql/show/#show-field-keys) to return all field keys in a measurement. Include a `FROM` clause to specify the measurement. If no measurement is specified, the query returns all field keys in the database. ```sql SHOW FIELD KEYS FROM home ``` {{< expand-wrapper >}} {{% expand "View example output" "3" %}} {{% influxql/table-meta %}} name: home {{% /influxql/table-meta %}} | fieldKey | fieldType | | :------- | :-------- | | co | integer | | hum | float | | temp | float | {{% /expand %}} {{< /expand-wrapper >}} ## List tag keys in a measurement Use [`SHOW TAG KEYS`](/influxdb3/version/reference/influxql/show/#show-field-keys) to return all tag keys in a measurement. Include a `FROM` clause to specify the measurement. If no measurement is specified, the query returns all tag keys in the database. ```sql SHOW TAG KEYS FROM home_actions ``` {{< expand-wrapper >}} {{% expand "View example output" "4" %}} {{% influxql/table-meta %}} name: home_actions {{% /influxql/table-meta %}} | tagKey | | :----- | | action | | level | | room | {{% /expand %}} {{< /expand-wrapper >}} ### List tag keys in measurements that contain a specific tag key-value pair To return all tag keys measurements that contain specific tag key-value pairs, include a `WHERE` clause with the tag key-value pairs to query for. ```sql SHOW TAG KEYS WHERE room = 'Kitchen' ``` {{< expand-wrapper >}} {{% expand "View example output" "5" %}} {{% influxql/table-meta %}} name: home {{% /influxql/table-meta %}} | tagKey | | :----- | | room | {{% influxql/table-meta %}} name: home_actions {{% /influxql/table-meta %}} | tagKey | | :----- | | action | | level | | room | {{% /expand %}} {{< /expand-wrapper >}} ## List tag values for a specific tag key Use [`SHOW TAG VALUES`](/influxdb3/version/reference/influxql/show/#show-field-values) to return all values for specific tags in a measurement. - Include a `FROM` clause to specify one or more measurements to query. - Use the `WITH` clause to compare `KEY` to tag keys to list the values of. - Use the `WHERE` clause to restrict the search to a specific time range (default time range is the last day). ```sql SHOW TAG VALUES FROM weather WITH KEY = location ``` > [!Note] > > #### Include a FROM clause > > We strongly recommend including a `FROM` clause with the `SHOW TAG VALUES` > statement that specifies 1-50 tables to query. > Without a `FROM` clause, the InfluxDB query engine must read data from all > tables and return unique tag values from each. > > Depending on the number of tables in your database and the number of unique tag > values in each table, excluding a `FROM` clause can result in poor query performance, > query timeouts, or unnecessary resource allocation that may affect other queries. {{< expand-wrapper >}} {{% expand "View example output" "5" %}} {{% influxql/table-meta %}} name: weather {{% /influxql/table-meta %}} | key | value | | :------- | :------------ | | location | Concord | | location | Hayward | | location | San Francisco | {{% /expand %}} {{< /expand-wrapper >}} ### List tag values for multiple tags To return tag values for multiple specific tag keys, use the `IN` operator in the `WITH` clause to compare `KEY` to a list of tag keys. ```sql SHOW TAG VALUES FROM home_actions WITH KEY IN ("level", "action") ``` {{< expand-wrapper >}} {{% expand "View example output" "6" %}} {{% influxql/table-meta %}} name: home_actions {{% /influxql/table-meta %}} | key | value | | :----- | :---- | | action | alert | | action | cool | | level | ok | | level | warn | {{% /expand %}} {{< /expand-wrapper >}} ### List tag values for tags that match a regular expression To return only tag values from tags keys that match a regular expression, use regular expression comparison operators in your `WITH` clause to compare `KEY` to the regular expression. ```sql SHOW TAG VALUES FROM home, home_actions WITH KEY =~ /oo/ ``` {{< expand-wrapper >}} {{% expand "View example output" "7" %}} {{% influxql/table-meta %}} name: home {{% /influxql/table-meta %}} | key | value | | :--- | :---------- | | room | Kitchen | | room | Living Room | {{% influxql/table-meta %}} name: home_actions {{% /influxql/table-meta %}} | key | value | | :--- | :---------- | | room | Kitchen | | room | Living Room | {{% /expand %}} {{< /expand-wrapper >}} ### List tag values associated with a specific tag key-value pair To list tag values for tags associated with a specific tag key-value pair: - Use the `WITH` clause to identify what tag keys to return values for. - Include a `WHERE` clause that identifies the tag key-value pair to query for. The following example returns tag values for the `action` and `level` tags for points where the `room` tag value is `Kitchen`. ```sql SHOW TAG VALUES FROM home_actions WITH KEY IN ("action", "level") WHERE room = 'Kitchen' ``` {{< expand-wrapper >}} {{% expand "View example output" "8" %}} {{% influxql/table-meta %}} name: home_actions {{% /influxql/table-meta %}} | key | value | | :----- | :---- | | action | alert | | action | cool | | level | ok | | level | warn | {{% /expand %}} {{< /expand-wrapper >}}