мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
python:week24 [11/03/2021 12:48] – создано Admin Adminovichpython:week24 [20/03/2021 01:03] (текущий) – [Выборка данных] Admin Adminovich
Строка 16: Строка 16:
 </code> </code>
  
-===== Вставка данных =====+====== Вставка данных ======
  
 <code python> <code python>
Строка 25: Строка 25:
 </code> </code>
  
-===== Выборка данных =====+====== Выборка данных ======
  
 <code python> <code python>
Строка 36: Строка 36:
          
 q = 'SELECT id, name FROM users WHERE id > 10' q = 'SELECT id, name FROM users WHERE id > 10'
 +cur.execute(q)
 +rows = cur.fetchall()
 +
 +for row in rows:
 +    print(row)
 +</code>
 +
 +
 +Пусть у нас есть три таблички: 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='Москва'))
 +
 +
 +<code python>
 +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) cur.execute(q)
 rows = cur.fetchall() rows = cur.fetchall()