当前位置: 首页 > 工具软件 > engine > 使用案例 >

python sqlalchemy中create_engine用法

堵鸿光
2023-12-01

用法 

engine = create_engine('dialect+driver://username:password@host:port/database')

dialect -- 数据库类型

driver -- 数据库驱动选择

username -- 数据库用户名

password -- 用户密码

host 服务器地址

port 端口

database 数据库

 

 

engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')

pg8000

engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')</pre>

More notes on connecting to PostgreSQL at PostgreSQL.

MySQL

The MySQL dialect uses mysql-python as the default DBAPI. There are many MySQL DBAPIs available, including MySQL-connector-python and OurSQL:

<pre style="margin: 5px 0px; padding: 10px; font-size: 1.2em; background-color: rgb(240, 240, 240); border: 1px solid rgb(204, 204, 204); box-shadow: rgb(223, 223, 223) 2px 2px 3px; overflow: auto; line-height: 1.3em;"># default
engine = create_engine('mysql://scott:tiger@localhost/foo')

mysql-python

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

MySQL-connector-python

engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')

Oracle

create_engine('oracle://scott:tiger@127.0.0.1:1521/sidname')

 

MSSQL

engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')

engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')</pre>

下面mysql作为例子

yconnect = create_engine('mysql+mysqldb://root:password@host:port/db?charset=utf8')  
pd.io.sql.to_sql(DataResultDF,'tablename', yconnect, schema='db', if_exists='append')   

 

创建表结构

使用 Schema Type/SQL Expression Language/Engine/ConnectionPooling/Dialect 进行数据库操作。Engine使用Schema Type创建一个特定的结构对象,之后通过SQL Expression Language将该对象转换成SQL语句,然后通过 ConnectionPooling 连接数据库,再然后通过 Dialect 执行SQL,并获取结果。

from sqlalchemy import create_engine, Table, Column, Integer, /
String, MetaData, ForeignKey
import MySQLdb
#创建数据库连接
engine = create_engine("mysql+mysqldb://liuyao:liuyao@121.42.195.15:3306/liuyao", max_overflow=5)
# 获取元数据
metadata = MetaData()
# 定义表
user = Table('user', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String(20)),
    )

color = Table('color', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String(20)),
    )
#将dataframe 添加到 tmp_formidinfo 如果表存在就添加,不存在创建并添加 
pd.io.sql.to_sql(DataResultDF,'tmp_formidinfo',engine, schema='liuyao', if_exists='append')                
 
# 执行sql语句
engine.execute(
    "INSERT INTO liuyao.color(id, name) VALUES ('1', 'liuyao');"
)
result = engine.execute('select * from color')
print(result.fetchall())

 


摘抄于 https://www.jianshu.com/p/f039da1d90ce  简书

 类似资料: