Python操作Mysql实例教程手册(带书签)

合集下载

Python3操作MySQL数据库

Python3操作MySQL数据库

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数据库的方法以及一个实例

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实例

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数据库

使⽤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数据库

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使用方法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数据库

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简单实例

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”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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
相关文档
最新文档