Zhong__pymysql基本使用

时间:2020.12.02

环境:Python3

目的:简单使用pymysql库

说明:

作者:Zhong QQ交流群:121160124 欢迎加入!

 

新建一个用于演示的MySQL表

CREATE TABLE `test_demo`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
  `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
  `create_time` datetime(0) NOT NULL,
  `update_time` datetime(0) NOT NULL ON UPDATE CURRENT_TIMESTAMP(0),
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 101 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;

 

 安装pymysql

pip3 install -i https://pypi.douban.com/simple pymysql

常用的方法代码

 假设mysql存在用户名为 admin 密码为 Pass@123 的用户

#!/usr/bin/python3
import pymysql
import datetime

# 获取当前的时间
time_now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

try:
    # 建立数据库连接
    db_conn = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user='admin',
        passwd='Pass@123',
        db='test_demo')

    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db_conn.cursor()
    
    # 1. 提交一条sql语句
    sql = """SELECT * FROM test_demo"""  # 要执行的sql语句

    rowcount = cursor.execute(sql)  # 使用execute()方法执行SQL rowcount 这是一个只读属性 返回执行execute()方法后影响的行数
    results = cursor.fetchone()  # 使用 fetchone() 方法获取单条数据
    # results = cursor.fetchmany(10)  # 使用 fetchmany(size) 方法获取指定size条数据 size为整数类型 默认为1
    # results = cursor.fetchall()  # 使用fetchall() 方法获取所有数据

    # 2. executemany()方法提交多条插入数据
    # sql = """INSERT INTO test_demo (`key`, `value`, `create_time`, `update_time`) VALUES (%s, %s, %s, %s);"""  # 要执行的sql语句
    # ls = []
    # # 生成100条数据
    # for i in range(100):
    #     value = (str(i), "test_%s" % i, time_now, time_now)
    #     ls.append(value)
    # # 传入sql语句与数据列表  ls会自动拆包
    # rowcount = cursor.executemany(sql, ls)
    # results = cursor.fetchall()  # 插入操作返回结果为()

    # 提交 在改变表内容的情况下使用如 插入操作 查询不需要 多条数据写入在for循环外面声明就可以
    db_conn.commit()
    # 关闭游标 一般不需要声明
    # cursor.close()
    # 关闭数据库连接
    db_conn.close()

    print("影响的行数: \n", rowcount)
    print("返回的结果: \n", results)

except Exception as e:
    print("Error: \n", e)
    # 如果发生错误则回滚
    db_conn.rollback()
 

加入qq群  关注微信公众号

Zhong__pymysql基本使用_第1张图片

 

 

你可能感兴趣的:(数据库,MySQL,python开发,pymysql,pymysql基本使用)