Python与数据库交互:华为云大数据中台的SQLite操作

需积分: 32 108 下载量 162 浏览量 更新于2024-08-08 收藏 5.68MB PDF 举报
"这篇文档是关于如何在Python中与关系型数据库进行交互的,主要以华为云大数据中台架构为背景,介绍了使用Python标准库sqlite3模块与SQLite数据库的连接和操作方法。文档出自《Python Cookbook》中文版,涵盖了Python在数据库操作中的常见技巧和方法。" 在Python中,与关系型数据库交互主要遵循PEP249(Python Database API Specification v2.0),这定义了Python标准数据库API。文档中提到,多行数据通常用一个由元组组成的序列来表示,例如股票数据。你可以使用`sqlite3`模块来连接和操作SQLite数据库,如果需要操作其他类型的数据库(如MySQL、PostgreSQL或ODBC),则需要相应的第三方模块。 首先,要连接到数据库,需要调用`sqlite3.connect()`函数,并传入数据库的名称,如'(database.db)'。这会返回一个数据库连接对象,如`db`。接着,创建一个游标`c = db.cursor()`,游标是执行SQL命令的接口。然后,你可以使用游标执行`execute()`方法来创建表,例如: ```python c.execute('create table portfolio (symbol text, shares integer, price real)') ``` 执行SQL命令后,通常需要调用`commit()`方法来提交事务,确保数据的持久化。对于插入多条记录,可以使用类似以下的SQL插入语句: ```python symbols = ['GOOG', 'AAPL', 'FB', 'HPQ'] shares = [100, 50, 150, 75] prices = [490.1, 545.75, 7.45, 33.2] rows = [(symbol, shares, price) for symbol, shares, price in zip(symbols, shares, prices)] c.executemany('insert into portfolio values (?, ?, ?)', rows) db.commit() ``` 除了基本的连接、创建表和插入数据,Python还支持查询、更新和删除操作,这些都可以通过SQL语句实现,并通过游标对象执行。例如,查询所有记录: ```python c.execute('select * from portfolio') rows = c.fetchall() for row in rows: print(row) ``` 或者更新特定记录: ```python c.execute("update portfolio set shares = 125 where symbol = 'GOOG'") db.commit() ``` 删除记录: ```python c.execute("delete from portfolio where symbol = 'HPQ'") db.commit() ``` Python提供了简单而强大的工具来处理关系型数据库,无论是在大数据处理还是常规的数据操作中,都能够有效地与数据库进行交互。这个文档片段只是《Python Cookbook》中的一部分,全书还涵盖了更多关于数据结构、字符串、数字日期和时间、迭代器与生成器等主题的实用技巧和方法。