开发者社区> 问答> 正文

与关系型数据库的交互

你想在关系型数据库中查询、增加或删除记录。

展开
收起
哦哦喔 2020-04-17 13:21:06 884 0
1 条回答
写回答
取消 提交回答
  • 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)
    >>>
    
    2020-04-17 13:21:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载