Содержание

Postgres Professional выпустила учебник по SQL для СУБД PostgreSQL

Первый учебник по основам SQL применительно к свободно распространяемой системе управления базами данных (СУБД) PostgreSQL вышел в свет 19 июня при поддержке компании Postgres Professional. Учебник бесплатен, он доступен по свободной лицензии.

Автор пособия – Евгений Моргунов, кандидат технических наук, доцент кафедры информатики и вычислительной техники Сибирского государственного университета науки и технологий имени академика М. Ф. Решетнёва. Моргунов применяет СУБД PostgreSQL в преподавании дисциплины «Технология программирования» в течение 17 лет. SQL (Structured Query Language, произносится «эс-кью-эль», реже «сиквел»; второй вариант произношения остался со времён предыдущего названия языка, «SEQUEL») – широко распространённый формальный язык описания запросов к базам данных.

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

Как говорится в сообщении, внедрение PostgreSQL в вузах до недавнего времени тормозилось отсутствием документации на русском языке, учебных пособий, а также лоббированием интересов зарубежных производителей СУБД. Компания Postgres Professional, российский вендор СУБД PostgreSQL, перевела на русский язык документацию по PostgreSQL. Для подготовки учебных пособий и магистерских программ для глубокого изучения технологий управления базами данных на примере PostgreSQL потребуется совместная работа с вузами.

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

Содержание учебника

Ранее Postgres Professional выпустила учебные курсы по администрированию СУБД PostgreSQL (базовый и расширенный уровень), доступные в видеоформате и в виде очных занятий в четырех сертифицированных учебных центрах. Также доступен курс для разработчиков Hacking PostgreSQL. В июле 2017 года ожидается выход базового и расширенного курса для разработчиков серверной части приложения.

В электронном виде учебник доступен здесь.

На СУБД PostgreSQL в последнее время переходят различные российские госорганизации и компании, среди которых правительство Москвы, «Яндекс.Почта», госучреждения Московской области, МИА «Россия сегодня» и др.

Справка

Компания Postgres Professional создана в 2015 году российскими разработчиками PostgreSQL с целью продвижения и расширения возможностей данной СУБД с открытым кодом и свободной лицензией, развиваемой международным сообществом более 20 лет. Postgres Professional является российским вендором PostgreSQL и осуществляет поддержку полного цикла, включая IT-аудит, консалтинг, разработку, администрирование, техподдержку, обучение. В компании на данный момент работает более 50 человек.

В 2016 году Postgres Professional выпустила СУБД Postgres Pro — собственную версию PostgreSQL. СУБД Postgres Pro включена в реестр отечественного программного обеспечения, а версия СУБД Postgres Pro 9.5.2.1 сертифицирована ФСТЭК (номер 3637 в реестре).

Консорциум во главе с Postgres Professional занял первое место в конкурсе IT-проектов Минкомсвязи в номинации «Системы управления базами данных».

d-russia.ru

Иллюстрированный самоучитель по PostgreSQL › Введение [страница — 2] | Самоучители по программированию

Введение

Для кого написана эта книга?

PostgreSQL заслуженно считается одной из лучших СУБД, распространяемых с открытыми текстами, а по своим возможностям PostgreSQL успешно конкурирует со многими коммерческими пакетами.

Настоящая книга была задумана как практическое руководство по PostgreSQL версии 7.1.x, хотя большая часть материала в равной степени относится как к предыдущим, так и к будущим версиям PostgreSQL. При подборе материала авторы стремились к тому, чтобы читатель как можно быстрее освоил практические навыки работы с PostgreSQL. Хотя в книге затрагиваются некоторые теоретические аспекты функционирования СУБД, подобные теоретические отступления будут относительно короткими. Прежде всего, мы стремились к тому, чтобы полученные знания позволили читателю самостоятельно создать работоспособную базу данных PostgreSQL и обеспечить ее дальнейшее сопровождение. Надеемся, книга поможет всем, кто хочет ближе познакомиться с СУБД PostgreSQL и ее возможностями.

