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. {{% /note %}} {{< 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 >}}