В PostgreSQL есть немало интерфейсов. Из графических лично я предпочитаю pgadmin3 (он должен быть в репозитариях большинства Linux дистрибутивов). В этом справочнике будет описан текстовый - psql.
Его я нахожу даже более удобным, чем sqlplus для Oracle.
Справочник специально создавался кратким для того, чтобы описать команды, которые наиболее часто используются.
Разделим справочник на 3 части:
- Файлы (они же команды) PostgreSQL
- Команды запуска psql
- Команды интерактивной оболочки psql
1. Файлы (они же команды) PostgreSQL
- psql - программа для работы с объектами PostgreSQL
- createdb и dropdb - создание и удаление базы данных (соответственно)
- createuser и dropuser - создание и пользователя (соответственно)
- pg_ctl - программа предназначенная для решения общих задач управления (запуск, останов, настройка параметров и т.д.)
- postmaster - многопользовательский серверный модуль PostgreSQL (настройка уровней отладки, портов, каталогов данных)
- initdb - создание новых кластеровPostgreSQL (не запускайте под root !)
- initlocation - программа для создания каталогов для вторичного хранения баз данных
- vacuumdb - физическое и аналитическое сопровождение БД
- pg_dump - архивация и восстановление данных
- pg_dumpall - оболочка для pg_dump, которая работает сразу со всем кластером БДPostgreSQL
- pg_restore - восстановление БД из архивов (.tar, .tar.gz)
2. Команды запуска psql
- psql -c (или --command) - запуск команды без входа в интерактивный режим
- -f (или --file) - также как и -c , но команда читается с файла
- -l (или --list) - выводит список баз данных, к которым можно подключиться (если появляется ошибка: psql: FATAL: role "_your_userName_" does not exist ), то значит нужно указать имя пользователя явно.
- -U (или --username) - указываем имя пользователя (например postgres)
- -W (или --password) - приглашение на ввод пароля
- -d - имя базы данных
- -h - имя хоста (сервера)
- -s - пошаговый режим, то есть, нужно будет подтверждать все команды
- -S - одно-строчный режим, то есть, переход на новую строку будет выполнять запрос (когда надоело вводить ";" после каждой SQL команды! )
- -V - (не строчная v) - версия PostgreSQL без входа в интерактивный режим
3. Комманды интерактивной оболочки psql
(Примечание: после этих команд точку с запятой ставить (как при выполнении SQL-запросов ) не нужно)
- \connect db_name - подключиться к базе с именем db_name
- \du - список пользователей
- \dp (или \z) - список таблиц, представлений, последовательностей, прав доступа к ним
- \di - индексы
- \ds - последовательности
- \dt - таблицы
- \dv - представления
- \dS - системные таблицы
- \o - пересылка результатов запроса в файл (Пример: а) \o today.txt б) select select current_date ; и тогда все результаты будут записываться в today.txt. Чтобы все запросы снова выводились не в файл, а на консоль необходимо еще раз ввести \o (без указания параметров)
- \l - список баз данных
- \i - читать входящие данные из файла
- \e - открывает текущее содержимое буфера запроса в редакторе (если не указана в окружении переменная EDITOR, то будет использоваться по умолчанию vi)
- \d "table_name" - описание таблицы (вместо table_name указать свою таблицу)
- \i запуск команды из внешнего файла, например \i /home/user/query.sql
- \pset - команда настройки параметров форматирования
- \echo - выводит сообщение
- \set - устанавливает значение переменной среды. Эта команда без параметров выводит список текущих переменных (\unset - удаляет). Полезный пример: а) echo "'one','two', 'three'" > test.sql (создаем файл с данными test.sql)
- б) \set data `cat test.sql` (в psql устанавливаем переменную data, которая получает результат от команды cat test.sql)
- в) \echo :data (результат проверки переменной - 'one','two', 'three' )
- г) select :data ; (используем переменную). Можно использовать любую SQL команду.
- Вот так вот легко можно использовать параметры команд с внешних файлов!
- \? - справочник psql
- \help - справочник SQL
- \q (или Ctrl+D) - выход с программы
Примечание: Рекомендую называть таблицы и поля строчными символами. PostgreSQL чувствителен к регистру в названиях объектов, но не к командам (select и SELECT - не имеет значения). Но если уже есть такие объекты БД, то тогда их нужно указывать в кавычках, например, SELECT * FROM "MyTable". Иначе будете удивлены почему выводится сообщение типа:
ERROR: relation "myTableName" does not exist
Успехов!
Комментариев нет:
Отправить комментарий