Техническая поддержка

PostgreSQL

PostgreSQL - сложная объектно-ориентированная DBMS (DataBase Managment System), поддерживающая практически все команды SQL (Structured Query Language), включая вложенные SELECT, транзакции, триггеры и определяемые пользователем типы и функции. PostgreSQL предназначен для решения задач, стоящих перед большими базами со сложной структурой данных и запросов.

Подключение PostgreSQL

Вы можете воспользоваться PostgreSQL в том случае, если работаете с нашим хостингом по тарифным планам "Зенон-420", "Зенон-630" и "Зенон-840". Подключить PostgreSQL можно в Панели управления:

Для этого нужно выбрать иконку "Базы данных" в блоке "Управление хостингом". Далее в открывшемся окне в строке "Базы данных" перейти по ссылке [добавить],  выбрать "Персональный PostgreSQL 9.1" и нажать кнопку "Добавить".

Дождитесь пока PostgreSQL будет добавлен к Вашей площадке. Данные для подключения Вы увидите на экране, которые так же придут на контактные e-mail указанные в договоре.

Как создать базу в PostgreSQL?

Создать базу данных PostgreSQL можно, например, через консоль (SSH) командой:

createdb -U <Логин> -h < Хост> -p <port> -e <Имя базы данных>

Как начать работать с PostgreSQL?

Существует несколько способов доступа к базе данных PostgreSQL. Самый простой способ - управление базой данных, используя программу-клиент. Данная программа запускается из консоли (SSH).

Подключение к существующей базе данных :

psql -U <Логин> -h < Хост> -p <port> -d <Имя базы данных>
Получить список существующих баз данных :
psql -U <Логин> -h <Хост> -p <port> -l

После подключения к базе данных Вы получаете доступ к командной строке клиентской программы, в которой можно вводить запросы. Каждая строка запроса должна заканчиваться символами \g или ;. Ниже приводится несколько полезных команд клиентской программы.

\? - Показать помощь по директивам командной строки,

\h - Показать помощь по командам SQL,

\e - Использовать текстовый редактор для ввода "длинных" запросов,

\q - Выйти из PostgreSQL,

\p - Показать содержимое строки запроса,

\c - Выбрать/изменить текущую базу данных.

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

\h <команда_SQL> 

Автодополение команды выполняется после нажатия клавиши <TAB>.

  • Создание базы данных
  • CREATE DATABASE <Имя_Базы_Данных>;
  • Удаление базы данных
  • DROP DATABASE <Имя_Базы_Данных>;
  • Физическая очистка базы данных PostgreSQL
  • VACUUM;
  • Создание нового пользователя
  • CREATE USER <Имя_пользователя>;
  • Изменение пароля пользователя
  • ALTER USER <Имя_пользователя> WITH PASSWORD '<Пароль>'
  • Удаление пользователя
  • DROP USER <Имя_пользователя>;
  • Посмотреть список пользователей
  • SELECT usename FROM pg_user;

Как получить доступ к базе данных из php-скриптов?

На хостинге "Зенон Н.С.П", PHP уже функционирует с поддержкой соединений с PostgreSQL. Ниже приводится фрагмент php-документа, который выполняет выполняет подключение к базе данных PostgeSQL

<?php 
$dbconn=pg_connect("host=<Имя_хоста> port=<Номер_порта> user=<Имя_пользователя>
password=<Пароль_пользователя> dbname=<Имя_базы_данных>");
print pg_dbname($dbconn);
pg_close($dbconn);
?>

Дополнительную информацию по использованию функций для работы с PostgreSQL из php можно получить по следующему URL:

http://php.net/manual/ru/ref.pgsql.php

Как получить доступ к базе данных из cgi-скриптов?

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

#!/usr/local/bin/perl
#
#
# Используемые модули
use DBI;
# Имя хоста, на котором работает PostgreSQL
$hostname="<Имя_вашего_хоста>";
# Номер порта
$port="<Номер_порта>";
# Имя пользователя
$user="<Имя_пользователя>";
# Пароль доступа к базе данных
$password="<Пароль_доступа>";
# Имя базы
$database="<Название_базы_данных>";
# Вывод http-заголовка
print "Content-type: text/html\n\n";
# Подключение к базе
$dbh = DBI->connect("dbi:Pg:dbname=$database;host=$hostname;port=$port",$user,$password);
# запрос
my $Name = $dbh->{Name};
print "DataBase = $Name\n";
# Отключаемся от базы
$rc = $dbh->disconnect;

Дополнительную информацию о модуле DBI можно получить из документации, набрав в Unix-shell следующую команду:

perldoc DBD::Pg

Для возможности использования драйвера для PostgreSQL вам необходимо будет установить в свой каталог ~/perllib модуль DBD::Pg со CPAN.

Импорт/экспорт данных из/в PostgreSQL

Для того, чтобы перенести данные из одной базы PostgreSQL в другую необходимо воспользоваться директивой COPY TO/FROM. Таким образом можно сохранить содержимое определенной таблицы в файле, а затем с помощью этой же директивы возможна вставка данных в таблицу PostgreSQL. Директива COPY выполняется из командной строки PostgreSQL.

С подробной инструкцией по использованию команды COPY можно ознакомиться, выполнив в командной строке PostgreSQL:

\h COPY

Для сохрания данных из таблицы в файле нужно сделать:

COPY <Имя_Таблицы> TO '<Полный_Путь_До_Файла>';
Для востановления данных из файла в таблицу нужно сделать:
COPY <Имя_Таблицы> FROM '<Полный_Путь_До_Файла>';

Полезные ссылки