python使用MySQLdb模块连接MySQL
1.安装驱动
目前有两个MySQL的驱动,我们可以选择其中一个进行安装:
MySQL-python:是封装了MySQL C驱动的Python驱动;mysql-connector-python:是MySQL官方的纯Python驱动。
MySQL-python:
安装教程:http://www.cnblogs.com/jfl-xx/p/7299221.html
mysql-connector-python:
安装教程:http://www.cnblogs.com/Bgod/p/6995601.html
2.测试连接
这里使用MySQL-python驱动,即MySQLdb模块。
test_connect.py
#!/usr/bin/python
# -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接
db = MySQLdb.connect("localhost", "root", "", "test") # 使用cursor()方法获取操作游标
cursor = db.cursor() # 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取一条数据库。
data = cursor.fetchone() print "Database version : %s " % data # 关闭数据库连接
db.close()
测试结果如下,连接成功:

3.创建数据库表
测试成功后,我们可以在python中直接为MySQL创建表:
create_table.py
#!/usr/bin/python
# -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接
db = MySQLdb.connect("localhost", "root", "", "test") # 使用cursor()方法获取操作游标
cursor = db.cursor() # 如果数据表已经存在使用 execute() 方法删除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 创建数据表SQL语句
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )""" cursor.execute(sql) # 关闭数据库连接
db.close()
建表结果 如下:

4.操作数据库表
注意点:MySQL中的占位符为%s
operate_table.js
#!/usr/bin/python
# -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接
db = MySQLdb.connect("localhost", "root", "", "test") # 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL插入语句
ins_sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('yu', 'jie', 20, 'M', 8000)""" ins_sql1 = 'insert into employee(first_name, last_name, age, sex, income) values (%s, %s, %s, %s, %s)' # SQL查询语句
sel_sql = 'select * from employee where first_name = %s' # SQL更新语句
upd_sql = 'update employee set age = %s where sex = %s' # SQL删除语句
del_sql = 'delete from employee where first_name = %s' try:
# 执行sql语句
# insert
cursor.execute(ins_sql)
cursor.execute(ins_sql1, ('xu', 'f', 20, 'M', 8000))
# select
cursor.execute(sel_sql, ('yu',))
values = cursor.fetchall()
print values
# update
cursor.execute(upd_sql, (24, 'M',))
# delete
cursor.execute(del_sql, ('xu',)) # 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback() # 关闭数据库连接
db.close()
执行插入操作

执行查询操作

执行更新操作

执行删除操作

查询语句的知识点:
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
fetchall():接收全部的返回结果行.
例如该例子:
sel_sql = 'select * from employee where first_name = %s'
cursor.execute(sel_sql, ('yu',))
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
print "fname=%s, lname=%s,age=%d,sex=%s,income=%d" % (fname, lname, age, sex, income)
结果如下:

python使用MySQLdb模块连接MySQL的更多相关文章
- python使用SQLAlchemy模块连接MySQL
ORM技术:Object-Relational Mapping,负责把关系数据库的表结构映射到对象上. 1.安装SQLAlchemy,MySQLdb模块 MySQLdb安装教程:http://www. ...
- Python安装MySQLdb并连接MySQL数据库
当然了,前提是你已经安装了Python和MySQL.我的Python是2.6版本的. Python2.6的“Set”有点兼容性问题,自己照着改一下: http://sourceforge.net/fo ...
- python之mysqldb模块安装
之所以会写下这篇日志,是因为安装的过程有点虐心.目前这篇文章是针对windows操作系统上的mysqldb的安装.安装python的mysqldb模块,首先当然是找一些官方的网站去下载:https:/ ...
- python中MySQLdb模块用法实例
篇文章主要介绍了python中MySQLdb模块用法,以实例形式详细讲述了MySQLdb模块针对MySQL数据库的各种常见操作方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了python中 ...
- Mac OS X 下安装python的MySQLdb模块
参考资料: mac os x下python安装MySQLdb模块 http://www.codeif.com/post/1073/ MAC OSX使用Python安装模块有关问题 http:// ...
- windows(32位 64位)下python安装mysqldb模块
windows(32位 64位)下python安装mysqldb模块 www.111cn.net 编辑:mengchu9 来源:转载 本文章来给各位使用在此windows系统中的python来安装一个 ...
- 在 mac 系统上安装 python 的 MySQLdb 模块
在 mac 系统上安装 python 的 MySQLdb 模块 特别说明:本文主要参考了Mac系统怎么安装MySQLdb(MySQL-Python) 第 1 步:下载 MySQL-python-1.2 ...
- Python MySQLdb模块连接操作mysql数据库实例_python
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...
- Python的MySQLdb模块安装,连接,操作,增删改
1. 首先确认python的版本为2.3.4以上,如果不是需要升级python的版本 python -V 检查python版本 2. 安装mysql, 比如安装在/usr/local/my ...
随机推荐
- 关于导入geoserver 源码到Eclipse编译运行
参考http://blog.csdn.net/gisshixisheng/article/details/43016443 和 http://blog.sina.com.cn/s/blog_6e37 ...
- 【Python】【电子邮箱】
#[[电子邮件]]'''Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务. 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要 ...
- 【Python】【IO】
# [[IO]] # [文件读写] '''读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的.读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现 ...
- scikit_learn逻辑回归类库
来自:刘建平 1.概述 在scikit-learn中,与逻辑回归有关的主要有3个类.LogisticRegression, LogisticRegressionCV 和 logistic_regres ...
- kotlin - 空安全
空安全设计的操作符号 操作符 作用 ? 可空操作符,声明该值可为空 ?. 安全调用操作符 b?.length 如果b非空,就返回b.length,否则返回 null !! 非空断言运算符, ...
- leecode第十五题(三数之和)
class Solution { public: void quick_order(vector<int>& num, int star, int en)//快排 { int st ...
- 我们一起学习WCF 第六篇文件传输
原文 http://www.cnblogs.com/LipeiNet/p/4653830.html 前言:文件的输出我们并不陌生,但是今天我写的是用wcf模式进行文件传输,我觉得一大好处就是能进 ...
- Okhttp 插入缓存拦截器 解析
我们在做网络请求的时候,如果网络请求过于频繁而且请求的数据变动不大,或者基本没有变动,这个时候如果没有缓存功能,我们想一下 会浪费掉多少资源,一次请求刷新一次,去请求一次,不但会消耗用户的流量,而且还 ...
- 微信小程序select不能使用,如何实现同样的效果
如果想实现同样的效果,只能使用小程序组件picker,其中,可以有一列,或者多列 点击链接查看详情: https://mp.weixin.qq.com/debug/wxadoc/dev/compone ...
- js,vue.js一些方法的总结
push() 可向数组的末尾添加一个或多个元素 pop() 删除并返回数组的最后一个元素 shift()删除并返回数组的第一个元素 unshift() 添加并返回数组的第一个元素 sort()对数组的 ...