【IT专家】Python操作MySQL案例
使用python操作mysql数据库

使⽤python操作mysql数据库前⾔:以下内容主要介绍python使⽤pymysql 操作mysql的查询和插⼊、使⽤的编译⼯具为pycharm (pymysql属于第三⽅库、需要我们⾃⼰安装)我要操作的数据库表(表名为student)如下、其中sno是⾃增:⼀、查询该表的数据:import pymysql #导库#1-打开数据库连接前提是⾃⼰本地的mysql服务是打开的db=pymysql.connect(host="localhost",user="root",password="123456",db="yhrtest",port=3306)cursor=db.cursor() #2-使⽤cursor()⽅法获取操作游标sql="select * from student"#3-添加查询语句try:cursor.execute(sql) #4-执⾏sql语句result=cursor.fetchall() #5-获取查询的结果结果为元组类型print("sno","sname","age","sdept") #先输出表头字段for one in result:sno,sname,age,sdept=oneprint(sno,sname,age,sdept)except Exception as error:print("错误提⽰:",error) #打印错误信息finally:db.close() #6-关闭连接查询结果如下:⼆、插⼊⼀条数据:import pymysql #导库#1-打开数据库连接前提是⾃⼰本地的mysql服务是打开的db=pymysql.connect(host="localhost",user="root",password="123456",db="yhrtest",port=3306)cursor=db.cursor() #2-新建游标sql='insert into student(sname,age,sdept) values("测试","21","测试")'#3-编写sql语句try:cursor.execute(sql) #4-执⾏sql语句mit() #5-记得提交、否则不⽣效except Exception as error:print(error) #查看报错信息db.rollback() #执⾏中如果报错则回滚finally:db.close() #6-关闭数据库最终执⾏结果:总结:以上只写了查询和插⼊语句、因为修改以及删除语句的操作步骤跟插⼊的是类似的、直接替换sql语句就可以了。
Python操作MySQL的9个实用实例

Python操作MySQL的9个实用实例
实例 1、取得 MYSQL 的版本
取得 MYSQL 的版本
实例 2、创建一个表并且插入数据
创建一个表并且插入数据
实例 3、 python 使用 slect 获取 mysql 的数据并遍历
使用 slect 获取 mysql 的数据并遍历
上面的代码,用来将所有的结果取出,不过打印的时候是每行一个元祖打印,现在我们使用方法,取出其中的单个数据:
取出其中的单个数据
实例 4、使用字典 cursor 取得结果集(可以使用表字段名字访问值)
使用字典 cursor 取得结果集
实例 5、获取单个表的字段名和信息的方法
获取单个表的字段名和信息的方法
实例 6、使用 Prepared statements 执行查询(更安全方便)使用 Prepared statements 执行查询
实例 7、把图片用二进制存入 MYSQL
首先,在数据库中创建一个表,用于存放图片
数据库中创建一个表
把图片用二进制存入 MYSQL
实例 8、从数据库中把图片读出来
从数据库中把图片读出来
实例 9、使用 Transaction 即事务(手动提交,自动回滚)
使用 Transaction 即事务
本文为头条号作者发布,不代表今日头条立场。
Python中使用pymysql库连接和操作MySQL数据库

