Easy Tutorial
❮ Sqlite Select Sqlite Python ❯

SQLite Explain

Before an SQLite statement, you can use the "EXPLAIN" keyword or the "EXPLAIN QUERY PLAN" phrase to describe the details of the table.

If the EXPLAIN keyword or phrase is omitted, any modifications will cause the SQLite statement to query behavior and return information about how the SQLite statement operates.

-

The output from EXPLAIN and EXPLAIN QUERY PLAN is only for interactive analysis and troubleshooting.

-

The details of the output format may vary with different SQLite versions.

-

Applications should not use EXPLAIN or EXPLAIN QUERY PLAN, as their exact behavior is variable and only partially documented.

Syntax

The syntax for EXPLAIN is as follows:

EXPLAIN [SQLite Query]

The syntax for EXPLAIN QUERY PLAN is as follows:

EXPLAIN QUERY PLAN [SQLite Query]

Example

Suppose the COMPANY table has the following records:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Now, let's check the usage of Explain in a SELECT statement:

sqlite> EXPLAIN SELECT * FROM COMPANY WHERE Salary >= 20000;

This will produce the following result:

addr        opcode      p1          p2          p3
----------  ----------  ----------  ----------  ----------
0           Goto        0           19
1           Integer     0           0
2           OpenRead    0           8
3           SetNumColu  0           5
4           Rewind      0           17
5           Column      0           4
6           RealAffini  0           0
7           Integer     20000       0
8           Lt          357         16          collseq(BI
9           Rowid       0           0
10          Column      0           1
11          Column      0           2
12          Column      0           3
13          Column      0           4
14          RealAffini  0           0
15          Callback    5           0
16          Next        0           5
17          Close       0           0
18          Halt        0           0
19          Transactio  0           0
20          VerifyCook  0           38
21          Goto        0           1
22          Noop        0           0

Now, let's examine the Explain Query Plan usage in the SELECT statement:

SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;
order       from        detail
----------  ----------  -------------
0           0           TABLE COMPANY
❮ Sqlite Select Sqlite Python ❯