Книга ориентирована на широкий круг читателей, интересующихся объектно-реляционной системой управления базами данных (ОРСУБД) PostgreSQL. Предполагается, что читатель знаком с системами Linux и Unix, хотя и не является экспертом в области баз данных. Хотя все примеры тестировались в системе Red Hat Linux, практически весь материал относится к большинству систем семейства Unix.

Структура книги

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

Часть I, «Общие сведения и установка», знакомит читателя с PostgreSQL. В ней рассказано, что такое PostgreSQL, где найти этот пакет и как установить его в системе. В ней также рассматриваются различные ключи компиляции, позволяющие настроить PostgreSQL для конкретной ситуации.

В части II

, «Использование PostgreSQL», рассматривается широкий круг вопросов, от реляционных СУБД и языка SQL до нетривиальных возможностей расширения функций и операторов PostgreSQL. Глава 3, «Краткий курс SQL», начинается с описания теоретических принципов построения реляционных баз данных и таблиц, а также представляет некоторые основные понятия – команды, ключевые слова, идентификаторы и типы данных. В главе 4, «SQL в PostgreSQL», знакомство с SQL продолжается. В частности, в ней описаны основные операции с базами данных – создание и удаление таблиц, вставка записей, копирование и выборка данных, использование представлений. В главе 5, «Операторы и функции», рассматриваются стандартные операторы и функции PostgreSQL, а в главе 6, «Клиенты PostgreSQL», приводится дополнительная информация о клиентах psql и PgAccess. Вторая часть книги завершается главой 7, «Нетривиальные возможности», в которой описаны особенности PostgreSQL, рассчитанные на опытных пользователей (индексы, наследование, массивы, ограничения, триггеры, последовательности и курсоры). Кроме того, в этой главе рассматриваются возможности расширения PostgreSQL за счет определения пользовательских операторов и функций.

Часть III, «Администрирование PostgreSQL», посвящена вопросам, представляющим интерес для каждого администратора баз данных (или для того, кто хочет им стать). В главе 8, «Аутентификация и шифрование», представлены средства аутентификации PostgreSQL и поддерживаемые типы шифрования данных. Глава 9, «Управление базами данных», описывает фундаментальные принципы управления базами данных PostgreSQL, включая инициализацию файловой системы и запуск/остановку сервера. В этой главе также приведена информация о создании и удалении баз данных, архивации и восстановлении архивов. В главе 10, «Управление пользователями и группами», рассказано о создании и удалении учетных записей пользователей и групп, а также об управлении привилегиями доступа.

Часть IV, «Программирование в PostgreSQL», знакомит читателя с программированием для PostgreSQL и процедурным языком PL/pgSQL, JDBC (Java Database Connectivity) и LXP. В главе 11, «PL/pgSQL», приводится информация о языке PL/pgSQL, включении его поддержки в базах данных и различных возможностях программирования. Глава 12, «JDBC», посвящена созданию JDBC-интерфейса с PostgreSQL и основам его практического использования. Эта часть книги завершается главой 13, «LXP», в которой рассматриваются проблемы установки, настройки и использования сервера приложений LXP совместно с сервером HTTP Apache.

Завершает книгу часть V, «Команды», которая содержит подробный справочник с описанием всех стандартных и расширенных команд SQL, поддерживаемых в PostgreSQL. Кроме того, в эту часть включено несколько технических приложений.

Платформа и версия PostgreSQL

На момент написания книги последняя версия PostgreSQL имела номер 7.1.3. Эта версия использовалась во всех примерах и для построения образца базы данных

booktown. Все примеры должны быть совместимы со всеми версиями PostgreSQL 7.1, по этой причине в тексте книги часто упоминается версия 7.1.x.

Принятые обозначения

Для удобства изложения и восприятия материала в этой книге используются некоторые специальные обозначения.

Специальные термины, которые встречаются в тексте, выделены курсивом. Фрагменты кода обозначаются моноширинным шрифтом, а для названий файлов и элементов интерфейса используется специальный шрифт.

Во многих разделах имеются рубрики «Внимание», «Примечание» и «Совет», призванные привлечь внимание читателя. Каждая рубрика имеет свою специфику.

Внимание
Будьте осторожны, когда встретите эту рубрику. Гораздо лучше учиться на ошибках других, чем совершать ошибки самому
.

