python数据库操作常用功能使用详解(创建表/插入数据/获取数据)


Posted in Python onDecember 06, 2013

实例1、取得MYSQL版本

# -*- coding: UTF-8 -*-
#安装MYSQL DB for python
import MySQLdb as mdb
con = None
try:
    #连接mysql的方法:connect('ip','user','password','dbname')
    con = mdb.connect('localhost', 'root',
        'root', 'test');
    #所有的查询,都在连接con的一个模块cursor上面运行的
    cur = con.cursor()
    #执行一个查询
    cur.execute("SELECT VERSION()")
    #取得上个查询的结果,是单个结果
    data = cur.fetchone()
    print "Database version : %s " % data
finally:
    if con:
        #无论如何,连接记得关闭
        con.close()

执行结果:
Database version : 5.5.25

实例2、创建一个表并且插入数据

# -*- coding: UTF-8 -*-
import MySQLdb as mdb
import sys
#将con设定为全局连接
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:
    #获取连接的cursor,只有获取了cursor,我们才能进行各种操作
    cur = con.cursor()
    #创建一个数据表 writers(id,name)
    cur.execute("CREATE TABLE IF NOT EXISTS \
        Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")
    #以下插入了5条数据
    cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")

实例3、python使用slect获取mysql的数据并遍历

# -*- coding: UTF-8 -*-
import MySQLdb as mdb
import sys
#连接mysql,获取连接的对象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:
    #仍然是,第一步要获取连接的cursor对象,用于执行查询
    cur = con.cursor()
    #类似于其他语言的query函数,execute是python中的执行查询函数
    cur.execute("SELECT * FROM Writers")
    #使用fetchall函数,将结果集(多维元组)存入rows里面
    rows = cur.fetchall()
    #依次遍历结果集,发现每个元素,就是表中的一条记录,用一个元组来显示
    for row in rows:
        print row
执行结果:
(1L, ‘Jack London')
(2L, ‘Honore de Balzac')
(3L, ‘Lion Feuchtwanger')
(4L, ‘Emile Zola')
(5L, ‘Truman Capote')

实例4、使用字典cursor取得结果集(可以使用表字段名字访问值)

# -*- coding: UTF-8 -*-
# 来源:疯狂的蚂蚁的博客www.server110.com总结整理
import MySQLdb as mdb
import sys
#获得mysql查询的链接对象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
    #获取连接上的字典cursor,注意获取的方法,
    #每一个cursor其实都是cursor的子类
    cur = con.cursor(mdb.cursors.DictCursor)
    #执行语句不变
    cur.execute("SELECT * FROM Writers")
    #获取数据方法不变
    rows = cur.fetchall()
    #遍历数据也不变(比上一个更直接一点)
    for row in rows:
        #这里,可以使用键值对的方法,由键名字来获取数据
        print "%s %s" % (row["Id"], row["Name"])

实例5、获取单个表的字段名和信息的方法

# -*- coding: UTF-8 -*-
# 来源:疯狂的蚂蚁的博客www.server110.com总结整理
import MySQLdb as mdb
import sys
#获取数据库的链接对象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
    #获取普通的查询cursor
    cur = con.cursor()
    cur.execute("SELECT * FROM Writers")
    rows = cur.fetchall()
    #获取连接对象的描述信息
    desc = cur.description
    print 'cur.description:',desc
    #打印表头,就是字段名字
    print "%s %3s" % (desc[0][0], desc[1][0])
    for row in rows:
        #打印结果
        print "%2s %3s" % row
运行结果: cur.description: ((‘Id', 3, 1, 11, 11, 0, 0), (‘Name', 253, 17, 25, 25, 0, 1))
Id Name
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote

实例6、使用Prepared statements执行查询(更安全方便)

# -*- coding: UTF-8 -*-
# 来源:疯狂的蚂蚁的博客www.server110.com总结整理
import MySQLdb as mdb
import sys
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
    cur = con.cursor()
    #我们看到,这里可以通过写一个可以组装的sql语句来进行
    cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
        ("Guy de Maupasant", "4"))
    #使用cur.rowcount获取影响了多少行
    print "Number of rows updated: %d" % cur.rowcount

结果:
Number of rows updated: 1
Python 相关文章推荐
python使用Berkeley DB数据库实例
Sep 26 Python
python基于xml parse实现解析cdatasection数据
Sep 30 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
Python实现定时精度可调节的定时器
Apr 15 Python
TensorFlow 滑动平均的示例代码
Jun 19 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
Aug 02 Python
python实现逐个读取txt字符并修改
Dec 24 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 Python
OpenCV-Python实现油画效果的实例
Jun 08 Python
python多线程编程方式分析示例详解
Dec 06 #Python
树莓派中python获取GY-85九轴模块信息示例
Dec 05 #Python
python线程锁(thread)学习示例
Dec 04 #Python
pyv8学习python和javascript变量进行交互
Dec 04 #Python
python使用PyV8执行javascript代码示例分享
Dec 04 #Python
python解析xml文件实例分享
Dec 04 #Python
python抓取某汽车网数据解析html存入excel示例
Dec 04 #Python
You might like
drupal 代码实现URL重写
2011/05/04 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
PHP goto语句用法实例
2019/08/06 PHP
json2.js的初步学习与了解
2011/10/06 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
几种tab切换详解
2017/02/03 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
python中copy()与deepcopy()的区别小结
2018/08/03 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
《自选商场》教学反思
2014/02/14 职场文书
年终晚会主持词
2014/03/25 职场文书
城市创卫标语
2014/06/17 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
如何判断微信付款码和支付宝付款码
2021/04/01 PHP