Python中使用pymysql库连接和操作MySQL数据库Python语言在数据处理和分析方面具有广泛的应用,而MySQL数据库则是许多项目中常用的数据存储工具之一。
在Python中,我们可以使用pymysql库来连接和操作MySQL数据库,它是一个基于Python的库,用于连接和操作MySQL服务器。
本文将介绍如何使用pymysql库在Python中连接和操作MySQL数据库。
1. 安装pymysql库在使用pymysql库之前,我们需要先安装它。
可以使用pip命令来安装pymysql库:```pip install pymysql```安装完成后,我们可以在Python脚本中导入pymysql库,并开始连接和操作MySQL数据库。
2. 连接MySQL数据库在使用pymysql库连接MySQL数据库之前,我们需要先准备好数据库的连接信息,包括主机名、用户名、密码和数据库名。
以下是一个连接MySQL数据库的示例代码:```pythonimport pymysql# 连接数据库conn = pymysql.connect(host='localhost', # 主机名user='root', # 用户名password='password', # 密码database='test' # 数据库名)# 创建游标对象cursor = conn.cursor()# 执行SQL查询cursor.execute('SELECT * FROM users') # 获取查询结果result = cursor.fetchall()# 输出查询结果for row in result:print(row)# 关闭游标和连接cursor.close()conn.close()```在示例代码中,首先使用pymysql库的connect方法连接数据库,其中传入的参数分别为主机名、用户名、密码和数据库名。
pymysql 案例

pymysql 案例pymysql 是一个在 Python 中操作 MySQL 数据库的库。
它提供了一种简单而强大的方式来连接和执行 SQL 语句,使开发者能够更轻松地与数据库进行交互。
下面列举了十个使用 pymysql 的案例。
1. 连接数据库在使用pymysql 之前,首先需要建立与数据库的连接。
可以使用pymysql.connect() 函数来创建与数据库的连接。
如下所示:```import pymysql# 建立数据库连接conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='test')```其中,host 是数据库服务器地址,port 是端口号,user 和password 是登录数据库的用户名和密码,db 是要连接的数据库名称。
2. 创建数据表使用pymysql 创建数据表的方法是执行SQL 语句。
可以使用pymysql 的 cursor() 函数来获取游标对象,然后使用 execute() 方法执行 SQL 语句。
如下所示:```# 获取游标对象cursor = conn.cursor()# 执行创建表的 SQL 语句sql = '''CREATE TABLE IF NOT EXISTS students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),age INT,gender VARCHAR(10))'''cursor.execute(sql)```上述代码创建了一个名为students 的数据表,包含id、name、age 和 gender 四个字段。
3. 插入数据要向数据表中插入数据,可以使用 pymysql 的 execute() 方法执行插入语句。
Python操作MySQL数据库9个实用实例

