题记:

最近因为工作需要,学习了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

【python小记】访问mysql数据库的更多相关文章

  1. python+pymysql访问mysql数据库

    今天跟大家分享两种场景的python连接MySQL方法: 场景一:连接远程MySQL 首先,安装pymysql:在命令行执行pip install pymysql指令. 然后,导入pymysql: i ...

  2. Python访问MySQL数据库并实现其增删改查功能

    概述:对于访问MySQL数据库的操作,我想大家也都有一些了解.不过,因为最近在学习Python,以下就用Python来实现它.其中包括创建数据库和数据表.插入记录.删除记录.修改记录数据.查询数据.删 ...

  3. java文件来演示如何访问MySQL数据库

    java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...

  4. python——django使用mysql数据库(二)

    上一篇中,我们已经讲述了如何初始化一个django数据库,这一章就来讲讲在实际的项目中如何使用我们初始化的数据库呢? 如还未进行初始化数据库操作,请参考python——django使用mysql数据库 ...

  5. python——django使用mysql数据库(一)

    之前已经写过如何创建一个django项目,现在我们已经有了一个小骷髅,要想这个web工程变成一个有血有肉的人,我们还需要做很多操作.现在就先来介绍如何在django中使用mysql数据库. 前提:已经 ...

  6. PHP访问MySql数据库介绍

    在网站后台,经常要与数据库打交道.本文介绍如何使用XAMPP来管理MySql数据库及如何用PHP来访问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...

  7. 使用Python编程语言连接MySQL数据库代码

    使用Python编程语言连接MySQL数据库代码,跟大家分享一下: 前几天我用python操作了mysql的数据库,发现非常的有趣,而且python操作mysql的方法非常的简单和快速,所以我把代码分 ...

  8. C#连接、访问MySQL数据库

    一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...

  9. 在Eclipse中使用JDBC访问MySQL数据库的配置方法

    在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...

随机推荐

  1. 如何使用powerdesigner导出sql脚本

    使用power designer可以很方便的对数据库设计进行管理,并且能够更方便的查看表与表之间的关系.同时,还可以对设计好的数据库直接导出创建脚本,根据不同的数据库实例导出对应的创建脚本,然后根据脚 ...

  2. SpringMVC_原理(转)

    在整个Spring MVC框架中,DispatcherServlet处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应的工作.具体流程为:1)客户端发送http请求,web应用服务器接收到这 ...

  3. Haskell语言学习笔记(95)Semiring

    semirings 模块 semirings 模块需要安装 $ cabal install semirings Installed semirings-0.2.0.1 Prelude> :m + ...

  4. Stirling数入门

    第一类Stirling数 定义 $$\begin{aligned}(x)_n & =x(x-1)...(x-n+1)\\&= s(n, 0) + s(n,1)x +..+s(n,n)x ...

  5. shell grep的基本用法

    grep 1.-i 不区分大写小写 2.-n 区分大小写 3.-E 查找多个条件 4.-c 查找到的结果的行数 5.-w 精确查找 6.取反 7.-q 静默输出

  6. JavaScript基础04——数组的创建及方法

    数组的概念及定义 数组的概念:         一组数据,数据的组和         哪些数据的组和,只要是数据(所有数据),就可以放在数组中 数组的意义:         可以同时操作多个数据 数组 ...

  7. React-Redux常见API

    React-Redux是在Redux的基础上,将其大量重复的代码进行了封装. 1. Provider 利用context对象给所有子组件提供store.不再需要在每个组件都引用store. impor ...

  8. 洛谷 P2512 [HAOI2008]糖果传递 题解

    每日一题 day47 打卡 Analysis 首先,最终每个小朋友的糖果数量可以计算出来,等于糖果总数除以n,用ave表示. 假设标号为i的小朋友开始有Ai颗糖果,Xi表示第i个小朋友给了第i-1个小 ...

  9. windows串口编程Win32,PComm串口开发

    https://blog.csdn.net/u011430225/article/details/51496456 https://blog.csdn.net/eit520/article/detai ...

  10. 71: libreoj #10151 区间dp

    $des$ https://loj.ac/problem/10151 $sol$ 区间dp $f_{i, j}$ 表示区间 $[l, r]$ 合并的最大值 枚举中间点 $k$ $f_{i, j} =m ...