Toolboxes
Database Toolbox → SQLAlchemy + pandas
Connect to SQL databases and run queries. Python's SQL ecosystem is richer than MATLAB's: SQLAlchemy for ORM and connection management, pandas.read_sql for tabular queries, DBAPI drivers for each engine. Migration is usually an improvement.
Install
pip install sqlalchemy pandas pyodbc # pyodbc for SQL Server, psycopg2 for Postgres, PyMySQL for MySQL| MATLAB | Python | Note |
|---|---|---|
| conn = database(dsn, user, pwd) | from sqlalchemy import create_engine\nengine = create_engine('postgresql://user:pwd@host/db') | Connection URL format per DB |
| conn = database('', user, pwd, driver, url) | create_engine(url) | SQLAlchemy encodes driver in the URL |
| close(conn) | engine.dispose() | Or use context manager |
| data = fetch(conn, 'SELECT * FROM t') | import pandas as pd\ndata = pd.read_sql('SELECT * FROM t', engine) | Returns a DataFrame |
| curs = exec(conn, 'SELECT ...') | result = engine.execute('SELECT ...') # or session.execute() | |
| data = fetch(curs) | rows = result.fetchall() | |
| sqlwrite(conn, 'tbl', tableData) | df.to_sql('tbl', engine, if_exists='append', index=False) | pandas writes DataFrames to SQL |
| insert(conn, 'tbl', cols, vals) | engine.execute(t.insert().values(...)) | SQLAlchemy Core |
| update(conn, 'tbl', cols, vals, 'WHERE ...') | engine.execute(t.update().where(...).values(...)) | |
| sqlread | pd.read_sql_table('tbl', engine) | |
| runstoredprocedure(conn, 'sp', args) | engine.execute(text('EXEC sp :a :b'), a=..., b=...) | |
| istable(conn, name) | engine.dialect.has_table(engine.connect(), name) | |
| get(conn, "AutoCommit") | engine.execution_options(autocommit=True) |
The converter automatically detects Database functions and adds the correct imports.
Try the converter