Примечание
В эту рубрику вошли некоторые рассуждения, связанные с рассматриваемой темой, но лежащие вне контекста текущего раздела. Помните, в примечаниях часто содержатся крупицы мудрости
.

Совет
Здесь содержатся советы тех, кто действительно знает, как работать с PostgreSQL В них вы найдете информацию о том, как сэкономить время при выполнении определенных задач или выбрать кратчайший путь их решения
.

samoychiteli.ru

Иллюстрированный самоучитель по PostgreSQL › Содержание | Самоучители по программированию

Введение2
Что такое PostgreSQL?3
Что такое PostgreSQL?4
Бесплатная версия5
Возможности PostgreSQL6
Что дальше?7
Установка PostgreSQL8
Подготовка к установке9
10 этапов установки PostgreSQL. Этап 1. Создание пользователя postgres.11
Этап 2. Установка пакета исходных текстов PostgreSQL.12
Этап 3. Настройка конфигурации.13
Этап 4. компиляция исходных текстов.14
Этап 5. Регрессионное тестирование.15
Этап 6. Установка откомпилированных программ и библиотек.16
Этап 7. Настройка переменных среды.17
Этап 8. Инициализация и запуск PostgreSQL.18
Этап 9. Настройка сценария SysV для PostgreSQL.19
Этап 10. Создание базы данных.20
Краткий курс SQL21
Знакомство с SQL22
Знакомство с реляционными базами данных23
Команды SQL25
Ключевые слова и идентификаторы27
Константы29
Специальные символы33
Комментарии35
Типы данных37
Символьные типы42
Числовые типы43
Геометрические типы52
Массивы53
Преобразование типов54
Таблицы в PostgreSQL55
SQL в PostgreSQL57
Знакомство с psql58
Использование таблиц61
Добавление данных командами INSERT и COPY69
Выборка данных командой SELECT73
Выбор источников в секции FROM76
Удаление дубликатов и ключевое слово DISTINCT78
Объединение наборов данных80
Группировка записей85
Сортировка записей87
Выбор интервалов записей89
Сравнение наборов записей90
Конструкции CASE92
Создание таблиц на базе существующих таблиц93
Модификация записей командой UPDATE94
Удаление записей командой DELETE96
Подзапросы97
Представления. Другие возможности SQL.98
Операторы и функции101
Операторы102
Правила использования операторов103
Строковые операторы104
Числовые операторы108
Логические операторы111
Операторы и NULL112
Приоритет операторов113
Функции. Использование функций.114
Математические функции115
Строковые функции123
Функции для работы с датой и временем133
Функции преобразования типа138
Агрегатные функции144
Клиенты PostgreSQL148
Дополнительные возможности клиента psql149
Загрузка запросов из внешних файлов153
Работа с переменными154
Графический клиент PgAccess157
Создание баз данных158
Нетривиальные возможности160
Индексы161
Нетривиальное использование таблиц165
Массивы172
Автоматизация стандартных процедур176
Транзакции и курсоры184
Расширение PostgreSQL189
Аутентификация и шифрование195
Управление базами данных207
Запуск и завершение PostgreSQL208
Сценарий SysV211
Инициализация файловой системы213
Создание и удаление баз данных215
Сопровождение базы данных219
Архивация и восстановление данных222
Восстановление базы данных225
Управление пользователями и группами229
Управление пользователями и группами230
Управление пользователями231
Управление группами237
Предоставление привилегий240
PL/pgSQL244
Поддержка PL/pgSQL245
Структура языка247
Переменные250
Возвращение переменных255
Передача управления258
Циклы262
Обработка ошибок и исключений266
PL/pgSQL и триггеры268
JDBC270
JDBC271
Построение драйвера JDBC для PostgreSQL272
Использование драйвера PostgreSQL273
Использование JDBC275
Специфика использования JDBC с PostgreSQL279
LXP280
Преимущества LXP281
Базовые возможности282
Установка и настройка LXP283
Знакомство с разметкой LXP287
Переменные и объекты LXP288
Использование cookie в LXP290
Лексический разбор тегов291
Условная логика293
Циклы296
Включение данных297
Включение файлов LXP298
Включение файлов с разделителями299
Включение файлов XML, RSS и RDF301
Включение внешних источников данных302
Внешние теги306
Команды PostgreSQL308
ABORT309
ALTER GROUP310
ALTER TABLE311
ALTER USER313
BEGIN314
CLOSE315
CLUSTER316
COMMENT317
COMMIT318
COPY319
CREATE AGGREGATE321
CREATE DATABASE323
CREATE FUNCTION325
CREATE GROUP326
CREATE INDEX327
CREATE LANGUAGE329
CREATE OPERATOR330
СREATE RULE332
CREATE SEQUENCE333
CREATE TABLE334
CREATE TABLE AS337
CRЕАТЕ TRIGGER338
CREATE TYPE339
CREATE USER341
CREATE VIEW342
CURRENT DATE. CURRENT_TIME.343
CURRENT_TIMESTAMP. CURRENT_USER.344
DECLARE345
DELETE346
DROP AGGREGATE347
DROP DATABASE348
DROP FUNCTION349
DROP GROUP. DROP INDEX.350
DROP LANGUAGE351
DROP OPERATOR352
DROP RULE. DROP SEQUENCE.353
DROP TABLE354
DROP TRIGGER355
DROP TYPE356
DROP USER357
DROP VIEW. END.358
EXPLAIN359
FETCH360
GRANT362
INSERT363
LISTEN364
LOAD365
LОСК366
MOVE367
NOTIFY368
REINDEX369
RESET370
REVOKE371
ROLLBACK372
SELECT373
SELECT INTO375
SET376
SET CONSTRAINTS377
SET TRANSACTION378
SHOW379
TRUNCATE380
UNLISTEN381
UPDATE382
VACUUM383
Приложения384
Приложение А. Типы расширенных кодировок.385
Приложение Б. Ключи командной строки postgres.386
Приложение В. Двоичный формат команды COPY.387
Приложение Г. Внутренние переменные psql.388

