pymysql类库学习记录

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: pymysql类库学习记录

一、代码如下

1.创建数据库连接
conn = pymysql.connect(
  user='array',
  password='admin',
  host='192.168.120.216',
  prot=3306,
  charset='uft8',
  database='uag'
)
返回一个数据库连接对象
2.创建游标
cursor = conn.cursor(cursor=None)
返回一个游标对象
3.创建sql语句
sql = "select * from uag;"
4.执行sql语句,并返回受影响行数
effect_row = cursor.excute(sql)
5.提交数据,否则无法保存修改的数据
conn.commit()
6.关闭游标
cursor.close()
7.断开连接
conn.close()

二.案例代码

# coding=utf-8
"""
    作者:gaojs
    功能:
    新增功能:
    日期:2022/4/17 13:59
"""
import pymysql
class Database:
    def __init__(self):
        # 连接数据库
        self.connect = pymysql.Connect(
            host='localhost',
            port=3306,
            user='root',
            passwd='admin',
            db='gaojs_test',
            charset='UTF8'
        )
        # 获取游标
        self.cursor = self.connect.cursor()
        self.cursor.execute("SELECT VERSION()")
        # 使用 fetchone() 方法获取单条数据.
        data = self.cursor.fetchone()
        print("Database version : %s " % data)
    def create_table(self):
        """
        创建表
        :return:
        """
        # 切换数据库
        self.cursor.execute("use gaojs_test;")
        # 创建表语句
        self.cursor.execute("DROP TABLE IF EXISTS tb_gjs")
        self.cursor.execute("DROP TABLE IF EXISTS gaojs")
        # 使用预处理语句创建表
        sql = "CREATE TABLE tb_gjs( number char(10), name varchar(50), age int, gender varchar(10) , salary char(20));"
        sql1 = "CREATE TABLE gaojs(sid char(15), yuwen char(10), shuxue varchar(50), english int, physics varchar(10) , history char(20), computer char(20));"
        self.cursor.execute(sql)
        self.cursor.execute(sql1)
        self.cursor.execute("desc tb_gjs;")
        self.connect.commit()
    def insert_sql(self):
        """
        update插入数据: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
        :return:
        """
        # self.cursor.execute("update tb_gjs set phone='13666666666' where name='qiubing';")
        # self.cursor.execute("update tb_gjs set phone='13688888888' where name='gaojianshuai';")
        self.cursor.execute("INSERT INTO tb_gjs (number, name, age, gender, salary) VALUE ('001', 'gaojianshuai', 30, 'man', '16000')")
        self.cursor.execute("INSERT INTO tb_gjs (number, name, age, gender, salary) VALUE ('002', 'chensishi', 27, 'woman', '18000')")
        self.cursor.execute("INSERT INTO tb_gjs (number, name, age, gender, salary) VALUE ('003', 'arraynetworks', 30, 'man', '19000')")
        self.connect.commit()
    def update(self):
        """
        更新数据
        :return:
        """
        self.cursor.execute("update tb_gjs set phone='13666666666' where name='qiubing';")
        self.connect.commit()
    def disconnect_db(self):
        """
        断开数据库
        :return:
        """
        self.connect.commit()
        self.connect.close()
    def alter_table(self):
        """
        新增加列
        :return:
        """
        self.cursor.execute("alter table tb_gjs add column company varchar(20) after salary;")
        self.cursor.execute("""insert into tb_gjs (number, name, age, gender, salary, company) values ('006', 'wanghuan', 22, 'nv', '35000', 'Camlot');""")
        self.connect.commit()
    def delete_procedure(self):
        """
        存储过程
        :return:
        """
        self.cursor.execute("""
            CREATE PROCEDURE delete_age(IN p_age INTEGER)
            BEGIN
            DELETE FROM tb_gjs
            WHERE age = p_age;
            END$$
        """)
        self.cursor.execute("call delete_age(22);")
test = Database()
test.create_table()
test.insert_sql()
test.alter_table()
test.delete_procedure()

三、案例2

