Python Mysql 交互

Mysql 安装Python模块

 
Linux:
yum install MySQL-python

Windos:

http://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='',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='',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='', 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='', 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()
上一篇:Servlet的生命周期?


下一篇:【开源java游戏框架libgdx专题】-09-动画的使用