Python操作MySQL数据库实现增删改查

这篇博客详细介绍了如何使用Python连接并操作MySQL数据库,包括创建数据库、表,添加、删除、修改和查询数据的基本步骤。示例代码分别使用了pymysql、mysql.connector和MySQLdb三个库,展示了一致的操作方式。
摘要由CSDN通过智能技术生成

安装的库

pymysql 
mysql.connector  
MySQLdb
任选一个 代码几乎无差别

创建及连接数据库

import pymysql
# mysql为导入的包名 pymysql mysql.connector  MySQLdb
db=mysql.connect( host='localhost', user='root', passwd='123456')
#获取到操作数据库的游标
mydb=db.cursor()
#创建一个名字为 tiku 的数据库
mydb.execute("CREATE DATABASE python")
 
conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db="tiku", port=3306) 
mydb=conn.cursor()
mydb.execute("CREATE TABLE test(id INT(4),name VARCHAR(255))")  #创建python_question数据表
 

添加数据

import pymysql

db = pymysql.connect(host="localhost", user="root", password="123456", db="tiku", port=3306)
cur = db.cursor()

question = '下列选项中,不属于Python特点的是'
A = '面向对象'
B = '运行效率高'
C = '可读性好'
D = '开源'
id = 2

# 方法1
sql_insert = "insert into user(id,username,password) values(4,'liu','1234')"
# 方法2
sql_insert = "insert into python_question(question, A, B, C, D, id) values ('%s', '%s', '%s', '%s', '%s', %d)"  %(question, A, B, C, D, id)
try:
    # 第三种方法
    # cur.execute(sql % ("python",3))  #像sql语句传递参数
    cur.execute(sql_insert)
    # 提交'
    db.commit()
except Exception as e:
    # 错误回滚
    db.rollback()
finally:
    db.close()

删除

import pymysql

db = pymysql.connect(host="localhost", user="root",password="123456", db="tiku", port=3306)
cur = db.cursor()
sql_delete = "delete from python_question where id = 2"
try:
    cur.execute(sql_delete)
    db.commit()
except Exception as e:
    db.rollback()
finally:
    db.close()

修改/更新

import pymysql

db = pymysql.connect(host="localhost", user="root", password="123456", db="tiku", port=3306)
cur = db.cursor()
sql_update = "update python_question set A = 1 where id = 2"
try:
    cur.execute(sql_update)
    db.commit()
except Exception as e:
    db.rollback()
finally:
    db.close()

查询

import pymysql

db = pymysql.connect(host="localhost", user="root", password="123456", db="tiku", port=3306)
cur = db.cursor()
sql = "select * from python_question"
try:
    cur.execute(sql) 
    results = cur.fetchall()
    # 打印数据
    """
    fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
    fetchall():接收全部的返回结果行.
    rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
    """
    for row in results:
        question = row[0]
        A = row[1]
        B = row[2]
        C = row[3]
        D = row[4]
        print(question, A, B, C, D)
except Exception as e:
    raise e
finally:
    db.close()  # 关闭连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值