import pymysql
from pymysql_test import Database
def get_conn():
    # 连接数据库
    connect = pymysql.Connect(
        host='localhost',
        port=3306,
        user='root',
        passwd='admin',
        db='gaojs_test',
        charset='UTF8'
    )
    return connect
    # # 获取游标
    # cursor = connect.cursor()
    # cursor.execute("SELECT VERSION()")
    # # 使用 fetchone() 方法获取单条数据.
    # data = cursor.fetchone()
    # print("Database version : %s " % data)
def load_file_to_mysql():
    conn = get_conn()
    try:
        with open('student.txt', encoding='utf-8') as f:
            for line in f:
                line = line.strip()
                sid, chinese, math, english, phisics, history, computer = line.split("\t")
                sql = f"insert into gaojs (sid, chinese, math, english, phisics, history, computer) values ({sid}, {chinese}, {math}, {english}, {phisics}, {history}, {computer})"
                cursor = conn.cursor()
                cursor.execute(sql)
            cursor.commit()
    finally:
        if conn is not None:
            conn.close()
if __name__ == '__main__':
    load_file_to_mysql()
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
网络协议 Linux iOS开发
【100天精通python】Day40:GUI界面编程_PyQt 从入门到实战(完)_网络编程与打包发布
【100天精通python】Day40:GUI界面编程_PyQt 从入门到实战(完)_网络编程与打包发布
85 0
|
26天前
|
SQL 数据库 数据库管理
Python数据库操作(SQLAlchemy、SQLite等)面试题集
【4月更文挑战第15天】本文介绍了Python数据库操作的面试重点,涵盖SQLAlchemy ORM和SQLite。内容包括:1) 使用SQLAlchemy定义SQLite表的Python类及执行CRUD操作,强调ORM使用和会话管理;2) 查询优化与性能,涉及JOIN、分组、聚合查询,并提醒注意懒加载和索引创建;3) 异常处理和事务管理,展示如何捕获异常并进行事务控制。通过理解这些知识点并避免常见错误,可在面试中表现出色。
26 0
|
7月前
|
SQL 安全 关系型数据库
【100天精通python】Day38:GUI界面编程_PyQt 从入门到实战(中)_数据库操作与多线程编程
【100天精通python】Day38:GUI界面编程_PyQt 从入门到实战(中)_数据库操作与多线程编程
75 0
|
8月前
|
数据可视化 数据库 数据安全/隐私保护
Python 基于 Django 的学生成绩管理系统,可视化界面+数据库(附源码,教程)
Python 基于 Django 的学生成绩管理系统,可视化界面+数据库(附源码,教程)
|
5月前
python-pymysql常用功能封装
python-pymysql常用功能封装
27 0
|
10月前
|
XML 网络协议 Linux
POCO库的安装与基础知识说明
一、POCO简单介绍 POCO(Portable Components)是一个轻量级的 C++ 类库,提供了许多基本的、可移植的 C++ 组件和工具。它包含了很多模块,例如网络、XML、加密、多线程等等,可帮助 C++ 开发人员快速构建高效、可靠、可扩展的应用程序。 1.1 基本模块 Foundation:提供了许多基本的 C++ 类和函数,例如字符串、文件、日期时间、异常处理、日志等等。 Net:提供了网络编程的支持,包括 TCP、UDP、HTTP、HTTPS、SMTP、POP3、FTP、DNS 等等。 Util:提供了各种工具和辅助函数,例如配置文件、命令行解析、正则表达式、JS
392 0
|
存储 Python
Python程序开发——Python实现可增删改查的员工管理系统
Python程序开发——Python实现可增删改查的员工管理系统
Python程序开发——Python实现可增删改查的员工管理系统
|
SQL Oracle 关系型数据库
Python学习笔记第十九天(MySQL数据库)
Python学习笔记第十九天讲解什么是MySQLdb、如何安装MySQLdb、数据库连接、创建数据库表、数据库插入操作的用法。
95 0
Python学习笔记第十九天(MySQL数据库)
|
SQL 存储 关系型数据库
python-pymysql库使用一文详解+实例代码
python-pymysql库使用一文详解+实例代码
365 0
python-pymysql库使用一文详解+实例代码