python 操作 MySQL

python struggling 1112次浏览 0个评论

使用 python 连接 MySQL 前,需要安装一个第三方模块,当然,最简单的方法是使用yum 安装:

# yum install MySQL-python -y

也可以使用源码安装,首先要安装 setuptools,然后安装 MySQL-python ,源码包可以在我的ftp上面下载。

下面看 python 操作 MySQL 的一个例子:

#!/usr/bin/env python
#coding=utf-8

import MySQLdb

try:
    #连接
    conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',port=3306);
    cur=conn.cursor()
    cur.execute('create database if not exists py')
    conn.select_db('py');
    
    #插入一条数据
    mess = ('python','feiyu')
    cur.execute(''' 
                create table test5( id int unsigned auto_increment not null primary key,info varchar(20),name varchar(20));
    ''')  
    cur.execute("insert into test5 values(null,%s,%s)" , mess )        
    #插入数据时,对于自增的要使用null

    #插入多条数据
    values_list = []
    for i in range(20):
        values_list.append(('c++','feiyu_%s' %i))
    cur.executemany("insert into test5 values(null,%s,%s)",values_list)

    #查询 
    cur.execute('select * from test5')  
    
    #输出查询结果
    result = cur.fetchall()
    for record in result:
        print record

    #提交事物
    conn.commit()

    #关闭连接
    cur.close()
    conn.close()

except MySQLdb.Error as e :
    print "Error in mysql : ",e

1,连接数据库

    conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',port=3306);
    cur=conn.cursor()
    cur.execute('create database if not exists py')
    conn.select_db('py');


connect 常用的参数包括 :

host:数据库主机名.默认是用本地主机.

user:数据库登陆名.默认是当前用户.

passwd:数据库登陆的秘密.默认为空.

db:要使用的数据库名.没有默认值.

port:MySQL服务使用的TCP端口.默认是3306.

charset:数据库编码.


连接数据库可以将db直接写在connect方法中:

    MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',port=3306,db='py',charset='utf8') 

2,执行sql语句和接收返回值

    values_list = []
    for i in range(20):
        values_list.append(('c++','feiyu_%s' %i))
    cur.executemany("insert into test5 values(null,%s,%s)",values_list)

    conn.commit()
    
    cur.execute('select * from test5')  
    result = cur.fetchall()
    for record in result:
        print record

我们先将一个连接对象赋给 cur 对象,然后使用 cur 提供的方法操作数据库:执行命令和接收返回值。

cur用来执行命令的方法:

callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数

execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数

executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

nextset(self):移动到下一个结果集

cursor用来接收返回值的方法:

fetchall(self):接收全部的返回结果行.

fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.

fetchone(self):返回一条结果行.

scroll(self, value, mode=’relative’):移动指针到某一行.如果mode=’relative’,则表示从当前所在行移动value条,如果 mode=’absolute’,则表示从结果集的第一行移动value条.

比较常用的方法有:execute(),executemany(),fetchall()

3,提交或回滚事物

在执行sql语句后,需要执行确认操作,这个连接对象提供了对事务操作的方法 :

conn.commit()   #提交 
conn.rollback()    #回滚 

4.关闭数据库连接

需要分别关闭指针对象和连接对象,他们都使用 close() 方法:

cursor.close() 
conn.close()

DevOps-田飞雨 》》转载请注明源地址
喜欢 (2)or分享 (0)
发表我的评论
取消评论
*

表情 贴图 加粗 链接 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址