Python与数据库简单交互

本文详细介绍如何使用Python操作MySQL数据库,包括连接数据库、创建表、插入、查询、更新和删除记录等基本操作,以及事务处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文档原文来自:http://www.runoob.com/python/python-mysql.html


Python DB-API使用流程

Python DB-API使用流程:
• 引入 API 模块。
• 获取与数据库的连接。
• 执行SQL语句和存储过程。
• 关闭数据库连接。

1. 尝试与数据库进行对接

    # -*- coding: UTF-8 -*-
    import MySQLdb

    #打开数据库链接
    db = MySQLdb.connect("localhost","root","baobao123","testdb")

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

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

    #使用 fetchone() 方法获取一条数据库。
    data = cursor.fetchone()
    print "Database version: %s" % data

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

2. 创建数据表

# -*- coding: UTF-8 -*-

import MySQLdb

#打开数据库链接
db = MySQLdb.connect("localhost","root","baobao123","testdb")

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

#如果数据表employee存在,则删除数据表
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

#创建数据表SQL语句
sql = """
    CREATE TABLE employee(
    FIRST_NAME CHAR(20) NOT NULL,
    LAST_NAME CHAR(20),
    AGE INT,
    SEX CHAR,
    INCOME FLOAT)
"""

cursor.execute(sql)

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

3. 在数据表中插入记录

# -*- coding: UTF-8 -*-

import MySQLdb

#打开数据库链接
db = MySQLdb.connect("localhost","root","baobao123","testdb")

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

#SQL插入语句
sql = """
INSERT INTO employee(FIRST_NAME,LAST_NAME,AGE,SEX,INCOME)
VALUES('Mac','Mohan',20,'M',2000)
"""

try:
    #执行SQL语句
    cursor.execute(sql)
    #提交到数据库执行
    db.commit()
except:
    # Rollback in case there is any error
    db.rollback()

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

4. 在数据表中查询记录

# -*- coding: UTF-8 -*-

import MySQLdb

#打开数据库链接
db = MySQLdb.connect("localhost","root","baobao123","testdb")

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

#SQL查询语句
sql = "SELECT * FROM employee WHERE INCOME > '%d'" %(1000)

try:
    #执行sql语句
    cursor.execute(sql)
    #获取所有记录列表
    result = cursor.fetchall()
    for row in result:
        fname = row[0]
        lname = row[1]
        age = row[2]
        sex = row[3]
        income = row[4]
        #打印结果
        print "fname=%s, lname=%s, age=%d, sex=%s, income=%d" %(fname, lname, age, sex, income)
except:
    print "Error: unable to fetch data"

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

5. 在数据表中更新记录

# -*- coding: UTF-8 -*-

import MySQLdb


#打开数据库链接
db = MySQLdb.connect("localhost","root","baobao123","testdb")

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

#SQL更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE+1 WHERE SEX = '%c'" %('M')

try:
    #执行SQL语句
    cursor.execute(sql)
    #提交到数据库执行
    db.commit()
except:
    #发生错误的时候回滚
    db.rollback

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

6. 在数据表中删除记录

# -*- coding: UTF-8 -*-

import MySQLdb

#打开数据库链接
db = MySQLdb.connect("localhost","root","baobao123","testdb")

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

#SQL删除语句
sql = "DELETE FROM employee WHERE AGE > %d" %(20)

try:
    #执行SQL语句
    cursor.execute(sql)
    #提交到数据库
    db.commit()
except:
    #发生错误的时候回滚
    db.rollback()

#关闭链接
db.close()

执行事务机制

事务机制可以确保数据一致性。
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
• 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
• 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
• 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
• 持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
Python DB API 2.0 的事务提供了两个方法 commit 或 rollback。

对于支持事务的数据库,在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。
commit( )方法游标的所有更新操作;
rollback( )方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。

# SQL删除记录语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 向数据库提交
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值