zoukankan      html  css  js  c++  java
  • 【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


  • 相关阅读:
    MySQL_01 常用命令
    32_Go基础(TCP通信)
    oracle查询优化
    Eclipse中自动添加注释(作者,时间)
    java注解的学习
    JqueryeasyUIdatagrid参数之 queryParams
    Eclipse中,打开文件所在文件夹的插件,及设置
    更改Zend Studio/Eclipse代码风格主题
    JAVA中使用File类批量重命名文件及java.io.File的常见用法
    java面试笔试题大全
  • 原文地址:https://www.cnblogs.com/voidsky/p/5373938.html
Copyright © 2011-2022 走看看