python连接sqlserver_Python连接操作SQLServer\MySQL示例二

本文详细介绍了如何使用Python的pymysql模块连接并操作MySQL数据库,包括查询数据库版本、创建表、插入数据、获取数据、使用字典游标以及预编译语句等操作。示例代码清晰易懂,适合初学者和开发者参考。
摘要由CSDN通过智能技术生成

本文以MySQL为例,首先需要安装pymysql包(连接SqlServer安装pymssql)

pip install pymysql

示例1、取得MySQL版本:

#-*- coding: UTF-8 -*-importpymysql as mdb

con=Nonetry:#连接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:ifcon:#无论如何,连接记得关闭

con.close()

执行结果:

Database version : 5.5.25

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

#-*- coding: UTF-8 -*-

importpymysql as mdbimportsys#将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使用select获取mysql的数据并遍历

#-*- coding: UTF-8 -*-

importpymysql as mdbimportsys#连接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 inrows:print(row)

执行结果:

(1L, ‘Jack London')

(2L, ‘Honore de Balzac')

(3L, ‘Lion

Feuchtwanger')

(4L, ‘Emile Zola')

(5L, ‘Truman Capote')

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

#-*- coding: UTF-8 -*-importpymysql as mdbimportsys#获得mysql查询的链接对象

con = mdb.connect('localhost', 'root', 'root', 'test')#加上cursorclass=DictCursor参数下面的cur = con.cursor()就不用加参数了,两种方法都可行。#con = mdb.connect('localhost', 'root', 'root', 'test', cursorclass=DictCursor)

with con:#获取连接上的字典cursor,注意获取的方法,

#每一个cursor其实都是cursor的子类

cur =con.cursor(mdb.cursors.DictCursor)#执行语句不变

cur.execute("SELECT * FROM Writers")#获取数据方法不变

rows =cur.fetchall()#遍历数据也不变(比上一个更直接一点)

for row inrows:#这里,可以使用键值对的方法,由键名字来获取数据

print("%s %s" % (row["Id"], row["Name"]))

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

#-*- coding: UTF-8 -*-

importpymysql as mdbimportsys#获取数据库的链接对象

con = mdb.connect('localhost', 'root', 'root', 'test')

with con:#获取普通的查询cursor

cur =con.cursor()

cur.execute("SELECT * FROM Writers")

rows=cur.fetchall()#获取连接对象的描述信息

desc =cur.descriptionprint 'cur.description:',desc#打印表头,就是字段名字

print "%s %3s" % (desc[0][0], desc[1][0])for row inrows:#打印结果

print ("%2s %3s" % row)

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

#-*- coding: UTF-8 -*-

importpymysql as mdbimportsys

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值