Введение
Для кого написана эта книга?Структура книги
Платформа и версия PostgreSQL
Принятые обозначения
Что такое PostgreSQL?
Что такое PostgreSQL?Бесплатная версия
Коммерческие продукты семейства PostgreSQL
Продукты бесплатные и коммерческие
Выводы
Поддержка сообщества PostgreSQL
Возможности PostgreSQL
Что дальше?
Краткий курс SQL
Краткий курс SQLСимвольные типы
Таблица 3 12 Символьные типы
Числовые типы
Таблица 3 13 Числовые типы PostgreSQL
Тип money
Листинг 3 23 Использование типа numeric вместо money
Тип serial
Листинг 3 24 Использование типа serial
Листинг 3 25 Решение задачи вручную
Дата и время
Таблица 3 14 Типы даты и времени
Совместимость
Формат представления даты
Таблица 3 15 Форматы представления даты
Таблица 3 16 Сокращенные обозначения месяцев
Таблица 3 17 Сокращенные обозначения дней недели
Таблица 3 18 Константы форматов даты
Таблица 3 19 Дополнительные форматы вывода даты
Листинг 3 26 Выбор формата даты
Форматы представления времени
Taблица 3 20 Форматы представления времени
Таблица 3 21 Допустимые форматы часового пояса
Тип timestamp
Таблица 3 22 Примеры данных типа timestamp
Интервальный тип
Листинг 3 27 Операции с интервалами
Встроенные константы даты и времени
Таблица 3 23 Константы даты и времени
Листинг 3 28 Использование констант current и now
Листинг 3 29 Сравнение констант now и current
Геометрические типы
Таблица 3 24 Геометрические типы
Массивы
Массивы в таблицах
Массивы константы
Преобразование типов
Листинг 3 30 Использование функции преобразования типа
Таблицы в PostgreSQL
Системные поля
Таблица 3 25 Системные поля
Идентификаторы объектов
Листинг 3 31 Идентификация записей по OID
Предварительное планирование
Таблица 3 26 Таблица authors
Таблица 3 27 Таблица subjects
Знакомство с SQL
Краткая история SQL
Язык SQL и его предшественники
Стандарты SQL
Знакомство с реляционными базами данных
Базы данных
Таблицы
Таблица 3 1 Пример таблицы SQL
Команды SQL
Анатомия команд SQL
Таблица 3 2 Основные действия PostgreSQL
Форматирование команд SQL
Листинг 3 1 Пробелы и переводы строк
Ключевые слова и идентификаторы
Листинг 3 2 Ключевые слова и команды
Защищенные идентификаторы
Обязательная защита идентификаторов
Структура имен идентификаторов
Листинг 3 3 Преодоление ограничений
Константы
Строковые константы
Листинг 3 4 Использование строковых констант
Таблица 3 3 Служебные последовательности
Листинг 3 5 Разбиение строковых констант
Битовые последовательности
Листинг 3 6 Использование битовых последовательностей
Целочисленные константы
Листинг 3 7 Использование целочисленных констант
Вещественные константы
Таблица 3 4 Представление величин с плавающей точкой
Листинг 3 8 Допустимые вещественные значения
Логические константы
Листинг 3 9 Различия между true и 'true'
Специальные символы
Синтаксические символы
Таблица 3 5 Синтаксические символы
Операторы
Листинг 3 10 Операторы в командах SQL
Таблица 3 6 Основные операторы PostgreSQL
Комментарии
Листинг 3 11 Однострочные комментарии
Листинг 3 12 Многострочные комментарии
Выводы
Таблица 3 7 Простой запрос SQL
Листинг 3 13 Пример запроса SQL
Таблица 3 8 Команда UPDATE с секцией SET
Таблица 3 9 Секция WHERE
Листинг 3 14 Обновление таблицы командой UPDATE
Типы данных
Таблица 3 10 Типы данных PostgreSQL
Псевдозначение NULL
Листинг 3 15 Пустые строки и NULL
Листинг 3 16 Пример использования NULL
Логические значения
Таблица 3 11 Логические константы
Листинг 3 17 Простая таблица с логическими значениями
Листинг 3 18 Выборка данных по логическому признаку
Листинг 3 19 Неявная выборка по логическому значению
Листинг 3 20 Выборка по логическому значению false
Листинг 3 21 Исправление случайных значений NULL
SQL в PostgreSQL
SQL в PostgreSQLСортировка записей
Листинг 4 42 Использование секции ORDER BY
Листинг 4 42 показывает что записи
Листинг 4 43 Секция ORDER BY с несколькими выражениями
Листинг 4 44 Использование секции DISTINCT с ORDER BY
Выбор интервалов записей
Листинг 4 45 Использование секций LIMIT и OFFSET
Сравнение наборов записей
Листинг 4 46 Использование секции UNION
Листинг 4 47 Использование секции INTERSECT
Листинг 4 48 Использование секции EXCEPT
Листинг 4 49 Сравнение результатов двух подзапросов
Конструкции CASE
Листинг 4 50 Конструкции CASE в командах
Листинг 4 51 Конструкции CASE в подзапросах
Создание таблиц на базе существующих таблиц
Листинг 4 52 Создание таблицы
Модификация записей командой UPDATE
Листинг 4 53 Простая команда UPDATE
Обновление поля во всех записях таблицы
Листинг 4 54 Обновление поля во всех записях
Обновление нескольких полей
Листинг 4 55 Выполнение команды
Листинг 4 58 Удаление всех записей из таблицы
Подзапросы
Листинг 4 59 Простой подзапрос
Листинг 4 60 Подзапрос с ключевым словом IN
Листинг 4 61 Многоцелевой подзапрос в секции IN
Представления
Создание представления
Таблица 4 1 Таблица shipments
Листинг 4 62 Создание представления
Применение представлений
Листинг 4 63 Использование представления
Листинг 4 63 демонстрирует еще
Уничтожение представлений
Другие возможности SQL
Знакомство с psql
Запуск psql
Листинг 4 1 относящийся к интерпретатору
Листинг 4 1 Назначение системного пути для psql
Синтаксис psql
Листинг 4 2 Получение списка команд psql booktown=# \?
Выполнение запросов
Ввод запросов в приглашении psql
Листинг 4 3 Ввод команд в psql
Листинг 4 4 Включение открывающих
Редактирование буфера запроса
Листинг 4 5 Присваивание значения переменной EDITOR
Использование таблиц
Создание таблицы командой CREATE TABLE
Синтаксис команды CREATE TABLE
Пример создания таблицы
Листинг 4 6 Создание таблицы books
Анализ структуры таблицы
Листинг 4 7 Выходные данные команды \d
Модификация таблицы командой ALTER TABLE
Создание полей
Листинг 4 8 Добавление поля
Листинг 4 8 показывает что в таблице
Назначение и отмена значений по умолчанию
Листинг 4 9 Изменение значений по умолчанию
Переименование таблицы
Листинг 4 10 Переименование таблицы
Переименование полей
Листинг 4 11 Переименование поля
Добавление ограничений
Листинг 4 12 Создание новых ограничений
Смена владельца
Листинг 4 13 Смена владельца таблицы
Реструктуризация таблиц
Реструктуризация таблиц командой CREATE TABLE AS
Листинг 4 14 Реструктуризация
Реструктуризация таблиц командами CREATE TABLE и INSERT INTO
Листинг 4 15 Реструктуризация
Удаление таблиц командой DROP TABLE
Добавление данных командами INSERT и COPY
Вставка новых данных
Листинг 4 16 Вставка новой записи в таблицу books
Листинг 4 17 Изменение порядка перечисления полей
Вставка данных из других таблиц командой SELECT
Листинг 4 18 Вставка данных из другой таблицы
Копирование данных из внешних файлов командой COPY
Листинг 4 19 Пример копируемого ASCIIфайла
Листинг 4 20 Копирование ASCIIфайла
Двоичный формат
Листинг 4 21 Копирование двоичного файла
Различия команд COPY и \copy
COPY TO
Листинг 4 22 Экспортирование таблицы books в файл ASCII
Секция WITH OIDS
Выборка данных командой SELECT
Простая команда SELECT
Листинг 4 23 Выборка всех записей из таблицы books
Выбор полей
Листинг 4 24 Изменение порядка следования полей при выборке
Выражения константы и синонимы
Листинг 4 25 Выражения и константы
Листинг 4 26 Секция AS с выражениями и константами
Выбор источников в секции FROM
Листинг 4 27 Выборка из нескольких таблиц
Листинг 4 28 Выборка из подзапроса
Синонимы источников данных в секции FROM
Листинг 4 29 Определение синонимов для источников данных
Листинг 4 30 Определение синонимов для полей
Удаление дубликатов и ключевое слово DISTINCT
Листинг 4 31 Ключевое слово DISTINCT
Уточнение запросов
Листинг 4 32 Простая секция WHERE
Листинг 4 33 Объединение условий в секции WHERE
Листинг 4 34 показывает как простое
Листинг 4 34 Группировка условий при помощи круглых скобок
Объединение наборов данных
Перекрестные объединения
Листинг 4 35 Простой перекрестный запрос
Внутренние и внешние объединения
Внутренние объединения
Листинг 4 36 Сравнение команд INNER JOIN и WHERE
Листинг 4 37 Секции NATURAL и USING
Внешние объединения
Листинг 4 38 Внутренние и внешние объединения
Сложные объединения
Листинг 4 39 Объединение нескольких источников данных
Группировка записей
Листинг 4 40 Группировка записей
Листинг 4 41 Использование секции HAVING
Операторы и функции
Операторы и функцииИспользование функций
Математические функции
Таблица 5 9 Математические функции PostgreSQL
Пример 1
Пример 2
Пример 3
Пример 4
Пример 5
Пример 6
Пример 7
Пример 8
Пример 9
Пример 10
Пример 11
Пример 12
Пример 13
Пример 14
Пример 15
Пример 16
Пример 17
Пример 18
Пример 19
Пример 20
Пример 21
Пример 22
Пример 23
Пример 24
Строковые функции
Таблица 5 10 Строковые функции
Пример 1
Пример 2
Пример 3
Примеры
Пример 4
Пример 5
Примеры
Пример 6
Пример 7
Примеры
Пример 8
Пример 9
Пример 10
Примеры
Пример 11
Пример 12
Примеры
Пример 13
Пример 14
Пример 16
Примеры
Пример 17
Функции для работы с датой и временем
Таблица 5 11 Функции для работы с датой и временем
Пример 1
Пример 2
Пример 3
Таблица 5 12 Компоненты типов timestamp и interval
Примеры
Пример 4
Примеры
Пример 5
Пример 6
Пример 7
Функции преобразования типа
Таблица 5 13 Функции преобразования типов
Пример 1
Пример 2
Таблица 5 14 Метасимволы форматирования чисел
Примеры
Таблица 5 15 Метасимволы форматирования чисел
Примеры
Примеры
Пример 3
Пример 4
Агрегатные функции
Таблица 5 16 Агрегатные функции
Агрегатные выражения
Листинг 5 19 Использование агрегатных выражений
Примеры
Примеры
Примеры
Примеры
Примеры
Примеры
Операторы
Правила использования операторов
Листинг 5 1 Правильное использование
Листинг 5 2 Неверное использование операторов
Строковые операторы
Таблица 5 1 Базовые строковые операторы
Листинг 5 3 Сравнение строк
Конкатенация
Листинг 5 4 Конкатенация строк
Операторы регулярных выражений
Листинг 5 5 Поиск по регулярному выражению
Таблица 5 2 Операторы регулярных выражений
Таблица 5 3 Метасимволы регулярных выражений
Листинг 5 6 Простой поиск соответствия
Листинг 5 7 Нетривиальный поиск соответствия
Листинг 5 8 Сложный поиск соответствия
Числовые операторы
Математические операторы
Таблица 5 4 Математические операторы
Листинг 5 9 Использование математических операторов
Операторы сравнения
Таблица 5 5 Операторы сравнения
Листинг 5 10 Использование операторов сравнения
Сравнение с использованием ключевых слов
Листинг 5 11 Ключевое слово BETWEEN
Листинг 5 12 Имитация ключевого
Двоичные операторы
Таблица 5 6 Двоичные операторы
Листинг 5 13 Сдвиг битовых последовательностей
Логические операторы
Таблица 5 7 Операторы AND OR и NOT
Листинг 5 14 Объединение условий
Операторы и NULL
Листинг 5 15 Проверка с использованием конструкции IS NULL
Листинг 5 16 Сравнение со значением NULL
Листинг 5 17 Операторы и псевдозначение NULL
Приоритет операторов
Листинг 5 18 Приоритет операторов
Таблица 5 8 Приоритет операторов SQL
Функции
Нетривиальные возможности
Нетривиальные возможностиИндексы
Создание индекса
Листинг 7 1 Построение индекса
Листинг 7 2 Автоматическое построение индекса
Уникальные индексы
Листинг 7 3 Создание уникального индекса
Типы индексов
Листинг 7 4 Выбор типа индекса
Функциональные индексы
Листинг 7 5 Построение функционального индекса
Удаление индекса
Листинг 7 6 Удаление индекса
Нетривиальное использование таблиц
Ограничения в таблицах
Ограничения полей
Листинг 7 7 Создание таблицы с ограничениями полей
Ограничения таблиц
Листинг 7 8 Использование ограничений таблицы
Добавление ограничений в существующую таблицу
Листинг 7 9 Добавление ограничений в существующую таблицу
Удаление ограничений
Листинг 7 10 Удаление ограничений
Наследование
Создание производной таблицы
Листинг 7 11 Создание производной таблицы
Использование производных таблиц
Листинг 7 13 Выборка с наследованием
Модификация производных таблиц
Листинг 7 14 Модификация базовых и производных таблиц
Листинг 7 15 Модификация базовых
Массивы
Создание полей со значениямимассивами
Листинг 7 16 Создание таблицы с полеммассивом
Листинг 7 17 Создание таблицы
Вставка значений в полямассивы
Листинг 7 18 Вставка с использованием массивовконстант
Листинг 7 19 Вставка данных в многомерный массив
Индексы элементов
Листинг 7 21 Выборка отдельного элемента массива
Листинг 7 22 Предотвращение выборки NULL в массивах
Листинг 7 23 Выборка из многомерного массива
Срезы
Листинг 7 24 Выборка с использованием среза
Листинг 7 26 Полная модификация массива
Листинг 7 27 Модификация отдельного элемента
Автоматизация стандартных процедур
Последовательности
Создание последовательности
Листинг 7 28 Создание последовательности
Просмотр последовательностей в базе данных
Таблица 7 1 Атрибуты последовательностей
Листинг 7 29 Вывод атрибутов последовательности
Операции с последовательностями
Листинг 7 30 Изменение текущего значения последовательности
Таблица 7 2 Таблица shipments
Листинг 7 31 Функция currval()
Листинг 7 32 Изменение текущего значения последовательности
Удаление последовательности
Листинг 7 33 Удаление последовательности
Листинг 7 34 Проверка зависимостей
Триггеры
Создание триггера
Листинг 7 35 Создание триггера check_shipment
Получение информации о триггерах
Таблица 7 3 Таблица pgjrigger
Удаление триггера
Листинг 7 36 Удаление триггера
Листинг 7 37 Получение имени таблицы связанной с триггером
Транзакции и курсоры
Транзакционные блоки
Листинг 7 38 Создание транзакции
Листинг 7 39 Фиксация транзакции
Листинг 7 40 Откат транзакции
Листинг 7 41 Выход из аварийного состояния
Использование курсоров
Объявление курсора
Листинг 7 42 Объявление курсора
Выборка из курсора
Листинг 7 43 Выборка записей из курсора
Перемещение курсора
Листинг 7 44 Перемещение текущей позиции курсора
Закрытие курсора
Листинг 7 45 Закрытие курсора
Расширение PostgreSQL
Создание новых функций
Создание функций SQL
Листинг 7 46 Создание функции SQL
Листинг 7 47 Использование функции SQL
Создание функций на языке С
Листинг 7 48 Функции на языке С
Листинг 7 49 Создание функции на языке С
Листинг 7 50 Перегрузка функции С
Листинг 7 51 Использование функций С
Уничтожение функций
Листинг 7 52 Удаление функции
Создание новых операторов
Создание оператора
Листинг 7 53 Создание пользовательского оператора
Листинг 7 54 Применение пользовательского оператора
Перегрузка операторов
Листинг 7 55 Перегрузка пользовательского оператора
Листинг 7 56 Использование перегруженного оператора
Удаление оператора
Листинг 7 57 Удаление оператора
Листинг 7 58 Удаление перегруженного оператора
Содержание раздела