Python3连接myqsql数据库_增删改查

前提:安装三方库

# pip3 install PyMySQL

1、连接数据库

db = pymysql.connect("192.168.30.150", "workhr", "YDJ9E1:o}M", "workemployee", charset='utf8')

参数说明:

IP地址,用户名,密码,数据库名,编码

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# !/usr/bin/python3

import pymysql

# 打开数据库连接
db = pymysql.connect("192.168.30.150", "workhr", "YDJ9E1:o}M", "workemployee", charset='utf8')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute()  方法执行 SQL 查询
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()

print("Database version : %s " % data)

# 关闭数据库连接
db.close()

2、新增

#!/usr/bin/python3

import pymysql

# 打开数据库连接
db = pymysql.connect("192.168.30.150", "workhr", "YDJ9E1:o}M", "workemployee", charset='utf8')

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 插入语句
sql = """insert into `test` ( `name`, `age`, `gender`) values('李素丽','22','女')"""
try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except Exception as e:
    print('error:', e)
    # 如果发生错误则回滚
    db.rollback()


# 关闭数据库连接
db.close()

 3、查询

#!/usr/bin/python3

import pymysql

# 打开数据库连接
db = pymysql.connect("192.168.30.150", "workhr", "YDJ9E1:o}M", "workemployee", charset='utf8')

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 查询语句
sql = "select * from test"
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 获取所有记录列表
    results = cursor.fetchall()
    for row in results:
        id = row[0]
        name = row[1]
        age = row[2]
        gender = row[3]
        # 打印结果
        print("id=%s,name=%s,age=%s,gender=%s" % \
              (id, name, age, gender))
except Exception as e:
    print('error:', e)
    print("Error: unable to fetch data")

# 关闭数据库连接
db.close()

4、修改

#!/usr/bin/python3

import pymysql

# 打开数据库连接
db = pymysql.connect("192.168.30.150", "workhr", "YDJ9E1:o}M", "workemployee", charset='utf8')

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 更新语句
sql = "update test t set t.age = 16 where t.name ='李素丽'"
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except Exception as e:
    print('error:', e)
    # 发生错误时回滚
    db.rollback()

# 关闭数据库连接
db.close()

5、删除

#!/usr/bin/python3

import pymysql

# 打开数据库连接
db = pymysql.connect("192.168.30.150", "workhr", "YDJ9E1:o}M", "workemployee", charset='utf8')

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 删除语句
sql = "DELETE FROM test where name ='李素丽'"
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交修改
    db.commit()
except Exception as e:
    print('error:', e)
    # 发生错误时回滚
    db.rollback()

# 关闭连接
db.close()

5、事务管理

事务机制可以确保数据一致性。

事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。

一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

隔离性(isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

持久性(durability):持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

Python DB API  的事务提供了两个方法 commit 或 rollback。

对于支持事务的数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。

commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。

猜你喜欢

转载自blog.csdn.net/jiahao1186/article/details/89708015
今日推荐