---
title: Query SQL databases
description: Use sql.from() to query SQL databases with Flux.
url: https://docs.influxdata.com/flux/v0/query-data/sql/
estimated_tokens: 1146
product: Flux
version: v0
publisher: InfluxData
canonical: https://docs.influxdata.com/flux/v0/query-data/sql/
date: '2023-11-06T15:53:12-07:00'
lastmod: '2023-11-06T15:53:12-07:00'
---

Use [`sql.from()`](/flux/v0/stdlib/sql/from/) to query SQL databases with Flux.

* [Databases](#databases)
* [Drivers](#drivers)
* [Data source names](#data-source-names)
  * [Store sensitive credentials as secrets](#store-sensitive-credentials-as-secrets)

* [Results structure](#results-structure)
  * [Column data types](#column-data-types)

## Databases

`sql.from()` supports the following SQL databases:

* [Amazon Athena](/flux/v0/query-data/sql/athena/)
* [Amazon RDS](/flux/v0/query-data/sql/amazon-rds/)
* [CockroachDB](/flux/v0/query-data/sql/cockroachdb/)
* [BigQuery](/flux/v0/query-data/sql/bigquery/)
* [MariaDB](/flux/v0/query-data/sql/mariadb/)
* [MySQL](/flux/v0/query-data/sql/mysql/)
* [Percona](/flux/v0/query-data/sql/percona/)
* [PostgreSQL](/flux/v0/query-data/sql/postgresql/)
* [SAP HANA](/flux/v0/query-data/sql/sap-hana/)
* [Snowflake](/flux/v0/query-data/sql/snowflake/)
* [SQL Server](/flux/v0/query-data/sql/sql-server/)
* [SQLite](/flux/v0/query-data/sql/sqlite/)
* [Vertica](/flux/v0/query-data/sql/vertica/)

## Drivers

`sql.from()` uses [Go SQL drivers](https://github.com/golang/go/wiki/SQLDrivers)in the [Go sql package](https://pkg.go.dev/database/sql) to connect to SQL databases.
The following drivers are available:

* `awsathena`
* `bigquery`
* `hdb`
* `mysql`
* `postgres`
* `snowflake`
* `sqlite3`
* `sqlserver`
* `vertica`, `vertigo`

## Data source names

Each [SQL driver](#drivers) supports unique data source name (DSN) syntaxes
(also known as **connection strings**).*See the [database guides](#databases) for information about DSNs for each driver.*

#### Store sensitive credentials as secrets

If using **InfluxDB Cloud** or **InfluxDB OSS 2.x**, we recommend storing DSN
credentials as [InfluxDB secrets](/influxdb/cloud/admin/secrets/).
Use [`secrets.get()`](/flux/v0/stdlib/influxdata/influxdb/secrets/get/) to
retrieve a secret from the InfluxDB secrets API.

```js
import "sql"
import "influxdata/influxdb/secrets"

username = secrets.get(key: "POSTGRES_USER")
password = secrets.get(key: "POSTGRES_PASS")

sql.from(
    driverName: "postgres",
    dataSourceName: "postgresql://${username}:${password}@localhost:5432",
    query: "SELECT * FROM example_table",
)
```

## Results structure

`sql.from()` returns a [stream of tables](/flux/v0/get-started/data-model/#stream-of-tables)with no grouping (all rows in a single table).*For more information about table grouping, see[Flux data model - Restructure tables](/flux/v0/get-started/data-model/#restructure-tables).*

#### Column data types

Each `sql.from()` [driver](#drivers) converts column data types from the source
database into [Flux data types](/flux/v0/spec/types/#basic-types).*See the [database guides](#databases) for information about data type conversions.*

Given the following **example\_table** in a MySQL database:

##### example\_table

|ID |               Name               |           Address           |Country|
|---|----------------------------------|-----------------------------|-------|
| 1 |       Alfreds Futterkiste        |        Obere Str. 57        |Germany|
| 2 |Ana Trujillo Emparedados y helados|Avda. de la Constitución 2222|Mexico |
| 3 |     Antonio Moreno Taquería      |       Mataderos 2312        |Mexico |
| 4 |         Around the Horn          |       120 Hanover Sq.       |  UK   |
| 5 |        Berglunds snabbköp        |       Berguvsvägen 8        |Sweden |

##### Flux query

```js
import "sql"

sql.from(
    driverName: "mysql",
    dataSourceName: "username:passwOrd@tcp(localhost:3306)/db",
    query: "SELECT ID, Name FROM example_table",
)
```

##### Output

|ID |               Name               |
|---|----------------------------------|
| 1 |       Alfreds Futterkiste        |
| 2 |Ana Trujillo Emparedados y helados|
| 3 |     Antonio Moreno Taquería      |
| 4 |         Around the Horn          |
| 5 |        Berglunds snabbköp        |

#### Related

* [sql.from() function](/flux/v0/stdlib/sql/from/)
| ID | Name | Address | Country |
| --- | --- | --- | --- |
| ID | Name | Address | Country |
| 1 | Alfreds Futterkiste | Obere Str. 57 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Avda. de la Constitución 2222 | Mexico |
| 3 | Antonio Moreno Taquería | Mataderos 2312 | Mexico |
| 4 | Around the Horn | 120 Hanover Sq. | UK |
| 5 | Berglunds snabbköp | Berguvsvägen 8 | Sweden |

| ID | Name |
| --- | --- |
| ID | Name |
| 1 | Alfreds Futterkiste |
| 2 | Ana Trujillo Emparedados y helados |
| 3 | Antonio Moreno Taquería |
| 4 | Around the Horn |
| 5 | Berglunds snabbköp |
