pymysql的使用

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: pymysql的使用

1.安装


pip install pymysql


2.连接到数据库


先来查看一下数据库里有哪些数据

1a0ab6b5fa37380f9caa1a2534beca74_1709161-20190607222304345-461399360.png

使用pymysql 下的connect方法来连接数据库,先来看下需要哪些参数

进入源码可以看到需要的参数

(      host=None, user=None, password="",
        database=None, port=0, unix_socket=None,
        charset='', sql_mode=None,
        read_default_file=None, conv=None, use_unicode=None,
        client_flag=0, cursorclass=Cursor, init_command=None,
        connect_timeout=10, ssl=None, read_default_group=None,
        compress=None, named_pipe=None,
        autocommit=False, db=None, passwd=None, local_infile=False,
        max_allowed_packet=16*1024*1024, defer_connect=False,
        auth_plugin_map=None, read_timeout=None, write_timeout=None,
        bind_address=None, binary_prefix=False, program_name=None,
        server_public_key=None

别怕,最常用的参数也就是那几个,直接看代码

import pymysql
# 创建连接,test1为数据库
conn = pymysql.connect(
    host = '127.0.0.1',
    user = 'root',
    password="123456",
    database='test1',
    port=3306,
    charset='utf8',
)
# 创建游标
cursor = conn.cursor()
# 执行sql语句
row=cursor.execute('select * from student')
print(row)
# 关闭连接,游标和连接都要关闭
cursor.close()
conn.close()
执行结果为:4


3.查询


pymysql里查询分为查询一条,查询多条和查询全部

查询一条

import pymysql
# 创建连接
conn = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password="123456",
    database='test1',
    port=3306,
    charset='utf8',
)
# 创建游标
cursor = conn.cursor()
# 执行sql语句
row = cursor.execute("select * from student")
# 取一条数据
print(cursor.fetchone())
# 在取一条数据
print(cursor.fetchone())
执行结果:
(1, '李六', 23)
(2, '王五', 23)


查询多条


import pymysql
# 创建连接
conn = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password="123456",
    database='test1',
    port=3306,
    charset='utf8',
)
# 创建游标
cursor = conn.cursor()
# 执行sql语句
row = cursor.execute("select * from student")
#参数是需要查询几条
print(cursor.fetchmany(2))
执行结果:
((1, '李六', 23), (2, '王五', 23))


查询所有


import pymysql
# 创建连接
conn = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password="123456",
    database='test1',
    port=3306,
    charset='utf8',
)
# 创建游标
cursor = conn.cursor()
# 执行sql语句
row = cursor.execute("select * from student")
# 查询所有
print(cursor.fetchall())
执行结果:((1, '李六', 23), (2, '王五', 23), (4, '李四', 54), (11, '张三', 33))

通过上面的查询,发现返回的都是元组,pymysql提供了返回字典的格式,只需要在创建游标的时候加上cursor=pymysql.cursors.DictCursor就可以里

然后再来执行上面的代码

import pymysql
# 创建连接
conn = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password="123456",
    database='test1',
    port=3306,
    charset='utf8',
)
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 执行sql语句
row = cursor.execute("select * from student")
# 查询所有
print(cursor.fetchall())
执行结果:[{'id': 1, 'name': '李六', 'age': 23}, {'id': 2, 'name': '王五', 'age': 23}, {'id': 4, 'name': '李四', 'age': 54}, {'id': 11, 'name': '张三', 'age': 33}]


3.插入数据


import pymysql
# 创建连接
conn = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password="123456",
    database='test1',
    port=3306,
    charset='utf8',
)
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 插入一条数据
cursor.execute("insert into student(name,age) values('haohao',26)")
data = [
    ('M1', 26),
    ('M2', 22),
    ('M3', 30)
]
# 一次性插入多条数据
cursor.executemany("insert into student(name,age)  values(%s,%s)", data)
# 插入 删除 更新 一定要commit()
conn.commit()
cursor.close()
conn.close()

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
12月前
|
SQL 关系型数据库 数据库连接
python库之—psycopg2
python库之—psycopg2
|
2月前
|
SQL 关系型数据库 数据库连接
Python中使用pymysql和pymssql进行数据库操作的完整指南
Python中使用pymysql和pymssql进行数据库操作的完整指南
243 0
|
9月前
|
SQL 存储 关系型数据库
【flask-sqlalchemy】SQLAlchemy+PyMysql到mysql的映射
【flask-sqlalchemy】SQLAlchemy+PyMysql到mysql的映射
109 0
|
9月前
|
数据采集 SQL 数据库连接
如何使用Python和pymysql库连接数据库
如何使用Python和pymysql库连接数据库
|
关系型数据库 MySQL Python
peewee: OperationalError: (2006, ‘MySQL server has gone away’)
peewee: OperationalError: (2006, ‘MySQL server has gone away’)
255 0
PyMySQL模块安装指南
PyMySQL模块安装指南
349 0
PyMySQL模块安装指南
|
SQL Oracle 关系型数据库
FastAPI如何优雅的连接数据库?
FastAPI如何优雅的连接数据库?
2178 0
FastAPI如何优雅的连接数据库?
|
数据库
封装pymysql
封装pymysql
|
存储 关系型数据库 MySQL
Python 3 —— 使用 PyMySQL 操作 MySQL8
Python 3 —— 使用 PyMySQL 操作 MySQL8
309 0
Python 3 —— 使用 PyMySQL 操作 MySQL8
|
SQL 数据库 Python
使用pymysql(使用一)
创建数据表 import pymysql db = pymysql.connect("localhost","root","","hank") cursor = db.cursor() cursor.
1254 0