samoychiteli.ru

Иллюстрированный самоучитель по PostgreSQL › Краткий курс SQL › Таблицы в PostgreSQL [страница — 55] | Самоучители по программированию

Таблицы в PostgreSQL

Многие программисты (особенно обладающие опытом работы с другими реляционными СУБД на базе SQL) хорошо знакомы с общими концепциями реляционных баз данных, рассмотренными в этой главе. Тем не менее в разных РСУ БД используются разные механизмы работы с таблицами на системном уровне. В этом разделе более подробно описана реализация таблиц в PostgreSQL.

Системные поля

В PostgreSQL все таблицы содержат системные поля, которые остаются невидимыми для пользователя и не выводятся при выборке (если служебная информация не запрашивается специально). В системных полях хранятся метаданные, описывающие содержимое записей. Некоторые из них позволяют различать кортежи (фиксированные состояния записей) при работе с блоками транзакций (за дополнительной информацией о транзакциях обращайтесь к главе 7).

В табл. 3.25 перечислены системные поля, присутствующие в каждой записи в дополнение к полям, определенным пользователем в структуре таблицы.

Таблица 3.25. Системные поля.

ПолеОписание
old4-байтовый уникальный идентификатор объекта записи. В пределах одной таблицы значения end никогда не повторяются
tableoidИдентификатор объекта таблицы, содержащей запись. Имя таблицы связывается с идентификатором в системной таблице рg class
xminИдентификатор транзакции вставки для кортежа
cminИдентификатор команды, ассоциированной с транзакцией вставки для кортежа
xmaxИдентификатор транзакции удаления для кортежа. Для видимых (не удаленных) кортежей равен нулю
cmaxИдентификатор команды, ассоциированной с транзакцией удаления для кортежа. По аналогии с xmax равен нулю для видимых кортежей
ctidИдентификатор, описывающий физическое местонахождение кортежа в базе данных. Поле ctid содержит пару чисел: номер блока и индекс кортежа в блоке

Идентификаторы объектов

Как было сказано в подразделе «Таблицы» раздела «Знакомство с реляционными базами данных», база данных содержит таблицы, а каждая таблица содержит хотя бы одно именованное поле. Таблица может содержать записи данных, но их наличие не является обязательным. Каждое поле записи, хранящейся в таблице, содержит некоторые данные или NULL.

