【python小记】访问mysql数据库

题记:

最近因为工作需要,学习了python,瞬间对这个轻松快捷的语给吸引了,以前只知道js脚本是写网页的,没有想到python这个脚本语言的应用范围可以这么广泛,现在做一些简单或稍微复杂的操作,基本都第一时间考虑python,可以让我把大量时间放在解决问题的思路上,而不是语言本身。这个时候才体会到什么叫“life is short, you need python!”的精髓!

======================================分隔符=====================================

python 访问mysql数据库:


1、首先,保证你安装了mysql的Module  (下载地址 :http://sourceforge.net/projects/mysql-python/ 如果登不上,我这里有个网盘链接: http://pan.baidu.com/s/1o69fDsI 密码: cu5n)

安装完成后,在IDLE输入命令:import MySqldb   看是否报错

Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

>>> import MySQLdb
>>>

 

2、主要命令:

一个小程序包含常用命令:(MySQLdb将所有值视为字符串值,即使其底层数据库类型为bigint, double, date...)

 

import MySQLdb

try:
    i = 0
    conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='root',db='test',port=3306) #连接本地数据库
    cur = conn.cursor()                          #所有操作都依赖于游标,是核心部分
    cur.execute('select * from typetotablename')  #查询语句
    #带参数的:cursor.execute("insert into colors(color, abbr) values(%s, %s)", ('blue', 'bl'))
    rows = cur.fetchall()                       #获取所有行数据,每行数据还可以循环获得每列的具体数据  相当于[][]
    for row in rows:
        print row
    cur.close()
    conn.close()
except MySQLdb.Error,e:
    print str(e)

 

3、相关函数说明:参考http://drizzlewalk.blog.51cto.com/2203401/448874)

3.1  MySQLdb.connect(host="",user="",passwd="",db="",charset="",port=3306)

比较常用的参数包括 
host:数据库主机名.默认是用本地主机. 
user:数据库登陆名.默认是当前用户. 
passwd:数据库登陆的秘密.默认为空. 
db:要使用的数据库名.没有默认值. 
port:MySQL服务使用的TCP端口.默认是3306.

更多关于参数的信息可以查这里 :
http://mysql-python.sourceforge.net/MySQLdb.html

3.2 fetch函数

fetchall():  接收全部的返回结果行. 
fetchmany(size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据. 
fetchone():返回一条结果行. 
scroll(value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条.

3.3 commit函数

在执行了插入或是修改操作之后,一定记得加上con.commit(),这样操作才会起效!

 

4、 编码(防止乱码)

需要注意的点:

    1 Python文件设置编码 utf-8(文件前面加上 #encoding=utf-8)
    2 MySQL
数据库charset=utf-8 
    3 Python
连接MySQL是加上参数 charset=utf8 
    4
设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)

    #encoding=utf-8 
     import sys 
     import MySQLdb 
      
     reload(sys) 
     sys.setdefaultencoding('utf-8') 
      
     db=MySQLdb.connect(user='root',charset='utf8') 


注:MySQL的配置文件设置也必须配置成utf8

设置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都设置默认的字符集(通常在/etc/mysql/my.cnf): 

[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8


posted @ 2014-11-27 14:12  voidsky  阅读(250)  评论(0编辑  收藏  举报