PostgreSQL. Сто шагов от новичка до профессионала. Практика, примеры, опыт
В приложении удобнееQR для скачивания приложенияRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

Читать бесплатно онлайн книгу автора  PostgreSQL. Сто шагов от новичка до профессионала. Практика, примеры, опыт

Максим Михайлович Чалышев

PostgreSQL. Сто шагов от новичка до профессионала

Практика, примеры, опыт





100 шагов опыта и практики

От новичка до профессионала

Эта книга — ваш надёжный проводник в мире PostgreSQL. 100 шагов проведут вас от первых установок и простых SELECT-запросов до оконных функций, оптимизации, транзакций и работы с искусственным интеллектом.


12+

Оглавление

Посвящается


Юре, Оксане, Екатерине, Лене, Константину,

Михаилу, Екатерине, Елене, Антону

и другим моим коллегам по ОТП Банку.


Чалышев Максим 2026 год.

Введение

Приветствую, уважаемый читатель!

Позвольте мне немного рассказать о своём профессиональном опыте. Я работаю в сфере информационных технологий уже более 30 лет. Занимался тестированием, разработкой, но главным делом моей жизни были и остаются базы данных. Именно в этой области моя основная специализация, хотя я также неизбежно сталкивался с Java, SAS, Python, веб-разработкой (JavaScript, Node. js).

Эта книга — мой обобщённый опыт работы с базами данных на основе СУБД PostgreSQL.

В последнее время системы искусственного интеллекта получили очень широкое распространение. В создании данной книги мне помогал ИИ DeepSeek. Он сохранял структуру книги, помогал с формулировками отдельных главы. Мы проработали несколько стилей, и я выбрал наиболее понятный с точки зрения обучения.

Данную книгу можно воспринимать как учебник: если последовательно заниматься и выполнять практические задания, то можно в кратчайшие сроки стать хорошим специалистом по PostgreSQL.

При методичном, последовательном выполнении заданий вы, уважаемый читатель, быстро освоите PostgreSQL или улучшите уже имеющиеся навыки.

Книгу также можно использовать как справочник по СУБД PostgreSQL, поскольку практически все ключевые и сложные темы в ней подробно раскрыты, с понятными примерами и практическими задачами.


Если в процессе чтения у вас возникнут вопрос связаться с автором можно по адресу электронной почты atvcross@rambler.ru или через социальную сеть ВК https://vk.com/maxandmouse

Шаг 1. Что это за книга. Как работать с этой книгой. PostgreSQL

Ваш путь от первого SELECT до профессионала

ДЛЯ КОГО ЭТА КНИГА


— Для начинающих — если вы только знакомитесь с базами данных и хотите сразу начать писать запросы, а не учить теорию.

— Для тех, кто переходит с другой СУБД — если вы работали с MySQL, Oracle или SQL Server и хотите освоить PostgreSQL.

— Для тех, кто хочет систематизировать знания — если вы уже пишете запросы, но чувствуете, что в знаниях есть пробелы.


ЖИВОЙ ПРИМЕР


Вы держите в руках книгу, которая не похожа на скучный учебник.

Здесь нет занудных определений и сухих лекций.

Есть живой разговор, реальные примеры и чёткий путь — 100 шагов, которые превратят вас из человека, который слышал про SQL, в специалиста, уверенно работающего с PostgreSQL.


КАК УСТРОЕНА КНИГА


Книга построена как 100 шагов.

Каждый шаг — это одна тема, один приём, одна конструкция.


Структура шага:

— Живой пример — зачем это нужно в реальной работе.

— Основной материал — кратко, без воды.

— Примеры — код с пояснениями.

— Типичные ошибки — что может пойти не так.

— Тонкости и нюансы — для тех, кто хочет глубже.

— Из опыта — личная история автора.

— Вопросы и ответы — разбор частых недоумений.

— Попробуй сам — задания для закрепления.

— Задачи на повторение — чтобы не забывать пройденное.


КАК РАБОТАТЬ С ЭТОЙ КНИГОЙ


— Идите по порядку.

— Шаги построены от простого к сложному. Пропускать их не стоит.

— Выполняйте задания.

— Теория без практики забывается. Каждый шаг содержит задания 'Попробуй сам' — делайте их.

— Не бойтесь ошибок.

— Ошибки — это нормально. В книге есть раздел 'Типичные ошибки', чтобы вы знали, на что обратить внимание.

— Возвращайтесь к примерам.

— Если что-то забыли — не листайте всё сначала. Книга построена так, что к любому шагу можно вернуться.

— Используйте демонстрационную схему.

— Все примеры в книге построены на одной схеме — 'Доставка цветов'.

— Сначала вы установите эту схему, а затем будете с ней работать на протяжении всей книги.

