# Отправка запросов к базе данных в Python

После соединения с базой к ней можно отправлять запросы. Это делается с помощью переменной `query`, в которой прописывается SQL запрос для вывода всех данных из таблицы `users`. Эту переменную следует прописать в блоке с переменной `connection`:

`try: with connect( host='localhost', user='root', password='', database='test', ) as connection: query = "SELECT * FROM users" except Error as e: print(e)`

Далее прописываем еще одну конструкцию `with` для работы с MySQLConnection-объектом, хранящимся в переменной `connection`. К данному объекту нужно последовательно применить специальные методы. Первым из них является метод `cursor`, который из MySQLConnection-объекта создает CMySQLCursor-объект. К нему свою очередь применяется метод `execute`, который обеспечивает выполнение SQL запроса, переданного ему в параметр:

`try: with connect( ... ) as connection: query = "SELECT * FROM users" with connection.cursor() as cursor: cursor.execute(query)`

Далее нужно извлечь все данные с помощью метода `fetchall` и записать их в переменную `result`. А чтобы вывести полученные данные, нужно пропустить их через цикл `for`:

`try: with connect( ... ) as connection: query = "SELECT * FROM users" with connection.cursor() as cursor: cursor.execute(query) result = cursor.fetchall() for row in result: print(row)`

Полный код будет выглядеть вот так:

`try: with connect( host='localhost', user='root', password='', database='test', ) as connection: query = "SELECT * FROM users" with connection.cursor() as cursor: print(cursor) cursor.execute(query) result = cursor.fetchall() for row in result: print(row) except Error as e: print(e)`

После выполнения кода в консоль выведутся все записи в виде кортежей:

`(1, 'user1', 23, 400) (2, 'user2', 25, 500) (3, 'user3', 23, 500) (4, 'user4', 30, 900) (5, 'user5', 27, 500) (6, 'user6', 28, 900)`

Выведите все данные из таблицы `users`.

← →
↑