Найти - Пользователи
Полная версия: порекомендуйте книгу по работе с базами данных в Python
Начало » Python для новичков » порекомендуйте книгу по работе с базами данных в Python
1
ant_sol
Есть ли какая-то книга, которая заточена именно на взаимодействие Python с базами данных ?
Желательно чтобы в ней были задачи по теме.

заранее Спасибо !
JOHN_16
Если такая книга существует, то она странная. Баз данных много, они могут быть очень разными, и работать с ними надо очень по разному. Каждая из баз данных развивается своими темпами, а значит эта книга устаревает во столько раз быстрее сколько баз данных в ней описано. Условно конечно. Тем не менее, зачем нужна такая книга, если существуют материалы по каждой в отдельности. Не говоря уже что самое актуальное описание находится в документации к конкретной базе данных.

Я думаю вам нужна не она. Я какие то простые учебные материалы по конкретной базе. Несмотря на огромное многообразие информации и источников, я не подскажу какого либо конкретного.
doza_and
Поскольку непонятно с какой базой человек хочет работать делаем вывод что ему годится любая.
Тогда логично осваивать встроенную.
https://docs.python.org/3/library/sqlite3.html
https://www.tutorialspoint.com/sqlite/pdf/sqlite_python.pdf
py.user.next
Можно с MySQL начать изучение баз данных (эта СУБД полная и несложная).
https://dev.mysql.com/doc/

А питон с базами данных не работает, он только даёт интерфейс для работы с уже существующими СУБД (системами управления базами данных). То есть для работы с базами данных через питон надо знать сами системы управления базами данных, так как через питон ты просто ими управляешь.

Даже если дойдёшь до проектирования базы данных, тебе всё равно понадобится СУБД, в которой ты потом будешь создавать свою базу данных. И хорошо, если она будет полной по операциям (чего не скажешь об SQLite).
ant_sol
извиняюсь, не уточнил БД. Меня интересует MYSQL
DamMercul
py.user.next
Можно с MySQL начать изучение баз данных (эта СУБД полная и несложная)

Неа)) Уж лучше sqlite, он же новичок
py.user.next
DamMercul
Уж лучше sqlite, он же новичок
С SQLite он получит некачественные знания по СУБД. В SQLite нет многих вещей и он просто не узнает об их существовании. Например, хранимые процедуры. В MySQL их вообще легко делать, в SQLite надо писать расширение на C.
Естественно, он их не сможет изучить через SQLite, а они сильно распространены во многих базах данных.
И документация по MySQL гораздо лучше развита, чем по SQLite.
DamMercul
py.user.next
Но sqlite тем и популярен, что прост и в нем нет дофига функций. Он дает тебе возможность создать самую простую БД и не париться
py.user.next
DamMercul
Он дает тебе возможность создать самую простую БД и не париться
MySQL тоже простая СУБД, при этом на ней очень удобно учиться и изучать всё полноценно. Для SQLite даже клиента нормального нет, чтобы читать базы данных. В MySQL ты можешь прочитать записи через \G в любой момент (это функция клиента, не СУБД), тогда как в SQLite есть режим построчного вывода, который работает только для всех таблиц сразу, и в котором ты должен каждый раз переключаться, чтобы остальные таблицы не затрагивать этим режимом. В SQLite всё допотопно, учиться на ней неудобно. Ничего не будешь знать просто после SQLite, потому что каждое действие нужно будет изучать на несколько часов больше, чем в MySQL. В результате плотность изученного материала будет слишком низкой.

По дефолту клиент MySQL читает так
MariaDB [test]> select * from messages;
+------+---------+
| id | message |
+------+---------+
| 1 | abc |
| 2 | def |
+------+---------+
2 rows in set (0.00 sec)

MariaDB [test]>
Через \G клиент MySQL раскладывает каждую запись на строки
MariaDB [test]> select * from messages\G
*************************** 1. row ***************************
id: 1
message: abc
*************************** 2. row ***************************
id: 2
message: def
2 rows in set (0.00 sec)

MariaDB [test]>
Так вот просто по этой фиче можно судить, насколько просто управлять выводом в клиенте MySQL. В клиенте SQLite ты такого не встретишь, потому что он плохо проработан, в нём очень мало функционала и из-за этого в нём всё неудобно.

То же разделение прав между пользователями базы. В SQLite их вообще нет, тогда как в MySQL есть полный набор этих возможностей.
И с MySQL легко перейти на PostgreSQL, находя аналогии с уже изученным в MySQL и добавляя новую информацию к этому (то, чего нет в MySQL). С SQLite же тебе никакая PostgreSQL не светит, потому что она сложнее MySQL, а MySQL ты вообще не знаешь.

Ты же ему предлагаешь остаться на недоразвитом уровне, якобы база SQLite ему что-то даст. Да он просто попадёт на какой-нибудь хостинг, там будет стоять нормальная СУБД и он даже двух команд не свяжет там, потому что не знает ничего, а изучить это за три секунды нельзя, надо планомерно заниматься (пройти курс).
Rodegast
> Есть ли какая-то книга, которая заточена именно на взаимодействие Python с базами данных ?

Может тебе что то типа алхимии нужно?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB