SQLore
FeaturesPricingDownloadAboutBlogContact
Start freeStart for free
SQLore
HomeFeaturesSolutionsPricingDownloadCompareFAQAboutBlogContact

SQLore © 2026

TermsPrivacyRefunds
Download for macOSDownload for WindowsSign in
  1. Home
  2. Solutions
  3. MySQL
MySQL

Chat With Your MySQL Database

Ask a question, get the answer described and charted, with the query behind it. It reads your real schema first, so the answer references your tables rather than plausible-sounding ones.

Download SQLoreSee all features

How do you chat with a MySQL database?

You chat with a MySQL database by connecting a tool that introspects the schema and translates plain-English questions into SQL. SQLore reads information_schema for tables, columns, keys and statistics, generates a validated read-only SELECT, executes it against your database and returns the answer in plain English, charted or tabulated, with the query beside it — running on a local model unless you opt into a live one.

What it reads from information_schema

MySQL exposes its metadata through `information_schema`, and SQLore reads it directly on first connection rather than working from a description of your database supplied by hand.

  • Tables and views, with the database (schema) that owns them.
  • Columns, their types, and their character set and collation.
  • Primary keys, foreign keys and indexes — the join paths and the access paths.
  • Distinct values on low-cardinality columns, so a status filter matches the stored value.
  • Table statistics, so it knows which side of a join is the large one.

Follow-ups keep the context

You ask for orders by month; then you want it by channel, excluding refunds, for the current financial year. Each refinement builds on the query already established rather than starting over — which is the whole reason a chat interface beats a query box for exploratory work.

Read-only, and enforced by MySQL too

Every generated statement is parsed to an AST and validated to a single read-only SELECT before it is executed, on a read-only connection with a statement timeout. Create a MySQL user with `GRANT SELECT` and nothing else, point SQLore at that, and the guarantee holds at the server as well — which is the configuration to use against anything you care about.

Where MySQL and Postgres genuinely differ

Identifier quoting, `ONLY_FULL_GROUP_BY`, collation rules that decide whether a comparison is case-sensitive, and a materially different set of window and CTE capabilities depending on version. Because introspection is per-engine rather than generic, the SQL comes back in the dialect your server will actually accept instead of Postgres SQL with the quotes changed.

How it works, step by step

  1. 1

    Create a read-only user

    `GRANT SELECT` on the databases you want reachable. Optional, but it is the configuration we recommend for anything in production.

  2. 2

    Add the connection

    Host, port, database and that user. Credentials stay on your machine.

  3. 3

    Let it introspect

    It reads information_schema once and caches the result locally, then builds the retrieval index over it.

  4. 4

    Ask, then refine

    Plain English in; an explained, charted answer with its SQL out. Follow-ups narrow the answer rather than restarting it.

Frequently asked questions

Which MySQL versions work?

Support is per-engine rather than per-version, because the schema layer reads `information_schema` directly. In practice the version matters for what SQL is available rather than whether the connection works — window functions and CTEs need MySQL 8.0, and it generates for what your server supports.

Does it work with MariaDB?

MariaDB presents a compatible `information_schema` and accepts the same read-only SELECTs, so introspection and querying behave the same way. PostgreSQL and MySQL are the two engines we test and support, so treat MariaDB as working rather than guaranteed.

How does it handle ONLY_FULL_GROUP_BY?

By generating SQL that satisfies it — every selected column either grouped or aggregated. That mode is the default from MySQL 5.7 onward, and queries that ignore it are the most common way generated MySQL fails on a server that a generic generator was not written for.

Can it connect to Amazon RDS or PlanetScale?

Any MySQL you can reach with a standard client connection and a SELECT-granted user works the same way, managed or not, since introspection uses nothing but `information_schema`.

More answers on the main FAQ, or ask us directly.

Related

MySQL, in depth

AI For MySQL That Writes SQL Your Server Accepts

Read more

PostgreSQL

Chat With Your PostgreSQL Database

Read more

The interface

AI Database Chat, Where The Second Question Is The Real One

Read more

Every page in this section covers a different question about the same product. See all solutions.

SQLore platform

Stop Writing The
Same Three Joins

Start free, upgrade when you are asking enough questions for it to matter.

Start for freeContact sales
sqlore.com

New chat

Search chats

TODAY

Orders by month

PREVIOUS 7 DAYS

Top products by revenue

PREVIOUS 30 DAYS

Repeat customer rate

Revenue by category

Average order value

Refunds by reason

Customers by city

Cart abandonment

Slowest shipping lanes

Discount impact on margin

Inventory turnover

Order statistics

SQLoredesktopretail_db · default⌘K

Order statistics for this year

Reasoning — 2 steps, 2 queries

Total orders · Delivered · In transit · Cancelled

1 row · 10 ms

Stat

15,600

Total orders

13,942

Delivered

1,412

In transit

246

Cancelled

orders by category

4 rows · 11 ms

LineDonutBar
8,4006,3004,2002,1000
ACCESSORIESPERIPHERALSFURNITUREDISPLAYS

There are 15,600 orders in retail_db for the year to date.

  • Status: 13,942 have been delivered and 1,412 are still in transit.
  • Category: most sit in Accessories (8,420), followed by Peripherals (4,180), Furniture (2,140) and Displays (860).

Revenue by payment method

Reasoning — 1 step, 1 query

Ask about your database…

Answers come from SQL run against your database.