pymysql 入门及填坑

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: pymysql 入门及填坑

pymysql 入门及填坑


1、安装 pymysql

1. pip install pymysql
2. # 或
3. python3 -m pip install PyMySQL

2、官网例子

1)建表

CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `email` varchar(255) COLLATE utf8_bin NOT NULL,
    `password` varchar(255) COLLATE utf8_bin NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
AUTO_INCREMENT=1 ;

注意:一定要有一个自增的字段,此处为 ‘id’

2)建立连接

import pymysql.cursors
# Connect to the database
connection = pymysql.connect(host='localhost',
                             user='user',
                             password='passwd',
                             db='db',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)
try:
    with connection.cursor() as cursor:
        # Create a new record
        sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
        cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
    # connection is not autocommit by default. So you must commit to save
    # your changes.
    connection.commit()
    with connection.cursor() as cursor:
        # Read a single record
        sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
        cursor.execute(sql, ('webmaster@python.org',))
        result = cursor.fetchone()
        print(result)
finally:
    connection.close()

输出结果:

{'password': 'very-secret', 'id': 1}

3)注意

%s 是占位符,可以代替所有类型的字段的占位,也可以使用对应类型进行占位,如:

insert_sql = "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, SALARY) VALUES (%s, %s, %s, %s, %s)"    # 注意不是'%s',而是%s
args_list = [('Mei', 'Han', 20, 'F', 3000.00), ('Obama', 'Qiao', 57, 'M', 2348.01), ('Jim', 'Cluse', 35, 'F', 2231.01), ('Macer', 'Jordan', 45, 'M', 2340.10)]
// 原文链接:https://www.cnblogs.com/smartsmile-yxh/p/11988644.html

或者:

sql = "INSERT INTO EMPLOYEE(FIRST_NAME, 
   LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('%s', '%s', '%d', '%c', '%d' )" % 
   ('Max', 'Su', 25, 'F', 2800)
//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/python/python_database_access.html


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
机器学习/深度学习 Java 数据挖掘
selenium的配置与基本使用(1),2024年最新网易Python面试必问
selenium的配置与基本使用(1),2024年最新网易Python面试必问
|
编解码 关系型数据库 MySQL
MySQL进阶技能树:不断填平实战开发中遇见的坑
MySQL进阶技能树:不断填平实战开发中遇见的坑
68 0
|
SQL Oracle 关系型数据库
【SQLite预习课1】SQLite简介——MySQL的简洁版
【SQLite预习课1】SQLite简介——MySQL的简洁版
126 0
|
Java 数据库连接 数据库
JavaWeb第二章课后题 JDBC进阶
JavaWeb第二章课后题 JDBC进阶
73 0
|
SQL 存储 关系型数据库
MySQL超详细学习教程,2023年硬核学习路线(一)
MySQL超详细学习教程,2023年硬核学习路线(一)
569 0
|
SQL 存储 架构师
MySQL超详细学习教程,2023年硬核学习路线(三)
MySQL超详细学习教程,2023年硬核学习路线(三)
148 0
|
SQL 关系型数据库 MySQL
MySQL超详细学习教程,2023年硬核学习路线(二)
MySQL超详细学习教程,2023年硬核学习路线(二)
146 0
|
SQL Oracle 关系型数据库
Python学习笔记第十九天(MySQL数据库)
Python学习笔记第十九天讲解什么是MySQLdb、如何安装MySQLdb、数据库连接、创建数据库表、数据库插入操作的用法。
108 0
Python学习笔记第十九天(MySQL数据库)
|
SQL 关系型数据库 MySQL
软件开发入门教程网之​​MySQL 连接的使用
软件开发入门教程网之​​MySQL 连接的使用
110 0