【问题标题】:How to work with sqlite3 and Python如何使用 sqlite3 和 Python
【发布时间】:2013-01-08 07:07:35
【问题描述】:

我一直在寻找任何使用 Python 的数据库解决方案。并找到了教程Python: A Simple Step-by-Step SQLite Tutorial。在那里我找到了一个代码示例,它显示了如何创建数据库和插入一些数据:

import sqlite3

conn = sqlite3.connect("mydatabase.db") # or use :memory: to put it in RAM

cursor = conn.cursor()

# create a table
cursor.execute("""CREATE TABLE albums
                  (title text, artist text, release_date text, 
                   publisher text, media_type text) 
               """)

我对@9​​87654323@ 完全陌生。

  • 如果我想使用sqlite3,是否需要安装任何特定的 Python 模块?
  • 在上面的代码中,我可以看到一个名为mydatabase.db 的数据库。如何创建该数据库?

如果有人帮助我消除这些困惑,我可以为这些新模块提供一个良好的开端。

谢谢

【问题讨论】:

  • 你为什么不检查 import sqlite3 来确定呢?
  • conn = sqlite3.connect("mydatabase.db") 创建一个名为 mydatabase.db 的数据库。现在我的问题是如果需要,如何删除数据库。

标签: python sqlite python-2.7


【解决方案1】:

您不需要(安装)任何额外的 Python 模块来使用 sqlite3。

如果数据库不存在,通常会自动创建在与脚本相同的目录中。

在运行你的脚本时,我得到了这个:-

$ ls *.db
ls: *.db: No such file or directory

$ python test.py

$ ls *.db
mydatabase.db

$ sqlite3 mydatabase.db 
SQLite version 3.7.7 2011-06-25 16:35:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from sqlite_master;
table|albums|albums|2|CREATE TABLE albums
             (title text, artist text, release_date text, 
              publisher text, media_type text)
sqlite> 

【讨论】:

  • 我第二个问题的答案是什么?
  • 您是否尝试过运行示例中的代码?会发生什么?
  • 仔细阅读教程。它说您向我们展示的代码实际上将创建数据库!
【解决方案2】:

Sqlite3 是 Python 常用的版本。如果您运行的是 Windows,则需要下载 sqlitedownload from official page。如果您使用的是基于 Ubuntu 或 Debian 的系统,那么它是预装的。

现在来到python,sqlite3是包名,它是python自带的,如果找不到,在Ubuntu系统上用apt-get install python-sqlite命令安装。

考虑到您使用的是 Ubuntu 系统,只需键入 sqlite3 test.db 即可创建数据库名称 test.db。

至于你的程序:

import sqlite3 

conn = sqlite3.connect("test.db") # connect to test.db 
cursor = conn.cursor() # get a cursor to the sqlite database 
# cursor is the object here, you can use any name

# create a table
cursor.execute("""CREATE TABLE albums
                  (title text, artist text, release_date text, 
                   publisher text, media_type text)""")
# cursor.execute is used to execute any command to sqlite

我想介绍的更多功能是data = cursor.fetchone() 获取一行,data = cursor.fetchall() 一次获取多行并存储在元组数据中。

【讨论】:

    【解决方案3】:

    为了澄清,并在参考教程中看到。 “Python 在 2.5 版本中一直获得 sqlite3 模块,这意味着您可以使用任何当前 Python 创建 SQLite 数据库,而无需下载任何额外的依赖项。”文档位于https://docs.python.org/2/library/sqlite3.html

    我正在搜索这个问题,因为我正在完成 setup.py 的“install_requires”部分,并希望确保包含 sqlite3。

    我注意到在 Macports 上,我需要显式安装 sqlite3 和 py27-sqlite。

    测试版本的简单方法。

    >>> import sqlite3
    >>> sqlite3.version
    '2.6.0'
    

    或任何已安装的版本都会显示,否则如果未安装,您将收到 ImportError。

    通过快速搜索 pysqlite,您可以找到旧版本 sqlite 的一些选项。

    【讨论】:

      【解决方案4】:

      不,除了 python-sqlite 之外,您不需要安装任何其他模块。

      在 Ubuntu 上运行 sudo apt-get install python-sqlite

      此外,当您在上面的代码中看到一个名为 mydatabase.db 的数据库时。这是用于存储数据的文件的名称。 Sqlite 仅以平面文件的形式存储数据。所以这个文件(在本例中为“mydatabase.db”)将包含您的数据库架构和内容。

      由于没有给定的绝对路径将在当前工作目录中创建,即脚本中的目录正在运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-06
        • 2018-06-07
        相关资源
        最近更新 更多