Python Mysql 交互
Mysql 安装Python模块
Linux:
yum install MySQL-python
Windos:
https://files.cnblogs.com/files/wupeiqi/py-mysql-win.zip
用户授权:
mysql> grant all on *.* to 'root'@'%' identified by "123456";
MySQLdb
MySQLdb默认在3.0后不支持,最后一次更新在2014年。
例子1:插入一条数据
import MySQLdb # 创建链接实例对象 conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1234',db='mydb') # 选定光标 cur = conn.cursor() # 光标.execute 数据库执行命令 reCount = cur.execute('insert into UserInfo(Name,Address) values(%s,%s)',('alex','usa')) # reCount = cur.execute('insert into UserInfo(Name,Address) values(%(id)s, %(name)s)',{'id':12345,'name':'wupeiqi'}) # 提交 conn.commit() # 关闭光标 cur.close() # 关闭链接 conn.close() print(reCount)
例子2:批量插入数据
import MySQLdb # 创建链接实例对象 conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1234',db='mydb') # 选定光标 cur = conn.cursor() # 创建values列表 li =[ ('alex','usa'), ('sb','usa'), ] # 将列表传入到命令中 光标.executemany 自动将列表循环 reCount = cur.executemany('insert into UserInfo(Name,Address) values(%s,%s)',li) # 提交命令 conn.commit() # 关闭光标 cur.close() # 关闭链接 conn.close() print(reCount)
PyMySQL
在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置
- cursor.scroll(1,mode='relative') # 相对当前位置移动
- cursor.scroll(2,mode='absolute') # 相对绝对位置移动
例子1:基本使用
#!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(host='192.168.1.154', port=3306, user='root', passwd='123456', db='xiang') # 创建游标 cursor = conn.cursor() # 一. execute 执行一条SQL # 执行SQL获取表内数据,并返回收影响行数 #effect_row = cursor.execute("select * from xxx") # 1.fetchone() 递增输出信息 # 取回数 有几条数据 #print(effect_row) # 取回第一条数据 #print(cursor.fetchone()) # 取回第二条数据 #print(cursor.fetchone()) #print('---------------') # 2.fetchall() 获取游标后面所有条数 #print(cursor.fetchall()) # 3.fetchmany(num) 指定获取几条数据 # print(cursor.fetchmany()) # 二.executemany 以列表形式循环values # 创建value数据 # data = [ # ("miya","2015-05-21"), # ("anni","2015-05-22"), # ("roli","2015-05-23"), # ("xity","2015-05-24"), # ] # 执行SQL,并返回受影响行数executemany 循环列表内数据 # effect_row = cursor.executemany("insert into xxx (name1,register_data) values(%s,%s)",data) # 提交,不然无法保存新建或者修改的数据 # 默认开启事务提交完成 conn.commit() # 关闭游标 cursor.close() # 关闭连接 conn.close()
例子2:字典类型打印
#!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql conn = pymysql.connect(host='192.168.1.154', port=3306, user='root', passwd='123456', db='xiang') # 游标设置为字典类型 cursor=pymysql.cursors.DictCursor cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行sql r = cursor.execute("select * from xxx") # 获取第一行 result = cursor.fetchone() # 获取字典 print(result) # 提交事务 conn.commit() # 关闭游标 cursor.close() # 关闭链接 conn.close()