sqlite3.connect() method opens a connection to the specified database file and returns a Connection object. If the file does not exist, SQLite creates it automatically, provided the path and permissions allow creation.
Syntax
connection = sqlite3.connect( "database_name.db" )
Explanation:
- import sqlite3: Imports the module required to interact with SQLite databases.
- sqlite3.connect(): Establishes the connection to the specified database file.
- connection: Stores the returned Connection object, which manages communication with the database.
Connecting an Existing Database
To connect to an existing database, pass its filename or path to connect(). Relative paths are resolved from the program's current working directory, while absolute paths identify the database's location explicitly.
Example:
Python
import sqlite3
connection = sqlite3.connect("students.db")
print("Database connected successfully")
connection.close()
Output
Database connected successfully
Explanation:
- connect("students.db") opens the database file if it exists.
- If the file does not exist, SQLite creates a new database file at the specified location.
- close() terminates the connection and releases its associated resources.
Example 2: Connecting to SQLite and Checking Its Version. Following example establishes a connection, executes a simple SQL query, and retrieves the SQLite engine version. It also handles database errors and closes resources safely.
Python
import sqlite3
connection = None
cursor = None
try:
connection = sqlite3.connect("sql.db")
print("Database connected successfully")
cursor = connection.cursor()
cursor.execute("SELECT sqlite_version()")
result = cursor.fetchone()
print("SQLite version:", result[0])
except sqlite3.Error as error:
print("Database error:", error)
finally:
if cursor is not None:
cursor.close()
if connection is not None:
connection.close()
print("Database connection closed")
Output
Database connected successfully
SQLite version: 3.45.1
Database connection closed
Explanation:
- sqlite3.connect("sql.db") opens or creates the database and returns a connection object.
- connection.cursor() creates a cursor used to execute SQL statements and retrieve results.
- cursor.execute() executes the version query.
- cursor.fetchone() retrieves the first row returned by the query. The expression result[0] accesses the version string.
- except sqlite3.Error catches SQLite-related errors and displays their messages.
- Finally ensures that any successfully created cursor and connection are closed, including when an SQLite error occurs.
Connecting Without Creating a Missing Database
Sometimes a program must connect to an existing database without creating a new file if the specified path is incorrect. SQLite URI mode allows this behavior through the mode=rw option.
Python
import sqlite3
try:
connection = sqlite3.connect(
"file:students.db?mode=rw",
uri=True
)
print("Connected to existing database")
except sqlite3.Error as error:
print("Connection failed:", error)
finally:
if "connection" in locals():
connection.close()