Часть II. Язык SQL
В этой части книги описывается использование языка SQL в Postgres Pro. Мы начнём с описания общего синтаксиса SQL, затем расскажем, как создавать таблицы, наполнять базу данных и выполнять запросы к ней. В продолжении обратим внимание на существующие типы данных и функции, применяемые с командами SQL. И наконец, рассмотрим важные аспекты настройки базы данных.
Материал упорядочен так, чтобы новичок мог прочитать его от начала до конца и полностью понять все темы, не забегая вперёд. При этом главы сделаны самодостаточными, так что опытные пользователи могут читать их по отдельности. Информация представлена в повествовательном стиле и разделена по темам. Если же вас интересует формальное и полное описание определённой команды, рекомендуем обратиться к Части VI.
Читатели должны уже знать, как подключаться к базе данных Postgres Pro и выполнять команды SQL. Если вы ещё не знаете этого, рекомендуется сначала прочитать Часть I. Команды SQL обычно вводятся в psql — интерактивном терминальном приложении Postgres Pro, но можно воспользоваться и другими программами с подобными функциями.
Содержание
- 4. Синтаксис SQL
- 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.13. Сторонние данные
- 5.14. Другие объекты баз данных
- 5.15. Отслеживание зависимостей
- 5.2. Значения по умолчанию
- 5.1. Основы таблиц
- 6. Модификация данных
- 7. Запросы
- 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. Идентификаторы объектов
- 8.20. Тип
pg_lsn- 8.21. Псевдотипы
- 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. Функции генерирования UUID
- 9.15. XML-функции
- 9.16. Функции и операторы JSON
- 9.17. Функции для работы с последовательностями
- 9.18. Условные выражения
- 9.19. Функции и операторы для работы с массивами
- 9.20. Диапазонные/мультидиапазонные функции и операторы
- 9.21. Агрегатные функции
- 9.22. Оконные функции
- 9.23. Функции поддержки MERGE
- 9.24. Выражения подзапросов
- 9.25. Сравнение табличных строк и массивов
- 9.26. Функции, возвращающие множества
- 9.27. Системные информационные функции и операторы
- 9.28. Функции для системного администрирования
- 9.29. Триггерные функции
- 9.30. Функции событийных триггеров
- 9.31. Системные информационные функции
- 9.2. Функции и операторы сравнения
- 9.1. Логические операторы
- 10. Преобразование типов
- 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.12. Контроль использования индексов
- 11.2. Типы индексов
- 11.1. Введение
- 12. Полнотекстовый поиск
- 12.1. Введение
- 12.2. Таблицы и индексы
- 12.3. Управление текстовым поиском
- 12.4. Дополнительные возможности
- 12.5. Анализаторы
- 12.6. Словари
- 12.7. Пример конфигурации
- 12.8. Тестирование и отладка текстового поиска
- 12.9. Типы индексов, предпочитаемые для текстового поиска
- 12.10. Поддержка psql
- 12.11. Ограничения
- 12.2. Таблицы и индексы
- 12.1. Введение
- 13. Управление конкурентным доступом
- 14. Оптимизация производительности
- 15. Параллельный запрос
Part II. The SQL Language
This part describes the use of the SQL language in Postgres Pro. We start with describing the general syntax of SQL, then how to create tables, how to populate the database, and how to query it. The middle part lists the available data types and functions for use in SQL commands. Lastly, we address several aspects of importance for tuning a database.
The information is arranged so that a novice user can follow it from start to end and gain a full understanding of the topics without having to refer forward too many times. The chapters are intended to be self-contained, so that advanced users can read the chapters individually as they choose. The information is presented in narrative form with topical units. Readers looking for a complete description of a particular command are encouraged to review the Part VI.
Readers should know how to connect to a Postgres Pro database and issue SQL commands. Readers that are unfamiliar with these issues are encouraged to read Part I first. SQL commands are typically entered using the Postgres Pro interactive terminal psql, but other programs that have similar functionality can be used as well.
Table of Contents
- 4. SQL Syntax
- 5. Data Definition
- 5.1. Table Basics
- 5.2. Default Values
- 5.3. Identity Columns
- 5.4. Generated Columns
- 5.5. Constraints
- 5.6. System Columns
- 5.7. Modifying Tables
- 5.8. Privileges
- 5.9. Row Security Policies
- 5.10. Schemas
- 5.11. Inheritance
- 5.12. Table Partitioning
- 5.13. Foreign Data
- 5.14. Other Database Objects
- 5.15. Dependency Tracking
- 5.2. Default Values
- 5.1. Table Basics
- 6. Data Manipulation
- 7. Queries
- 8. Data Types
- 8.1. Numeric Types
- 8.2. Monetary Types
- 8.3. Character Types
- 8.4. Binary Data Types
- 8.5. Date/Time Types
- 8.6. Boolean Type
- 8.7. Enumerated Types
- 8.8. Geometric Types
- 8.9. Network Address Types
- 8.10. Bit String Types
- 8.11. Text Search Types
- 8.12. UUID Type
- 8.13. XML Type
- 8.14. JSON Types
- 8.15. Arrays
- 8.16. Composite Types
- 8.17. Range Types
- 8.18. Domain Types
- 8.19. Object Identifier Types
- 8.20.
pg_lsnType- 8.21. Pseudo-Types
- 8.2. Monetary Types
- 8.1. Numeric Types
- 9. Functions and Operators
- 9.1. Logical Operators
- 9.2. Comparison Functions and Operators
- 9.3. Mathematical Functions and Operators
- 9.4. String Functions and Operators
- 9.5. Binary String Functions and Operators
- 9.6. Bit String Functions and Operators
- 9.7. Pattern Matching
- 9.8. Data Type Formatting Functions
- 9.9. Date/Time Functions and Operators
- 9.10. Enum Support Functions
- 9.11. Geometric Functions and Operators
- 9.12. Network Address Functions and Operators
- 9.13. Text Search Functions and Operators
- 9.14. UUID Functions
- 9.15. XML Functions
- 9.16. JSON Functions and Operators
- 9.17. Sequence Manipulation Functions
- 9.18. Conditional Expressions
- 9.19. Array Functions and Operators
- 9.20. Range/Multirange Functions and Operators
- 9.21. Aggregate Functions
- 9.22. Window Functions
- 9.23. Merge Support Functions
- 9.24. Subquery Expressions
- 9.25. Row and Array Comparisons
- 9.26. Set Returning Functions
- 9.27. System Information Functions and Operators
- 9.28. System Administration Functions
- 9.29. Trigger Functions
- 9.30. Event Trigger Functions
- 9.31. Statistics Information Functions
- 9.2. Comparison Functions and Operators
- 9.1. Logical Operators
- 10. Type Conversion
- 11. Indexes
- 11.1. Introduction
- 11.2. Index Types
- 11.3. Multicolumn Indexes
- 11.4. Indexes and
ORDER BY- 11.5. Combining Multiple Indexes
- 11.6. Unique Indexes
- 11.7. Indexes on Expressions
- 11.8. Partial Indexes
- 11.9. Index-Only Scans and Covering Indexes
- 11.10. Operator Classes and Operator Families
- 11.11. Indexes and Collations
- 11.12. Examining Index Usage
- 11.2. Index Types
- 11.1. Introduction
- 12. Full Text Search
- 13. Concurrency Control
- 14. Performance Tips
- 15. Parallel Query