<= 10 OR id = 16
DB-API
Программный интерфейс приложения (Application Programming Interface, API) —
это набор функций, которые вы можете вызвать, чтобы получить доступ к какой-
либо услуге. DB-API (http://bit.ly/db-api) — это стандартный API в Python, предна-
значенный для получения доступа к реляционным базам данных. С его помощью вы
можете написать одну программу, которая работает с несколькими видами реляци-
онных баз данных, вместо того чтобы писать несколько программ для работы с каж-
дым видом баз данных по отдельности. Этот API похож на JDBC в Java или dbi в Perl.
Рассмотрим его основные функции.
connect() — создание соединения с базой данных. Этот вызов может включать
в себя аргументы вроде имени пользователя, пароля, адреса сервера и пр.
cursor() — создание объекта курсора, предназначенного для работы с запросами.
execute() и executemany() — запуск одной или более команд SQL.
fetchone(), fetchmany() и fetchall() — получение результатов работы функции
execute.
Модули работы с базами данных в Python, которые будут рассмотрены в сле-
дующих разделах, соответствуют DB-API, часто имея некоторые расширения или
разницу в деталях.
SQLite
SQLite (http://www.sqlite.org/) — это хорошая легковесная реляционная база дан-
ных с открытым исходным кодом. Она реализована как стандартная библиотека
Python и хранит базы данных в обычных файлах. Эти файлы можно переносить
Реляционные базы данных
235
на другие машины и в операционные системы, что делает SQLite очень портатив-
ным решением для создания простых реляционных баз данных. У нее не так мно-
го возможностей, как у MySQL или PostgreSQL, но она поддерживает SQL и по-
зволяет нескольким пользователям работать с ней одновременно. Браузеры,
смартфоны и другие операционные системы используют SQLite как встроенную
базу данных.
Работа с базой данных начинается с вызова connect() для установки соединения
с локальным файлом базы данных, который вы хотите создать или использовать.
Этот файл эквивалентен похожей на каталог базе данных, которая хранит таб лицы
на других серверах. С помощью специальной строки ':memory:' можно создать базу
данных только в памяти — это быстро и полезно для тестирования, но данные будут
потеряны при завершении программы или выключении компьютера.
Для следующего примера создадим базу данных enterprise.db и таблицу zoo,
чтобы управлять нашим увлекательным бизнесом по содержанию придорожного
контактного зоопарка. В таблице будут содержаться следующие графы:
critter — строка переменной длины, наш первичный ключ;
count — целочисленное количество единиц используемого инвентаря для этого
животного;
damages — количество долларов, потерянных из-за взаимодействий людей с жи-
вотными:
>>> import sqlite3
>>> conn = sqlite3.connect('enterprise.db')
>>> curs = conn.cursor()
>>> curs.execute('''CREATE TABLE zoo