Python操作MySQL数据库 - PyMySQL库的基本用法

# !/usr/bin/env python
# -*- coding:utf-8 -*-

"""
使用PyMySQL操作MySQL数据库
    安装库: pip3 install PyMySQL

    支持的版本:
        python>=2.6,或者python>=3.3
        mysql>=4.1


    数据库语句
        create database mydb;

    建表语句
        create table mytable(
            id int not null auto_increment primary key,
            name varchar(15) not null,
            age tinyint not null,
            sex varchar(5) not null,
            phone char(11),
            info text);

    建议使用with上下文管理器操作cursor对象.

"""

import pymysql

# 连接到数据库,获取Connection对象
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='123456',
                             db='mydb',
                             charset='utf8',        # 不能用utf-8
                             cursorclass=pymysql.cursors.DictCursor)

try:
    # 插入
    # 获取Cursor对象
    with connection.cursor() as cursor:
        sql = "INSERT INTO mytable (name, age, sex, phone, info) VALUES (%s, %s, %s, %s, %s)"
        cursor.execute(sql,('比尔盖茨一号', '99', '男', '12000000000', '比尔盖茨是土豪'))
        cursor.execute(sql,('比尔盖茨二号', '99', '男', '12000000000', '比尔盖茨是土豪'))


    print('——'*30)
    # 查询
    with connection.cursor() as cursor:
        sql = "SELECT * FROM mytable"
        cursor.execute(sql)
        result = cursor.fetchone()
        print(result)
        result = cursor.fetchone()
        print(result)


    print('——' * 30)
    # 修改
    with connection.cursor() as  cursor:
        sql="UPDATE mytable SET age=%s,info=%s where name=%s"
        cursor.execute(sql,(66,'比尔盖茨是美国的土豪','比尔盖茨一号'))

        cursor.execute(query='SELECT * FROM mytable')
        result=cursor.fetchall()
        for item in result:
            print(item)


    print('——' * 30)
    # 删除
    with connection.cursor() as cursor:
        sql="DELETE FROM mytable WHERE name=%s"
        cursor.execute(sql,('比尔盖茨二号',))

        cursor.execute(query='SELECT * FROM mytable')
        result = cursor.fetchall()
        for item in result:
            print(item)

except:
    # 回滚事务
    connection.rollback()
finally:
    # 提交(默认不开启自动提交)
    connection.commit()
    # 断开连接
    connection.close()


运行结果

/usr/bin/python3.5 /home/brandon/PythonProjects/MySpider/数据存储/保存到数据库/MySQL/使用PyMySQL库操作MySQL数据库.py
————————————————————————————————————————————————————————————
{'id': 40, 'phone': '12000000000', 'age': 99, 'info': '比尔盖茨是土豪', 'name': '比尔盖茨一号', 'sex': '男'}
{'id': 41, 'phone': '12000000000', 'age': 99, 'info': '比尔盖茨是土豪', 'name': '比尔盖茨二号', 'sex': '男'}
————————————————————————————————————————————————————————————
{'id': 40, 'phone': '12000000000', 'age': 66, 'info': '比尔盖茨是美国的土豪', 'name': '比尔盖茨一号', 'sex': '男'}
{'id': 41, 'phone': '12000000000', 'age': 99, 'info': '比尔盖茨是土豪', 'name': '比尔盖茨二号', 'sex': '男'}
————————————————————————————————————————————————————————————
{'id': 40, 'phone': '12000000000', 'age': 66, 'info': '比尔盖茨是美国的土豪', 'name': '比尔盖茨一号', 'sex': '男'}

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值