Название статьи, конечно, шуточное. Слон - это логотип PostgreSQL, а мускул - жаргонное название MySQL.
Вообще, сколько лет пишу на Delphi, нормальная поддержка работы с базами данных появилась относительно недавно. В Delphi 7 (не XE 7, а в классической) ни с MySQL, ни с PostgreSQL работать было практически невозможно.
Для начала расскажу о принципах работы с базами данных.
В Delphi можно выделить четыре "узла". Первый узел - это собственно данные. В каком виде эти данные хранятся не имеет никакого значения.
Этими данными заведует сервер баз данных. Серверов существует много. В веб чаще всего используется MySQL, иногда PostgreSQL. Помимо этого существуют MsSQL, Access, Interbase/FireBird и другие.
Следующий узел - технология доступа к серверу БД. В свое время (лет 15 назад) в Delphi можно было использовать несколько технологий доступа: Borland Database Engine (BDE), ADO, DBExpress. Все они давно устарели. Например, с MySQL можно было работать только через DBExpress, да и то только после танцев с бубном. Сейчас можно использовать технологию FireDac. В ней есть поддержка практически всех распространенных серверов БД. Причем эта технология кроссплатформенная.
Четвертый узел - это само приложение.
Итак, принципы изучены. Самое время разобраться, как приручать слонов.
Слоновий язык.
К счастью, слоны очень послушные животины. Правда, русского языка они понимать категорически не желают. Поэтому есть специальный слоновий язык. Он прозывается SQL. Практически все сервера баз данных поддерживают этот язык. В более-менее современном виде он оформился к концу 70-х годов.
Этот язык позволяет манипулировать информацией в базах данных. Технически реляционная база данных представляет собой набор таблиц:
Колонок (их называют полями) в таблице может быть сколько угодно. Какие нужно, такие и создавай. Единственное, что почти обязательно - это создание первичного ключа. Туда записывается уникальный номер строки для манипуляции со строками (их называют записями). В разных серверах их задают по-разному. В MySQL первичный ключ имеет тип INTEGER и снабжается атрибутом AUTO_INCREMENT. Сервер сам подставит туда нужное значение при добавлении записи. В PostgreSQL такой атрибут отсутствует, вместо этого первичному ключу присваивается тип данных SERIAL. Нетрудно понять, что на скриншоте вверху изображена база на сервере MySQL. Первая колонка в таблице имеет тип INTEGER. Это и есть первичный ключ. Обычно я даю ему название ID.
Большинство СУБД представляет собой реляционные системы. Это означает, что таблицы в базе могут быть взаимосвязаны. Например, если мы пишем систему, где пользователь сможет размещать свои фотографии в альбомах (типа Инстаграма), то нам нужна будет таблица с пользователями (назовем ее users), таблица со списком альбомов (albums) и таблица со списком изображений в альбомах (images). При этом нам надо будет в таблице альбомов ввести колонку user_id, где будет записан ID пользователя из таблицы users (это называется вторичный ключ), а в таблице images будет колонка album_id, где будет ID альбома. Получается три взаимосвязанных таблицы.
Я думаю, изучать что-либо лучше на практике, поэтому давайте что-нибудь напишем.
Нам потребуется, во-первых, Delphi. Я полагаю, что у вас он уже установлен, но если что, вот ссыль на пробную версию: ссылка. Регистрируетесь и на почту придет ключ на месяц пробного срока.
Во вторых, нам потребуется сервер баз данных. Лучше всего MySQL. Качаем его отсюда.
Кроме этого, нужен клиент для манипуляций с БД. Рекомендую HeidiSQL.
Хотел весь материал втиснуть в одну статью, но не получится. Придется делать вторую часть. Как напишу (скорее всего, сегодня), здесь появится ссылка.
Спасибо, что дочитали мою статью до конца. Если она вам понравилась, поставьте, пожалуйста, лайк. Также я буду рад, если вы подпишетесь на мой канал. Всегда рад прочитать ваши комментарии, ответить на вопросы и учесть ваши пожелания и предложения. До новых встреч!