Знакомство с 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).