pymysql的使用

1.安装

pip install pymysql

2.连接到数据库

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

使用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()


复制代码

 

posted @   邹邹很busy。  阅读(590)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示

目录导航