Python操作MySQL数据库9个实⽤实例在Windows平台上安装mysql模块⽤于Python开发⽤python连接mysql的时候,需要⽤的安装版本,源码版本容易有错误提⽰。
下边是打包了32与64版本。
MySQL-python-1.2.3.win32-py2.7.exe MySQL-python-1.2.3.win-amd64-py2.7.exe实例 1、取得 MYSQL 的版本# -*- coding: UTF-8 -*-#安装 MYSQL DB for pythonimport MySQLdb as mdbcon = 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 " % datafinally:if con:#⽆论如何,连接记得关闭con.close()实例 2、创建⼀个表并且插⼊数据import MySQLdb as mdbimport 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 的数据并遍历import MySQLdb as mdbimport 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')上⾯的代码,⽤来将所有的结果取出,不过打印的时候是每⾏⼀个元祖打印,现在我们使⽤⽅法,取出其中的单个数据:import MySQLdb as mdbimport sys#获取 mysql 的链接对象con = mdb.connect('localhost', 'root', 'root', 'test');with con:#获取执⾏查询的对象cur = con.cursor()#执⾏那个查询,这⾥⽤的是 select 语句cur.execute("SELECT * FROM Writers")#使⽤ cur.rowcount 获取结果集的条数numrows = int(cur.rowcount)#循环 numrows 次,每次取出⼀⾏数据for i in range(numrows):#每次取出⼀⾏,放到 row 中,这是⼀个元组(id,name)row = cur.fetchone()#直接输出两个元素print row[0], row[1]运⾏结果:1 Jack London2 Honore de Balzac3 Lion Feuchtwanger4 Emile Zola5 Truman Capote实例 4、使⽤字典 cursor 取得结果集(可以使⽤表字段名字访问值)import MySQLdb as mdbimport 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、获取单个表的字段名和信息的⽅法import MySQLdb as mdbimport sys#获取数据库的链接对象con = mdb.connect('localhost', 'root', 'root', 'test')with con:#获取普通的查询 cursorcur = 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 in rows:#打印结果print "%2s %3s" % row运⾏结果:cur.description: ((‘Id', 3, 1, 11, 11, 0, 0), (‘Name', 253, 17, 25, 25, 0, 1))Id Name1 Jack London2 Honore de Balzac3 Lion Feuchtwanger4 Emile Zola5 Truman Capote实例 6、使⽤ Prepared statements 执⾏查询(更安全⽅便)import MySQLdb as mdbimport syscon = 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实例 7、把图⽚⽤⼆进制存⼊ MYSQL有⼈喜欢把图⽚存⼊ MYSQL(这种做法貌似很少吧),我看⼤部分的程序,图⽚都是存放在服务器上的⽂件,数据库中存的只是图⽚的地址⽽已,不过 MYSQL 是⽀持把图⽚存⼊数据库的,也相应的有⼀个专门的字段 BLOB (Binary Large Object),即较⼤的⼆进制对象字段,请看如下程序,注意测试图⽚⾃⼰随便找⼀个,地址要正确:⾸先,在数据库中创建⼀个表,⽤于存放图⽚:复制代码代码如下:CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);然后运⾏如下 PYTHON 代码进⾏:import MySQLdb as mdbimport systry:#⽤读⽂件模式打开图⽚fin = open("../web.jpg")#将⽂本读⼊ img 对象中img = fin.read()#关闭⽂件fin.close()except IOError, e:#如果出错,打印错误信息print "Error %d: %s" % (e.args[0],e.args[1])sys.exit(1)try:#链接 mysql,获取对象conn = mdb.connect(host='localhost',user='root',passwd='root',db='test')#获取执⾏ cursorcursor = conn.cursor()#直接将数据作为字符串,插⼊数据库cursor.execute("INSERT INTO Images SET Data='%s'" %mdb.escape_string(img))#提交数据mit()#提交之后,再关闭 cursor 和链接cursor.close()conn.close()except mdb.Error, e:#若出现异常,打印信息print "Error %d: %s" % (e.args[0],e.args[1])sys.exit(1)实例 8、从数据库中把图⽚读出来import MySQLdb as mdbimport systry:#连接 mysql,获取连接的对象conn = mdb.connect('localhost', 'root', 'root', 'test');cursor = conn.cursor()#执⾏查询该图⽚字段的 SQLcursor.execute("SELECT Data FROM Images LIMIT 1")#使⽤⼆进制写⽂件的⽅法,打开⼀个图⽚⽂件,若不存在则⾃动创建fout = open('image.png','wb')#直接将数据如⽂件fout.write(cursor.fetchone()[0])#关闭写⼊的⽂件fout.close()#释放查询数据的资源cursor.close()conn.close()except IOError, e:#捕获 IO 的异常,主要是⽂件写⼊会发⽣错误print "Error %d: %s" % (e.args[0],e.args[1])sys.exit(1)实例 9、使⽤ Transaction 即事务(⼿动提交,⾃动回滚)import MySQLdb as mdbimport systry:#连接 mysql,获取连接的对象conn = mdb.connect('localhost', 'root', 'root', 'test');cursor = conn.cursor()#如果某个数据库⽀持事务,会⾃动开启#这⾥⽤的是 MYSQL,所以会⾃动开启事务(若是 MYISM 引擎则不会)cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",("Leo Tolstoy", "1"))cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",("Boris Pasternak", "2"))cursor.execute("UPDATE Writer SET Name = %s WHERE Id = %s",("Leonid Leonov", "3"))#事务的特性 1、原⼦性的⼿动提交mit()cursor.close()conn.close()except mdb.Error, e:#如果出现了错误,那么可以回滚,就是上⾯的三条语句要么执⾏,要么都不执⾏conn.rollback()print "Error %d: %s" % (e.args[0],e.args[1])结果:1、因为不存在 writer 表( SQL 第三条语句),所以出现错误:Error 1146: Table ‘test.writer' doesn't exist2、出现错误,出发异常处理, 3 条语句的前两条会⾃动变成了没有执⾏,结果不变3、如果本代码放到⼀个 MyISAM 引擎表,前两句会执⾏,第三句不会;如果是 INNDB 引擎,则都不会执⾏。
python中操作mysql简单实例

