II. Язык SQL
В этой части книги описывается использование языка SQL в PostgreSQL. Мы начнём с описания общего синтаксиса SQL, затем расскажем, как создавать структуры для хранения данных, как наполнять базу данных и как выполнять запросы к ней. В продолжении будут перечислены существующие типы данных и функции, применяемые с командами SQL. И наконец, закончится эта часть рассмотрением важных аспектов настройки базы данных для оптимальной производительности.
Материал этой части упорядочен так, чтобы новичок мог прочитать её от начала до конца и полностью понять все темы, не забегая вперёд. При этом главы сделаны самодостаточными, так что опытные пользователи могут читать главы по отдельности. Информация в этой части книги представлена в повествовательном стиле и разделена по темам. Если же вас интересует формальное и полное описание определённой команды, см. Часть VI.
Читатели этой части книги должны уже знать, как подключаться к базе данных PostgreSQL и выполнять команды SQL. Если вы ещё не знаете этого, рекомендуется сначала прочитать Часть I. Команды SQL обычно вводятся в psql — интерактивном терминальном приложении PostgreSQL, но можно воспользоваться и другими программами с подобными функциями.
- Содержание
- 4. Синтаксис SQL
- 4.1. Лексическая структура
- 4.2. Выражения значения
- 4.3. Вызов функций
- 4.2. Выражения значения
- 4.1. Лексическая структура
- 5. Определение данных
- 5.1. Основы таблиц
- 5.2. Значения по умолчанию
- 5.3. Ограничения
- 5.4. Системные колонки
- 5.5. Изменение таблиц
- 5.6. Права
- 5.7. Схемы
- 5.8. Наследование
- 5.9. Секционирование
- 5.10. Сторонние данные
- 5.11. Другие объекты баз данных
- 5.12. Отслеживание зависимостей
- 5.2. Значения по умолчанию
- 5.1. Основы таблиц
- 6. Модификация данных
- 6.1. Добавление данных
- 6.2. Изменение данных
- 6.3. Удаление данных
- 6.2. Изменение данных
- 6.1. Добавление данных
- 7. Запросы
- 7.1. Обзор
- 7.2. Табличные выражения
- 7.3. Списки выборки
- 7.4. Сочетание запросов
- 7.5. Сортировка строк
- 7.6. LIMIT и OFFSET
- 7.7. Списки VALUES
- 7.8. Запросы WITH (Общие табличные выражения)
- 7.2. Табличные выражения
- 7.1. Обзор
- 8. Типы данных
- 8.1. Числовые типы
- 8.2. Денежные типы
- 8.3. Символьные типы
- 8.4. Двоичные типы данных
- 8.5. Типы даты/времени
- 8.6. Логический тип
- 8.7. Типы перечислений
- 8.8. Геометрические типы
- 8.9. Типы, описывающие сетевые адреса
- 8.10. Битовые строки
- 8.11. Типы, предназначенные для текстового поиска
- 8.12. Тип UUID
- 8.13. Тип XML
- 8.14. Типы JSON
- 8.15. Массивы
- 8.16. Составные типы
- 8.17. Диапазонные типы
- 8.18. Идентификаторы объектов
- 8.19. Тип pg_lsn
- 8.20. Псевдотипы
- 8.2. Денежные типы
- 8.1. Числовые типы
- 9. Функции и операторы
- 9.1. Логические операторы
- 9.2. Операторы сравнения
- 9.3. Математические функции и операторы
- 9.4. Строковые функции и операторы
- 9.5. Функции и операторы двоичных строк
- 9.6. Функции и операторы для работы с битовыми строками
- 9.7. Поиск по шаблону
- 9.8. Функции форматирования данных
- 9.9. Операторы и функции даты/времени
- 9.10. Функции для перечислений
- 9.11. Геометрические функции и операторы
- 9.12. Функции и операторы для работы с сетевыми адресами
- 9.13. Функции и операторы текстового поиска
- 9.14. XML-функции
- 9.15. Функции и операторы JSON
- 9.16. Функции для работы с последовательностями
- 9.17. Условные выражения
- 9.18. Функции и операторы для работы с массивами
- 9.19. Диапазонные функции и операторы
- 9.20. Агрегатные функции
- 9.21. Оконные функции
- 9.22. Выражения подзапросов
- 9.23. Сравнение табличных строк и массивов
- 9.24. Функции, возвращающие множества
- 9.25. Системные информационные функции
- 9.26. Функции для системного администрирования
- 9.27. Триггерные функции
- 9.28. Функции событийных триггеров
- 9.2. Операторы сравнения
- 9.1. Логические операторы
- 10. Преобразование типов
- 10.1. Обзор
- 10.2. Операторы
- 10.3. Функции
- 10.4. Хранимое значение
- 10.5. UNION, CASE и связанные конструкции
- 10.2. Операторы
- 10.1. Обзор
- 11. Индексы
- 11.1. Введение
- 11.2. Типы индексов
- 11.3. Составные индексы
- 11.4. Индексы и предложения ORDER BY
- 11.5. Объединение нескольких индексов
- 11.6. Уникальные индексы
- 11.7. Индексы по выражениям
- 11.8. Частичные индексы
- 11.9. Семейства и классы операторов
- 11.10. Индексы и правила сортировки
- 11.11. Контроль использования индексов
- 11.2. Типы индексов
- 11.1. Введение
- 12. Полнотекстовый поиск
- 12.1. Введение
- 12.2. Таблицы и индексы
- 12.3. Управление текстовым поиском
- 12.4. Дополнительные возможности
- 12.5. Анализаторы
- 12.6. Словари
- 12.7. Пример конфигурации
- 12.8. Тестирование и отладка текстового поиска
- 12.9. Типы индексов GiST и GIN
- 12.10. Поддержка psql
- 12.11. Ограничения
- 12.12. Миграция с реализации текстового поиска в версиях до 8.3
- 12.2. Таблицы и индексы
- 12.1. Введение
- 13. Управление конкурентным доступом
- 13.1. Введение
- 13.2. Изоляция транзакций
- 13.3. Явные блокировки
- 13.4. Проверки целостности данных на уровне приложения
- 13.5. Блокировки и индексы
- 13.2. Изоляция транзакций
- 13.1. Введение
- 14. Оптимизация производительности