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的垃圾回收机制深入分析
Jul 16 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
Jun 29 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
python中的常量和变量代码详解
Jul 25 Python
Python中的函数式编程:不可变的数据结构
Oct 08 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
Feb 04 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
python判断一个变量是否已经设置的方法
Aug 13 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
Aug 17 Python
python selenium 获取接口数据的实现
Dec 07 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
如何隐藏你的.php文件
2007/01/04 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
Python内置模块logging用法实例分析
2018/02/12 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
Columbia美国官网:美国著名的户外服装品牌
2016/11/24 全球购物
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
大学生创业计划书的格式要求
2013/12/29 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
正科级干部考察材料
2014/05/29 职场文书
二手车转让协议书
2015/01/29 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
外出学习心得体会范文
2016/01/18 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python
HTML基础详解(下)
2021/10/16 HTML / CSS
Python制作表白爱心合集
2022/01/22 Python