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


  • 相关阅读:
    c#自动更新+安装程序的制作
    VS2013项目受源代码管理向源代码管理注册此项目时出错
    WinDbg配置和使用基础
    InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)
    PowerDesigner 如何生成数据库更新脚本
    用户故事(User Story)
    Troubleshooting Record and Playback issues in Coded UI Test
    Coded UI
    compare two oracle database schemas
    How to: Use Schema Compare to Compare Different Database Definitions
  • 原文地址:https://www.cnblogs.com/voidsky/p/5373938.html
Copyright © 2011-2022 走看看