如何在Python中使用复杂的SQL脚本

3 投票
2 回答
3088 浏览
提问于 2025-04-16 10:36

我可以在Mysql里面写一个存储过程,然后用调用语句来执行它。不过我想用Python来写这个过程。现在我遇到问题了,因为我在处理多行的SQL脚本时卡住了。

conn = pyodbc.connect('DSN=MySQL;PWD=xxxx') 
csr = conn.cursor()

Sql= 'SELECT something, something 
    FROM table 
    WHERE foo=bar 
    ORDER BY foo '

csr.execute(Sql)
sqld = csr.fetchall()

2 个回答

2

如果你不介意多花点资源,可以看看sqlalchemy

SQLAlchemy是一个Python的SQL工具包和对象关系映射器,它让开发应用的程序员可以充分利用SQL的强大功能和灵活性。

2

嘿,我乐意把它写成一个正式的回答。

用三重引号(即三个连续的引号)包裹的字符串可以包含换行符,而且不会导致语法错误。否则,如果你用的是双引号("string")或单引号('string'),那么在每个换行符前面都需要加一个反斜杠,这样才能正常工作。根据我的经验,这样做很容易出错。:)

另外一点,在Python中,变量名通常是小写字母开头,而以大写字母开头的名字通常是用来命名类的。

所以:

Sql = """SELECT something, something 
         FROM table 
         WHERE foo=bar 
         ORDER BY foo"""

撰写回答