📜  sqlite python select with parameters - Python(1)

📅  最后修改于: 2023-12-03 14:47:39.442000             🧑  作者: Mango

SQLite Python Select with Parameters - Python

Introduction

In this tutorial, we will learn how to perform a SELECT query using SQLite and Python, with the ability to pass parameters to the query. By using parameters, we can ensure the security and efficiency of our database operations. We will use the SQLite module in Python to connect to the database and execute the query.

Prerequisites
  • Python installed on your machine
  • SQLite module installed (pip install sqlite3)
Setup

First, let's import the necessary modules and establish a connection to the SQLite database:

import sqlite3

# Connect to the database
conn = sqlite3.connect('database.db')
Querying with Parameters

To execute a SELECT query with parameters, we can use the execute() method of the Python sqlite3.Connection object. The parameters are passed as a tuple or dictionary, depending on the query type and syntax.

Example 1 - Using a Tuple

In this example, we will use a tuple to pass the parameters to the query. Let's assume we have a "users" table with columns "id", "name", and "age". We want to select users whose age is greater than a certain value.

# Define the parameters
age_threshold = 25

# Execute the SELECT query
cursor = conn.execute('SELECT * FROM users WHERE age > ?', (age_threshold,))

In the above code snippet, we use a placeholder ? in the query string to represent the parameter. The value of age_threshold is passed as a tuple (age_threshold,) as the second argument to execute().

Example 2 - Using a Dictionary

In this example, we will use a dictionary to pass the parameters to the query. Let's assume we want to select users based on their name and age.

# Define the parameters
params = {'name': 'John Doe', 'age': 30}

# Execute the SELECT query
cursor = conn.execute('SELECT * FROM users WHERE name = :name AND age > :age', params)

In the above code snippet, we use named placeholders :name and :age in the query string to represent the parameters. The dictionary params is passed as the second argument to execute().

Retrieving Query Results

Once the query is executed, we can retrieve the results using the fetchall() or fetchone() method of the cursor object. Here's an example of fetching all rows:

# Fetch all rows
rows = cursor.fetchall()

# Process the rows
for row in rows:
    print(row)
Closing the Connection

After performing the necessary database operations, it is important to close the connection to the database.

# Close the connection
conn.close()
Conclusion

In this tutorial, we have explored how to perform a SELECT query with parameters using SQLite and Python. By using parameters, we can ensure the safety and efficiency of our database operations. We have seen examples of using both tuples and dictionaries to pass the parameters. Remember to close the connection to the database after the operations are completed.