II. Язык SQL

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

Информация в этой части книги упорядочена так, чтобы новичок мог следовать ей от начала до конца и получить полное понимание по рассматриваемым темам без многократного заглядывания вперёд. Главы задумывались как самодостаточные объёмы информации, так что продвинутые пользователи могу читать главы отдельно по своему выбору. Информация в этой части предоставляется в повествовательной форме, согласно темам. Читатели, которые ищут полное описание какой-либо отдельной команды, должны поискать её в Part VI.

Читатели этой части должны знать как подключиться к базе PostgreSQL и выполнить команды SQL. Читатели, которые незнакомы с этими вопросами, сперва должны прочитать Part I. Команды SQL, обычно вводятся с помощью интерактивного терминала PostgreSQL, который называется psql, но могут использоваться и другие программы, которые предоставляют схожую функциональность.

Table of Contents
4. Ситаксис SQL
4.1. Лексическая структура
4.2. Выражения, возвращающие одиночное значение
5. Определение данных
5.1. Основы таблиц
5.2. Значения по умолчанию
5.3. Ограничения целостности
5.4. Системные колонки
5.5. Изменение таблиц
5.6. Привилегии
5.7. Схемы
5.8. Наследование
5.9. Разделение
5.10. Другие объекты базы данных
5.11. Отслеживание зависимости
6. Манипуляция данными
6.1. Вставка данных
6.2. Обновление данных
6.3. Удаление данных
7. Запросы
7.1. Обзор
7.2. Табличные выражения
7.3. Select Lists
7.4. Combining Queries
7.5. Sorting Rows
7.6. LIMIT and OFFSET
8. Типы данных
8.1. Числовые типы
8.2. Денежные типы
8.3. Символьные типы
8.4. Двоичные типы данных
8.5. Типы дата/времени
8.6. Логический тип
8.7. Геометрические типы
8.8. Типы сетевых адресов
8.9. Типы битовых строк
8.10. Arrays
8.11. Composite Types
8.12. Типы идентификаторов объектов
8.13. Псевдо-типы
9. Functions and Operators
9.1. Logical Operators
9.2. Comparison 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. Geometric Functions and Operators
9.11. Network Address Functions and Operators
9.12. Sequence Manipulation Functions
9.13. Conditional Expressions
9.14. Array Functions and Operators
9.15. Aggregate Functions
9.16. Subquery Expressions
9.17. Row and Array Comparisons
9.18. Set Returning Functions
9.19. System Information Functions
9.20. System Administration Functions
10. Type Conversion
10.1. Overview
10.2. Operators
10.3. Functions
10.4. Value Storage
10.5. UNION, CASE, and Related Constructs
11. Indexes
11.1. Introduction
11.2. Index Types
11.3. Multicolumn Indexes
11.4. Combining Multiple Indexes
11.5. Unique Indexes
11.6. Indexes on Expressions
11.7. Partial Indexes
11.8. Operator Classes
11.9. Examining Index Usage
12. Concurrency Control
12.1. Introduction
12.2. Transaction Isolation
12.3. Explicit Locking
12.4. Data Consistency Checks at the Application Level
12.5. Locking and Indexes
13. Performance Tips
13.1. Using EXPLAIN
13.2. Statistics Used by the Planner
13.3. Controlling the Planner with Explicit JOIN Clauses
13.4. Populating a Database