Toolboxes

Database ToolboxSQLAlchemy + 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
MATLABPythonNote
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(...))
sqlreadpd.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