Spec-Zone.ru › MySQL Connectors 1.0

5.4 Запрос данных с помощью Connector/Python

В следующем примере показано, как получить данные с помощью курсора, созданного с помощью метода соединения cursor(). Возвращаемые данные форматируются и выводятся на консоль.

Задача состоит в том, чтобы выбрать всех сотрудников, принятых на работу в 1999 году, и вывести их имена и даты приема на работу на консоль.

import datetime
import mysql.connector

cnx = mysql.connector.connect(user='scott', database='employees')
cursor = cnx.cursor()

query = ("SELECT first_name, last_name, hire_date FROM employees "
         "WHERE hire_date BETWEEN %s AND %s")

hire_start = datetime.date(1999, 1, 1)
hire_end = datetime.date(1999, 12, 31)

cursor.execute(query, (hire_start, hire_end))

for (first_name, last_name, hire_date) in cursor:
  print("{}, {} was hired on {:%d %b %Y}".format(
    last_name, first_name, hire_date))

cursor.close()
cnx.close()

Сначала мы открываем соединение с сервером MySQL и сохраняем объект соединения в переменной cnx. Затем мы создаем новый курсор, по умолчанию объект MySQLCursor, используя метод соединения cursor().

В предыдущем примере мы сохранили оператор SELECT в переменной query. Обратите внимание, что мы используем необрамленные %s-маркеры, где должны были быть даты. Connector/Python преобразует hire_start и hire_end из типов Python в тип данных, понятный MySQL, и добавляет необходимые кавычки. В этом случае он заменяет первый %s на '1999-01-01', а второй на '1999-12-31'.

Затем мы выполняем операцию, сохраненную в переменной query, используя метод execute(). Данные, используемые для замены %s-маркеров в запросе, передаются в виде кортежа: (hire_start, hire_end).

После выполнения запроса сервер MySQL готов отправить данные. Результат может содержать ноль строк, одну строку или 100 миллионов строк. В зависимости от ожидаемого объема вы можете использовать различные методы обработки этого набора результатов. В этом примере мы используем объект cursor в качестве итератора. Первая колонка в строке хранится в переменной first_name, вторая в last_name, а третья в hire_date.

Мы выводим результат, форматируя вывод с помощью встроенной функции Python format(). Обратите внимание, что hire_date был автоматически преобразован Connector/Python в объект Python datetime.date. Это означает, что мы можем легко отформатировать дату в более удобочитаемой форме.

Вывод должен быть примерно таким:

..
Wilharm, LiMin was hired on 16 Dec 1999
Wielonsky, Lalit was hired on 16 Dec 1999
Kamble, Dannz was hired on 18 Dec 1999
DuBourdieux, Zhongwei was hired on 19 Dec 1999
Fujisawa, Rosita was hired on 20 Dec 1999
..

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-python-en/connector-python-example-cursor-select.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API