summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2022-07-29 03:00:29 -0700
committerGitHub <noreply@github.com>2022-07-29 03:00:29 -0700
commita41b51d2ea1926b60ea10d533dda54a5af7936ba (patch)
tree882300409bd23d0bc3a8434deaf1ae3adcae3bea
parent2278dc74423565b3b9cc5c89804b5c7c947f2243 (diff)
downloadcpython-git-a41b51d2ea1926b60ea10d533dda54a5af7936ba.tar.gz
gh-95273: Improve sqlite3 class descriptions (GH-95379)
Co-authored-by: CAM Gerlach <CAM.Gerlach@Gerlach.CAM> (cherry picked from commit e003b64f40fa28954ec967024fa811adff6cffe7) Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
-rw-r--r--Doc/library/sqlite3.rst42
1 files changed, 34 insertions, 8 deletions
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst
index 2b07b7cc36..32a5cfe2fb 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -380,6 +380,16 @@ Connection Objects
.. class:: Connection
+ Each open SQLite database is represented by a ``Connection`` object,
+ which is created using :func:`sqlite3.connect`.
+ Their main purpose is creating :class:`Cursor` objects,
+ and :ref:`sqlite3-controlling-transactions`.
+
+ .. seealso::
+
+ * :ref:`sqlite3-connection-shortcuts`
+ * :ref:`sqlite3-connection-context-manager`
+
An SQLite database connection has the following attributes and methods:
.. attribute:: isolation_level
@@ -761,6 +771,22 @@ Connection Objects
Cursor Objects
--------------
+ A ``Cursor`` object represents a `database cursor`_
+ which is used to execute SQL statements,
+ and manage the context of a fetch operation.
+ Cursors are created using :meth:`Connection.cursor`,
+ or by using any of the :ref:`connection shortcut methods
+ <sqlite3-connection-shortcuts>`.
+
+ Cursor objects are :term:`iterators <iterator>`,
+ meaning that if you :meth:`~Cursor.execute` a ``SELECT`` query,
+ you can simply iterate over the cursor to fetch the resulting rows::
+
+ for row in cur.execute("select * from data"):
+ print(row)
+
+ .. _database cursor: https://en.wikipedia.org/wiki/Cursor_(databases)
+
.. class:: Cursor
A :class:`Cursor` instance has the following attributes and methods.
@@ -926,13 +952,11 @@ Row Objects
A :class:`Row` instance serves as a highly optimized
:attr:`~Connection.row_factory` for :class:`Connection` objects.
- It tries to mimic a tuple in most of its features.
+ It tries to mimic a :class:`tuple` in most of its features,
+ and supports iteration, :func:`repr`, equality testing, :func:`len`,
+ and :term:`mapping` access by column name and index.
- It supports mapping access by column name and index, iteration,
- representation, equality testing and :func:`len`.
-
- If two :class:`Row` objects have exactly the same columns and their
- members are equal, they compare equal.
+ Two row objects compare equal if have equal columns and equal members.
.. method:: keys
@@ -1355,8 +1379,10 @@ Using :mod:`sqlite3` efficiently
--------------------------------
-Using shortcut methods
-^^^^^^^^^^^^^^^^^^^^^^
+.. _sqlite3-connection-shortcuts:
+
+Using connection shortcut methods
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Using the :meth:`~Connection.execute`,
:meth:`~Connection.executemany`, and :meth:`~Connection.executescript`