pgadmin4/docs/en_US/query_tool.rst

194 lines
7.3 KiB
ReStructuredText

.. _query_tool:
*******************
`Query Tool`:index:
*******************
The Query Tool is a powerful, feature-rich environment that allows you to
execute arbitrary SQL commands and review the result set. You can access the
Query Tool via the *Query Tool* menu option on the *Tools* menu, or through the
context menu of select nodes of the Browser tree control. The Query Tool
allows you to:
* Issue ad-hoc SQL queries.
* Execute arbitrary SQL commands.
* Displays current connection and transaction status as configured by the user.
* Save the data displayed in the output panel to a CSV file.
* Review the execution plan of a SQL statement in either a text or a graphical format.
* View analytical information about a SQL statement.
.. image:: images/query_tool.png
:alt: Query tool window
:align: center
You can open multiple copies of the Query tool in individual tabs
simultaneously. To close a copy of the Query tool, click the *X* in the
upper-right hand corner of the tab bar.
The Query Tool features two panels:
* The upper panel displays the *SQL Editor*. You can use the panel to enter,
edit, or execute a query. It also shows the *History* tab which can be used
to view the queries that have been executed in the session, and a *Scratch Pad*
which can be used to hold text snippets during editing. If the Scratch Pad is
closed, it can be re-opened (or additional ones opened) by right-clicking in
the SQL Editor and other panels and adding a new panel.
* The lower panel displays the *Data Output* panel. The tabbed panel displays
the result set returned by a query, information about a query's execution plan,
server messages related to the query's execution and any asynchronous
notifications received from the server.
Toolbar
*******
The toolbar is described in the following subsections.
.. toctree::
:maxdepth: 2
query_tool_toolbar
The SQL Editor Panel
********************
The *SQL editor* panel is a workspace where you can manually provide a query,
copy a query from another source, or read a query from a file. The SQL editor
features syntax coloring and autocompletion.
.. image:: images/query_sql_editor.png
:alt: Query tool editor
:align: center
To use autocomplete, begin typing your query; when you would like the Query
editor to suggest object names or commands that might be next in your query,
press the Control+Space key combination. For example, type "\*SELECT \* FROM\* "
(without quotes, but with a trailing space), and then press the Control+Space
key combination to select from a popup menu of autocomplete options.
.. image:: images/query_autocomplete.png
:alt: Query tool autocomplete feature
:align: center
After entering a query, select the *Execute/Refresh* icon from the toolbar. The
complete contents of the SQL editor panel will be sent to the database server
for execution. To execute only a section of the code that is displayed in the
SQL editor, highlight the text that you want the server to execute, and click
the *Execute/Refresh* icon.
.. image:: images/query_execute_section.png
:alt: Query tool execute query section
:align: center
The message returned by the server when a command executes is displayed on the
*Messages* tab. If the command is successful, the *Messages* tab displays
execution details.
.. image:: images/query_tool_message.png
:alt: Query tool message panel
:align: center
Options on the *Edit* menu offer functionality that helps with code formatting
and commenting:
* The auto-indent feature will automatically indent text to the same depth as
the previous line when you press the Return key.
* Block indent text by selecting two or more lines and pressing the Tab key.
* Implement or remove SQL style or toggle C style comment notation within your
code.
The Data Output Panel
*********************
The *Data Output* panel displays data and statistics generated by the most
recently executed query.
.. image:: images/query_output_data.png
:alt: Query tool output panel
:align: center
The *Data Output* tab displays the result set of the query in a table format.
You can:
* Select and copy from the displayed result set.
* Use the *Execute/Refresh* options to retrieve query execution information and
set query execution options.
* Use the *Download as CSV* icon to download the content of the *Data Output*
tab as a comma-delimited file.
All rowsets from previous queries or commands that are displayed in the *Data
Output* panel will be discarded when you invoke another query; open another
Query Tool tab to keep your previous results available.
Use the *Explain* tab to view a graphical representation of a query:
.. image:: images/query_output_explain.png
:alt: Query tool explain panel
:align: center
To generate a graphical explain diagram, open the *Explain* tab, and select
*Explain*, *Explain Analyze*, or one or more options from the *Explain options*
menu on the *Execute/Refresh* drop-down. Please note that *EXPLAIN VERBOSE*
cannot be displayed graphically. Hover over an icon on the *Explain* tab to
review information about that item; a popup window will display information
about the selected object:
Use the download button on top left corner of the *Explain* canvas to download
the plan as an SVG file.
**Note:** Download as SVG is not supported on Internet Explorer.
.. image:: images/query_output_explain_details.png
:alt: Query tool graphical explain plan
:align: center
Note that the query plan that accompanies the *Explain analyze* is available on
the *Data Output* tab.
Use the *Messages* tab to view information about the most recently executed
query:
.. image:: images/query_output_error.png
:alt: Query tool output messages
:align: center
If the server returns an error, the error message will be displayed on the
*Messages* tab, and the syntax that caused the error will be underlined in the
SQL editor. If a query succeeds, the *Messages* tab displays how long the
query took to complete and how many rows were retrieved:
.. image:: images/query_output_messages.png
:alt: Query tool output information
:align: center
Use the *Query History* tab to review activity for the current session:
.. image:: images/query_output_history.png
:alt: Query tool history panel
:align: center
The Query History tab displays information about recent commands:
* The date and time that a query was invoked.
* The text of the query.
* The number of rows returned by the query.
* The amount of time it took the server to process the query and return a
result set.
* Messages returned by the server (not noted on the *Messages* tab).
To erase the content of the *Query History* tab, select *Clear history* from
the *Clear* drop-down menu.
Query History is maintained across sessions for each database on a per-user
basis when running in Query Tool mode. In View/Edit Data mode, history is not
retained. By default, the last 20 queries are stored for each database. This
can be adjusted in `config_local.py` by overriding the `MAX_QUERY_HIST_STORED`
value. See the :ref:`Deployment <deployment>` section for more information.
Use the *Connection status* feature to view the current connection and
transaction status by clicking on the status icon in the Query Tool:
.. image:: images/query_tool_connection_status.png
:alt: Query tool connection and transaction statuses
:align: center