pymysql 入门及填坑

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
机器学习/深度学习 Java 数据挖掘
selenium的配置与基本使用(1),2024年最新网易Python面试必问
selenium的配置与基本使用(1),2024年最新网易Python面试必问
|
SQL 自然语言处理 Oracle
史上最详细的JDBC入门教程(初学者必看)
JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现,本文中的代码都是针对MySQL数据库实现的。
1403 0
史上最详细的JDBC入门教程(初学者必看)
|
SQL Ubuntu Java
一文搞懂JDBC应该怎么用,附代码实例
说到Java的常见框架,JDBC一定是榜上有名。 虽然大多数人会使用Mybatis来做Java应用和MySQL之间的数据交互,但了解JDBC依然是一个Java工程师的基本功。 本篇文章,就来介绍一下JDBC这个框架,最后内会附上代码实例。
204 1
一文搞懂JDBC应该怎么用,附代码实例
|
编解码 关系型数据库 MySQL
MySQL进阶技能树:不断填平实战开发中遇见的坑
MySQL进阶技能树:不断填平实战开发中遇见的坑
77 0
|
SQL 数据可视化 数据库
【SQLite预习课3】SQLite 的常用语法
【SQLite预习课3】SQLite 的常用语法
215 0
|
SQL Oracle Java
JDBC 拾枝杂谈—入门篇(通俗易懂)
JDBC 第一节 拾枝杂谈 带你快速入门!
153 0
|
Java 数据库连接 数据库
JavaWeb第二章课后题 JDBC进阶
JavaWeb第二章课后题 JDBC进阶
85 0
|
数据库 索引
Peewee进阶 | 你必须得会的!
Peewee进阶 | 你必须得会的!
349 0
|
Oracle 关系型数据库 MySQL
FastAPI 学习之路(三十二)创建数据库
FastAPI 学习之路(三十二)创建数据库
FastAPI 学习之路(三十二)创建数据库