Python操作Mysql实例教程手册(带书签)
Python3操作MySQL数据库
![Python3操作MySQL数据库](https://img.taocdn.com/s3/m/8c27736059fafab069dc5022aaea998fcc224016.png)
Python3操作MySQL数据库在Python3中操作MySQL数据库在Python3中使⽤mysql数据库需要安装pymysql库pip install pymysql操作MySQL导包import pymysql第⼀步:打开数据库连接db = pymysql.connect(host="数据库地址",user="⽤户名",password="密码",port=3306,# 端⼝database="数据库名",charset='utf8')第⼆步:创建游标cursor = db.cursor()第三步:操作数据库1、创建表# 如果数据表已经存在使⽤execute()⽅法删除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")# 创建数据表SQL语句sql = """CREATE TABLE EMPLOYEE (FIRST_NAME CHAR(20) NOT NULL,LAST_NAME CHAR(20),AGE INT,SEX CHAR(1),INCOME FLOAT )"""cursor.execute(sql)2、查询数据1. Python查询Mysql使⽤ fetchone() ⽅法获取单条数据, 使⽤fetchall() ⽅法获取多条数据。
2. fetchone(): 该收全部的返回结果⾏.3. rowcount: 这是⽅法获取下⼀个查询结果集。
结果集是⼀个对象4. fetchall():接⼀个只读属性,并返回执⾏execute()⽅法后影响的⾏数。
# SQL 查询语句sql = "SELECT * FROM EMPLOYEE WHERE INCOME > {}".format(1000)try:# 执⾏SQL语句cursor.execute(sql)# 获取所有记录列表results = cursor.fetchall()for row in results:fname = row[0]lname = row[1]age = row[2]sex = row[3]income = row[4]# 打印结果print("fname={},lname={},age={},sex={},income={}".format(fname, lname, age, sex, income))except:print("Error: unable to fecth data")3、添加数据# SQL 插⼊语句sql = """INSERT INTO EMPLOYEE(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME)VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""try:cursor.execute(sql)# 提交到数据库执⾏mit()except:# 发⽣错误时回滚db.rollback()4、修改数据# SQL 更新语句sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '{}'".format('M') try:cursor.execute(sql)# 提交到数据库执⾏mit()except:# 发⽣错误时回滚db.rollback()5、删除数据# SQL 刪除语句sql = "DELETE FROM EMPLOYEE WHERE AGE > {}".format(20)try:cursor.execute(sql)# 提交到数据库执⾏mit()except:# 发⽣错误时回滚db.rollback()第四步:关闭游标,数据库连接cursor.close()db.close()。
Python使用MySQL数据库的方法以及一个实例
![Python使用MySQL数据库的方法以及一个实例](https://img.taocdn.com/s3/m/57f2232adc36a32d7375a417866fb84ae45cc308.png)
Python使⽤MySQL数据库的⽅法以及⼀个实例使⽤环境:Windows+python3.4+MySQL5.5+Navicat⼀、创建连接1.准备⼯作,想要使⽤Python操作MySQL,⾸先需要安装MySQL-Python的包,在Python 3.x下,该包已经改名为MySQLClient。
可以使⽤pip⽅式安装:pip install MySQLClient或者下载包⽂件,进⾏安装也可以。
2.Python使⽤MySQL的流程:3.启动MySQL服务器:以管理员⾝份启动“cmd”,输⼊命令:’net start mysql‘Python中使⽤MySQL导⼊⽅法:import MySQLdb4.创建Connection Connection:创建了Python客户端与数据库之间的⽹络通路。
他的参数如下参数名类型说明host String MySQL的服务器地址port int MySQL的端⼝号user String⽤户名passwd String密码db String使⽤的数据库charset String连接字符集 Connection⽀持的⽅法:⽅法名说明cursor()创建并且返回游标commit()提交当前事物rollback()回滚当前事物r()close()关闭Connection5.获取Cursor.Cursor:游标对象,⽤于执⾏查询和获取结果,它⽀持的⽅法如下:⽅法名说明execute()⽤于执⾏⼀个数据库的查询命令fetchone()获取结果集中的下⼀⾏fetchmany(size)获取结果集中的下(size)⾏fetchall()获取结果集中剩下的所有⾏rowcount最近⼀次execute返回数据/影响的⾏数close()关闭游标下⾯我们在Python中创建⼀个实例:import MySQLdbconn=MySQLdb.connect(host='127.0.0.1',port=3306,user='root',passwd='199331',db='test',charset='utf8')cursor=conn.cursor()print(conn)print(cursor)cursor.close()conn.close()运⾏程序结果如下:从结果中我们可以看见成功创建了⼀个Connection和Cursor对象。
python操作mysql实例
![python操作mysql实例](https://img.taocdn.com/s3/m/f40ab679a55177232f60ddccda38376baf1fe063.png)
python操作mysql实例python操作mysql实例使⽤ORM模型SQLAlchemy模式⾸先安装所需模块pip install SQLAlchemypip install pymysql本实例使⽤了名为test的数据库,所以在运⾏本例之前,要确保test数据库已经存在2、完整增、删、改、查实例from sqlalchemy import create_engine,MetaData,Table,Column,Integer,String,Float,exc,ormfrom sqlalchemy.ext.declarative import declarative_base#定义⽤于mysql连接字符串,通过pymysql指定sqlalchemy底层⽤的pymysql模块#操作mysql,root是⽤户名,jenkins@123是密码db5是数据库名mysql='mysql+pymysql://root:jenkins@123@192.168.0.93:3306/tb5?charset=utf8'#定义要操作的表名tableName='tb5'#创建数据库引擎(sqlalchemy.engine.base.Engine 对象)engine=create_engine(mysql,encoding='utf-8')#开始连接数据库engine.connect()#创建MetaData对象metadata=MetaData(engine)#创建⽤于定义表元数据的Table对象,该表⼀共5个字段,字段id是主键person=Table(tableName,metadata,Column('id',Integer,primary_key=True),Column('name',String(30)), #长度30的字符串类型Column('age',Integer),Column('address',String(100)), #长度为100的字符串类型Column('salary',Float))#创建表metadata.create_all(engine)Base=declarative_base()#定义与tb1表对应的Person类class Person(Base):#指定表名__tablename__=tableNameid=Column(Integer,primary_key=True)name=Column(String(30))age=Column(Integer)address=Column(String(100))salary=Column(Float)Session=orm.sessionmaker(bind=engine)# 创建会话(Session)session=Session()#(增)#先删除person1表中所有的记录,以免在插⼊记录时造成主键冲突session.query(Person).delete()#提交后对数据库的修改才⽣效mit()# 下⾯创建3个Person对象person1=Person(id=10,name='Bill',age=30,address='地球',salary='1111')person2=Person(id=20,name='Mike',age=40,address='⽕星',salary='2222')person3=Person(id=30,name='John',age=50,address='⽉球',salary='3333')# 下⾯向tb1表中插⼊3条记录session.add(person1)session.add(person2)session.add(person3)#提交后对数据库的修改才⽣效mit()print("成功插⼊记录")#(改)#先查询name=Mike的记录,然后将所有记录的address字段替换成“千星之城”session.query(Person).filter( == 'Mike').update({'address': '千星之城'})#提交修改mit()#(查+改)#查询所有name等于John的记录query=session.query(Person).filter( == 'John')#输出了⽤于查询的SQL语句(由SQLAlchemy字段⽣成)print(query)#将查新的结果集转为单⼀的对象(Person对象),使⽤scalar⽅法时必须要保证查询结果集只有⼀条记录,person=query.scalar()#修改person对象的属性值person.age=12person.salary=5000#提交修改mit()print('成功更新了记录')#使⽤组合条件查询tb1表中的记录persons=session.query(Person).filter((Person.age>=10) & (Person.salary>=2000))#通过对查询结果进⾏迭代,输出所有查询结果,for person in persons:print('name','=',,end='')print('age','=',person.age,end='')print('salary','=',person.salary,end='')#输出查询结果中的第1条记录的name字段值print(persons.first().name) #试过不管⽤#输出查询结果中第2条记录的name字段值print(persons.offset(1).scalar().name) #⼀共2⾏记录,查询最后⼀⾏记录。
使用python操作mysql数据库
![使用python操作mysql数据库](https://img.taocdn.com/s3/m/6b72d18850e79b89680203d8ce2f0066f5336444.png)
使⽤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中使用pymysql库连接和操作MySQL数据库
![Python中使用pymysql库连接和操作MySQL数据库](https://img.taocdn.com/s3/m/cbd223366d85ec3a87c24028915f804d2a16874e.png)
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使用方法](https://img.taocdn.com/s3/m/976d147f32687e21af45b307e87101f69e31fb0a.png)
pymysql使用方法pymysql 是一款用于 Python 操作 MySQL 数据库的模块。
下面是一个简单的使用示例:1. 安装 pymysql使用 pip 命令安装 pymysql:```pip install pymysql```2. 导入 pymysql 模块导入 pymysql 模块,并建立一个连接:```import pymysqlconn = pymysql.connect(host="localhost", user="username", passwd="password", db="database_name", charset="utf8mb4")```其中,host 表示数据库连接地址,user 表示用户名,passwd 表示密码,db 表示数据库名,charset 表示字符集。
3. 生成游标使用游标可以进行数据的增删改查操作。
在生成游标后,可以通过游标遍历数据库中的数据,并进行相应的操作。
```cur = conn.cursor()```4. 执行 SQL 语句使用游标执行 SQL 语句。
在执行 SQL 语句前,需要先连接数据库,并设置字符集。
```cur.execute("SELECT * FROM table_name")```5. 提交语句提交语句并关闭游标和连接。
```cur.close()conn.close()```6. 完整代码示例```import pymysqlconn = pymysql.connect(host="localhost", user="username", passwd="password", db="database_name", charset="utf8mb4")cur = conn.cursor()sql = "SELECT * FROM table_name"cur.execute(sql)for row in cur:print(row)cur.close()conn.close()```上述示例代码中,我们通过 pymysql 模块建立了一个连接,并使用游标遍历了数据库中的数据。
Python中使用MySQLdb库连接和操作MySQL数据库
![Python中使用MySQLdb库连接和操作MySQL数据库](https://img.taocdn.com/s3/m/29eef6beed3a87c24028915f804d2b160a4e864e.png)
Python中使用MySQLdb库连接和操作MySQL数据库Python是一种功能强大的编程语言,它在数据库操作方面也有很多优势。
在Python中,我们可以使用MySQLdb库来连接和操作MySQL数据库。
本文将介绍MySQLdb库的基本用法,并展示如何使用Python连接和操作MySQL数据库。
一、安装MySQLdb库在开始之前,我们需要先安装MySQLdb库。
可以通过以下命令使用pip来安装MySQLdb库:```pip install MySQL-python```二、连接MySQL数据库在使用MySQLdb库之前,我们首先需要连接MySQL数据库。
可以通过以下代码来连接数据库:```pythonimport MySQLdb# 连接数据库db = MySQLdb.connect(host='localhost', user='root', password='root', db='test')# 获取数据库游标cursor = db.cursor()```在上述代码中,我们使用MySQLdb模块的connect函数来建立与MySQL数据库的连接。
需要传入主机地址、用户名、密码和数据库名称等参数。
连接成功之后,我们可以使用cursor函数来获取数据库游标。
三、执行SQL语句连接成功后,我们可以使用游标来执行SQL语句。
MySQLdb库提供了execute 函数来执行SQL语句,可以通过以下代码来执行查询语句:```python# 执行SQL语句cursor.execute("SELECT * FROM students")# 获取查询结果results = cursor.fetchall()# 遍历结果for row in results:name = row[0]age = row[1]print("Name: %s, Age: %d" % (name, age))```在上述代码中,我们执行了一条查询语句并获取了查询结果。
python中操作mysql简单实例
![python中操作mysql简单实例](https://img.taocdn.com/s3/m/1446fe8f70fe910ef12d2af90242a8956becaa6d.png)
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”。
python操作MySQL数据库
![python操作MySQL数据库](https://img.taocdn.com/s3/m/9cdff453312b3169a451a413.png)
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()这句来提交事务,要不然不能真正的插入数据。
python操作mysql数据库菜鸟教程
![python操作mysql数据库菜鸟教程](https://img.taocdn.com/s3/m/c6dcd1e16037ee06eff9aef8941ea76e58fa4aab.png)
python操作mysql数据库菜鸟教程python操作mysql数据库Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。
Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:•GadFly•mSQL•MySQL•PostgreSQL•Microsoft SQL Server 2000•Informix•Interbase•Oracle•Sybase你可以访问Python数据库接口及API查看详细的支持数据库列表。
不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。
DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。
Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。
Python DB-API使用流程:•引入 API 模块。
•获取与数据库的连接。
•执行SQL语句和存储过程。
•关闭数据库连接。
什么是MySQLdb?MySQLdb 是用于Python链接Mysql数据库的接口,它实现了Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。
如何安装MySQLdb?为了用DB-API编写MySQL脚本,必须确保已经安装了MySQL。
复制以下代码,并执行:#!/usr/bin/python# -*- coding: UTF-8 -*-import MySQLdb如果执行后的输出结果如下所示,意味着你没有安装MySQLdb 模块:Traceback (most recent call last):File "test.py", line 3, in <module>import MySQLdbImportError: No module named MySQLdb安装MySQLdb,请访问,(Linux平台可以访问:)从这里可选择适合您的平台的安装包,分为预编译的二进制文件和源代码安装包。
python3操作mysql教程
![python3操作mysql教程](https://img.taocdn.com/s3/m/d403a0c5b04e852458fb770bf78a6529647d35b3.png)
python3操作mysql教程⼀、下载\安装\配置1. python3当前最新版本是python3.2,下载地址是安装过程就不⽤说了,默认安装到C:\Python32⽬录中。
安装好后,将安装⽬录C:\Python32添加到环境变量中。
然后打开命令提⽰符窗⼝,输⼊python,如果能返回python版本说明安装成功以及环境变量设置成功。
C:\>pythonPython 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>>2. MySQLMySQL有很多种类型的版本,这⾥我们选择MySQL Community Server,最新版本5.5.25a安装过程有点复杂,可以参考MySQL安装图解:注意,务必将MySQL的编码设成utf8安装完成后需要对MySQL配置,这⾥我配置其⽤户名为root,密码Welcome123。
使⽤命令登录mysql,安装成功C:\>mysql -u root -pEnter password: **********Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 10Server version: 5.5.25a MySQL Community Server (GPL)Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>这⾥我们创建⼀个名为txw1958的数据库。
如何在Python中使用MySQL数据库
![如何在Python中使用MySQL数据库](https://img.taocdn.com/s3/m/b501abe877eeaeaad1f34693daef5ef7bb0d1266.png)
如何在Python中使用MySQL数据库在Python中,使用MySQL数据库是非常常见且重要的技能。
无论是开发Web 应用程序、数据分析还是其他相关领域,都可能需要与数据库进行交互。
本文将介绍如何在Python中使用MySQL数据库,并分享一些相关的实践经验。
一、安装MySQL驱动在开始使用MySQL数据库前,我们需要先安装MySQL驱动。
Python中有多个MySQL驱动可供选择,如MySQLdb、PyMySQL等。
其中,PyMySQL是一个纯Python编写的驱动,安装简单且兼容性较好。
通过pip安装PyMySQL驱动:```pip install pymysql```二、连接MySQL数据库在使用Python与MySQL数据库进行交互之前,我们首先需要建立与数据库的连接。
可以通过MySQLdb或PyMySQL提供的connect函数来实现。
```pythonimport pymysql# 建立连接conn = pymysql.connect(host='localhost', port=3306, user='root',password='your_password', db='your_database')# 创建游标对象cursor = conn.cursor()# 执行SQL语句sql = 'SELECT * FROM your_table'cursor.execute(sql)# 获取查询结果results = cursor.fetchall()# 关闭游标及数据库连接cursor.close()conn.close()```在上述代码中,我们首先使用pymysql.connect()函数来建立与数据库的连接。
其中,host参数指定了数据库服务器的地址,port参数指定了数据库服务器的端口,user和password参数分别指定了登录数据库的用户名和密码,db参数指定了要连接的数据库名称。
python-9操作mysql数据库
![python-9操作mysql数据库](https://img.taocdn.com/s3/m/c02c095ef61fb7360a4c6593.png)
使用pymysql对数据库的表进行增删改查
练习 需求说明 pymysql #建立连接 con=pymysql.connect(host='localhost',port=3306,user='root',passwor d='1234', database='oa',charset='utf8') #得到游标对象 cur=con.cursor() try:
*/23
PyMySQL操作步骤一
❖1. 引入模块 import pymysql ❖2. 建立连接 ❖3. 得到游标对象 ❖4. 执行增删改查 ❖5. 提交或者回滚事务(查询可以省略) ❖6. 关闭连接
*/23
PyMySQL操作步骤二
❖建立连接
con= pymysql.connect(host='主机',port=端口 号,user='用户名',password='密码', database='数据库名',charset='编码集,一般是utf8')
查询示例
import pymysql #建立连接 con=pymysql.connect(host='localhost',port=3306,user='root',password='1234', database='oa',charset='utf8') #得到游标对象 cur=con.cursor() try:
data=cur.fetchall()
❖处理事务
mit() #没有出错,提交事务 con.rollback() #回滚事务
利用Python操作MySQL数据库
![利用Python操作MySQL数据库](https://img.taocdn.com/s3/m/894577c1db38376baf1ffc4ffe4733687e21fc62.png)
利⽤Python操作MySQL数据库前⾔在⼯作中,我们需要经常对数据库进⾏操作,⽐如 Oracle、MySQL、SQL Sever 等,今天我们就学习如何利⽤Python来操作 MySQL 数据库。
本⼈环境:Python 3.7.0 、MySQL 5.7安装第三⽅库使⽤Python来操作MySQL,需要⽤到 PyMySQL 这个第三⽅库,具体安装如下:pip install PyMySQL我这⾥安装的版本是 0.9.3。
基本操作-增删改查Python操作MySQL的步骤如下:建⽴数据库连接通过 cursor() 创建游标对象(pymysql通过游标来执⾏sql和获取结果)使⽤ execute() 执⾏sql获取结果(查询)/提交事务(增删改)关闭游标关闭连接注意:⽤Python进⾏增删改查操作之前,最好先检查下sql语句是否正确,确保没有错误之后,再放到Python代码中。
查询操作import pymysqldef select_db(select_sql):"""查询"""# 建⽴数据库连接db = pymysql.connect(host="192.168.89.128",port=3306,user="root",passwd="123456",db="test2020")# 通过 cursor() 创建游标对象,并让查询结果以字典格式输出cur = db.cursor(cursor=pymysql.cursors.DictCursor)# 使⽤ execute() 执⾏sqlcur.execute(select_sql)# 使⽤ fetchall() 获取所有查询结果data = cur.fetchall()# 关闭游标cur.close()# 关闭数据库连接db.close()select_sql = 'SELECT * FROM user WHERE username="张三"'print(select_db(select_sql))在上⾯,创建游标时使⽤了 cursor=pymysql.cursors.DictCursor ,⽬的是为了让查询结果以列表嵌套字典的格式输出,以⽅便后续操作。
利用python中pymysql操作MySQL数据库的新手指南
![利用python中pymysql操作MySQL数据库的新手指南](https://img.taocdn.com/s3/m/a6e3f7ff541810a6f524ccbff121dd36a22dc452.png)
利⽤python中pymysql操作MySQL数据库的新⼿指南⽬录⼀. pymysql介绍⼆. 连接数据库的完整流程1. 引⼊pymysql模块2. 创建连接对象3. 使⽤连接对象创建游标对象4. 准备需要使⽤的sql语句5. 使⽤游标对象执⾏sql语句(如果是数据修改的操作,会返回受影响的⾏数)6. 如果执⾏语句是查询操作,需要使⽤游标对象获取查询结果7. 关闭游标对象8. 关闭连接对象三. 完整的简易源码总结⼀. pymysql介绍pymysql 是在 Python3.x 版本中⽤于连接和操作 MySQL 服务器的⼀个库.引⼊⽅式: pip install pymysqlpip⼯具是python的⼀个模块,因此在使⽤pip⼯具安装pymysql模块之前,⾸先确定python和pip⼯具都能正常⼯作⼆. 连接数据库的完整流程1. 引⼊pymysql模块import pymysql # 引⼊第三⽅库pymysql2. 创建连接对象import pymysqlcnn = pymysql.connect(user="user", # ⽤户名password="password", # 密码port=端⼝号, # 默认为3306,且此处为整数类型database="数据库名",host="连接IP地址",charset="utf8")3. 使⽤连接对象创建游标对象1. 游标对象是通过链接对象进⾏创建的2. 游标展⽰数据的四种⽅式:1. Cursor ---> 默认使⽤, 元组套元组2. SSCursor ---> 元组套元组的⽅式的⽣成器(优雅的迭代器)3. Dictcursor ---> 列表套字典的⽅式4. SSDictcursor ---> 列表套字典的⽅式的⽣成器3. 创建语法(以最常⽤的列表套字典的形式举例)cursor = database.cursor(cursor=pymysql.cursors.DictCursor# cursor为游标对象名, 可按⾃⼰习惯⾃定义名字4. 准备需要使⽤的sql语句按照⾃⼰的需求准备sql语句, 不熟悉的同学可以点击下⽅链接, 复习我上期写的MySQL基础⼊门课程.5. 使⽤游标对象执⾏sql语句(如果是数据修改的操作,会返回受影响的⾏数)# 执⾏语句⽐较简单, 就只写了这⼀个cursor.execute(SQL语句)6. 如果执⾏语句是查询操作,需要使⽤游标对象获取查询结果1. 获取结果的语法:1. 游标对象.fetchall() ---> 返回查询到的所有数据2. 游标对象.fetchone() ---> 返回查询到的⼀条记录3. 游标对象.fetchmany(记录数) ---> 返回查询到的指定记录数2. 切换数据库语法:1. 由链接对象取操作切换数据库2. 链接对象.select_db("数据库名)3. 具体语句(⽤⼀个变量data接受存储数据)data = cursor.fetchall()7. 关闭游标对象游标对象.close()8. 关闭连接对象连接对象.close()三. 完整的简易源码# 1. 引⼊模块import pymysql# 2. 连接数据库cnn = pymysql.connect(user="root",password="******",port=3306,database="mytest",host="localhost",charset="utf8")# 3. 创建游标对象my_cursor = cnn.cursor(cursor=pymysql.cursors.DictCursor)# 4. SQL语句my_sql = "select * from student"# 5. 执⾏SQL ---> 通过游标对象执⾏my_cursor.execute(my_sql)# 6. 查看结果data = my_cursor.fetchall()# 7. 关闭连接my_cursor.close()database.close()# 打印获得的数据, 检查执⾏是否正确print(data)总结到此这篇关于利⽤python中pymysql操作MySQL数据库的⽂章就介绍到这了,更多相关python pymysql操作MySQL数据库内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
PythonMySQL操作
![PythonMySQL操作](https://img.taocdn.com/s3/m/9fcec99782d049649b6648d7c1c708a1284a0aa0.png)
PythonMySQL操作Python Mysql 操作步骤1、安装pymysql安装包pip install pymysql2、导包import pymysql3、连接数据库db=pymysql.connet(host=172.0.0.1,user="root",password="123456",database="xxx",character="utf8")4、创建游标cursor = db.cursor()5、数据库操作<!--创建表-->sql = "CREATE TABLE IF NOT EXISTS `user`(username VARCHAR(10) COMMENT '⽤户名',passwd VARCHAR(32) COMMENT '密码') ENGINE='INNODB' DEFAULT CHARSET='utf8mb4' COMMENT '⽤户表'"cursor.execute(sql)<!--删除表-->sql = "drop table if exists %s"%table_namecursor.execute(sql)<!--查询数据--><!--获取单条数据:fetchone()--><!--获取多条数据:fetchall()-->sql = "select *from table_name"cursor.execute(sql)result=cursor.fetchone()results=cursor.fetchall()<!--插⼊数据-->sql="insert into user(username,password) value('james','123456')"cursor.execute(sql)<!--提交数据-->mit()<!--回滚操作-->db.rollback()<!--删除数据-->sql="delete from user where username='james'"cursor.execute(sql)mit()<!--修改数据数据-->sql="update user set password='zhou123' where username='james' "cursor.execute(sql)mit()6、关闭游标和连接cursor.close()db.close()7、总结 python pymysql对于msyql的操作原理实际上是基于执⾏sql语句,当修改数据时,需要commit操作,记住以上的操作步骤,其他的只需要学好sql语句就OK了。
Python操作Mysql实例教程手册(带书签)
![Python操作Mysql实例教程手册(带书签)](https://img.taocdn.com/s3/m/7edc9fe5524de518964b7d0b.png)
来源:疯狂的蚂蚁的博客 总结和整理
运行结果: 1 Jack London 2 Honore de Balzac 3 Lion Feuchtwanger 4 Emile Zola 5 Truman Capote
numrows = int(cur.rowcount)用于获取结果集的数目 row = cur.fetchone()每次取出一行数据,同时记录集的指针执行下一行
来源:疯狂的蚂蚁的博客 总结和整理
本文介绍了 Python 操作 MYSQL、执行 SQL 语句、获取结果集、遍历结果集、取得某个字 段、获取表字段名、将图片插入数据库、执行事务等各种代码实例和详细介绍,代码居多, 是一桌丰盛唯美的代码大餐。
实例 1、取得 MYSQL 的版本
CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);
然后运行如下 PYTHON 代码进行:
# -*- coding: UTF-8 -*# 来源:疯狂的蚂蚁的博客 总结整理 import MySQLdb as mdb import sys try: #用读文件模式打开图片 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') #获取执行 cursor cursor = 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)
Python操作mysql数据库...
![Python操作mysql数据库...](https://img.taocdn.com/s3/m/2a05c8986429647d27284b73f242336c1eb93071.png)
Python操作mysql数据库...本⽂实例讲述了Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()⽤法。
分享给⼤家供⼤家参考,具体如下:demo.py(查询,取出⼀条数据,fetchone):from pymysql import *def main():# 创建Connection连接conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_dong',charset='utf8')# 获得Cursor对象cs1 = conn.cursor()# 执⾏select语句,并返回受影响的⾏数:查询⼀条数据count = cs1.execute('select id,name from goods where id>=4')# 打印受影响的⾏数print("查询到%d条数据:" % count)for i in range(count):# 获取查询的结果result = cs1.fetchone()# 打印查询的结果print(result) # 元组 (1, '张三', 20, '男')# 获取查询的结果# 关闭Cursor对象cs1.close()conn.close()if __name__ == '__main__':main()demo.py(查询,取出多条数据,fetchmany,fetchall):from pymysql import *def main():# 创建Connection连接conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_dong',charset='utf8')# 获得Cursor对象cs1 = conn.cursor()# 执⾏select语句,并返回受影响的⾏数:查询⼀条数据count = cs1.execute('select id,name from goods where id>=4')# 打印受影响的⾏数print("查询到%d条数据:" % count)# for i in range(count):# # 获取查询的结果# result = cs1.fetchone() # 取出⼀条记录,返回元组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
来源:疯狂的蚂蚁的博客 总结和整理
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') #获取执行 cursor cursor = conn.cursor() #直接将数据作为字符串,插入数据库 cursor.execute("INSERT INTO Imageபைடு நூலகம் 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)
CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);
然后运行如下 PYTHON 代码进行:
# -*- coding: UTF-8 -*# 来源:疯狂的蚂蚁的博客 总结整理 import MySQLdb as mdb import sys try: #用读文件模式打开图片 fin = open("../web.jpg") #将文本读入 img 对象中 img = fin.read() #关闭文件
运行结果(在 phpmyadmin 中查看,在 mysql 命令行查看结果是一样的):
来源:疯狂的蚂蚁的博客 总结和整理
实例 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 里面
运行结果: 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
结果: Number of rows updated: 1
实例 7、把图片用二进制存入 MYSQL
有人喜欢把图片存入 MYSQL(这种做法貌似很少吧),我看大部分的程序,图片都是存放 在服务器上的文件,数据库中存的只是图片的地址而已,不过 MYSQL 是支持把图片存入数 据库的,也相应的有一个专门的字段 BLOB (Binary Large Object),即较大的二进制对象 字段,请看如下程序,注意测试图片自己随便找一个,地址要正确: 首先,在数据库中创建一个表,用于存放图片:
执行结果: Database version : 5.5.25
实例 2、创建一个表并且插入数据
主要还是在 cursor 上面执行 execute 方法来进行,请见源码:
来源:疯狂的蚂蚁的博客 总结和整理
# -*- 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')")
# -*- coding: UTF-8 -*# 来源:疯狂的蚂蚁的博客 总结整理 import MySQLdb as mdb import 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]
来源:疯狂的蚂蚁的博客 总结和整理
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’) 上面的代码,用来将所有的结果取出,不过打印的时候是每行一个元祖打印,现在我们使用 方法,取出其中的单个数据:
在 windows 环境下安装 mysql 模块用于 python 开发,请见我的另一篇文章: MySQL-python Windows 下 EXE 安装文件下载
# -*- 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()
来源:疯狂的蚂蚁的博客 总结和整理
实例 5、获取单个表的字段名和信息的方法
# -*- coding: UTF-8 -*# 来源:疯狂的蚂蚁的博客 总结整理 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