Writing and Executing SQL Statements
Use the input pane of the database console to compose and execute your SQL statements, and also to perform other, associated tasks. (The input pane is shown as a tab in the editor.)
- Composing SQL statements
- Navigating to a table or column view in the Database tool window
- Executing an SQL statement
- Executing parameterized statements
- Executing a group of statements
- Using the error notification bar
- Executing a part of a statement (e.g. a subquery)
- Executing auto-memorized statements
- Managing database transactions
- Canceling running statements
- Showing DBMS_OUTPUT for Oracle
Composing SQL statements
When composing your SQL statements, use:
- Auto-completion and highlighting of SQL keywords, and table and column names.
- Context-sensitive suggestions (a.k.a. basic code completion) activated by means of Ctrl+Space or Code | Completion | Basic .
- Data type prompts for columns (fields) invoked by Ctrl+P or View | Parameter Info .
- Advanced find and replace capabilities (Ctrl+F or Edit | Find | Find , and Ctrl+R or Edit | Find | Replace ).
Navigating to a table or column view in the Database tool window
When composing a statement, it's sometimes useful to take a look at the structure of a table, or to see the info about a column (field) in the context of the table to which it belongs. For such purposes, PyCharm provides the ability to switch from a table or column referenced in the input pane to its view in the Database tool window.
The following ways are available for using this feature:
- Place the cursor within the name of the table or column of interest. Then use Ctrl+B. (Alternatively, you can use Navigate | Declaration from the main menu or Go To | Declaration from the context menu.)
- Press and hold the Ctrl key, and point to the name of interest. When the text turns into a hyperlink, click the hyperlink.
Executing an SQL statement
To execute a statement, place the cursor within that statement or within the line that contains the statement. Then do one of the following:
- Click on the toolbar.
- Press Ctrl+Enter.
Executing parameterized statements
Your statements can contain parameters, however, by the time you execute such statements the values of the parameters must be specified. There are the following ways of specifying the parameter values:
Click on the toolbar or press
Ctrl+Enter to execute the statement.
In the dialog that opens, specify the parameter values and click OK.
( To start editing a value, double-click the corresponding table cell, or click the cell and press F2. To indicate that you have finished editing a value, press Enter or click a different cell. To quit the editing mode and restore an initial value, press Escape. )
- Alternatively, you can open the Parameters pane in the Database Console tool window ( on the toolbar) and specify the corresponding values there. (The values are edited in the same way as in the corresponding dialog.) Then execute the statement ( on the toolbar or Ctrl+Enter).
Executing a group of statements
To execute a group of statements that follow one another in the console, select (highlight) the statements to be executed (to select all the statements, use Ctrl+A) and do one of the following:
- Click on the toolbar.
- Press Ctrl+Enter.
Using the error notification bar
If when running a statement an error occurs, an error notification bar appears in the lower part of the input pane.
The options are:
- Retry. Execute the sequence of statements starting from the one that caused the error.
- Ignore. Skip the erroneous statement and execute the sequence starting from the next statement. If another error occurs, the error notification bar will appear again.
- Ignore All. Skip the erroneous statement and execute the sequence starting from the next statement. If other errors occur, all the erroneous statements will be skipped and the error notification bar won't appear for these statements.
- Stop. Stop the execution of the sequence.
Showing the error notification bar in the input pane is enabled or disabled in the Settings dialog (the check box on the Database page).
Executing a part of a statement (e.g. a subquery)
To execute a part of a statement (e. g. a subquery):
- Select (highlight) the fragment that you want to execute.
- Right-click the fragment and select Execute Selection from the context menu.
Executing auto-memorized statements
As you run SQL statements in the console, PyCharm memorizes them. So, at a later time, you can view the statements you have already run and, if necessary, run them again.
To open the dialog where the auto-memorized statements are shown (the History dialog), do one of the following:
- Click on the toolbar.
- Press Ctrl+Alt+E.
There are two panes in the History dialog. The left-hand pane shows the list of the statements that you have run. For "long" statements, only their beginnings are shown. When you select a statement in this pane, the overall statement is shown in the pane to the right.
You can filter the information: just start typing. As a result, only the statements that contain the specified string will be shown.
You can copy the statements from the History dialog into the input pane of the console. To copy a statement do one of the following:
- Double-click the statement to be copied.
- Select the statement of interest and press Enter.
- Select the statement and click OK.
(Once the statement is in the input pane, you can run it straight away.)
You can delete unnecessary memorized statements. To delete a statement select the statement in the History dialog and press Delete.
- There is a separate history of executed statements for each of your DB data sources.
- The number of executed SQL statements to be memorized can be changed in the Settings dialog (the Console commands history size field on the Editor | General page).
- The history files that haven't been used for two weeks are automatically deleted. That is, if you haven't run SQL statements for a certain data source within this time, the corresponding history is discarded.
Managing database transactions
The Auto-commit check box, and the Commit and Rollback icons on the toolbar let you manage database transactions.
The Auto-commit check box is used to turn the autocommit mode for the database connection on or off.
In the autocommit mode, each SQL statement is executed in its own transaction that is implicitly committed. Consequently, the SQL statements executed in this mode cannot be rolled back.
If the autocommit mode is off, transactions are committed or rolled back explicitly by means of the Commit () or Rollback () command. Each commit or rollback starts a new transaction which provides grouping for a series of subsequent SQL statements.
In this case, the data manipulations in the transaction scope are committed or rolled back all at once when the transaction is committed or rolled back.
Canceling running statements
To terminate execution of the current statement or statements, do one of the following:
- Click on the toolbar of the input pane, or on the toolbar of the Dababase Console tool window.
- Press Ctrl+Shift+Alt+Delete .
Showing DBMS_OUTPUT for Oracle
For Oracle, you can enable or disable showing the contents of the DBMS_OUTPUT buffer in the output pane. To do that, use on the toolbar of the Database Console tool window (Ctrl+F8).