第十一章 python操作MySQL

1. pytho连接MySQL

导包

pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple/

pymysql的基本使用

  • 切记在操作MySQL的时候最后记得关闭数据库连接
  • 创建连接需要的参数
    user > 数据库的用户名
    password >数据库的密码
    host > 数据库的地址
    database > 数据库的名字
    port > 数据库端口
from pprint import pprint

import pymysql

# pymysql的基本使

# 创建数据库
connect = pymysql.connect(
            user = 'root',
            password = 'root',
            host = 'localhost',
            database = 'test_day1',
            port = 3306
)
# 创建游标
cursor = connect.cursor()

# 准备sql语句
sql = "SELECT stu.sname AS '姓名',stu_new.address AS '地址' FROM stu RIGHT JOIN stu_new ON stu.id = stu_new.id;"
# 执行sql
cursor.execute(sql)

2. python的事务

在python添加数据的时候,默认开启事务,需要commit才能在数据库的表中新增数据

sql = "INSERT INTO stu (sname,sex,age,class,score) values ('python学习','女',18,'python进阶班',99);"
# 执行添加数据的sql后,数据不会马上添加到表中,需要提交后才会添加到表中
res = cursor.execute(sql)
connect.commit()

# 当执行完添加数据的sql后,不想添加数据到表中可以执行rollbak回滚数据
connect.rollback()

3. 新增 or 修改数据

from pprint import pprint

import pymysql

# pymysql的基本使用

def add_or_update(sql):
    try:
        # 创建数据库
        connect = pymysql.connect(
                    user = 'root',
                    password = 'root',
                    host = 'localhost',
                    database = 'test_day1',
                    port = 3306
        )
        # 创建游标
        cursor = connect.cursor()
        # 执行sql
        res = cursor.execute(sql)
        connect.commit()
        #获取到新增数据的id
        add_id = cursor.lastrowid
        return add_id
    except Exception as e:
        print(e)
        connect.rollback()
    finally:
        if cursor:
            cursor.close()
        if connect:
            connect.close()

4. 数据库的查询

查询返回的数据在cursor里

  • 获取单条查询的数据 cursor.fetchone()
  • 获取所有查询的数据 cursor.fetchall()
  • 获取指定数量的数据 cursor.fetchmany( n)
# 查看数据
def view(sql):
    try:
        # 创建数据库
        connect = pymysql.connect(
                    user = 'root',
                    password = 'root',
                    host = 'localhost',
                    database = 'test_day1',
                    port = 3306
        )
        # 创建游标,返回的数据是元组
        # cursor = connect.cursor()
        # 返回的数据是字典
        cursor = connect.cursor(cursor=DictCursor)

        # 执行sql
        cursor.execute(sql)
        res = cursor.fetchall()
        print(res)
    except Exception as e:
        print(e)
    finally:
        if cursor:
            cursor.close()
        if connect:
            connect.close()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值