— Старайтесь понять синтаксис.

— Вы видите перед собой запрос — попробуйте понять, что этот запрос означает на человеческом языке. Это поможет вам научиться переводить свои мысли в язык SQL.

— Повторяйте.

— Выполняйте задания на повторение и перечитывайте шаги, которые вы уже прошли.


— Иногда издательские системы заменяются кавычки на другие значки в запросах следует использовать именно одинарные кавычки


ЧТО НУЖНО ДЛЯ РАБОТЫ

— Компьютер с Windows, macOS или Linux.

— Установленная PostgreSQL (шаг 2).

— pgAdmin (устанавливается вместе с PostgreSQL).

— Желание разбираться и пробовать.

ОБОЗНАЧЕНИЯ В КНИГЕ

— Код — выделен моноширинным шрифтом.

— Что тут происходит — пояснение к примеру.

— Внимание! — важные предупреждения.

— опыт — личный опыт автора.

ЧТО ТАКОЕ БАЗЫ ДАННЫХ, НАЗНАЧЕНИЕ БАЗ ДАННЫХ


Трудно себе представить, что всего тридцать лет назад вся информация размещалась на бумажных носителях, и архивы документов занимали подчас целые здания.

Сейчас это кажется неважным, но обычный смартфон может вместить несколько тысяч книг.

Огромное количество систем современного хранения информации работает под управлением баз данных. Спектр применения систем управления базами данных неограничен. Сейчас практически ни одна отрасль не обходится без систем баз данных. Даже такая далёкая от ИТ отрасль, как сельское хозяйство и фермерство, повсеместно автоматизируется с использованием передовых информационных разработок.

База данных — это организованная структура, предназначенная для хранения, изменения и обработки взаимосвязанной информации. Простыми словами: база данных — это электронное хранилище, где информация структурирована и к ней можно быстро получить доступ.


НАЗНАЧЕНИЕ ЯЗЫКА SQL, НЕОБХОДИМОСТЬ ИЗУЧЕНИЯ SQL


Structured Query Language (SQL) — язык структурированных запросов.

Язык запросов SQL — универсальный язык для работы с данными базы. Язык запросов SQL используется для управления массивами данных в БД, множествами.

Язык SQL предоставляет возможность для вывода структурированной заданной информации из базы. SQL также применяется для изменения данных, добавления данных в базу.

Язык SQL относится к функциональным языкам программирования. Он отличается от алгоритмических языков. Основу языка составляет не алгоритм как таковой, а совокупность команд, определяющих взаимоотношения информационных множеств и подмножеств.

Следует отметить, что системы управления базами данных — СУБД — имеют различные реализации, такие как PostgreSQL, Oracle, MS SQL, MySQL.

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

В данном курсе мы будем рассматривать общепринятый синтаксис SQL PostgreSQL. Данная книга, как я ранее писал, обучает диалекту PostgreSQL, так как PostgreSQL — одна из самых популярных и распространённых СУБД на сегодняшний день.

Кроме того, бесплатная версия данной СУБД всегда доступна для скачивания, и её установка не представляет никакой сложности и не требует значительных ресурсов.


ИТОГО: ЧТО ТАКОЕ СУБД, POSTGRESQL И SQL


СУБД (Система управления базами данных) — это программа, которая хранит, организует и даёт доступ к данным. Примеры: PostgreSQL, MySQL, Oracle, SQL Server.

PostgreSQL — одна из самых популярных и мощных СУБД в мире. Её используют крупные компании (Сбербанк), государственные организации и стартапы. PostgreSQL — бесплатная, с открытым исходным кодом, надёжная и поддерживает самые современные возможности SQL.

SQL (Structured Query Language — язык структурированных запросов) — это язык, на котором вы 'разговариваете' с базой данных. С помощью SQL вы даёте команды: 'покажи всех клиентов', 'найди заказы за последний месяц', 'посчитай средний чек'. SQL — стандарт для всех реляционных баз данных. Выучив его один раз, вы сможете работать и с PostgreSQL, и с MySQL, и с другими СУБД.

Почему PostgreSQL?

— Бесплатный и с открытым кодом

— Соответствует стандартам SQL лучше большинства других СУБД

— Поддерживает продвинутые возможности: JSON, полнотекстовый поиск, оконные функции, свои типы данных

— Надёжный и производительный

— Большое сообщество и множество расширений


ИЗ ОПЫТА


Когда я только начинал изучать SQL, мне казалось, что это невозможно запомнить.

Но оказалось, что достаточно понять логику, а синтаксис приходит с практикой.

Именно так и построена эта книга: сначала вы понимаете, зачем нужна конструкция, а потом учитесь её использовать.


ВОПРОСЫ И ОТВЕТЫ


В: Нужно ли читать всё подряд?

О: Да, если вы новичок. Если вы уже знакомы с SQL, можете выборочно проходить шаги, но лучше не пропускать.

В: Можно ли пропустить установку и сразу начать с запросов?

О: Можно, но тогда вы не сможете выполнять примеры. Установка PostgreSQL и pgAdmin подробно описана в шаге 2, и она займёт не больше 15 минут.

В: Что делать, если я застрял на каком-то шаге?

О: Вернитесь к примерам, перечитайте 'Типичные ошибки'. Если не помогает — перейдите к следующему шагу и вернитесь позже.

ПОПРОБУЙ САМ

Пока ничего не нужно устанавливать и писать.

Просто откройте книгу и посмотрите, как устроены шаги.

Обратите внимание на структуру: везде повторяется один и тот же формат.

Шаг 2. Что нам понадобится. Установка БД PostgreSQL. Установка pgAdmin

Готовим рабочее место

ЖИВОЙ ПРИМЕР

Для учёбы, выполнения тестовых примеров и учебных задач вам потребуется установить СУБД PostgreSQL на локальный компьютер.

В этом шаге мы разберём установку PostgreSQL и pgAdmin — графического инструмента для работы с базами данных.

ПОДГОТОВКА К УСТАНОВКЕ

Для корректной установки вам понадобится:

— 64-разрядный компьютер или ноутбук

— оперативная память не менее 2 ГБ

— свободное место на диске не менее 2 ГБ

— на компьютере должна быть установлена операционная система Windows. Если у вас другая операционная система (macOS или Linux), то при установке необходимо это учитывать — процесс установки будет отличаться, но официальный сайт содержит инструкции для всех основных платформ.

СКАЧИВАНИЕ ДИСТРИБУТИВА

Перейдите на официальный сайт PostgreSQL:

https://www.postgresql.org/download/

На странице выберите вашу операционную систему.

Если у вас Windows, нажмите на значок Windows в верхней части страницы.

Вы попадёте на страницу загрузки для Windows:

https://www.postgresql.org/download/windows/

Нажмите Download the installer.

В открывшемся списке версий выберите последнюю (на момент написания — 18.3).

В колонке Windows x86—64 нажмите значок скачивания.

Через несколько секунд начнётся загрузка дистрибутива.

Если загрузка не началась, используйте ссылку Click me.

УСТАНОВКА СУБД POSTGRESQL

В этом разделе описывается стандартная установка PostgreSQL. Если вы забыли пароль после установки, воспользуйтесь инструкцией по сбросу пароля (описано в шаге 88).

Запустите скачанный файл.

Обычно он находится в папке 'Загрузки' и называется примерно postgresql-18.3-1-windows-x64.exe.

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

Может понадобиться повторный запуск или перезагрузка компьютера.

После этого запустится мастер установки.

1. Выбор папки установки.

Оставьте настройки по умолчанию и нажмите Next.

2. Выбор компонентов.

Оставьте настройки по умолчанию и нажмите Next.

3. Выбор папки для данных.

Оставьте настройки по умолчанию и нажмите Next.

4. Установка пароля администратора.

Внимание! Это очень важный шаг. Задайте пароль для доступа к СУБД.

Рекомендуется использовать простой пароль, например manager или admin.

Вы можете выбрать свой, но обязательно запишите его.

Введите пароль дважды и нажмите Next.

5. Выбор порта.

Оставьте порт по умолчанию (5432) и нажмите Next.

6. Выбор локали.

Оставьте значение по умолчанию (обычно DEFAULT) и нажмите Next.

7. Просмотр настроек.

Проверьте параметры установки и нажмите Next.

8. Установка.

Нажмите Next для начала установки.

Процесс может занять от 5 до 15 минут.

9. Завершение.

Снимите галочку Launch Stack Builder and Exit и нажмите Finish.

Если вы забыли пароль: Процедура сброса пароля подробно описана в шаге 88 (раздел 'Сброс забытого пароля пользователя PostgreSQL').

ПРОВЕРКА УСТАНОВКИ

В меню Пуск найдите и запустите pgAdmin 4.

В левой части окна раскройте Servers → PostgreSQL 18 (версия может отличаться).

Введите пароль, который вы задали при установке.

Рекомендуется снять галочку, чтобы не вводить пароль каждый раз.

Если соединение успешно, вы увидите структуру сервера в левой панели.

Иногда требуется повторить подключение дважды — первый запуск может занять немного времени.

ПЕРВОЕ ЗНАКОМСТВО С pgAdmin

Для работы с запросами используется Query Tool:

Выберите в меню Tools → Query Tool.

(скриншот: pgadmin4.png)

Откроется окно, в котором можно писать и выполнять SQL-запросы.

ТИПИЧНЫЕ ОШИБКИ

Ошибка 1. Забыть пароль администратора.

Если пароль потерян, придётся переустанавливать PostgreSQL или воспользоваться инструкцией по сбросу пароля (шаг 88).

Ошибка 2. Выбрать не ту версию для скачивания.

Убедитесь, что скачиваете дистрибутив для вашей операционной системы и разрядности.

Ошибка 3. Игнорировать требования к системе.

Если оперативной памяти или места на диске недостаточно, установка может не завершиться.

ИЗ ОПЫТА

При первой установке я выбрал сложный пароль и тут же забыл его.

Пришлось открыть эту книгу на шаге 88 и сбросить пароль, как написано.

С тех пор я использую простой пароль и записываю его в надёжное место.

ВОПРОСЫ И ОТВЕТЫ

В: Можно ли установить PostgreSQL на macOS или Linux?

О: Да. На официальном сайте есть инструкции для всех основных операционных систем.

В: Обязательно ли устанавливать pgAdmin?

О: Нет. Есть и другие инструменты (например, DBeaver, DataGrip), но pgAdmin идёт в комплекте и отлично подходит для начала.

В: Что делать, если установка зависла?

О: Попробуйте перезапустить компьютер и начать установку заново.

Шаг 3. Что где находится. Как работать с pgAdmin

Ваш главный инструмент для работы с PostgreSQL

ЖИВОЙ ПРИМЕР

Вы уже установили PostgreSQL и pgAdmin. Теперь перед вами окно pgAdmin — множество различных элементов интерфейса, сложное меню, различные кнопки, настройки — и, возможно, вы уже чувствуете лёгкое замешательство: Что здесь к чему? Где здесь писать запросы? Как посмотреть перечень таблиц? Как узнать, какие есть данные в нужной таблице?

В этом шаге мы подробно разберём интерфейс pgAdmin, чтобы вы чувствовали себя уверенно. Этот инструмент станет вашим главным помощником на протяжении всей книги.


НАЗНАЧЕНИЕ ПРОГРАММЫ pgAdmin

pgAdmin — это графический интерфейс для работы с PostgreSQL.

Он позволяет:

— просматривать структуру баз данных

— выполнять SQL-запросы

— редактировать данные в таблицах

— управлять серверами и пользователями

— и выполнять множество других задач

Простыми словами: pgAdmin — это окно в ваш PostgreSQL.

ЗАПУСК ПРОГРАММЫ pgAdmin

Нажмите Пуск (Windows) или откройте Launchpad (macOS).

Найдите pgAdmin 4 и запустите его.

Откроется интерфейс pgAdmin.

ПРОСМОТР ДЕРЕВА СЕРВЕРОВ, БАЗ, СХЕМ, ТАБЛИЦ

В левой панели pgAdmin находится дерево объектов.

Разберитесь с иерархией:

— Servers — здесь отображаются подключения к серверам PostgreSQL.

— PostgreSQL 18 (или ваша версия) — ваш локальный сервер.

— Databases — список баз данных.

— flower_delivery (ваша учебная база) — раскройте её.

— Schemas → public — здесь находятся таблицы, представления, функции.

— Tables — список таблиц в схеме public.

(скриншот: pgadmin_tree.png — дерево объектов)

Совет: чтобы найти нужную таблицу, используйте поиск (Ctrl + G).

СОЕДИНЕНИЕ С СЕРВЕРОМ БАЗЫ ДАННЫХ

После установки PostgreSQL и pgAdmin необходимо подключиться к серверу базы данных, чтобы начать работу.

Открытие сервера

В левой панели pgAdmin найдите Servers и раскройте его. Вы увидите сервер PostgreSQL 18 (или вашу версию).

Подключение к серверу

Нажмите на сервер левой кнопкой мыши. Откроется окно ввода пароля.

Ввод пароля

Введите пароль, который вы задали при установке PostgreSQL (рекомендуется снять галочку 'Store password', чтобы не вводить пароль каждый раз).

Успешное подключение

После ввода правильного пароля сервер станет активным — вы увидите структуру баз данных, и зелёная иконка сервера станет активной.

(скриншот: pgadmin_connected.png — сервер подключён)

Если подключиться не удалось

Проверьте:

— Запущен ли PostgreSQL (служба postgresql в Windows или systemctl status postgresql в Linux)

— Правильно ли введён пароль

— Не блокирует ли подключение брандмауэр

СОЗДАДИМ ТАБЛИЧКУ ДЛЯ ПРИМЕРА

Прежде чем изучать работу с таблицами, давайте создадим простую таблицу, с которой будем экспериментировать.

— В левой панели найдите вашу базу данных flower_delivery

— Раскройте Schemas → public → Tables

— Нажмите правой кнопкой на Tables → Create → Table

В открывшемся окне:

— В поле Name введите test_table

— На вкладке Columns добавите колонку id с типом integer и отметьте NOT NULL

— Добавьте колонку name с типом text

(скриншот: pgadmin_create_table_setup.png — настройка таблицы)

Нажмите Save. Таблица создана. Теперь она появится в списке Tables.

РАБОТА С ТАБЛИЦАМИ

Посмотреть данные:

Нажмите правой кнопкой мыши на таблицу → View/Edit Data → All Rows.

Откроется окно с содержимым таблицы.

Посмотреть структуру:

Раскройте таблицу → Columns. Там указаны все колонки, их типы и ограничения.

Добавление данных в тестовую таблицу:

— Откройте таблицу test_table через View/Edit Data → All Rows

— В появившемся окне нажмите на значок + (Add row) или кликните в последнюю пустую строку

— Заполните поля:

— В колонку id введите 1

— В колонку name введите Тестовая запись 1

— Нажмите Save Data Changes (иконка дискеты) или F6

(скриншот: pgadmin_insert_row.png — вставка строки)

Добавьте ещё две строки:

Сохраните изменения воспользовавшись кнопкой Save Data Changes

(скриншот: pgadmin_save_data.png — сохранение введенных данных)

TOOLS, ИНСТРУМЕНТЫ pgAdmin

В верхнем меню есть раздел Tools — здесь находятся основные инструменты:

— Query Tool — главное место для написания и выполнения SQL-запросов. Именно этот инструмент мы будем использовать для обучения на протяжении всей книги.

— Search Objects (Ctrl + G) — поиск по объектам базы данных.

— Import/Export — импорт и экспорт данных (например, из CSV).

ОПИСАНИЕ РАБОТЫ QUERY TOOL

Query Tool — это сердце pgAdmin. Здесь вы будете писать почти все запросы. Именно этот инструмент мы будем использовать для обучения на протяжении всей книги.

Как открыть:

Нажмите правой кнопкой на базе данных → Query Tool.

Или выберите базу → Tools → Query Tool.

Интерфейс:

— Верхняя часть — редактор кода (пишете запрос).

— Нижняя часть — результат выполнения (таблицы, сообщения, время выполнения).

— Кнопка Execute (>) или клавиша F5 — выполнить запрос.

— Кнопка Open File — загрузить запрос из файла.

— Кнопка Save — сохранить запрос.

Пример:

sql

SELECT * FROM test_table;

Напишите этот запрос в редакторе, нажмите Execute — и увидите данные из нашей тестовой таблицы (три добавленные строки).

НАСТРОЙКИ ПРОГРАММЫ pgAdmin

Чтобы изменить внешний вид или поведение pgAdmin:

В верхнем меню выберите File → Preferences.

Здесь можно настроить:

— тему (тёмная / светлая)

— размер шрифта в редакторе

— поведение при выполнении запросов (например, автоматически открывать результат в новой вкладке)

ТИПИЧНЫЕ ОШИБКИ

Ошибка 1. Не могу найти Query Tool.

Убедитесь, что выбрана база данных, и только потом открывайте Query Tool.

Ошибка 2. В левой панели нет сервера.

Проверьте, запущен ли PostgreSQL. В меню Пуск найдите SQL Shell (psql) и попробуйте подключиться. Если не запущен — перезапустите службу PostgreSQL.

ТОНКОСТИ И НЮАНСЫ

— В Query Tool можно открыть несколько вкладок — удобно, если работаете с разными запросами.

Посвящается:


— Результат запроса можно экспортировать в CSV — нажмите на иконку дискеты в панели результатов.

— Если запрос выполняется долго, можно остановить его кнопкой Cancel ([-]).

ИЗ ОПЫТА

Когда я только начинал работать с pgAdmin, я долго искал, где выполнить запрос.

Оказывается, нужно сначала выбрать базу данных, а потом открывать Query Tool.

С тех пор я всегда проверяю, какая база выбрана в дереве, перед тем как открыть Query Tool.

ВОПРОСЫ И ОТВЕТЫ

В: Можно ли работать с PostgreSQL без pgAdmin?

О: Да. Есть консольный клиент psql, но для новичков pgAdmin удобнее.

В: Как сменить язык интерфейса?

О: В File → Preferences → General → Language можно выбрать русский (если поддерживается).

ПОПРОБУЙ САМ

— Запустите pgAdmin.

— Найдите в дереве тестовую таблицу test_table.

ЗАДАЧИ НА ПОВТОРЕНИЕ

— Создайте таблицу test_table2 с помощью pgAdmin (через графический интерфейс). Добавьте колонки id (целое число, первичный ключ) и description (текст).

Шаг 4. Типы данных. Как создать свою первую таблицу и заполнить её данными

Первый шаг в мир структурированных данных

ЖИВОЙ ПРИМЕР

Вы уже установили PostgreSQL и научились открывать Query Tool.

Теперь самое время создать свою первую таблицу и заполнить её данными.

Это будет таблица для хранения цветов — простая, но показывающая все основные моменты.

В этом шаге мы рассмотрим два способа:

— Создание таблицы и вставка данных через визуальный интерфейс pgAdmin.

— Создание таблицы и вставка данных через SQL-запросы.

ЧТО ТАКОЕ ТАБЛИЦЫ В БАЗЕ ДАННЫХ

Таблица в базе данных — это как таблица в Excel или Word, но с одним важным отличием: каждая колонка имеет строго определённый тип данных.

Вы не можете в одну колонку записать и число, и текст — тип задаётся один раз при создании таблицы, и все данные в этой колонке должны соответствовать этому типу.

Правила именования таблиц и колонок:

Колонки таблиц в базе всегда имеют название, таблицы — тоже. Названия таблиц не должны повторяться в рамках одной схемы данных.

Наименования таблиц и колонок должны отвечать следующим базовым требованиям:

— Не должны начинаться с цифры

— Не должны содержать спецсимволы (допустимы только буквы, цифры и подчёркивание)

— Не должны совпадать с зарезервированными словами SQL (например, SELECT, TABLE, INSERT)


Примеры правильных имён:

sql

— правильно

CREATE TABLE employees (…);

CREATE TABLE orders_2026 (…);

CREATE TABLE user_profiles (…);

Примеры неправильных имён:

sql

— неправильно

CREATE TABLE 1employees (…); — начинается с цифры

CREATE TABLE employees-list (…); — содержит дефис

CREATE TABLE SELECT (…); — зарезервированное слово

ЧТО ТАКОЕ ТИПЫ ДАННЫХ

Тип данных — это правило, которое говорит базе данных: 'в этой колонке могут храниться только такие-то значения'.

Это помогает:

— не ошибаться — база не даст записать текст в колонку с числами

— экономить место — числа хранятся компактнее, чем текст

— быстро искать — базе проще сравнивать числа, чем длинные строки

Основные типы данных, которые мы будем использовать на первых шагах:

ЧТО ТАКОЕ ПЕРВИЧНЫЙ КЛЮЧ (PRIMARY KEY)

Первичный ключ — это уникальный идентификатор каждой строки в таблице.

Зачем он нужен:

— Чтобы каждая запись была уникальной.

— Чтобы можно было быстро найти строку.

— Чтобы другие таблицы могли ссылаться на эту запись (внешние ключи).

Свойства первичного ключа:

— Не может содержать NULL (пустое значение).

— Значения должны быть уникальными.

— В таблице может быть только один первичный ключ.

Примеры первичных ключей в реальной жизни:

— Номер заказа в интернет-магазине.

— ИНН человека.

— Номер телефона человека.

Что используют в качестве первичного ключа:

— Последовательность чисел (1, 2, 3, …) — самый распространённый подход.

— GUID / UUID — специальный набор символов, который гарантированно уникален во всём мире.

В таблице, которую мы создадим — employees (служащие), первичным ключом будет колонка id.

СПОСОБ 1. СОЗДАНИЕ ТАБЛИЦЫ ЧЕРЕЗ ВИЗУАЛЬНЫЙ ИНТЕРФЕЙС pgADMIN

Мы уже создавали таблицу в предыдущем шаге, но для закрепления повторим процесс ещё раз.

— Откройте базу данных.

— В левой панели pgAdmin раскройте Servers → PostgreSQL 18 → Databases.

— Выберите базу, с которой работаете (например, flower_delivery).

— Перейдите в раздел Tables.

— Раскройте Schemas → public → Tables.

— Создайте таблицу.

— Нажмите правой кнопкой мыши на Tables и выберите Create → Table.

— Задайте имя таблицы.

— В открывшемся окне в поле Name введите employees.

— Добавьте колонки.

— Перейдите на вкладку Columns и нажмите + для добавления колонок.

Добавьте следующие колонки:

— id — тип serial. Это будет первичный ключ. В разделе Constraints отметьте PRIMARY KEY.

— head_id — тип integer. В разделе Constraints отметьте NOT NULL.

— name — тип text. В разделе Constraints отметьте NOT NULL.

— position — тип text. Ограничения не требуются.

— salary — тип numeric. Ограничения не требуются.

— Сохраните таблицу.

— Нажмите Save.

СПОСОБ 1. ЗАПОЛНЕНИЕ ТАБЛИЦЫ ЧЕРЕЗ ВИЗУАЛЬНЫЙ ИНТЕРФЕЙС pgADMIN

Как и на предыдущем шаге, заполним таблицу данными через визуальный интерфейс.

— Откройте таблицу для редактирования.

— В левой панели pgAdmin найдите созданную таблицу employees.

— Нажмите на неё правой кнопкой мыши и выберите View/Edit Data → All Rows.

— Добавьте строки.

— В открывшемся окне вы увидите пустую таблицу.

— Нажмите на значок + (Add row) или кликните в последнюю строку (там, где отображается (NULL)).

— Заполните поля.

— Для каждой строки введите значения:

— Сохраните изменения.

— Нажмите Save Data Changes (иконка дискеты) или нажмите F6.

СПОСОБ 2. СОЗДАНИЕ ТАБЛИЦЫ ЧЕРЕЗ SQL

А теперь сделаем то же самое, но через SQL-запросы — этот способ профессиональнее и быстрее.

— Откройте Query Tool.

— В pgAdmin выберите базу данных (например, flower_delivery), затем в меню Tools → Query Tool.

— Напишите запрос на создание таблицы.

sql

CREATE TABLE employees (

id SERIAL PRIMARY KEY,

head_id INTEGER NOT NULL,

name TEXT NOT NULL,

position TEXT,

salary NUMERIC

);

Что тут происходит

— CREATE TABLE — команда, которая создаёт новую таблицу в базе данных.

— employees — имя таблицы.

— id SERIAL PRIMARY KEY — автоматически увеличиваемый уникальный номер, первичный ключ.

— head_id INTEGER NOT NULL — идентификатор руководителя, не может быть пустым.

— name TEXT NOT NULL — имя, не может быть пустым.

— position TEXT — должность, может быть пустой.

— salary NUMERIC — зарплата, может быть пустой.

— Выполните запрос.

— Нажмите кнопку Execute (▶) или клавишу F5.

СПОСОБ 2. ЗАПОЛНЕНИЕ ТАБЛИЦЫ ЧЕРЕЗ SQL

— Откройте Query Tool.

— В pgAdmin выберите базу данных (например, flower_delivery), затем в меню Tools → Query Tool.

— Напишите запрос на вставку данных.

sql

INSERT INTO employees (id, head_id, name, position, salary) VALUES

(1, 1, 'Анна', 'Директор', 100000),

(2, 1, 'Борис', 'Менеджер', 70000),

(3, 1, 'Виктор', 'Менеджер', 70000),

(4, 2, 'Галина', 'Продавец', 50000),

(5, 2, 'Дмитрий', 'Продавец', 50000),

(6, 3, 'Елена', 'Продавец', 50000),

(7, 2, 'Жанна', 'Продавец', 50000),

(8, 3, 'Зоя', 'Продавец', 50000),

(9, 1, 'Иван', 'Аналитик', 60000),

(10, 9, 'Кирилл', 'Стажёр', 30000);

Что тут происходит

— INSERT INTO employees — команда для добавления данных в таблицу.

— В скобках после имени таблицы перечислены колонки, в которые мы вставляем значения.

— VALUES — список строк с данными. Каждая строка в своих скобках.

— Выполните запрос.

— Нажмите кнопку Execute (▶) или клавишу F5.

— Проверьте результат.

sql

SELECT * FROM employees;

Что тут происходит

SELECT * FROM employees — выводит все строки из таблицы employees. Звёздочка * означает 'все колонки'.

ТИПИЧНЫЕ ОШИБКИ

Ошибка 1. Забыть указать NOT NULL для колонки, которая не должна быть пустой.

Неверно:

sql

CREATE TABLE employees (

id SERIAL PRIMARY KEY,

name TEXT

);

Если не указать NOT NULL, в колонку name можно вставить пустое значение (NULL), что часто приводит к проблемам.

Верно:

sql

CREATE TABLE employees (

id SERIAL PRIMARY KEY,

name TEXT NOT NULL

);

Ошибка 2. Забыть указать PRIMARY KEY для колонки, которая должна быть уникальным идентификатором.

Без первичного ключа в таблице могут появиться дубликаты, и на неё будет сложно ссылаться из других таблиц.

Неверно:

sql

CREATE TABLE employees (

id SERIAL,

name TEXT

);

Верно:

sql

CREATE TABLE employees (

id SERIAL PRIMARY KEY,

name TEXT

);

Ошибка 3. Попытаться вставить строку с уже существующим значением первичного ключа.

Неверно:

sql

INSERT INTO employees (id, name) VALUES (1, 'Анна');

INSERT INTO employees (id, name) VALUES (1, 'Борис');

PostgreSQL выдаст ошибку: duplicate key value violates unique constraint.

Верно:

sql

INSERT INTO employees (id, name) VALUES (1, 'Анна');

INSERT INTO employees (id, name) VALUES (2, 'Борис');

Ошибка 4. Забыть кавычки для текстовых значений.

Неверно:

sql

INSERT INTO employees (name) VALUES (Анна);

PostgreSQL подумает, что Анна — это имя колонки или переменной, и выдаст ошибку.

Верно:

sql

INSERT INTO employees (name) VALUES ('Анна');

Ошибка 5. Использовать двойные кавычки для строк.

В SQL строки записываются в одинарных кавычках. Двойные кавычки используются для имён таблиц и колонок (если они содержат пробелы или совпадают с ключевыми словами).

Неверно:

sql

INSERT INTO employees (name) VALUES ('Анна');

Верно:

sql

INSERT INTO employees (name) VALUES ('Анна');

ТОНКОСТИ И НЮАНСЫ

— SERIAL — это не тип данных, а сокращение. На самом деле PostgreSQL создаёт последовательность (SEQUENCE) и устанавливает значение по умолчанию для колонки. При вставке, если не указать id, он заполнится автоматически.

— Кавычки. Для строк — одинарные: 'Анна'. Для имён таблиц и колонок — двойные: 'employees' (обычно не нужны, если имя не совпадает с ключевым словом). Для чисел — никаких кавычек: 100000.

— Порядок колонок в INSERT. Если вы перечисляете колонки, порядок не важен, главное — чтобы значения соответствовали. Если не перечисляете, значения должны идти в том же порядке, что и при создании таблицы.

sql

— порядок колонок не важен

INSERT INTO employees (name, salary, id) VALUES ('Анна', 100000, 1);


— порядок важен — значения должны идти в порядке колонок таблицы

INSERT INTO employees VALUES (1, 'Анна', 100000);

— NOT NULL и PRIMARY KEY. PRIMARY KEY автоматически подразумевает NOT NULL, но не наоборот. Можно создать колонку, которая не может быть пустой, но не является первичным ключом.

— Что делать, если таблица уже существует. Если вы уже создали таблицу, повторный запуск CREATE TABLE вызовет ошибку. Чтобы этого избежать, можно использовать CREATE TABLE IF NOT EXISTS:

sql

CREATE TABLE IF NOT EXISTS employees (

id SERIAL PRIMARY KEY,

name TEXT NOT NULL

);

Что тут происходит

Команда CREATE TABLE IF NOT EXISTS проверяет, существует ли таблица с таким именем. Если таблицы нет — создаёт её. Если таблица уже есть — ничего не делает и не выдаёт ошибку. Это удобно, когда скрипт может выполняться несколько раз (например, при повторной настройке базы данных).

ИЗ ОПЫТА

Когда я только начинал работать с PostgreSQL, я создал таблицу employees без первичного ключа.

Через некоторое время в ней появились дубликаты — два сотрудника с одинаковым id.

Я долго не мог понять, почему при выборке по id возвращается две строки.

С тех пор я всегда добавляю PRIMARY KEY для таблиц, где это нужно, и обязательно проверяю, что колонки, которые не должны быть пустыми, помечены NOT NULL.

ВОПРОСЫ И ОТВЕТЫ

В: Можно ли создать таблицу с другим именем?

О: Да. Имя должно быть уникальным в рамках одной схемы. Старайтесь выбирать осмысленные имена, например employees, products, orders.

В: Что делать, если ошибка в синтаксисе?

О: PostgreSQL выдаст сообщение об ошибке. Внимательно прочитайте его — там обычно указано, где примерно ошибка и что не так. Проверьте кавычки, запятые, названия колонок.

В: Как удалить таблицу?

О: Используйте команду:

sql

DROP TABLE employees;

Что тут происходит

DROP TABLE удаляет таблицу и все данные в ней. Будьте осторожны — восстановить данные будет сложно.

В: Можно ли добавить колонку в уже существующую таблицу?

О: Да. Например:

sql

ALTER TABLE employees ADD COLUMN email TEXT;

Что тут происходит

ALTER TABLE изменяет структуру таблицы. В данном случае добавляется новая колонка email с типом TEXT.

ПОПРОБУЙ САМ

— Создайте таблицу flowers_first с колонками:

— id (SERIAL, PRIMARY KEY)

— name (TEXT, NOT NULL)

— price (NUMERIC)

— Вставьте в неё 3–4 цветка (например, Роза, Тюльпан, Лилия) с разными ценами.

— Выведите все строки из таблицы.

— (По желанию) Создайте такую же таблицу через визуальный интерфейс pgAdmin.

Похожие книги