随笔,【编程技巧】python 操作 MySQL

Python 操作 MySQL

#!/bin/env python

# -*- encoding: utf-8 -*-

#——————————————————————————-

# Purpose: example for python_to_mysql

# Author: None

# Created: Null

# update: Null

#——————————————————————————-

import MySQLdb

import os

#建立和数据库系统的连接,格式

#conn = MySQLdb.connect(host=’localhost’,user=’root’,passwd=’123456′,db=’test’,port=3306,charset=’utf8′)

#指定配置文件,确定目录,或则写绝对路径

cwd = os.path.realpath(os.path.dirname(__file__))

db_conf = os.path.join(cwd, ‘db.conf’)

conn = MySQLdb.connect(read_default_file=db_conf,host=’localhost’,db=’test’,port=3306,charset=’utf8′)

#要执行的sql语句

query = ‘select id from t1’

#获取操作游标

cursor = conn.cursor()

#执行SQL

cursor.execute(query)

#获取一条记录,每条记录做为一个元组返回,返回3,游标指到第2条记录。

result1 = cursor.fetchone()

for i in result1:

print i

#返回影响的行数

print cursor.rowcount

#获取指定数量记录,每条记录做为一个元组返回,返回1,2,游标从第2条记录开始,游标指到第4条记录。

result2 = cursor.fetchmany(2)

for i in result2:

for ii in i:

print ii

#获取所有记录,每条记录做为一个元组返回,返回3,4,7,6,游标从第4条记录开始到最后。

result3 = cursor.fetchall()

for i in result3:

for ii in i:

print ii

#获取所有记录,每条记录做为一个元组返回,返回3,4,7,6,游标从第1条记录开始

#重置游标位置,0为偏移量,mode=absolute | relative,默认为relative

cursor.scroll(0,mode=’absolute’)

result3 = cursor.fetchall()

for i in result3:

for ii in i:

print ii

#以下2种方法都可以把数据插入数据库:

#(one)

for i in range (10,20):

query2 = ‘insert into t1 values(“%d”,now())’ %i

cursor.execute(query2)

#提交

conn.rollback()

#(two)

rows = []

for i in range (10,20):

rows.append(i)

query2 = ‘insert into t1 values(“%s”,now())’

#executemany 2个参数,第2个参数是变量。

cursor.executemany(query2,rows)

#提交

conn.commit()

#选择数据库

query3 = ‘select id from dba_hospital’

#重新选择数据库

conn.select_db(‘chushihua’)

cursor.execute(query3)

result4 = cursor.fetchall()

for i in result4:

for ii in i:

print ii

#不定义query,直接执行:

cursor.execute(“set session binlog_format=’mixed'”)

#关闭游标,释放资源

cursor.close()

”’

+——+———————+

| id | modifyT |

+——+———————+

| 3 | 2010-01-01 00:00:00 |

| 1 | 2010-01-01 00:00:00 |

| 2 | 2010-01-01 00:00:00 |

| 3 | 2010-01-01 00:00:00 |

| 4 | 2013-06-04 17:04:54 |

| 7 | 2013-06-04 17:05:36 |

| 6 | 2013-06-04 17:05:17 |

+——+———————+

”’

正文完