SQL Command Magic for IPython
An IPython magic extension for executing SQL queries against Microsoft SQL Server using the sqlcmd utility.
Features
- Execute SQL queries directly from IPython/Jupyter notebooks
- Connect to Microsoft SQL Server using simple parameters or connection strings
- Execute SQL in batches separated by GO statements
- Execute external SQL files using EXECUTE_SQL_FILE
- Substitute Python variables in SQL queries
- Debug mode for troubleshooting
Installation
pip install ipython-sqlcmd
Requirements
- Python 3.7+
- IPython 7.0+
- Pandas 1.0+
- Microsoft SQL Server
sqlcmdutility installed and available in PATH
Usage
Load the extension
%load_ext sqlcmd
Set connection using simplified syntax
# Connect using just the database name (uses defaults for other parameters)
%sqlcmd AdventureWorks
# Connect with custom server, username and password
%sqlcmd AdventureWorks --server=myserver --username=myuser --password=mypassword
# Connect using password from environment variable
%sqlcmd AdventureWorks --password-env=MY_SQL_PASSWORD
# Connect with additional connection options
%sqlcmd AdventureWorks --driver="ODBC Driver 18 for SQL Server" --no-encrypt
Set connection using full connection string (advanced)
%sqlcmd 'mssql+sqlcmd:///?odbc_connect=SERVER=myserver;DATABASE=mydb;UID=myuser;PWD=mypassword'
Execute SQL
%%sqlcmd
SELECT TOP 10 *
FROM MyTable
WHERE Column1 = 'Value'
Execute SQL with variable substitution
value = "SomeValue"
%%sqlcmd
SELECT TOP 10 *
FROM MyTable
WHERE Column1 = '$value'
Debug mode
%%sqlcmd --debug
SELECT TOP 10 *
FROM MyTable
Execute SQL from file
%%sqlcmd
EXECUTE_SQL_FILE 'path/to/query.sql'
Connection Parameters
When using the simplified connection syntax, the following parameters are available:
| Parameter | Short Flag | Default Value | Description |
|---|---|---|---|
--server |
-s |
localhost | SQL Server instance |
--username |
-u |
sa | SQL Server username |
--password |
-p |
None | SQL Server password |
--password-env |
-e |
SSMS_PASSWORD | Environment variable containing password |
--driver |
-d |
ODBC Driver 17 for SQL Server | ODBC driver name |
--encrypt |
True | Encrypt connection (default) | |
--no-encrypt |
Do not encrypt connection | ||
--trust-certificate |
True | Trust server certificate (default) | |
--no-trust-certificate |
Do not trust server certificate | ||
--encoding |
-c |
utf-8 | Output and SQL database encoding (e.g., utf-8, latin-1, cp1252) |
--show-execution-time |
-t |
False | Print execution time of SQL queries |
License
MIT
Metadata
Release files for ipython-sqlcmd 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ipython_sqlcmd-0.1.3.tar.gz | 13.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ipython_sqlcmd-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.0 kB
Release files / ipython_sqlcmd-0.1.3.tar.gz
| Download URL | ipython_sqlcmd-0.1.3.tar.gz |
|---|---|
| Size | 13.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8d9bb528d02a250dc5847ea6f95e910eaf0acf8f0443dfe86ebf1f5c765a3f5
|
|
BLAKE2b-256 checksum How to use checksums |
28752153da3bdd6926a0ff117716548f72585427064d993a06be98dbd405d407
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|
Release files / ipython_sqlcmd-0.1.3-py3-none-any.whl
| Download URL | ipython_sqlcmd-0.1.3-py3-none-any.whl |
|---|---|
| Size | 14.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
157a494d0e5bf95611379291a6014b451eb50a8a182619acdbdaa5cfd47b968e
|
|
BLAKE2b-256 checksum How to use checksums |
3dee84481dfe13d2e691d3373080b1d9db2792b5da92dd6321c81f1787b54f9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|