前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据库编程pymysql

Python数据库编程pymysql

作者头像
Python碎片公众号
发布2021-02-26 14:31:51
1.3K0
发布2021-02-26 14:31:51
举报
文章被收录于专栏:Python碎片公众号的专栏

一、数据库编程介绍

数据库编程就是针对数据库的操作,通过编写程序的方式,让程序做为数据库的客户端进行数据库操作。

对于MySQL的操作我们可以通过SQL语句,但是有很多情况下我们需要写入MySQL的数据非常多,并且是在从其他平台获取数据的同时写入MySQL,需要边获取边写入,这种情况是不适合使用SQL语句的。

有些情况是我们需要读取MySQL中的数据,来给代码使用,这个时候我们需要将数据直接读到代码中,也不适合使用SQL语句。

Python提供了一个数据库编程的库pymysql,通过pymysql,我们可以通过代码来对数据库进行增、删、改、查操作,而不需要使用SQL语句,并且可以从其他平台获取数据的同时将数据写到数据库中,也可以读取数据后立即给代码使用。

本文就介绍pymysql对MySQL数据库的增、删、改、查操作方法。

二、准备事项

要对数据库进行操作,我们需要先准备好数据库,数据表以及连接数据库的用户。

我们先用通过root用户登录MySQL。

代码语言:javascript
复制
mysql -u root -p

1.创建数据库

代码语言:javascript
复制
pymysql_demo create database pymysql_demo charset utf8; 

2.使用数据库pymysql_demo

代码语言:javascript
复制
use pymysql_demo; 

3.创建表test_table

代码语言:javascript
复制
create table test_table(id int unsigned primary key auto_increment not null,
create_time TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP,
test_data LONGTEXT not null); 

4.创建数据库用户pymysql

代码语言:javascript
复制
# 用户名 pymysql, 密码 mysql 只能对pymysql_demo数据库进行操作,可以进行所有操作 
grant all privileges on pymysql_demo.* to 'pymysql'@'localhost' identified by 'mysql';

三、数据插入操作

在Python中操作数据库,不管是增删改查,都要经过五个步骤,分别是连接数据库,获取游标,数据库操作,关闭游标,关闭数据库连接。

代码语言:javascript
复制
from pymysql import connect
 
 
def insert_data():
    """
    在mysql中新增一条数据
    """
    # 1.创建连接
    conn = connect(
        host="localhost",
        port=3306,
        user="pymysql",
        password="mysql",
        database="pymysql_demo",
        charset="utf8"
    )
    # 2.创建游标
    cursor = conn.cursor()
    # 3.执行语句
    sql = '''insert into test_table values(0, now(), 'Hello MySQL!');'''
    try:
        cursor.execute(sql)
        conn.commit()
    except Exception as e:
        print(e)
    # 4.关闭游标
    cursor.close()
    # 5.关闭连接
    conn.close()
 
 
insert_data()

运行以上代码后,就会在数据库中插入数据“Hello MySQL!”。

如果我们需要插入更复杂的数据,将上面sql字符串修改一下就可以了。

如果我们需要插入更多的数据,将插入函数放在循环语句中多次执行就可以了。

四、数据查询操作

代码语言:javascript
复制
def select_data():
    """
    从mysql中查询数据
    """
    conn = connect(
        host="localhost",
        port=3306,
        user="pymysql",
        password="mysql",
        database="pymysql_demo",
        charset="utf8"
    )
    cursor = conn.cursor()
    row_one = None
    sql = '''select * from test_table;'''
    try:
        cursor.execute(sql)
        row_one = cursor.fetchone()
    except Exception as e:
        print(e)
    cursor.close()
    conn.close()
    print(row_one)
 
 
select_data()

运行结果:

代码语言:javascript
复制
(1, datetime.datetime(2019, 5, 19, 19, 11, 11), 'Hello MySQL!')

查询操作其实跟插入操作的步骤是一样的,只是连接数据库之后执行的是查询语句,不是插入语句。

要进行更复杂的查询,只要将sql字符串换成您需要的SQL语句就行了。

其中的fetchone()是获取查询集中的一条数据,返回结果是一个元组。还有fetchmany()和fetchall()两个方法,fetchmany()可以接收一个整数参数,返回整数条数据,结果是一个嵌套的元组。fetchall()返回查询到的所有数据,返回结果也是一个嵌套的元组。

五、数据删除操作

代码语言:javascript
复制
def delete_data():
    """
    从mysql中删除数据
    """
    conn = connect(
        host="localhost",
        port=3306,
        user="pymysql",
        password="mysql",
        database="pymysql_demo",
        charset="utf8"
    )
    cursor = conn.cursor()
    sql = '''delete from test_table;'''
    try:
        cursor.execute(sql)
        conn.commit()
    except Exception as e:
        print(e)
    cursor.close()
    conn.close()
 
 
delete_data()

执行上面的代码后,数据表中的所有数据都会被删除。

在实际使用中,基本不会删除表中所有的数据,所以使用时把sql字符串换成自己需要的修改或者删除语句就行了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python 碎片 微信公众号,前往查看

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

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

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