Содержание

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
Возможности PostgreSQL 6
Что дальше? 7
Установка PostgreSQL 8
Подготовка к установке 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
Краткий курс SQL 21
Знакомство с SQL 22
Знакомство с реляционными базами данных 23
Команды SQL 25
Ключевые слова и идентификаторы 27
Константы 29
Специальные символы 33
Комментарии 35
Типы данных 37
Символьные типы 42
Числовые типы 43
Геометрические типы 52
Массивы 53
Преобразование типов 54
Таблицы в PostgreSQL 55
SQL в PostgreSQL 57
Знакомство с psql 58
Использование таблиц 61
Добавление данных командами INSERT и COPY 69
Выборка данных командой SELECT 73
Выбор источников в секции FROM 76
Удаление дубликатов и ключевое слово DISTINCT 78
Объединение наборов данных 80
Группировка записей 85
Сортировка записей 87
Выбор интервалов записей 89
Сравнение наборов записей 90
Конструкции CASE 92
Создание таблиц на базе существующих таблиц 93
Модификация записей командой UPDATE 94
Удаление записей командой DELETE 96
Подзапросы 97
Представления. Другие возможности SQL. 98
Операторы и функции 101
Операторы 102
Правила использования операторов 103
Строковые операторы 104
Числовые операторы 108
Логические операторы 111
Операторы и NULL 112
Приоритет операторов 113
Функции. Использование функций. 114
Математические функции 115
Строковые функции 123
Функции для работы с датой и временем 133
Функции преобразования типа 138
Агрегатные функции 144
Клиенты PostgreSQL 148
Дополнительные возможности клиента psql 149
Загрузка запросов из внешних файлов 153
Работа с переменными 154
Графический клиент PgAccess 157
Создание баз данных 158
Нетривиальные возможности 160
Индексы 161
Нетривиальное использование таблиц 165
Массивы 172
Автоматизация стандартных процедур 176
Транзакции и курсоры 184
Расширение PostgreSQL 189
Аутентификация и шифрование 195
Управление базами данных 207
Запуск и завершение PostgreSQL 208
Сценарий SysV 211
Инициализация файловой системы 213
Создание и удаление баз данных 215
Сопровождение базы данных 219
Архивация и восстановление данных 222
Восстановление базы данных 225
Управление пользователями и группами 229
Управление пользователями и группами 230
Управление пользователями 231
Управление группами 237
Предоставление привилегий 240
PL/pgSQL 244
Поддержка PL/pgSQL 245
Структура языка 247
Переменные 250
Возвращение переменных 255
Передача управления 258
Циклы 262
Обработка ошибок и исключений 266
PL/pgSQL и триггеры 268
JDBC 270
JDBC 271
Построение драйвера JDBC для PostgreSQL 272
Использование драйвера PostgreSQL 273
Использование JDBC 275
Специфика использования JDBC с PostgreSQL 279
LXP 280
Преимущества LXP 281
Базовые возможности 282
Установка и настройка LXP 283
Знакомство с разметкой LXP 287
Переменные и объекты LXP 288
Использование cookie в LXP 290
Лексический разбор тегов 291
Условная логика 293
Циклы 296
Включение данных 297
Включение файлов LXP 298
Включение файлов с разделителями 299
Включение файлов XML, RSS и RDF 301
Включение внешних источников данных 302
Внешние теги 306
Команды PostgreSQL 308
ABORT 309
ALTER GROUP 310
ALTER TABLE 311
ALTER USER 313
BEGIN 314
CLOSE 315
CLUSTER 316
COMMENT 317
COMMIT 318
COPY 319
CREATE AGGREGATE 321
CREATE DATABASE 323
CREATE FUNCTION 325
CREATE GROUP 326
CREATE INDEX 327
CREATE LANGUAGE 329
CREATE OPERATOR 330
СREATE RULE 332
CREATE SEQUENCE 333
CREATE TABLE 334
CREATE TABLE AS 337
CRЕАТЕ TRIGGER 338
CREATE TYPE 339
CREATE USER 341
CREATE VIEW 342
CURRENT DATE. CURRENT_TIME. 343
CURRENT_TIMESTAMP. CURRENT_USER. 344
DECLARE 345
DELETE 346
DROP AGGREGATE 347
DROP DATABASE 348
DROP FUNCTION 349
DROP GROUP. DROP INDEX. 350
DROP LANGUAGE 351
DROP OPERATOR 352
DROP RULE. DROP SEQUENCE. 353
DROP TABLE 354
DROP TRIGGER 355
DROP TYPE 356
DROP USER 357
DROP VIEW. END. 358
EXPLAIN 359
FETCH 360
GRANT 362
INSERT 363
LISTEN 364
LOAD 365
LОСК 366
MOVE 367
NOTIFY 368
REINDEX 369
RESET 370
REVOKE 371
ROLLBACK 372
SELECT 373
SELECT INTO 375
SET 376
SET CONSTRAINTS 377
SET TRANSACTION 378
SHOW 379
TRUNCATE 380
UNLISTEN 381
UPDATE 382
VACUUM 383
Приложения 384
Приложение А. Типы расширенных кодировок. 385
Приложение Б. Ключи командной строки postgres. 386
Приложение В. Двоичный формат команды COPY. 387
Приложение Г. Внутренние переменные psql. 388

samoychiteli.ru

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

Таблицы в PostgreSQL

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

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

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

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

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

Поле Описание
old 4-байтовый уникальный идентификатор объекта записи. В пределах одной таблицы значения 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.

    [[email protected] – ]$ 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
    [[email protected] – ]$
    

    Завершение 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.

    [[email protected] – ]$ 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
    [[email protected] – ]$
    

    Примечание
    Завершение в режиме 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.

    [[email protected] user]$ psql
    bash: psql: command not found
    [[email protected] user]$ echo $PATH
    /b1n:/usr/bin:/usr/local/bin:/usr/bin/Xll:/usr/XHR6/tnn
    [[email protected] user]$ export PATH=$PATH:/usr/local/pgsql/bin
    [[email protected] 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