Один из вопросов, которые приходится решать при операциях с базами данных, – как различить две записи с одинаковыми значениями полей? Для этого в PostgreSQL предусмотрены идентификаторы объектов (object identifiers, OID), уникальные в пределах таблицы. Иначе говоря, таблица никогда не содержит записи одинаковыми идентификаторами OID. Таким образом, даже если содержимое пользовательских полей двух записей полностью совпадает, на программном уровне записи можно различить по значению OID. Пример приведен в листинге 3.31.

Листинг 3.31. Идентификация записей по OID.

3Stdb=# SELECT * FROM my_list;
todos
----------------------------------
Correct redundancies In my_list.
Correct redundancies in my_list.
(1 rows)
testdb=# SELECT * .old FROM my_list:
todos | old
----------------------------------------
Correct redundancies in my list. | 3391263
Correct redundancies In my list. | 3391264
(2 rows)
testdb=# DELETE FROM my_list
testdb-# WHERE old = 3391264;
DELETE 1
testdb=# SELECT *.oid FROM my_list;
todos old
----------------------------------------------
Correct redundancies in my list. | 3391263
(1 row)

samoychiteli.ru

Иллюстрированный самоучитель по PostgreSQL › SQL в PostgreSQL [страница — 57] | Самоучители по программированию

  • Наше знакомство с языком SQL продолжается. На этот раз основное внимание мы уделим практическим аспектам его применения. В этой главе будет показано, как при помощи команд SQL создавать таблицы, заполнять их данными и модифицировать эти данные.

  • Таблицы являются основными блоками хранения данных в базе. Перед любыми операциями создания, выборки или модификации записей необходимо сначала создать таблицу, в которой эти записи будут храниться. | В этом разделе рассматриваются процедуры создания, модификации и удаления таблиц командами CREATE TABLE, ALTER TABLE и DROP TABLE SQL (вопросам создания баз данных посвящена глава 9).

  • После создания таблицы с заданной структурой наступает следующий этап – заполнение таблицы данными. В PostgreSQL имеются три общих способа заполнения таблиц данными: | вставка новых группированных данных командой INSERT INTO;

  • Центральное место в SQL занимает команда SELECT, предназначенная для построения запросов и выборки данных из таблиц и представлений. Данные, возвращаемые в результате запроса, называются итоговым набором; как и таблицы, они состоят из записей и полей.

  • В секции FROM указывается источник данных – таблица или итоговый набор. Секция может содержать несколько источников, разделенных запятыми. Результат подобного перечисления функционально эквивалентен перекрестному объединению, о котором рассказано в подразделе «Объединение наборов данных».

  • Необязательное ключевое слово DISTINCT исключает дубликаты из итогового набора. Если ключевое слово ON отсутствует, из результатов запроса с ключевым словом DISTINCT исключаются записи с повторяющимися значениями целевых полей. Проверяются только поля, входящие в целевой список SELECT.

  • Как было показано в примере использования секции WHERE для выборки из двух таблиц (см. подраздел «Выбор источников в секции FROM»), существует возможность выборки данных из разных источников с объединением их полей. В SQL этот процесс формально называется объединением (join).

  • Секция GROUP BY представляет чрезвычайно мощную концепцию SQL – агрегирование. На практике агрегирование запросов SQL приводит к тому, что все записи с одинаковыми значениями выражения, заданного в секции GROUP BY, группируются в одну агрегатную запись.

  • Как упоминалось в главе 3, записи хранятся в таблицах в произвольном порядке. Более того, даже повторное выполнение запроса никоим образом не гарантирует одинакового порядка следования возвращаемых записей.

  • В PostgreSQL количество записей, выбираемых запросом SQL, не ограничивается. Обработка запроса, возвращающего несколько миллионов записей, займет много времени, но сервер не остановится, пока не вернет весь итоговый набор (или процесс не будет прерван извне).

  • Если объединения используются в SQL для слияния полей двух источников, то ключевые слова UNION, INTERSECT и EXCEPT сравнивают значения полей в двух наборах и строят новый итоговый набор на основании результатов сравнения.

  • Чтобы программа SQL могла принимать простейшие решения, не прибегая к процедурным языкам, в PostgreSQL поддерживаются конструкции CASE, предусмотренные стандартом SQL Ключевые слова SQL CASE, WHEN, THEN и END позволяют выполнять простые условные преобразования записей.

  • Команда SELECT с секцией INTO TABLE создает новую таблицу, структура и содержимое которой определяются итоговым набором запроса. Синтаксис: | SELECT цели_выборки | INTO [ TABLE ] новая_таблица FROM старая_таблица | В этом варианте команда SELECT косвенно выполняет команду CREATE TABLE.

  • После того как записи сохранены в базе данных, вы можете обновить их поля командой SQL UPDATE. Новые значения полей задаются в виде констант, идентификаторов других баз данных или выражений. Допускается обновление как поля в целом, так и подмножества его значений в соответствии с заданными условиями.

  • Удаление записей из таблиц производится стандартной командой SQL DELETE. Вызов DELETE приводит к необратимым последствиям (исключение составляют тщательно спланированные транзакционные блоки), поэтому удаление данных из базы требует крайней осторожности.

  • Поддержка подзапросов, впервые реализованная в PostgreSQL версии 6.3, существенно повысила гибкость команд SQL. Подзапросом называется команда SELECT, заключенная в круглые скобки, которая выполняется в контексте другой команды SQL.

  • При работе с SQL нередко возникают ситуации, когда один и тот же запрос приходится использовать повторно. Ничто не раздражает так, как необходимость многократного ввода больших и сложных запросов в psql.

  • samoychiteli.ru

    Иллюстрированный самоучитель по PostgreSQL › Управление базами данных › Запуск и завершение PostgreSQL [страница — 209] | Самоучители по программированию

    Запуск и завершение PostgreSQL

    Запуск PostgreSQL в приложении pg_ctl

    Чтобы запустить серверный процесс PostgreSQL postmaster, передайте pg_ctl ключ start. Помните, что приложение pg_ctl должно запускаться пользователем postgres (или другим пользователем, которому принадлежит каталог данных PostgreSQL).

    В листинге 9.1 приведен пример запуска postmaster с каталогом данных /usr/ local/pgsql/data. СУБД успешно запускается, выдает время последнего завершения работы базы данных и отладочную информацию, после чего пользователь postgres возвращается к приглашению командного интерпретатора.

    Листинг 9.1. Запуск PostgreSQL в приложении pg_ctl.

    [postgres@booktown – ]$ pg_ctl – D /usr/1oca!/pgsql/data start
    postmaster successfully started
    DEBUG: database system was shut down at 2001-09-17 08:06:34 POT
    DEBUG: Checkpoint record at (0. 1000524052)
    DEBUG: Redo record at (0. 1000524052): Undo record at (0. 0): Shutdown TRUE
    DEBUG: NextTransactionld: 815832: NextOid: 3628113
    DEBUG: database system is in production state
    [postgres@booktown – ]$
    

    Завершение PostgreSQL в приложении pg_ctl

    Серверный процесс PostgreSQL postmaster можно остановить той же программой pg_ctl, которой он был запущен. Приложение pg_ctl проверяет Наличие работающего процесса postmaster, и если команда stop была выдана владельцем работающего процесса (например, пользователем postgres), сервер PostgreSQL прекращает работу.

    Существуют три режима завершения серверного процесса PostgreSQL: интеллектуальный (smart), ускоренный (fast) и немедленный (immediate). Режим завершения задается ключом – т при вызове pg_ctl.

    В интеллектуальном режиме (используемом по умолчанию) PostgreSQL перед завершением ждет, пока все клиенты отключатся от сервера. В ускоренном режиме PostgreSQL просто начинает стандартную процедуру завершения, не проверяя состояние клиентских подключений. В немедленном режиме стандартная процедура завершения пропускается, и при последующем перезапуске система должна пройти через режим восстановления.

    Внимание
    Никогда не завершайте процесс postmaster командой kill – 9 (kill – KILL), что приводит к потере или порче данных
    .

    В листинге 9.2 сценарий pg_ctl завершает процесс postmaster в ускоренном режиме. Процесс postmaster прекращает работу, не дожидаясь отключения клиентов.

    Листинг 9.2. Завершение PostgreSQL в приложении pg_ctl.

    [postgres@booktown – ]$ pg_ctl – D /usr/local/pgsql/data stop – m fast
    Fast Shutdown request at Mon Sep 17 09:23:39 2001 DEBUG: shutting down
    waiting for postmaster to shut down…..
    DEBUG: database system is shut down
    done
    postmaster successfully shut down
    [postgres@booktown – ]$
    

    Примечание
    Завершение в режиме smart эквивалентно команде kil I – TERM для процесса postmaster. Режим fast эквивалентен команде kill – INT, а аналогом режима immediate является команда kill – QUIT
    .

    samoychiteli.ru

    Иллюстрированный самоучитель по PostgreSQL › SQL в PostgreSQL › Знакомство с psql [страница — 58] | Самоучители по программированию

    Знакомство с psql

    Наше знакомство с языком SQL продолжается. На этот раз основное внимание мы уделим практическим аспектам его применения. В этой главе будет показано, как при помощи команд SQL создавать таблицы, заполнять их данными и модифицировать эти данные.

    Система PostgreSQL, как и большинство сетевых СУБД, основана па парадигме «клиент-сервер». Центральное место в PostgreSQL занимает процесс postmaster, предназначенный не для прямого взаимодействия с пользователем, а для обслуживания подключений со стороны различных клиентов.

    При запуске службы (service) PostgreSQL процесс postmaster начинает работать в фоновом режиме, прослушивая заданный порт TCP/IP в ожидании подключений со стороны клиентов. По умолчанию postmaster ведет прослушивание порта 5432.

    Существует несколько интерфейсов, через которые клиент подключается к процессу postmaster. В примерах этой книги используется psql – самый универсальный и доступный клиент, входящий в комплект поставки PostgreSQL.

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


    Клиент psql работает в режиме командной строки и входит в комплект поставки PostgreSQL. Его часто называют интерактивным монитором или интерактивным терминалом. Этот простой, но мощный инструмент позволяет напрямую работать с сервером PostgreSQL и потому особенно хорошо подходит для экспериментов.

    Запуск psql

    Перед запуском psql убедитесь в том, что двоичный файл psql находится в стандартном каталоге исполняемых файлов (например, /usr/bin), либо путь к каталогу двоичных файлов PostgreSQL (например, /usr/local/pgsql/bin) включен в список каталогов переменной среды PATH. За дополнительной информацией обращайтесь к главе 2.

    Способ присваивания значения переменной PATH зависит от командного интерпретатора. В bash или ksh соответствующая команда может выглядеть так:

    $ export PATH=$PATH:/usr/local/pgsql/bin
    

    В интерпретаторах csh или tcsh используется несколько иной синтаксис:

    $ set path=(Spath /usr/local/pgsql/bin)
    

    Листинг 4.1, относящийся к интерпретатору bash, иллюстрирует процедуру назначения системного пути для клиента psql.

    Листинг 4.1. Назначение системного пути для psql.

    [user@host user]$ psql
    bash: psql: command not found
    [user@host user]$ echo $PATH
    /b1n:/usr/bin:/usr/local/bin:/usr/bin/Xll:/usr/XHR6/tnn
    [user@host user]$ export PATH=$PATH:/usr/local/pgsql/bin
    [user@host user]$ psql testdb
    Welcome to psql .the PostgreSQL interactive terminal.
    Type: \copyright for distribution terms \h for help with SQL commands
     \? for help on internal slash commands \g or terminate with semicolon to execute query
    \q to quit
    testdb= <strong>#</strong>
    

    После настройки переменной PATH интерактивный терминал PostgreSQL запускается командой psql, за которой следует имя базы данных.

    Внимание
    После выхода из psql изменения переменной среды будут потеряны. Чтобы изменения переменной PATH сохранялись после выхода из программы, команда настройки PATH включается в стартовый сценарий командного интерпретатора (например, ~/.bash_profile)
    .

    samoychiteli.ru