====== Создание БД ====== import sqlite3 con = sqlite3.connect('dosier.db') cur = con.cursor() ====== Создание таблицы ====== q = 'CREATE TABLE users(id integer PRIMARY KEY, name text)' cur.execute(q) con.commit() ====== Вставка данных ====== q = 'INSERT INTO users(id, name) VALUES(?, ?)' user = (1, 'Вася') cur.execute(q, user) con.commit() ====== Выборка данных ====== q = 'SELECT id, name FROM users' cur.execute(q) rows = cur.fetchall() for row in rows: print(row) q = 'SELECT id, name FROM users WHERE id > 10' cur.execute(q) rows = cur.fetchall() for row in rows: print(row) Пусть у нас есть три таблички: users (id, user), cities (id, city), users2cities (user_id, city_id). Содержимое таблицы users ^ id ^ user ^ | 1 | Вася | | 2 | Дима | | 3 | Марина | Содержимое таблицы cities ^ id ^ city ^ | 1 | Москва | | 2 | Новосибирск | | 3 | Казань | | 4 | Владивосток | Содержимое таблицы users2cities ^ id ^ city ^ | 1 | 1 | | 2 | 1 | | 3 | 2 | Предположим, мы хотим найти всех москвичей. Для этого, нам нужно сначала cконструировать запрос, дающий номер, который соответствует Москве: SELECT id from cities WHERE city='Москва' Теперь надо нам выяснить у каких пользователей Москва прописана как город: SELECT users2city.user_id FROM users2city WHERE users2city.city_id in (SELECT id from cities WHERE city='Москва') И, наконец, найдем имена этих пользователей: SELECT user FROM users WHERE id in (SELECT users2city.user_id FROM users2city WHERE users2city.city_id in (SELECT id from cities WHERE city='Москва')) q = 'SELECT user FROM users WHERE id in (SELECT users2city.user_id FROM users2city WHERE users2city.city_id in (SELECT id from cities WHERE city='Москва'))' cur.execute(q) rows = cur.fetchall() for row in rows: print(row)