python中操作mysql简单实例安装pymysql库在CMD终端中安装:pip install pymysql也可以在PyCharm⾥安装。
连接数据库注意事项:有⼀个MySQL数据库,并且已经启动;拥有可以连接数据库的⽤户名和密码;有⼀个有权限操作的database基本使⽤:# 导⼊pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”,port=端⼝号user=“⽤户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到⼀个可以执⾏SQL语句的光标对象cursor = conn.cursor()# 定义要执⾏的SQL语句sql = """CREATE TABLE USER1 (id INT auto_increment PRIMARY KEY ,name CHAR(10) NOT NULL UNIQUE,age TINYINT NOT NULL)ENGINE=innodb DEFAULT CHARSET=utf8;"""# 执⾏SQL语句cursor.execute(sql)# 关闭光标对象cursor.close()# 关闭数据库连接conn.close()返回字典格式数据:# 导⼊pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, port=端⼝号user=“⽤户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到⼀个可以执⾏SQL语句并且将结果作为字典返回的游标cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 定义要执⾏的SQL语句sql = """CREATE TABLE USER1 (id INT auto_increment PRIMARY KEY ,name CHAR(10) NOT NULL UNIQUE,age TINYINT NOT NULL)ENGINE=innodb DEFAULT CHARSET=utf8;"""# 执⾏SQL语句cursor.execute(sql)# 关闭光标对象cursor.close()# 关闭数据库连接conn.close()注意事项:⼀定要注意连接 database 的时候,书写格式,⽐如端⼝号是数字型的,密码是字符串型的,charset="utf8" 不是“utf-8”。
PythonMySQLdb模块连接操作mysql数据库实例_python

PythonMySQLdb模块连接操作mysql数据库实例_python mysql是⼀个优秀的开源数据库,它现在的应⽤⾮常的⼴泛,因此很有必要简单的介绍⼀下⽤python操作mysql数据库的⽅法。
python操作数据库需要安装⼀个第三⽅的模块,在/有下载和。
由于python的数据库模块有专门的数据库模块的规范,所以,其实不管使⽤哪种数据库的⽅法都⼤同⼩异的,这⾥就给出⼀段⽰范的代码:#-*- encoding: gb2312 -*-import os, sys, stringimport MySQLdb# 连接数据库 try:conn = MySQLdb.connect(host='localhost',user='root',passwd='xxxx',db='test1')except Exception, e:print esys.exit()# 获取cursor对象来进⾏操作cursor = conn.cursor()# 创建表sql = "create table if not exists test1(name varchar(128) primary key, age int(4))"cursor.execute(sql)# 插⼊数据sql = "insert into test1(name, age) values ('%s', %d)" % ("zhaowei", 23)try:cursor.execute(sql)except Exception, e:print esql = "insert into test1(name, age) values ('%s', %d)" % ("张三", 21)try:cursor.execute(sql)except Exception, e:print e# 插⼊多条sql = "insert into test1(name, age) values (%s, %s)"val = (("李四", 24), ("王五", 25), ("洪六", 26))try:cursor.executemany(sql, val)except Exception, e:print e#查询出数据sql = "select * from test1"cursor.execute(sql)alldata = cursor.fetchall()# 如果有数据返回,就循环输出, alldata是有个⼆维的if alldata:for rec in alldata:print rec[0], rec[1]cursor.close()conn.close()以上是云栖社区⼩编为您精⼼准备的的内容,在云栖社区的博客、问答、公众号、⼈物、课程等栏⽬也有的相关内容,欢迎继续使⽤右上⾓搜索按钮进⾏搜索python MySQLdb模块 mysqldb mysql python、mysql数据库设计实例、mysql数据库实例、mysql数据库开发实例、mysql数据库实例下载,以便于您获取更多的相关知识。
python操作MySQL数据库

python操作MySQL数据库坚持每天学一点,每天积累一点点,作为自己每天的业余收获,这个文章是我在吃饭的期间写的,利用自己零散的时间学了一下python操作MYSQL,所以整理一下。
我采用的是MySQLdb操作的MYSQL数据库。
先来一个简单的例子吧:?1 2 3 4 5 6 7 8 9 1 0 import MySQLdbtry:conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db= 'test',port=3306)cur=conn.cursor()cur.execute('select * from user')cur.close()conn.close()except MySQLdb.Error,e:print"Mysql Error %d: %s"%(e.args[0], e.args[1])请注意修改你的数据库,主机名,用户名,密码。
下面来大致演示一下插入数据,批量插入数据,更新数据的例子吧:?1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1import MySQLdbtry:conn=MySQLdb.connect(host='localhost',user='root',passwd='root',por t=3306)cur=conn.cursor()cur.execute('create database if not exists python')conn.select_db('python')cur.execute('create table test(id int,info varchar(20))')value=[1,'hi rollen']cur.execute('insert into test values(%s,%s)',value)values=[]for i in range(20):values.append((i,'hi rollen'+str(i)))cur.executemany('insert into test values(%s,%s)',values)cur.execute('update test set info="I am rollen" where id=3') mit()3 14 15 16 17 18 19 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 cur.close()conn.close()except MySQLdb.Error,e:print"Mysql Error %d: %s"%(e.args[0], e.args[1])请注意一定要有mit()这句来提交事务,要不然不能真正的插入数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系
Python操作MySQL案例
2016/01/23 0 最近都在学习Python代码,希望学会Python后,能给我带来更高的工作效率,因此每天坚持学习和拷代码,下面是一个Python操作MySQL的一个实例,该实例可以让更多的人更好了解MySQLdb模块的使用。
我是Python菜鸟,通过学习别人的实例来让自己学到更多Python知识。
案例:用Python实现银行转账
一、在MySQL创建一张表account表,然后在里面插入两条数据:
mysql show create table account\G*************************** 1. row *************************** Table: accountCreate Table: CREATE TABLE `account` ( `userid` int(11) DEFAULT NULL COMMENT ‘账号ID’, `money` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin1 row in set (0.02 sec)mysql 当前数据:
mysql select * from account;+--------+-------+| userid | money |+--------+-------+| 1 | 200 || 2 | 200 |+--------+-------+2 rows in set (0.00 sec)mysql
编辑脚本money.py文件,运行些脚本需要安装MySQLdb模块,详细安装和基本的使用可以参考我的博客:cnblogs/xuanzhi201111/p/5144982.html
#!/usr/bin/env python#coding:utf-8#name:money.pyimport sysimport MySQLdb try: sql = “select * from account where userid = %s and money %s” % (source_userid,money) cursor.execute(sql) print “\033[;32m检查是否有足够的钱: \033[0m” + sql except Exception,e: raise Exception(‘执行sql错误:%s’ % e) else: rs = cursor.fetchall() if len(rs) != 1: raise Exception (“账号%s余额不足” % source_userid) finally: cursor.close()#用于减去转掉的部份金额def reduce_money(self,source_userid,money): cursor = self.conn.cursor() try: sql = “update account set money = money - %s where userid=%s” % (money,source_userid) cursor.execute(sql) print “\033[;32m从源账户%s 里扣掉对应的金额: \033[0m” % (source_userid) + sql except Exception,e: raise。