python连接sqlserver、怎么跨表查询_python 连接sqlserver,mysql
python连接sqlserver有很多包可以选择,有pyodbc和pymssql,这里把代码都贴出来,但是希望大家用pyodbc,因为在实践中跑几百万的数据量跑了一天的时候连接会断,google Stack Overflow之后也没有很好的解决方案,最后用pyodbc就解决了该问题(同事也有类似经历)。
pyodbc
建立连接,建立游标,通过游标执行语句,拿到结果。
import pyodbc
conn = pyodbc.connect('Driver={SQL Server};Server=192.168.0.180;Database=databasename;uid=username;pwd=password')
cursor = conn.cursor()
sql = "select table.a,table.b from table"
cursor.execute(sql)
如果想一次拿回所有结果
result=cursor.fetchall()
但最好还是把游标的结果当成一个迭代器然后用循环一个个取
for i in cursor:print(i[0])
如果是update的话,最好新建一个连接再新建一个游标(查询可以同一个游标执行,新的查询代替旧的查询语句)。
conn1 = pyodbc.connect('Driver={SQL Server};Server=192.168.0.180;Database=databasename;uid=username;pwd=password')
cursor1 = conn1.cursor()
cursor1.execute("UPDATE table.b SET b=? WHERE a=?", (b_value, a_value))
conn1.commit()
pymssql
这里也贴出来pymssql的代码
import pymssql
conn= pymssql.connect(host='192.168.0.180', user=username, password=password, database=databasename)
cursor= conn.cursor()
cursor = conn.cursor()
sql = "select table.a,table.b from table"
cursor.execute(sql)
#update
conn1= pymssql.connect(host='192.168.0.180', user=username, password=password, database=databasename)
cursor1= conn1.cursor()
cursor1.execute("UPDATE table.b SET b= %s WHERE a=%s",(b_value, a_value))
conn1.commit()
mysql
import MySQLdb.cursors
conn = MySQLdb.connect('192.168.0.180', user=username, password=password, database=databasename, charset='utf8',
cursorclass=MySQLdb.cursors.SSCursor)
cursor = conn.cursor()
sql ="select table.a,table.b from table"
cursor.execute(sql)
#update
conn1 = MySQLdb.connect('192.168.0.180', user=username, password=password, database=databasename, charset='utf8',
cursorclass=MySQLdb.cursors.SSCursor)
cursor1 = conn1.cursor()
cursor1.execute(" update table.b set b=%s where a=%s", (b_value, a_value))
conn1.commit()
python连接sqlserver、怎么跨表查询_python 连接sqlserver,mysql相关推荐
- day17-python项目Django之跨表查询及Ajax、cookie和session
第1章 课堂笔记 class (models.Model):title=models.CharField(max_length=32)price=models.DecimalField(max_dig ...
- ORM单表查询,跨表查询,分组查询
ORM单表查询,跨表查询,分组查询 单表查询之下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值models.T ...
- day08 外键字段的增删改查 正向反向插叙概念 跨表查询 聚合查询与分组查询 F查询
day08 外键字段的增删改查 正向反向插叙概念 跨表查询 聚合查询与分组查询 F查询 昨日内容复习 自定义过滤器.标签.inclusion_tag 1.首先现在应用目录下创建名字为templatet ...
- Django | 跨表查询
一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many); 一本书只应该由一个出版商出版,所以 ...
- mysql多表连接 索引_MySQL多表查询之外键、表连接、子查询、索引
一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, ...
- sql跨表查询_跨表查询经常有,何为跨表更新?
有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊? 背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为 t_dept_members, ...
- sql跨表查询_跨表更新,看到自己写的SQL像个憨憨
有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊? 背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为 t_dept_members, ...
- MySQL 多表查询、连接查询(内连接、外连接)
文章目录 1. 多表查询 2. 连接查询 练习 LeetCode 175. 组合两个表 练习 LeetCode 181. 超过经理收入的员工 练习 LeetCode 1378. 使用唯一标识码替换员工 ...
- MySQL把一个大表拆分多个表后,如何解决跨表查询效率问题
MySQL把一个大表拆分多个表后,如何解决跨表查询效率问题 参考文章: (1)MySQL把一个大表拆分多个表后,如何解决跨表查询效率问题 (2)https://www.cnblogs.com/lili ...
最新文章
- 生活随笔[2005-06-06]
- val_loss突然变很大_程干朋说网络营销之网站收录突然降低怎么办?
- Java技术之掌握数据库连接工具DBUtils的应用
- Java之volatile如何保证可见性和指令重排序
- Jenkins 入门系列--jenkins 介绍
- 万圣节主题海报设计,少不了的素材
- Android的Input流程分析(好文)
- express + uniapp发送图片和保存图片
- 第二阶段:4.商业需求文档MRD:5.PRD-原型图
- R语言系列:分布一致性和离散一致性检验
- css 固定宽度,自动换行
- 今天去火车站送女朋友了
- discuz admin.php无法登录,Discuz x3.1论坛管理员无法登录后台的各种解决方法总结
- linux嵌入式做智能家居,嵌入式系统在智能家居中的应用
- 计算机基础中图文混排的重要性,浅谈项目教学在技校计算机应用基础中的应用.doc...
- Magicbook 2018开启TPM2.0
- SuperView和View的区别
- mongodb敏感数据加解密
- 关于技术人员创业入股的问题
- C++压缩解压之snappy
热门文章
- java kotlin lateinit_kotlin - 如何检查“lateinit”变量是否已初始化?
- idea web 乱码 页面_idea运行web项目,页面乱码(转载)
- 计算机数据库技术的应用现状,数据库技术发展现状及趋势.doc
- 搞怪的html代码,这个恶搞网页代码是肿么写出来的?
- matlab中std和std2的区别,matlab 关于std,std2,mean,mean2初步认识
- 删除弹框提示_如何关闭Mac的Microsoft AutoUpdate弹框提示
- python preference界面设置_偏好设置如何更改Preference的样式
- 在用户离开页面(刷新、后退、关闭等)时提示信息
- 令人绝望的第五周作业
- 洛谷 P1494 [国家集训队]小Z的袜子