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

实例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','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','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','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','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,0),(‘Name',253,17,25,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','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

相关文章

使用爬虫利器 Playwright,轻松爬取抖查查数据 我们先分析登...
轻松爬取灰豚数据的抖音商品数据 调用两次登录接口实现模拟登...
成功绕过阿里无痕验证码,一键爬取飞瓜数据 飞瓜数据的登录接...
一文教你从零开始入门蝉妈妈数据爬取,成功逆向破解数据加密...
抽丝剥茧成功破解红人点集的签名加密算法 抽丝剥茧破解登录签...
轻松绕过 Graphql 接口爬取有米有数的商品数据 有米有数数据...