39_Python-PyMySQL数据库编程

本文介绍了Python中的PyMySQL库如何连接并操作MySQL数据库。首先讲解了数据库编程的概念,然后通过四个步骤(登陆MySQL、创建数据库、使用数据库、创建表)进行准备。在数据插入操作部分,详细阐述了连接数据库、获取游标、执行操作、关闭游标和关闭连接的过程,以及如何进行数据的增加、查询和批量操作。
摘要由CSDN通过智能技术生成

一、数据库编程

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,
Python2中则使用MySQLdb。
在这里插入图片描述
数据库编程就是针对数据库的操作,通过编写程序的方式,让程序做为数据库的客户端进行数据库操作。

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

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

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

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

二、准备事项

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

1、通过root用户登陆MySQL

mysql -u root -p

2、创建数据库pymysql_demo

create database pymysql_demo charset utf8;

3、使用数据库pymysql_demo

use pymysql_demo;

4、创建表test_table

create table test_table(
id int unsigned primary key auto_increment not null,
create_time timestamp not null default current_timestamp,
test_data longtext notnull               
);

在这里插入图片描述

三、数据插入操作

在Python中操作数据库不管增删改查,都要经过5个步骤;

连接数据库——获取游标——数据库操作——关闭游标——关闭数据库连接;

【1】增加

from pymysql import connect
import pymysql
def insert_data():
    """在mysql中新增一条数据"""
    #1)创建连接
    conn = pymysql.connect(
        host ="localhost",
        port = 3306,
        user ='root',
        password = 'westos',
        database = 'pymysql_demo',
        charset ='utf8'
    )
    """# 1. 与mysql建立连接 mysql -h host/ip  -u root -p westos
      conn = pymysql.connect(host='172.25.254.123(服务端ip)
                            user='root' 
                            password='westos', 
                            db='pymysql_demo')
    """
    #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()

在这里插入图片描述
【2】查询
fetchone():该方法获取下一个查询结果集。结果集是一个对象
fetchall():接受全部的返回结果行
rowcount():这是一个只读属性,并返回执行execute()方法后影响的行数。
其中的fetchone()是获取查询集中的一条数据,返回结果是一个元组。还有fetchmany()和fetchall()两个方法,fetchmany()可以接收一个整数参数,返回整数条数据,结果是一个嵌套的元组。fetchall()返回查询到的所有数据,返回结果也是一个嵌套的元组。

def select_data():
    """从mysql中查询数据"""
    conn = pymysql.connect(
        host="localhost",
        port=3306,
        user='root',
        password='westos',
        database='pymysql_demo',
        charset='utf8'
    )
    cursor = conn.cursor()
    #row_one =None
    sql ='''select * from test_table;'''
    try:
        cursor.execute(sql)
        data = cursor.fetchone()
        conn.commit()
        print(data)
    except Exception as e:
        print(e)

    cursor.close()
    conn.close()
    #print(row_one)

在这里插入图片描述

【3】创建一个新表

def create_sqltable():
    conn =connect(
        host ='localhost',
        user ='root',
        port = 3306,
        password ='westos',
        db = 'pymysql_demo',
        charset ='utf8'
    )
    cursor =conn.cursor()
    sql ='''create table student(id int,name varchar(20),age int, score float );'''
    try:
        cursor.execute(sql)
        conn.commit()
    except Exception as e:
        print(e)
    cursor.close()
    conn.close()

在这里插入图片描述
在这里插入图片描述
【4】批量操作

def insert_datas():
    """在mysql中批量新增数据"""
    #1)创建连接
    conn = pymysql.connect(
        host ="localhost",
        port = 3306,
        user ='root',
        password = 'westos',
        database = 'pymysql_demo',
        charset ='utf8'
    )
    """# 1. 与mysql建立连接 mysql -h host/ip  -u root -p westos
      conn = pymysql.connect(host='172.25.254.123(服务端ip)
                            user='root' 
                            password='westos', 
                            db='pymysql_demo')
    """
    #2)创键游标
    cursor =conn.cursor()
    #3)执行语句
    sql ='''insert into student(name, score) values("%s", "%s");'''
    import random
    for i in range(10):
        name ="学生"+str(i+1)
        score = random.randint(50,100)
        sqls = sql % (name,score)

        try:
            cursor.execute(sqls)
            conn.commit()
        except Exception as e:
            print(e)
    #4)关闭游标
    cursor.close()
    #5)关闭连接
    conn.close()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值