Python中表示多行数据的标准方式是一个由元组构成的序列。例如:
stocks = [
('GOOG', 100, 490.1),
('AAPL', 50, 545.75),
('FB', 150, 7.45),
('HPQ', 75, 33.2),
]
依据PEP249,通过这种形式提供数据, 可以很容易的使用Python标准数据库API和关系型数据库进行交互。 所有数据库上的操作都通过SQL查询语句来完成。每一行输入输出数据用一个元组来表示。
为了演示说明,你可以使用Python标准库中的 sqlite3 模块。 如果你使用的是一个不同的数据库(比如MySql、Postgresql或者ODBC), 还得安装相应的第三方模块来提供支持。 不过相应的编程接口几乎都是一样的,除了一点点细微差别外。
第一步是连接到数据库。通常你要执行 connect() 函数, 给它提供一些数据库名、主机、用户名、密码和其他必要的一些参数。例如:
>>> import sqlite3
>>> db = sqlite3.connect('database.db')
>>>
为了处理数据,下一步你需要创建一个游标。 一旦你有了游标,那么你就可以执行SQL查询语句了。比如:
>>> c = db.cursor()
>>> c.execute('create table portfolio (symbol text, shares integer, price real)')
<sqlite3.Cursor object at 0x10067a730>
>>> db.commit()
>>>
为了向数据库表中插入多条记录,使用类似下面这样的语句:
>>> c.executemany('insert into portfolio values (?,?,?)', stocks)
<sqlite3.Cursor object at 0x10067a730>
>>> db.commit()
>>>
为了执行某个查询,使用像下面这样的语句:
>>> for row in db.execute('select * from portfolio'):
... print(row)
...
('GOOG', 100, 490.1)
('AAPL', 50, 545.75)
('FB', 150, 7.45)
('HPQ', 75, 33.2)
>>>
如果你想接受用户输入作为参数来执行查询操作,必须确保你使用下面这样的占位符``?``来进行引用参数:
>>> min_price = 100
>>> for row in db.execute('select * from portfolio where price >= ?',
(min_price,)):
... print(row)
...
('GOOG', 100, 490.1)
('AAPL', 50, 545.75)
>>>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。