pymysql实现python操作数据库增删改查

官方文档:官方文档
API文档:API

一、mysql创建数据库

首先,我们在mysql中创建一个名为travel的数据库,并在数据库中创建flights表。

1.1 创建数据库和表

/*创建数据库travel*/
DROP DATABASE IF EXISTS travel;
CREATE DATABASE IF NOT EXISTS travel;
USE travel;
/*创建数据库中的关系模式*/
CREATE TABLE IF NOT EXISTS flights(
	flightNum VARCHAR(30) PRIMARY KEY,#航班号
	price INT,#机票价格
	numSeats INT,#座位总数
	numAvail INT,#可被预定座位数
	FromCity VARCHAR(30),#起点
	ArivCity VARCHAR(30),#终点
	CONSTRAINT ck_numAvail CHECK(numAvail<=numSeats AND numAvail>=0),
	CONSTRAINT ck_price CHECK(price>=0),
	CONSTRAINT ck_numSeats CHECK(numSeats>=0)
)

1.2插入数据

然后,我们在mysql中插入一定量的数据。

INSERT INTO flights
VALUES('CA1206','1500','100','100','Houston','Olympic'),
('CZ3151','800','100','100','Lincoln','Washington D.C.'),
('CP2452','900','100','100','Olympic','New Orleans'),
('CN1242','1000','100','100','Miami','New York'),
('CM1672','780','100','100','New York','Lincoln');

1.3 查看数据

在mysql中查看flights表中数据

SELECT *FROM `flights`;

在这里插入图片描述

二、pymysql操作数据库

2.1 引入库mysql库

from pymysql import *
import pandas as pd

2.2 查询操作

进行查询操作,我们创建函数select_text()用来查询数据库中的数据。

#查询数据
def select_text():
    #创建Connection连接,password为你的mysql用户密码
    conn=connect(host='localhost',port=3306,user='root',password='XXXXXX',database='travel')
    #获取游标对象
    cs1=conn.cursor()
    #执行select语句,并返回影响行数:查询一条数据
    count=cs1.execute('select * from flights;')
    #打印受影响的行数
    print('受影响的数据有:',count,'行')
    #获取查询全部数据,返回结果为元组
    result=cs1.fetchall()
    #将结果转化为dataframe形式
    table_list=[]
    for i in result:
        table_list.append(list(i))
    df=pd.DataFrame(table_list,columns=["flightnum","price","numSeats","numAvail","FromCity","ArivCity"])
    #关闭游标
    cs1.close()
    #关闭连接
    conn.close()
    return df

调用函数,我们可以得到以下结果:

print(select_text())

在这里插入图片描述

2.3 增删改操作

对于mysql中的插入,更新,删除语句,我们均可以使用execute函数来实现,我们只需要更改execute函数中的字符串便可以实现三种mysql基本语句。在这里以插入语句insert为例来进行python代码实现。
在代码中,需要注意的是,每一次执行execute语句,均需在execute后执行commit语句,因为pymysql库默认执行mysql语句为事务形式,在执行事务后,需要进行事务提交才能成功执行mysql语句。

#增删改
def change_data():
    #创建Connection连接
    conn=connect(host='localhost',port=3306,user='root',password='XXXXXXX',database='travel')
    #获取游标对象
    cs1=conn.cursor()
    #输入插入语句
    cs1.execute("INSERT INTO flights VALUES('CA1230','6500','90','90','Olympic','Houston');")
    #提交事务
    conn.commit()
    cs1.close()
    conn.close()

调用函数:

change_data()

再次执行查询语句:

print(select_text())

我们可以得到:
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oax_knud

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值