MySQL
Материал из PythonWiki.
Для взаимодействия с базами данных MySQL предназначена библиотека - MySQLdb.
Содержание |
Описание MySQLdb
Драйвер MySQLdb разработан Энди Дастманом. Предназначен для установки на различные платформы и операционные системы, главное требование наличие интерпретатора python.
Инсталяция MySQLdb
Для инстоляции драйвера в Вашу систему необходимо скачать дистрибутив, для этого достаточно перейти на страницу загрузкии выбрать пакет соответствующий вашей операционной системе и версии установленного python интерпретатора.
Далее установить пакет так, как обычно Вы устанавливаете любое программное обеспечение в Вашей системе.
Работа с MySQLdb
Импорт модуля и подключение к базе данных
Для начала работы с MySQLdb вам необходимо вначале импортировать его в свой модуль, затем создается подключение к базе данных и указатель набора данных (Хотя в MySQL и не разрешен непосредственный доступ к указателям, но в библиотеке MySQLdb эти функции имитируются).
Пример:
# -*- coding: cp1251 -*- import MySQLdb MyDB = MySQLdb.Connect(host="localhost", user="root", passwd="", db="test") cursor = MyDB.cursor()
Извлечение данных
После подключения к серверу баз данных можно посылать ему запросы с помощью методов execute() и executemany(), Оба они в качестве первого аргумента принимают текст запроса. Метод fetchall() возвращает весь набор запроса в виде массива, а метод fetchone() возвращает следующую запись из набора.
Пример:
cursor.execute("SELECT * FROM `testuser`") print cursor.fetchall()
результат будет получен в формате tuple. чтобы получить данные в формате dict, нужно использовать другой тип курсора:
conn = MySQLdb.connect(...., cursorclass=cursors.DictCursor)
Изменение данных
Запросы на изменение данных (добавление, удаление) также производятся с помощью метода execute(), но в отличии от запросов на извлечение данных, метод execute() не возвращает данных. Если Вам требуется узнать количество измененных данных, используйте свойство rowcount объекта cursor.
Пример
# Создаём таблицу test query = "CREATE TABLE test (id CHAR( 10 ) NOT NULL , name CHAR( 255 ) NOT NULL);" cursor.execute(query) # Добавляем в таблицу test запись query = "INSERT INTO test (id , name) VALUES (yzer, Pupkin Ivan);" cursor.execute(query) # Gt print str(cursor.rowcount) + "строк вставлено"
MySQLdb поддерживает работу с placeholder-ми.
query = "INSERT INTO test (id , name) VALUES (%s, %s);" cursor.execute(query, ("yzer", "Pupkin Ivan"))
placeholder-ы поддерживаются только строковые. при работе с численными данными, преобразовании строки к числу производится средствами сервера MySQL
Объект cursor() из MySQLdb
cursor.execute(query) l_Count = cursor.rowcount #получить количество строк последнего запроса l_Description = cursor.description #получить описание полей

