当前位置: 首页 > 科技观察

如何使用Python连接到MySQL数据库?

时间:2023-03-19 00:07:42 科技观察

这篇笔记参考了PyMySQL官方文档和《python数据采集》关于数据存储的内容。欢迎您阅读原著,相信您会理解得更透彻。补充:文末增加了Oracle数据库的连接方法,大同小异。背景:我是在Anaconda笔记本上做的连接实验,环境是Python3.6,当然也可以在PythonShell中操作。连接MySQL数据库最常用且稳定的python库是PyMySQL,所以本文主要讨论如何使用PyMySQL连接MySQL数据库以及如何存储数据。开始吧:1、安装PyMySQL库最简单的方法:在命令行输入pipinstallpymysql或:下载whl文件进行安装,安装过程自行百度。2.安装MySQL数据库。MySQL数据库有两种类型:MySQL和MariaDB。我使用后者的MariaDB。两者在大部分演出中是兼容的,使用时没有区别。给出下载地址:MySQL、MariaDB,安装过程很简单,一路NextStep,不过记住密码。有个小插曲,MySQL和MariaDB相当于姐弟关系,都是同一个人(Widenius)创造的。MySQL被Oracle收购后,Widenius先生心里不爽,于是他打造了MariaDB,完全可以替代MySQL。丹尼尔是任性的。3.SQL的基本语法下面用到SQL的建表、查询、数据插入等功能。这里简单介绍一下SQL语言的基本语句。查看数据库:SHOWDATABASES;创建数据库:CREATEDATEBASE数据库名;使用数据库:使用数据库名称;查看数据表:SHOWTABLES;创建数据表:CREATETABLE表名(列名1(数据类型1),列名2(数据类型2));插入数据:INSERTINTO表名(列名1,列名2)VALUES(数据1,数据2);查看数据:SELECT*FROM表名;更新数据:UPDATE表名SET列名1=新数据1,列名2=新数据2WHERE某列=某数据;4.连接数据库安装好必要的文件和库之后,我们就正式开始连接数据库吧。虽然玄乎,但并不难!#首先导入PyMySQL库importpymysql#连接数据库,创建连接对象connection#连接对象的作用是:连接数据库,发送数据库信息,处理回滚操作(当查询中断时,数据库返回到原始状态),新建一个游标对象connection=pymysql.connect(host='localhost'#host属性user='root'#usernamepassword='******'#这里填写登录密码数据库db='mysql'#databasename)执行这段代码连接Ok!5、使用python代码操作MySQL数据库首先我们看一下有哪些数据库可用:#创建一个游标对象,一个连接可以有多个游标,一个游标跟踪一个数据状态。#游标对象的作用是:、创建、删除、写入、查询等cur=connection.cursor()#查看有哪些数据库可用,通过cur.fetchall()得到所有查询的结果print(cur.fetchall())打印出Alldatabases:(('information_schema',),('law',),('mysql',),('performance_schema',),('test',))创建表在test数据库中:#使用数据库testcur.execute('USEtest')#在test数据库中创建一个表student,有name列和age列cur.execute('CREATETABLEStudent(nameVARCHAR(20),ageTINYINT(3))')在数据表student中插入一条数据:sql='INSERTIINTOStudent(name,age)VALUES(%s,%s)'cur.execute(sql,('XiaoMing',23))查看数据表中学生的内容:cur.execute('SELECT*FROMstudent')print(cur.fetchone())prints:('XiaoMing',23)Bingo!就是我们刚刚插入的一条数据最后记得关闭游标和连接:#关闭连接对象,否则会造成连接泄漏,消耗数据库资源connection.close()#关闭游标cur.close()就OK了,整个过程大致是这样的。当然这些都是很基础的操作,更多的使用方法还需要去PyMySQL官方文档中寻找。补充:Oracle数据库连接1、下载安装外包cx_Oracle,方法:在命令行输入pipinstallcx_Oracle2,connectconn=oracle.connect('username/password@host:port/sid')#填写username/password/数据库分别IP地址:端口/sid3,获取游标对象cursorcur=conn.cursor()4、使用游标进行各种操作cur.execute(sql语句)5、关闭游标,conncursor.close()conn.close()【编辑推荐】MySQL是如何实现多版本并发的?Python也能操作MySQL数据库为什么Python不支持i++/i--操作数据科学领域的顶级语言:Python排名第一,SQL紧随其后200天!18岁上海高中生用250行Python代码“注入灵魂”自制机器人