python执行SQL语句怎么实现


这篇文章主要介绍了python执行SQL语句怎么实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。directsql 目前只提供三个外部类导入方式事实上directsql 封装了 很多 语句。可以满足很大一部分日常使用场景。但是如果有复杂的语句,仍然需要调用原生的sql 执行。而且directsql 中很多封装好的方法是先拼接sql 再 调用该语句,所以这里还是先简单介绍下,directsql 如何执行原生sql。无论是 MysqlConnection 类 还是 MysqlPool 类 都通过 execute_sql 方法 来执行sql。例如 :execute_sql 方法 返回的是一个元组,(结果集,条数)下文出现的所有方法无特殊说明都是返回元组,且支持dict游标附带参数执行语句这里的参数使用起来和 pymysql 提供的 execute 以及executemany 没有任何 差别,以下简单提供几个示例:select 方法 可以接受多参数,参数列表如下。》》》 conn.select(‘*’, ‘test_table’)select id from test_table where age=25》》》 conn.select(‘*’, ‘test_table’, where={‘age’: 25})select name,age from test_table where age=25 and id=2多字段直接传入字符串》》》 conn.select(“age,name”, ‘test_table’, where={‘age’: 25,’id’:2})传入列表/元组》》》 conn.select([‘age’,’name’], ‘test_table’, where={‘age’: 25,’id’:2})select * from test_table group by id order by age desc limit 1 offset 1》》》conn.select(‘*’, ‘test_table’, order_by=’age desc’,group_by=’id’,limit=1,offset=1)select 功能看起来甚至不如直接写免费云主机域名原生sql 快,但是如果查询条件是在不断变化的,尤其是where条件,那么使用select 方法 会比自行拼接更方便。例如,需要不断地读取一个字典变量,然后根据这个变量中的条件去查询数据,而这个字典的键个数会变化,但是键都恰好是表的字段。这个时候使用select 方法会十分简便,只需要令where参数等于那个字典即可。平心而论,这个方法确实用处不大。该方法可以接受传入字典或者 字典列表,并且可选 返回 游标影响的条数 或者是 新插入的数据的id。columns 为空时,将取第一条数据的所有键,此时请确保所有数据键相同。在insert_into 方法中提供了 on_duplicate_key_update 参数,但是实际上使用起来比较鸡肋,需要自己传入 on_duplicate_key_update 后的语句进行拼接。如果你仅仅只是需要在发生重复时将旧数据的特定字段更新为新数据对应字段的值时。merge_into 方法更适合。在 其他关系型数据库中,提供有merge into 的语法,但是mysql 中没有提供。 不过这里我们通过insert 和 on_duplicate_key_update 语法 封装出了一个 类似merge_into 的方法。 该方法返回的是影响的条数def* merge_into(self, table, data, columns=None, need_merge_columns: list = None):columns 为空时,将取第一条数据的所有键,此时请确保所有数据键相同。need_merge_columns 为在发生重复时需要替换(覆盖)的字段。该方法简单,不做过多说明。该方法 返回的是影响的条数def replace_into(self,table, data: dict or list, columns=None)def update(self,table, data: dict, where, columns: None or list = None, limit=None):该方法data 参数只接受传入字典。该方法 返回的是影响的条数除此之外,还提供了一个衍生的方法def update_by_primary(self, table, data: dict, pri_value, columns=None, primary: str = 'id'):用于通过主键去更新数据。pri_value 即为主键的值。primary 为主键,默认为iddef do_transaction(self, sql_params: list, cursor_type=None):sql_params 为 元组列表。 【(sql_1,param_1),(sql_2,param_2】如果sql 不需要参数也要传入 None ,如 【(sql_1,None),】def read_ss_result(self, sql, param=None, cursor_type='ss'):cursor_type 可选 ss 和 ssdict注意,该方法返回的是 生成器对象,拿到结果需要不断进行遍历。感谢你能够认真阅读完这篇文章,希望小编分享的“python执行SQL语句怎么实现”这篇文章对大家有帮助,同时也希望大家多多支持百云主机,关注百云主机行业资讯频道,更多相关知识等着你来学习!

相关推荐: 如何使用PHP蜘蛛爬虫框架来爬取数据

这篇文章主要介绍了如何使用PHP蜘蛛爬虫框架来爬取数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用PHP蜘蛛爬虫框架来爬取数据文章都会有所收获,下面我们一起来看看吧。   我的环境是宝塔lnmp,php是5.4版本,不要…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/19 14:18
Next 08/19 16:15

相关推荐