
Выборка данных с использованием различных условий в SQLite с помощью Python — это одна из самых распространенных операций при работе с базами данных. Для этого используется оператор SELECT с различными условиями в WHERE. Давайте рассмотрим, как это делается.
import sqlite3
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()Чтобы получить все столбцы из таблицы, используйте символ *:
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)Здесь SELECT * FROM users извлекает все столбцы из таблицы users, а fetchall() возвращает все записи в виде списка кортежей.
Для выборки данных по определенному условию используется WHERE:
cursor.execute("SELECT * FROM users WHERE age > 30")
rows = cursor.fetchall()
for row in rows:
print(row)cursor.execute("SELECT * FROM users WHERE age > 30 AND city = 'New York'")
rows = cursor.fetchall()
for row in rows:
print(row)cursor.execute("SELECT * FROM users ORDER BY age DESC")
rows = cursor.fetchall()
for row in rows:
print(row)cursor.execute("SELECT * FROM users LIMIT 5")
rows = cursor.fetchall()
for row in rows:
print(row)В этом примере из таблицы users будут извлечены только первые 5 записей.
cursor.execute("SELECT DISTINCT city FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)cursor.execute("""
SELECT * FROM users
WHERE age > (SELECT AVG(age) FROM users)
""")
rows = cursor.fetchall()
for row in rows:
print(row)cursor.execute("SELECT AVG(age), MAX(age), MIN(age) FROM users")
row = cursor.fetchone()
print(row)cursor.execute("""
SELECT city, COUNT(*) as count
FROM users
GROUP BY city
HAVING count > 2
""")
rows = cursor.fetchall()
for row in rows:
print(row)еще несколько полезных моментов и методов, которые пригодятся при работе с базовыми операциями выбора данных в SQLite через Python.
Вы можете использовать псевдонимы для имен столбцов или таблиц, чтобы сделать ваш SQL-запрос более читабельным или чтобы избежать конфликтов имен:
cursor.execute("SELECT name AS UserName, age AS UserAge FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)Если вы хотите выбрать записи на основе диапазона значений, вы можете использовать BETWEEN:
cursor.execute("SELECT * FROM users WHERE age BETWEEN 20 AND 30")
rows = cursor.fetchall()
for row in rows:
print(row)Ключевое слово IN позволяет вам выбрать записи, основываясь на нескольких значениях:
cursor.execute("SELECT * FROM users WHERE city IN ('New York', 'Los Angeles')")
rows = cursor.fetchall()
for row in rows:
print(row)Для выполнения поиска по шаблону используйте LIKE. Это может быть полезно при поиске записей с частичным совпадением:
cursor.execute("SELECT * FROM users WHERE name LIKE 'A%'")
rows = cursor.fetchall()
for row in rows:
print(row)В примере выше выбираются все пользователи, имена которых начинаются на букву 'A'.
Вы можете использовать OFFSET с LIMIT, чтобы определить, с какой записи начать:
cursor.execute("SELECT * FROM users LIMIT 5 OFFSET 10")
rows = cursor.fetchall()
for row in rows:
print(row)Таким образом, запрос вернет записи с 11 по 15.
Выборка данных с использованием различных условий в SQLite позволяет эффективно извлекать нужные данные из вашей базы данных. С помощью Python и модуля sqlite3 это процесс становится еще проще и гибче. Не забывайте закрывать соединение с базой данных после завершения всех операций.
Содержание: