Skip to content

Repository files navigation

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
  • sqlcmd utility installed and available in PATH

Usage

Load the extension

%load_extsqlcmd

Set connection using simplified syntax

# Connect using just the database name (uses defaults for other parameters)%sqlcmdAdventureWorks# Connect with custom server, username and password%sqlcmdAdventureWorks--server=myserver--username=myuser--password=mypassword# Connect using password from environment variable%sqlcmdAdventureWorks--password-env=MY_SQL_PASSWORD# Connect with additional connection options%sqlcmdAdventureWorks--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

%%sqlcmdSELECTTOP10*FROMMyTableWHEREColumn1='Value'

Execute SQL with variable substitution

value="SomeValue"%%sqlcmdSELECTTOP10*FROMMyTableWHEREColumn1='$value'

Debug mode

%%sqlcmd--debugSELECTTOP10*FROMMyTable

Execute SQL from file

%%sqlcmdEXECUTE_SQL_FILE'path/to/query.sql'

Connection Parameters

When using the simplified connection syntax, the following parameters are available:

ParameterShort FlagDefault ValueDescription
--server-slocalhostSQL Server instance
--username-usaSQL Server username
--password-pNoneSQL Server password
--password-env-eSSMS_PASSWORDEnvironment variable containing password
--driver-dODBC Driver 17 for SQL ServerODBC driver name
--encryptTrueEncrypt connection (default)
--no-encryptDo not encrypt connection
--trust-certificateTrueTrust server certificate (default)
--no-trust-certificateDo not trust server certificate
--encoding-cutf-8Output and SQL database encoding (e.g., utf-8, latin-1, cp1252)
--show-execution-time-tFalsePrint execution time of SQL queries

License

MIT

About

Run SQL Server Queries in Jupyter with Ease: Create tables and databases using Ipython magic for SQLCMD easily connect to Microsoft SQL Server from IPython/Jupyter notebooks using the sqlcmd utility. Supports variable substitution, batch execution, external SQL files, and more.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages