Магазин
О сервисе
Услуги
Конкурсы
Авторам
Новости
Акции
Помощь
8 800 500 11 67
RUB
Сменить валюту
Войти
Поиск
Все книги
Импринты
Бестселлеры
Бесплатные
Скидки
Подборки
Книги людям
12+
Все
Информационные технологии
Информационные технологии: общее
Оглавление - PostgreSQL. Сто шагов от новичка до профессионала
Практика, примеры, опыт
Максим Чалышев
Электронная
1 600 ₽
Печатная
3 612 ₽
Читать фрагмент
Купить
Объем: 796 бумажных стр.
Формат: epub, fb2, pdfRead, mobi
Подробнее
0.0
0
Оценить
Пожаловаться
О книге
отзывы
Оглавление
Читать фрагмент
Введение
Шаг 1. Что это за книга. Как работать с этой книгой. PostgreSQL
ПОПРОБУЙ САМ
Шаг 2. Что нам понадобится. Установка БД PostgreSQL. Установка pgAdmin
ЖИВОЙ ПРИМЕР
ПОДГОТОВКА К УСТАНОВКЕ
СКАЧИВАНИЕ ДИСТРИБУТИВА
УСТАНОВКА СУБД POSTGRESQL
ПРОВЕРКА УСТАНОВКИ
ТИПИЧНЫЕ ОШИБКИ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
Шаг 3. Что где находится. Как работать с pgAdmin
ЖИВОЙ ПРИМЕР
ПРОСМОТР ДЕРЕВА СЕРВЕРОВ, БАЗ, СХЕМ, ТАБЛИЦ
СОЕДИНЕНИЕ С СЕРВЕРОМ БАЗЫ ДАННЫХ
СОЗДАДИМ ТАБЛИЧКУ ДЛЯ ПРИМЕРА
РАБОТА С ТАБЛИЦАМИ
TOOLS, ИНСТРУМЕНТЫ pgAdmin
ОПИСАНИЕ РАБОТЫ QUERY TOOL
НАСТРОЙКИ ПРОГРАММЫ pgAdmin
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 4. Типы данных. Как создать свою первую таблицу и заполнить её данными
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ТАБЛИЦЫ В БАЗЕ ДАННЫХ
ЧТО ТАКОЕ ТИПЫ ДАННЫХ
ЧТО ТАКОЕ ПЕРВИЧНЫЙ КЛЮЧ (PRIMARY KEY)
СПОСОБ 1. СОЗДАНИЕ ТАБЛИЦЫ ЧЕРЕЗ ВИЗУАЛЬНЫЙ ИНТЕРФЕЙС pgADMIN
СПОСОБ 1. ЗАПОЛНЕНИЕ ТАБЛИЦЫ ЧЕРЕЗ ВИЗУАЛЬНЫЙ ИНТЕРФЕЙС pgADMIN
СПОСОБ 2. СОЗДАНИЕ ТАБЛИЦЫ ЧЕРЕЗ SQL
СПОСОБ 2. ЗАПОЛНЕНИЕ ТАБЛИЦЫ ЧЕРЕЗ SQL
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 5. Установка демонстрационной схемы: вручную и через GitHub
ЖИВОЙ ПРИМЕР
ЧТО ВХОДИТ В ДЕМОНСТРАЦИОННУЮ СХЕМУ
СПОСОБ 1. УСТАНОВКА СХЕМЫ ВРУЧНУЮ
СПОСОБ 2. УСТАНОВКА СХЕМЫ ЧЕРЕЗ GITHUB
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 6. Как использовать демонстрационную схему
ЖИВОЙ ПРИМЕР
ПЕРВЫЕ ШАГИ В PGADMIN
КАК СОЗДАТЬ НОВУЮ БАЗУ ДАННЫХ В PGADMIN
КАК ПОСМОТРЕТЬ ДАННЫЕ В ТАБЛИЦЕ
КАК БЫСТРО НАЙТИ НУЖНУЮ ТАБЛИЦУ
ЕСЛИ ЗАБЫЛИ СТРУКТУРУ ТАБЛИЦЫ
КАК ВЕРНУТЬСЯ К СХЕМЕ, ЕСЛИ ЧТО-ТО ЗАБЫЛИ
КРАТКОЕ ОПИСАНИЕ ДЕМОНСТРАЦИОННОЙ СХЕМЫ — ДОСТАВКА ЦВЕТОВ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 7. Подробное описание демонстрационной схемы
ЖИВОЙ ПРИМЕР
ТАБЛИЦЫ СХЕМЫ
СВЯЗИ МЕЖДУ ТАБЛИЦАМИ
ДАННЫЕ В ТАБЛИЦАХ
ПОЧЕМУ ВЫБРАНА ИМЕННО ЭТА СХЕМА
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 8. Учимся выбирать. Простой оператор SELECT
ЖИВОЙ ПРИМЕР
Комментарии в коде
ПРОСТОЙ SELECT
ПСЕВДОНИМЫ (АЛИАСЫ) КОЛОНОК
ВЫБОР ВСЕХ КОЛОНОК (ЗВЁЗДОЧКА *)
РАБОТА В PGADMIN
ПРИМЕРЫ
… ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 9. Куда же без WHERE?
ЖИВОЙ ПРИМЕР
WHERE
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 10. Одно условие WHERE — скучно. Добавляем AND, OR, NOT, IN, BETWEEN
ЖИВОЙ ПРИМЕР
AND — логическое И
OR — логическое ИЛИ
IN — проверка вхождения в список
BETWEEN — проверка диапазона
NOT — логическое отрицание
ПРИМЕРЫ С КОМБИНАЦИЯМИ
… ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 11. WHERE и LIKE. Ищем неточное совпадение
ЖИВОЙ ПРИМЕР
LIKE
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 12. Запросы и вычисления
ЖИВОЙ ПРИМЕР
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 13. А еще мы можем использовать подзапросы WHERE IN и WHERE EXISTS
ЖИВОЙ ПРИМЕР
ПОДЗАПРОС С IN
ПОДЗАПРОС С EXISTS
ПРИМЕРЫ
В ЧЁМ РАЗНИЦА МЕЖДУ IN И EXISTS
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 14. Поговорим о сортировке ORDER BY
ЖИВОЙ ПРИМЕР
ПРОСТАЯ СОРТИРОВКА
… СОРТИРОВКА ПО УБЫВАНИЮ
СОРТИРОВКА ПО НЕСКОЛЬКИМ ПОЛЯМ
СОРТИРОВКА ПО НОМЕРУ СТОЛБЦА
СОРТИРОВКА И LIMIT
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 15. Больше подзапросов хороших и разных
ЖИВОЙ ПРИМЕР
ПСЕВДОНИМЫ ДЛЯ ПОДЗАПРОСОВ
ПОДЗАПРОСЫ В SELECT
ПОДЗАПРОСЫ В FROM
ВЛОЖЕННЫЕ ПОДЗАПРОСЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 16. Преобразование типов данных в PostgreSQL Превращаем одно в другое
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ПРЕОБРАЗОВАНИЕ ТИПОВ
КАК ЭТО ДЕЛАЕТСЯ
ФУНКЦИИ TO_CHAR И TO_DATE
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 17. Что такое регулярные выражения и с чем их готовить в PostgreSQL
ЖИВОЙ ПРИМЕР
ПОЧЕМУ ОДНОГО LIKE НЕДОСТАТОЧНО
КАК СТРОИТЬ РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ (КОРОТКО)
ПРИМЕРЫ
ФУНКЦИИ ДЛЯ РАБОТЫ С РЕГУЛЯРНЫМИ ВЫРАЖЕНИЯМИ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 18. Строка — это не просто строка. Функции работы со строками
ЖИВОЙ ПРИМЕР
ОСНОВНЫЕ СТРОКОВЫЕ ФУНКЦИИ
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 19. Разбираем функции работы с календарём, датой и временем
ЖИВОЙ ПРИМЕР
ОСНОВНЫЕ ТИПЫ ДАТ И ВРЕМЕНИ
ОСНОВНЫЕ ФУНКЦИИ ДЛЯ РАБОТЫ С ДАТАМИ И ВРЕМЕНЕМ
РАЗНИЦА МЕЖДУ ДАТАМИ (В ДНЯХ, ЧАСАХ, МЕСЯЦАХ)
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 20. Интервалы и последовательности
ЖИВОЙ ПРИМЕР
ГЕНЕРАЦИЯ ЧИСЕЛ
ГЕНЕРАЦИЯ ДАТ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 21. А если из нескольких таблиц? Объединение таблиц JOIN
ЖИВОЙ ПРИМЕР
ВИДЫ JOIN
СИНТАКСИС JOIN
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 22. SQL и пустота. И причём здесь Правые и Левые (RIGHT JOIN и LEFT JOIN)
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ NULL И IS NULL
ФУНКЦИЯ COALESCE
ВИДЫ JOIN (ПОВТОРЕНИЕ И ДОПОЛНЕНИЕ)
LEFT JOIN
NULL И IS NULL В JOIN
RIGHT JOIN
RIGHT JOIN НА ПРАКТИКЕ
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 23. Голова кусает хвост или объединяем таблицу с самой собой
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ САМООБЪЕДИНЕНИЕ
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 24. Объединяем, пересекаем, вычитаем. Работа с множествами (UNION, INTERSECT, EXCEPT)
ЖИВОЙ ПРИМЕР
ПРАВИЛА РАБОТЫ С ОПЕРАТОРАМИ МНОЖЕСТВ
UNION И UNION ALL
INTERSECT
EXCEPT
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 25. WITH или как сохранить результат, чтобы не искать заново (CTE, в том числе рекурсивные)
ЖИВОЙ ПРИМЕР
ПРОСТОЕ CTE (БЕЗ РЕКУРСИИ)
CTE МОЖНО ИСПОЛЬЗОВАТЬ НЕСКОЛЬКО РАЗ
РЕКУРСИВНЫЕ CTE (ДЛЯ ИЕРАРХИЙ И ПОСЛЕДОВАТЕЛЬНОСТЕЙ)
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 26. Большая группировка. Группировка данных и агрегатные функции
ЖИВОЙ ПРИМЕР
АГРЕГАТНЫЕ ФУНКЦИИ
ПРОСТАЯ ГРУППИРОВКА
ГРУППИРОВКА С НЕСКОЛЬКИМИ АГРЕГАТАМИ
ГРУППИРОВКА ПО НЕСКОЛЬКИМ КОЛОНКАМ
ГРУППИРОВКА С УСЛОВИЕМ (WHERE)
ГРУППИРОВКА С ВЫЧИСЛЯЕМЫМ ПОЛЕМ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 27. Можно фильтровать и это тоже? Фильтруем результаты группировки с помощью HAVING
ЖИВОЙ ПРИМЕР
СИНТАКСИС
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 28. Собираем строки в кучу. STRING_AGG
ЖИВОЙ ПРИМЕР
СИНТАКСИС
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 29. CASE или как выводить то, чего не было
ЖИВОЙ ПРИМЕР
СИНТАКСИС
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 30. Слишком много дубликатов, дубликатов… DISTINCT и другие способы убрать дублирование данных
ЖИВОЙ ПРИМЕР
ПРОСТОЙ DISTINCT
DISTINCT ДЛЯ НЕСКОЛЬКИХ КОЛОНОК
DISTINCT И NULL
АЛЬТЕРНАТИВЫ DISTINCT
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 31. Подведем промежуточные итоги
ЖИВОЙ ПРИМЕР
ЧТО МЫ УЖЕ УМЕЕМ
ПРИМЕРЫ С ОБЪЯСНЕНИЯМИ
ЧТО ДАЛЬШЕ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 32. Аналитические функции в запросе. Часть 1
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ АНАЛИТИЧЕСКИЕ ФУНКЦИИ
КОНСТРУКЦИЯ АНАЛИТИЧЕСКОЙ ФУНКЦИИ
ПРОСТЕЙШАЯ АНАЛИТИЧЕСКАЯ ФУНКЦИЯ: ROW_NUMBER ()
RANK () И DENSE_RANK ()
НУМЕРАЦИЯ ВНУТРИ ГРУПП
ПРИМЕРЫ РЕЙТИНГОВ С ROW_NUMBER ()
ЧЕМ АНАЛИТИЧЕСКИЕ ФУНКЦИИ ОТЛИЧАЮТСЯ ОТ GROUP BY
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 33. Аналитические функции в запросе. Часть 2
ЖИВОЙ ПРИМЕР
RANK () — РЕЙТИНГ С ПРОПУСКАМИ
DENSE_RANK () — РЕЙТИНГ БЕЗ ПРОПУСКОВ
СРАВНЕНИЕ ROW_NUMBER, RANK, DENSE_RANK
НАКОПИТЕЛЬНЫЕ СУММЫ (SUM () С ФРЕЙМАМИ)
НАКОПИТЕЛЬНАЯ СУММА В РАМКАХ ГРУППЫ (PARTITION BY)
СКОЛЬЗЯЩЕЕ СРЕДНЕЕ (ROWS BETWEEN)
ПЕРВАЯ И ПОСЛЕДНЯЯ СТРОКА В ГРУППЕ (FIRST_VALUE, LAST_VALUE)
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 34. Аналитические функции в запросе. Часть 3
ЖИВОЙ ПРИМЕР
ПЕРВАЯ И ПОСЛЕДНЯЯ СТРОКА В ГРУППЕ (FIRST_VALUE, LAST_VALUE)
LAG () — ДОСТУП К ПРЕДЫДУЩЕЙ СТРОКЕ
LEAD () — ДОСТУП К СЛЕДУЮЩЕЙ СТРОКЕ
АКТУАЛЬНЫЙ ПРИМЕР: ВРЕМЯ МЕЖДУ СОБЫТИЯМИ
СКОЛЬЗЯЩЕЕ СРЕДНЕЕ (ROWS BETWEEN)
РАЗНИЦА МЕЖДУ ТЕКУЩИМ И ПРЕДЫДУЩИМ ЗНАЧЕНИЕМ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 35. Сочетание сложных подзапросов. Готовим винегрет на SQL
ЖИВОЙ ПРИМЕР
ПОДЗАПРОС В SELECT + ОКОННЫЕ ФУНКЦИИ
CTE + ОКОННЫЕ ФУНКЦИИ + ПОДЗАПРОС
ПОДЗАПРОС В WHERE + GROUP BY + HAVING
CTE + UNION + ПОДЗАПРОС
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 36. UNION, INTERSECT, EXCEPT. Продвинутое использование
ЖИВОЙ ПРИМЕР
UNION С ORDER BY И LIMIT
ВЛОЖЕННЫЕ ОБЪЕДИНЕНИЯ
ИСПОЛЬЗОВАНИЕ UNION В ПОДЗАПРОСАХ
UNION vs JOIN: КОГДА ЧТО ИСПОЛЬЗОВАТЬ
ПРОИЗВОДИТЕЛЬНОСТЬ: UNION vs UNION ALL
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 37. Повторение материала. Сочетание операторов множеств и предикатов
ЖИВОЙ ПРИМЕР
КРАТКОЕ НАПОМИНАНИЕ
СОЧЕТАНИЕ С WHERE
СОЧЕТАНИЕ С JOIN
СОЧЕТАНИЕ С GROUP BY И HAVING
СОЧЕТАНИЕ С ПОДЗАПРОСАМИ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 38. Запросы с иерархией. Кто кому начальник…
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ РЕКУРСИВНОЕ CTE
СОЗДАНИЕ ТАБЛИЦЫ СОТРУДНИКОВ
ВЫВЕСТИ ИЕРАРХИЮ ПОДЧИНЕНИЯ С УРОВНЕМ ВЛОЖЕННОСТИ
КТО ЧЕЙ БОСС? ВЫВЕСТИ ДЛЯ КАЖДОГО СОТРУДНИКА ЕГО РУКОВОДИТЕЛЯ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 39. Crosstab. Поворачиваем данные с ног на голову
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ CROSSTAB И КАК ЕГО УСТАНОВИТЬ
СИНТАКСИС CROSSTAB
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 40. Повторение… никуда не денется. Сочетаем вместе подзапросы и множества
ЖИВОЙ ПРИМЕР
ПОДЗАПРОСЫ ВНУТРИ МНОЖЕСТВ
МНОЖЕСТВА ВНУТРИ ПОДЗАПРОСОВ
СОЧЕТАНИЕ МНОЖЕСТВ, ПОДЗАПРОСОВ И CTE
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 41. Повторение материала. Подробнее об ANY, SOME и ALL
ЖИВОЙ ПРИМЕР
ANY И SOME
ALL
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 42. Повторение темы подзапросов. Подзапросы в запросах с группировкой данных
ЖИВОЙ ПРИМЕР
ПОДЗАПРОС В WHERE С АГРЕГАТНОЙ ФУНКЦИЕЙ
ПОДЗАПРОС В HAVING
ПОДЗАПРОС В SELECT С ГРУППИРОВКОЙ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 43. Коррелированные подзапросы. Когда подзапрос зависит от внешнего запроса
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ КОРРЕЛИРОВАННЫЙ ПОДЗАПРОС
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 44. А вот что еще у нас есть. Создаем внутренние списки VALUES
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ VALUES
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 45. Работа с массивами данных
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ МАССИВЫ В POSTGRESQL
ВСТАВКА ДАННЫХ В МАССИВ
ОПЕРАЦИИ С МАССИВАМИ
ПРИМЕРЫ С НАШЕЙ СХЕМОЙ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 46. LATERAL. Высший аналитический пилотаж SQL. Часть 1. Топ-N по группам
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ LATERAL
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 47. LATERAL. Высший аналитический пилотаж SQL. Часть 2. Сложная отчетность
ЖИВОЙ ПРИМЕР
СОЧЕТАНИЕ LATERAL С CTE
СОЧЕТАНИЕ LATERAL С ОКОННЫМИ ФУНКЦИЯМИ
LATERAL И НЕСКОЛЬКО ПОДЗАПРОСОВ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 48. Сочетаем VALUES и LATERAL
ЖИВОЙ ПРИМЕР
VALUES КАК ИСТОЧНИК ДЛЯ LATERAL
LATERAL С GENERATE_SERIES (ВМЕСТО VALUES)
СОЧЕТАНИЕ VALUES И LATERAL В ОДНОМ ЗАПРОСЕ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 49. Задания с собеседований в крупные фирмы
ЖИВОЙ ПРИМЕР
ВОПРОСЫ И ОТВЕТЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 50. Подведем промежуточные итоги. Я сегодня многое понял
ЖИВОЙ ПРИМЕР
ЧТО МЫ УЖЕ УМЕЕМ
ЧТО ДАЛЬШЕ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 51. Структура данных. Нормализация
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ НОРМАЛИЗАЦИЯ
ПЕРВАЯ НОРМАЛЬНАЯ ФОРМА (1НФ)
ВТОРАЯ НОРМАЛЬНАЯ ФОРМА (2НФ)
ТРЕТЬЯ НОРМАЛЬНАЯ ФОРМА (3НФ)
НОРМАЛИЗОВАННАЯ СХЕМА НАШЕЙ ДЕМО-БАЗЫ
КОГДА НОРМАЛИЗАЦИЯ НЕ НУЖНА
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 52. Подробнее о создании таблиц, схемы
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ СХЕМА (КРАТКО)
ПОЛНЫЙ СИНТАКСИС CREATE TABLE
ТИПЫ ДАННЫХ ДЛЯ КОЛОНОК
ОГРАНИЧЕНИЯ (CONSTRAINTS)
ОГРАНИЧЕНИЕ CHECK (ПОДРОБНО)
ПРИМЕРЫ СОЗДАНИЯ ТАБЛИЦ
СОЗДАНИЕ ТАБЛИЦЫ С ПРОВЕРКОЙ СУЩЕСТВОВАНИЯ
КОПИРОВАНИЕ СТРУКТУРЫ ТАБЛИЦЫ
ВРЕМЕННЫЕ ТАБЛИЦЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 53. Специальная вставка (INSERT… RETURNING, INSERT… ON CONFLICT, INSERT… FROM SELECT)
ЖИВОЙ ПРИМЕР
INSERT С RETURNING
INSERT FROM SELECT
INSERT ON CONFLICT (UPSERT)
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 54. Удаление и обновление данных
ЖИВОЙ ПРИМЕР
UPDATE — ОБНОВЛЕНИЕ ДАННЫХ
DELETE — УДАЛЕНИЕ ДАННЫХ
TRUNCATE — БЫСТРАЯ ОЧИСТКА ТАБЛИЦЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 55. Вставить, обновить и удалить. Оператор MERGE
ЖИВОЙ ПРИМЕР
СИНТАКСИС
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 56. Что такое расширения для PostgreSQL
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ РАСШИРЕНИЕ
УСТАНОВКА РАСШИРЕНИЯ
УСТАНОВКА ИЗ АЛЬТЕРНАТИВНЫХ ИСТОЧНИКОВ
ПРОСМОТР УСТАНОВЛЕННЫХ РАСШИРЕНИЙ
УДАЛЕНИЕ РАСШИРЕНИЯ
ОСНОВНЫЕ ГРУППЫ РАСШИРЕНИЙ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 57. Самые полезные расширения PostgreSQL
ЖИВОЙ ПРИМЕР
САМЫЕ ПОПУЛЯРНЫЕ РАСШИРЕНИЯ
UUID-OSSP — ГЕНЕРАЦИЯ UUID
CITEXT — РЕГИСТРОНЕЗАВИСИМЫЕ СТРОКИ
PG_TRGM — НЕЧЁТКИЙ ПОИСК ПО ТЕКСТУ
HSTORE — ХРАНЕНИЕ ПАР КЛЮЧ-ЗНАЧЕНИЕ
PGCRYPTO — КРИПТОГРАФИЧЕСКИЕ ФУНКЦИИ
TABLEFUNC — ПОВОРОТ ДАННЫХ (CROSSTAB)
POSTGRES_FDW — ДОСТУП К ДРУГИМ БАЗАМ ДАННЫХ
FILE_FDW — ЧТЕНИЕ CSV И ДРУГИХ ФАЙЛОВ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 58. Что такое представление в PostgreSQL
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ПРЕДСТАВЛЕНИЕ
ПРЕИМУЩЕСТВА ПРЕДСТАВЛЕНИЙ
ПРОСТЫЕ И СЛОЖНЫЕ ПРЕДСТАВЛЕНИЯ
ОБНОВЛЕНИЕ ДАННЫХ ЧЕРЕЗ ПРЕДСТАВЛЕНИЯ
ПРЕДСТАВЛЕНИЯ И ПРОИЗВОДИТЕЛЬНОСТЬ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 59. Материализованные представления
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ МАТЕРИАЛИЗОВАННОЕ ПРЕДСТАВЛЕНИЕ
ОБНОВЛЕНИЕ МАТЕРИАЛИЗОВАННОГО ПРЕДСТАВЛЕНИЯ
ИНДЕКСЫ НА МАТЕРИАЛИЗОВАННЫХ ПРЕДСТАВЛЕНИЯХ
КОГДА ИСПОЛЬЗОВАТЬ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 60. Повторение материала. Повторим то, что уже изучили
ЖИВОЙ ПРИМЕР
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 61. Создание собственных агрегатных функций
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ АГРЕГАТНАЯ ФУНКЦИЯ
СОЗДАНИЕ АГРЕГАТА ЧЕРЕЗ ФУНКЦИЮ-НАКОПИТЕЛЬ
ПРИМЕРЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 62. Работа с JSON, JSONB в PostgreSQL
ЖИВОЙ ПРИМЕР
JSON И JSONB: В ЧЁМ РАЗНИЦА
СОЗДАНИЕ ТАБЛИЦЫ С JSONB
ВСТАВКА ДАННЫХ
СОЗДАНИЕ JSON ИЗ ДАННЫХ ТАБЛИЦЫ: jsonb_build_object ()
ДОСТУП К ЭЛЕМЕНТАМ JSON
ПОИСК ПО JSON
ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ ПОИСКА ДЛЯ JSONB
ОБНОВЛЕНИЕ JSON
ИНДЕКСЫ ДЛЯ JSONB
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 63. Работа с XML в PostgreSQL
ЖИВОЙ ПРИМЕР
ТИПЫ ДАННЫХ ДЛЯ XML
ВСТАВКА XML
ИЗВЛЕЧЕНИЕ ДАННЫХ ИЗ XML
ПОИСК ПО XML
ГЕНЕРАЦИЯ XML ИЗ ДАННЫХ ТАБЛИЦЫ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 64. Полнотекстовый поиск. Часть 1
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ПОЛНОТЕКСТОВЫЙ ПОИСК
ПОДГОТОВКА ТЕСТОВОЙ ТАБЛИЦЫ (РОМАН 'ОТЦЫ И ДЕТИ')
ОСНОВНЫЕ КОМПОНЕНТЫ FULL-TEXT SEARCH
ПРОСТЫЕ ПРИМЕРЫ ПОИСКА В РОМАНЕ — ОТЦЫ И ДЕТИ
ЧТО ТАКОЕ СТОП-СЛОВА
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 65. Полнотекстовый поиск. Часть 2
ЖИВОЙ ПРИМЕР
GIN-ИНДЕКС ДЛЯ ПОЛНОТЕКСТОВОГО ПОИСКА
ХРАНЕНИЕ TSVECTOR В ОТДЕЛЬНОЙ КОЛОНКЕ
СОРТИРОВКА ПО РЕЛЕВАНТНОСТИ (TS_RANK)
ПОИСК ФРАЗЫ (ОПЕРАТОР <->)
ПОЛНОТЕКСТОВЫЙ ПОИСК В НАШЕЙ СХЕМЕ ДОСТАВКА ЦВЕТОВ
ПРОДОЛЖЕНИЕ РАБОТЫ С ТЕСТОВОЙ ТАБЛИЦЕЙ ОТЦЫ И ДЕТИ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 66. Полнотекстовый поиск. Часть 3
ЖИВОЙ ПРИМЕР
ЯЗЫКОВЫЕ КОНФИГУРАЦИИ
СОЗДАНИЕ СОБСТВЕННОЙ КОНФИГУРАЦИИ
СТОП-СЛОВА
СИНОНИМЫ
СРАВНЕНИЕ КОНФИГУРАЦИЙ
ПОИСК ПО НЕСКОЛЬКИМ ЯЗЫКАМ
ПРОДВИНУТЫЕ ТЕХНИКИ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 67. Индексы. Общая информация
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ИНДЕКС
ПОЧЕМУ ИНДЕКСЫ ВАЖНЫ
КАК СОЗДАТЬ ИНДЕКС
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 68. Индексы. Типы индексов (B-tree, GIN, GiST, BRIN)
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ТИПЫ ИНДЕКСОВ
СОЗДАНИЕ И УДАЛЕНИЕ ИНДЕКСОВ. ОБЩИЙ СИНТАКСИС
B-TREE — СТАНДАРТ ПО УМОЛЧАНИЮ
GIN — ДЛЯ ПОИСКА ВНУТРИ СОСТАВНЫХ ЗНАЧЕНИЙ
GIST — ДЛЯ ГЕОДАННЫХ И СЛОЖНЫХ УСЛОВИЙ
BRIN — ДЛЯ ОГРОМНЫХ ТАБЛИЦ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 69. Индексы и производительность
ЖИВОЙ ПРИМЕР
ПОДГОТОВКА ТЕСТОВЫХ ДАННЫХ
ЗАПРОС БЕЗ ИНДЕКСА
СОЗДАЁМ ИНДЕКС
ЗАПРОС С ИНДЕКСОМ
СРАВНЕНИЕ РЕЗУЛЬТАТОВ
ЭКСПЕРИМЕНТ С ВЫБОРКОЙ 10% СТРОК
ПРАВИЛО ВЫБОРА ИНДЕКСА
ДОПОЛНИТЕЛЬНЫЕ ПРИМЕРЫ
ЧТО ТАКОЕ EXPLAIN ANALYZE
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 70. Повторение изученного материала
ЖИВОЙ ПРИМЕР
ЗАДАНИЯ НА ПОВТОРЕНИЕ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 71. Хранимые функции в PL/pgSQL. Часть 1
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ХРАНИМАЯ ФУНКЦИЯ
ПЕРЕМЕННЫЕ В PL/PGSQL
ВЫЧИСЛЕНИЯ И ОПЕРАТОРЫ
УСЛОВНАЯ ЛОГИКА (IF/ELSE)
ЦИКЛЫ (LOOP, WHILE, FOR)
КУРСОРЫ (CURSOR)
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 72. Хранимые функции в PL/pgSQL. Часть 2
ЖИВОЙ ПРИМЕР
ФУНКЦИИ, ВОЗВРАЩАЮЩИЕ ТАБЛИЦУ (RETURNS TABLE)
ФУНКЦИИ, ВОЗВРАЩАЮЩИЕ SETOF (НАБОР СТРОК)
ПОВТОРЕНИЕ: КУРСОРЫ (УГЛУБЛЁННОЕ)
ОБРАБОТКА ИСКЛЮЧЕНИЙ (EXCEPTION)
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 73. Динамический SQL (EXECUTE)
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ДИНАМИЧЕСКИЙ SQL
ПРОСТОЙ ПРИМЕР: ПОИСК ПО РАЗНЫМ КОЛОНКАМ
ПОДСТАНОВКА ИМЕНИ ТАБЛИЦЫ
БЕЗОПАСНОСТЬ: ЗАЩИТА ОТ SQL-ИНЪЕКЦИЙ
ВОЗВРАТ РЕЗУЛЬТАТА ИЗ ДИНАМИЧЕСКОГО ЗАПРОСА
ВЫПОЛНЕНИЕ DDL-КОМАНД (CREATE, ALTER, DROP)
ОБРАБОТКА ИСКЛЮЧЕНИЙ В ДИНАМИЧЕСКОМ SQL
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 74. Работа с внешними данными (FDW, foreign tables)
ЖИВОЙ ПРИМЕР
COPY — БЫСТРЫЙ ИМПОРТ И ЭКСПОРТ
FILE_FDW — ЧТЕНИЕ CSV КАК ВНЕШНЕЙ ТАБЛИЦЫ
POSTGRES_FDW — ДОСТУП К ДРУГОЙ БАЗЕ POSTGRESQL
РАБОТА С ТЕКСТОВЫМИ ФАЙЛАМИ (ЧЕРЕЗ COPY)
ПРАВА НА ФАЙЛЫ ДЛЯ COPY И FILE_FDW
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 75. Последовательности. Автоформирование ключа
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ПОСЛЕДОВАТЕЛЬНОСТЬ
РАБОТА С ПОСЛЕДОВАТЕЛЬНОСТЬЮ
SERIAL — ЭТО ПРОСТО ПОСЛЕДОВАТЕЛЬНОСТЬ
ИСПОЛЬЗОВАНИЕ ПОСЛЕДОВАТЕЛЬНОСТИ ВРУЧНУЮ
ПОСЛЕДОВАТЕЛЬНОСТИ ДЛЯ НЕТАБЛИЧНЫХ СЧЁТЧИКОВ
ПРОСМОТР СУЩЕСТВУЮЩИХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 76. Триггеры в PostgreSQL
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ТРИГГЕР
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 77. Транзакции в PostgreSQL
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ТРАНЗАКЦИЯ
COMMIT — ФИКСАЦИЯ ИЗМЕНЕНИЙ
ROLLBACK — ОТМЕНА ИЗМЕНЕНИЙ
SAVEPOINT — ТОЧКИ СОХРАНЕНИЯ
ТРАНЗАКЦИИ В ПРИЛОЖЕНИЯХ
АВТОКОММИТ (AUTOCOMMIT)
DML И DDL В ТРАНЗАКЦИЯХ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 78. Транзакции и уровни изоляции
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ УРОВЕНЬ ИЗОЛЯЦИИ
УРОВНИ ИЗОЛЯЦИИ В POSTGRESQL
READ COMMITTED (ПО УМОЛЧАНИЮ)
REPEATABLE READ
КАК ВЫБРАТЬ УРОВЕНЬ ИЗОЛЯЦИИ
DBLINK И АВТОНОМНЫЕ ТРАНЗАКЦИИ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 79. Транзакции и блокировки
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ БЛОКИРОВКА
ПРИМЕР БЛОКИРОВКИ СТРОКИ
ПРОСМОТР БЛОКИРОВОК
КАК ИЗБЕЖАТЬ ДЕДЛОКОВ
БЛОКИРОВКИ ТАБЛИЦ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 80. Правила (RULE) — альтернатива триггерам
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ПРАВИЛА (RULES)
ПРОСТОЙ ПРИМЕР: ЛОГИРОВАНИЕ УДАЛЕНИЙ
ПРИМЕР: ЗАПРЕТ УДАЛЕНИЯ (INSTEAD)
ПРИМЕР: ПЕРЕНАПРАВЛЕНИЕ UPDATE НА INSERT
ПРИМЕР: ОБНОВЛЕНИЕ ЧЕРЕЗ ПРЕДСТАВЛЕНИЕ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 81. Схемы, роли и пользователи. Часть 1
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ РОЛИ И ПОЛЬЗОВАТЕЛИ
ОСНОВНЫЕ ОПЦИИ ПРИ СОЗДАНИИ РОЛИ
ПРОСМОТР РОЛЕЙ И ПОЛЬЗОВАТЕЛЕЙ
НАСТРОЙКА ПРАВ ДОСТУПА (GRANT И REVOKE)
НАСЛЕДОВАНИЕ РОЛЕЙ
НАСТРОЙКА ПРАВ ПО УМОЛЧАНИЮ (DEFAULT PRIVILEGES)
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 82. Схемы, роли и пользователи. Часть 2
ЖИВОЙ ПРИМЕР
RLS (ROW LEVEL SECURITY) — ЗАЩИТА НА УРОВНЕ СТРОК
ОГРАНИЧЕНИЯ НА УРОВНЕ КОЛОНОК
НАСТРОЙКА ПРАВ НА СХЕМЫ
НАСЛЕДОВАНИЕ РОЛЕЙ И ИЕРАРХИЯ ПРАВ
БЕЗОПАСНОСТЬ НА УРОВНЕ ФУНКЦИЙ
АУДИТ И МОНИТОРИНГ ДОСТУПА
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 83. Секционирование таблиц в PostgreSQL. Часть 1
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ СЕКЦИОНИРОВАНИЕ
ТИПЫ СЕКЦИОНИРОВАНИЯ
RANGE — СЕКЦИОНИРОВАНИЕ ПО ДИАПАЗОНУ
LIST — СЕКЦИОНИРОВАНИЕ ПО СПИСКУ
HASH — СЕКЦИОНИРОВАНИЕ ПО ХЕШУ
СЕКЦИОНИРОВАНИЕ ПО ДИАПАЗОНУ (RANGE) — ПОДРОБНО
ОТСЕЧЕНИЕ СЕКЦИЙ (PARTITION PRUNING)
СЕКЦИОНИРОВАНИЕ ПО СПИСКУ (LIST)
СЕКЦИОНИРОВАНИЕ ПО ХЕШУ (HASH)
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 84. Секционирование таблиц в PostgreSQL. Часть 2
ЖИВОЙ ПРИМЕР
ДОБАВЛЕНИЕ НОВОЙ СЕКЦИИ
ОТСОЕДИНЕНИЕ СЕКЦИИ (DETACH)
УДАЛЕНИЕ СЕКЦИИ
ДОБАВЛЕНИЕ СЕКЦИИ С ДАННЫМИ (ATTACH)
АВТОМАТИЧЕСКОЕ СОЗДАНИЕ СЕКЦИЙ
ПРОВЕРКА СТРУКТУРЫ СЕКЦИЙ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 85. Подведем итоги. Практические задания
ЖИВОЙ ПРИМЕР
ДОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ ЗАДАНИЕ 14. СЕКЦИОНИРОВАНИЕ (ШАГ 83–84)
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 86. Информационная схема метаданных PgSQL. Часть 1
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ИНФОРМАЦИОННАЯ СХЕМА
ПОЛУЧЕНИЕ СПИСКА ТАБЛИЦ
ПОЛУЧЕНИЕ СПИСКА КОЛОНОК ТАБЛИЦЫ
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ПЕРВИЧНЫХ КЛЮЧАХ
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ВНЕШНИХ КЛЮЧАХ
ПОЛУЧЕНИЕ СПИСКА ПРЕДСТАВЛЕНИЙ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 87. Информационная схема метаданных PgSQL. Часть 2
ЖИВОЙ ПРИМЕР
СИСТЕМНЫЕ КАТАЛОГИ (PG_CATALOG)
ПОЛУЧЕНИЕ ИНФОРМАЦИИ ОБ ИНДЕКСАХ
РАЗМЕР ТАБЛИЦ И ИНДЕКСОВ
СТАТИСТИКА ИСПОЛЬЗОВАНИЯ ИНДЕКСОВ
СТАТИСТИКА ПО ТАБЛИЦАМ
ИНФОРМАЦИЯ О ПРИВИЛЕГИЯХ (ПРАВАХ ДОСТУПА)
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ФУНКЦИЯХ
ПОИСК ЗАВИСИМОСТЕЙ МЕЖДУ ОБЪЕКТАМИ
СИСТЕМНЫЕ ФУНКЦИИ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 88. PostgreSQL. Основные процессы и файлы
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ПРОЦЕССЫ, ФАЙЛЫ, ЛОГИ, КОНФИГУРАЦИЯ
АРХИТЕКТУРА POSTGRESQL: ПРОЦЕССЫ
WAL (WRITE-AHEAD LOG)
ФАЙЛОВАЯ СТРУКТУРА POSTGRESQL
КОНФИГУРАЦИОННЫЕ ФАЙЛЫ
ЛОГИ POSTGRESQL
СБРОС ЗАБЫТОГО ПАРОЛЯ ПОЛЬЗОВАТЕЛЯ POSTGRESQL
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 89. Работаем с геоданными
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ POSTGIS
УСТАНОВКА И НАСТРОЙКА
ТИПЫ ГЕОДАННЫХ
ПРОСТРАНСТВЕННЫЙ ИНДЕКС
ВСТАВКА ГЕОДАННЫХ
ПОИСК БЛИЖАЙШИХ ТОЧЕК
ПОИСК В РАДИУСЕ
ПОИСК ВНУТРИ ПОЛИГОНА
СИСТЕМНЫЕ ФУНКЦИИ ДЛЯ ГЕОДАННЫХ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 90. Задачи с собеседований (часть 2)
ЖИВОЙ ПРИМЕР
ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ
ПРАКТИЧЕСКИЕ ЗАДАЧИ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 91. Планировщик запросов (Query Planner). Часть 1
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ ПЛАНИРОВЩИК ЗАПРОСОВ
ЧТО ТАКОЕ ПЛАН ВЫПОЛНЕНИЯ
ЧТЕНИЕ ПЛАНА ВЫПОЛНЕНИЯ (EXPLAIN)
EXPLAIN ANALYZE — РЕАЛЬНОЕ ВЫПОЛНЕНИЕ
ТИПЫ СКАНИРОВАНИЯ ТАБЛИЦ
ТИПЫ СОЕДИНЕНИЙ (JOIN)
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 92. Планировщик запросов (Query Planner). Часть 2
ЖИВОЙ ПРИМЕР
СТРУКТУРА ПЛАНА ВЫПОЛНЕНИЯ
ЧТЕНИЕ ПЛАНА С EXPLAIN ANALYZE
УЗЛЫ ПЛАНА И ИХ ЗНАЧЕНИЕ
ПОИСК УЗКИХ МЕСТ (BOTTLENECKS)
ИНСТРУМЕНТЫ ДЛЯ АНАЛИЗА ПЛАНА
ТИПИЧНЫЕ ОШИБКИ ПРИ АНАЛИЗЕ ПЛАНА
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 93. Оптимизация сложных запросов
ЖИВОЙ ПРИМЕР
ПРИЗНАКИ МЕДЛЕННОГО ЗАПРОСА
СТРАТЕГИЯ ОПТИМИЗАЦИИ
ОПТИМИЗАЦИЯ ЧЕРЕЗ ИНДЕКСЫ
ОПТИМИЗАЦИЯ ЧЕРЕЗ ПЕРЕПИСЫВАНИЕ ЗАПРОСА
ОПТИМИЗАЦИЯ ЧЕРЕЗ НАСТРОЙКИ
ПРИМЕР ПОЛНОЙ ОПТИМИЗАЦИИ
ТИПИЧНЫЕ ОШИБКИ ПРИ ОПТИМИЗАЦИИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
ЗАДАЧИ НА ПОВТОРЕНИЕ
Шаг 94. Простой бэкап базы данных
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ pg_dump
СОЗДАНИЕ БЭКАПА ЧЕРЕЗ КОМАНДНУЮ СТРОКУ
СОЗДАНИЕ БЭКАПА ЧЕРЕЗ PGADMIN
ВОССТАНОВЛЕНИЕ ИЗ БЭКАПА
ФОРМАТЫ БЭКАПОВ
АВТОМАТИЗАЦИЯ БЭКАПОВ
PG_DUMPALL — ПОЛНЫЙ БЭКАП ВСЕГО СЕРВЕРА
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 95. Итоговое тестирование
ЖИВОЙ ПРИМЕР
ВОПРОСЫ С ВЫБОРОМ ОТВЕТА (1–20)
ПРАВИЛЬНЫЕ ОТВЕТЫ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 96. Работа с ИИ. Введение
ЖИВОЙ ПРИМЕР
ЧТО ТАКОЕ НЕЙРОСЕТИ И ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ
ГДЕ ПРИМЕНЯЕТСЯ ИИ
ПОПУЛЯРНЫЕ ИИ-ИНСТРУМЕНТЫ ДЛЯ РАБОТЫ С КОДОМ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 97. Работа с ИИ. Используем DeepSeek. Используем Cursor
ЖИВОЙ ПРИМЕР
DEEPSEEK — БЕСПЛАТНЫЙ ПОМОЩНИК ДЛЯ SQL
ПРИМЕРЫ РАБОТЫ С DEEPSEEK
CURSOR — РЕДАКТОР КОДА С ИИ
ТИПИЧНЫЕ ОШИБКИ ПРИ РАБОТЕ С ИИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 98. Работа с ИИ: pg-aiguide, pg_ai_query
ЖИВОЙ ПРИМЕР
PG-AIGUIDE: ОБУЧАЕМ ИИ POSTGRESQL
PG_AI_QUERY: ПРЕВРАЩАЕМ ТЕКСТ В SQL
СРАВНЕНИЕ ИНСТРУМЕНТОВ ДЛЯ РАБОТЫ С ИИ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ
ИЗ ОПЫТА
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 99. Заключительное тестирование
ЖИВОЙ ПРИМЕР
ВОПРОСЫ С ВЫБОРОМ ОТВЕТА (1–20)
ПРАВИЛЬНЫЕ ОТВЕТЫ
ВОПРОСЫ И ОТВЕТЫ
ПОПРОБУЙ САМ
Шаг 100. Что дальше: ресурсы, сообщества
ЖИВОЙ ПРИМЕР
ОФИЦИАЛЬНАЯ ДОКУМЕНТАЦИЯ
РУССКОЯЗЫЧНЫЕ РЕСУРСЫ
СООБЩЕСТВА И ФОРУМЫ
ПОЛЕЗНЫЕ ИНСТРУМЕНТЫ
ЧТО ПОСМОТРЕТЬ
КУДА ДВИГАТЬСЯ ДАЛЬШЕ
ТИПИЧНЫЕ ОШИБКИ
ТОНКОСТИ И НЮАНСЫ