前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用PyMysql操作MySQL数据库?

如何使用PyMysql操作MySQL数据库?

作者头像
MySQL数据库技术栈
发布2020-08-05 17:09:05
4.8K0
发布2020-08-05 17:09:05
举报
文章被收录于专栏:MySQL数据库技术栈

最近刷短视频经常看到python广告,有句广告词是:你要悄悄学Python,然后惊艳所有人。这几年确实Python大火,它在数据分析、人工智能、自动化运维、网络爬虫等领域都得到了大量的应用。今天我们一起来看看pymysql是怎么操作数据库的,后续也有利于我们开发一些自动化运维的工具和脚本,减轻DBA的工作。

安装python和pymysql

安装包下载:

首先下载安装包,python下载网址:

https://www.python.org/。

PyMysql下载地址: https://github.com/PyMySQL/PyMySQL

代码语言:javascript
复制
#编译安装:
shell>tar-zxvf Python-3.6.5.tgz
shell>cd Python-3.6.5
shell>./configure
shell>make&& make install

系统原来的python在/usr/bin/python,可以把这个删除,也可以新建一个python3的软链接,只不过执行的时候要python要改成python3,脚本头部声明改成/usr/bin/python3,这里为了方便,我们把之前的python重命名。

代码语言:javascript
复制
#在/usr/bin下设置软连接,我的Python3安装在/usr/local/bin下
shell>mv python python.bak
shell>ln -s /usr/local/bin/python3 /usr/bin/python

命令行按下退格键时出现乱码需要安装readline插件。

安装pymysql

代码语言:javascript
复制
shell>tar-zxvf PyMySQL-0.9.3.tar.gz
shell>cd PyMySQL-0.9.3
shell>python setup.py install

打开python命令行输入:import pymysql,没有报错即正常

Pymysql的基本用法

1. 数据库连接

代码语言:javascript
复制
#!/usr/bin/python
#-*-coding:utf-8 -*-
import pymysql
if__name__=='__main__':
    #打开数据库连接,参数:1.主机或者ip 2.用户名 3.密码 4.数据库名
   db=pymysql.connect("localhost","pymysql","pymysql","test")
    #创建游标对象
    cursor=db.cursor()
    #执行SQL查询
    cursor.execute("select VERSION()")
    #获取单条结果
    data=cursor.fetchone()
    #打印输出
    print("Mysql version is:%s" %data)
    #关闭数据库连接
db.close()
输出:Mysql version is:5.7.26-log

2. 创建表

代码语言:javascript
复制
#!/usr/bin/python
#-*-coding:utf-8 -*-
import pymysql
if__name__=="__main__":
   #打开数据库连接,参数:1.主机或者ip 2.用户名 3.密码 4.数据库名
   db=pymysql.connect("localhost","pymysql","pymysql","test")
    #创建游标对象
    cursor=db.cursor()
    #执行SQL查询
    cursor.execute("drop table if existstest")
    #使用预处理语句创建表
    sql="""create table test(
           id int primary key not null,
           name varchar(20) not null,
           age int not null)"""
    #创建表
    cursor.execute(sql)
    #关闭数据库连接
db.close() 

3. 插入数据

代码语言:javascript
复制
#!/usr/bin/python
#-*-coding:utf-8 -*-
import pymysql
if__name__ == "__main__":
    #打开数据库连接,参数:1.主机或者ip 2.用户名 3.密码 4.数据库名
   db=pymysql.connect("localhost","pymysql","pymysql","test")
    #创建游标对象
    cursor=db.cursor()
    #使用预处理语句创建表
    sql="insert into test(name,age)values('%s','%s')" % ('lj',30)
    try:
        #插入数据
        cursor.execute(sql)
        db.commit()
    except:
        db.rollback()
    #关闭数据库连接
db.close() 

4. 插入多条数据

代码语言:javascript
复制
#!/usr/bin/python
#-*-coding:utf-8 -*-
import pymysql
if__name__ == "__main__":
    #打开数据库连接,参数:1.主机或者ip 2.用户名 3.密码 4.数据库名
   db=pymysql.connect("localhost","pymysql","pymysql","test")
    #创建游标对象
    cursor=db.cursor()
    #数据列表
   data=[("jack",23),("tom",32),("jim",18),]
    try:
        #插入数据
        cursor.executemany("insert intotest(name,age) values(%s,%s)",data)
        db.commit()
    except:
        db.rollback()
    #关闭数据库连接
db.close()

5. 查询数据

主要函数:

  1. fetchone() 一次一条数据。
  2. fetchmany() 一次多条数据,括号内填入要读取的数据条数。不填则为1条数据,如果读数超过实际条数,只显示实际条数。
  3. fetchall() 一次读取全部数据,如果管道内没有数据,则返回空元组或空列表。

fetch获取的数据默认是元组,如果需要获取某个字段的值需要通过以下方法获取。

代码语言:javascript
复制
#!/usr/bin/python
#-*-coding:utf-8 -*-
import pymysql
if__name__ == "__main__":
    #打开数据库连接,参数:1.主机或者ip 2.用户名 3.密码 4.数据库名
    db=pymysql.connect("localhost","pymysql","pymysql","test")
    #创建游标对象
    cursor=db.cursor()
    #使用预处理语句创建表
    sql="select * from test where age>%s" % 20
    #查询
cursor.execute(sql)
#获取结果
result=cursor.fetchall()
#循环遍历
    for row in result:
        name=row[1]
        age=row[2]
        print("My name is:%s,age is%s!" % (name,age))
    #关闭数据库连接
db.close()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL数据库技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档