Создание БД

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

Предположим, мы хотим найти всех москвичей. Для этого, нам нужно сначала найти номер, который соответствует Москве: 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 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)