Първи стъпки с PostgreSQL

Първи стъпки с PostgreSQL

За да инсталирате PostgreSQL 9.2 в Ubuntu 12.10, изпълнете следните команди:

ап-добавка хранилища ЗОП: Пити / PostgreSQL
Sudo актуализация ап-да
ап-да инсталирате PostgreSQL-9.2

Нека се опитаме да работим с базата данни през обвивката:

Sudo -u Postgres psql

Създаване на база данни за изпитване и потребителски тестове:

Postgres = # CREATE DATABASE test_database;
CREATE DATABASE

Postgres = # Създаване на потребителски test_user С парола "QWERTY";
СЪЗДАВАНЕ НА РОЛЯ

Postgres = # Разрешете всички привилегии БАЗА ДАННИ ЗА ДА test_database test_user;
Дарение

За да излезете от черупката, въведете командата \ р.

Сега ние ще се опитаме да работим с новосъздадената база данни от името test_user:

psql -h Localhost test_database test_user

Създаване на нова таблица:

test_database => CREATE последователност user_ids;
СЪЗДАВАНЕ НА ПОСЛЕДОВАТЕЛНОСТ

test_database => CREATE потребители ТАБЛИЦА (

идентификатор ЦЯЛО основен ключ DEFAULT NEXTVAL ( "user_ids"),

);
ЗАБЕЛЕЖКА: Създаване на таблица / първичен ключ ще създаде имплицитен индекс "users_pkey" към таблицата "потребители"
Създаване на таблица

Имайте предвид, че за разлика от някои други бази данни за PostgreSQL, без колони auto_increment собственост. Вместо последователности (секвенции) се използват в Postgres. В момента, достатъчно е да се знае, че с NEXTVAL функцията за помощ можем да получим уникален номер за посочения ред:

test_database => SELECT NEXTVAL ( "user_ids ');
NEXTVAL
---------
1
(1 ред)

test_database => SELECT NEXTVAL ( "user_ids ');
NEXTVAL
---------
2
(1 ред)

Предписването на стойност по подразбиране за поле маса потребители стойност на идентификатора на NEXTVAL на ( "user_ids"). сме постигнали същия ефект, който дава auto_increment. При добавяне на нови елементи, не можем да посочете идентификатора в таблицата, защото с уникален идентификатор ще се генерира автоматично. Няколко маси могат да използват една и съща последователност. По този начин можем да се гарантира, че стойностите на някои полета в тези таблици не се припокриват. В този смисъл последователности са по-гъвкави от auto_increment.

Точно същата таблица може да бъде създаден само с една команда:

test_database => CREATE TABLE потребители2 (Id СЕРИЕН първичен ключ, в акаунта CHAR (64), парола CHAR (64));
ЗАБЕЛЕЖКА: Създаване на таблица ще създаде имплицитно последователност "users2_id_seq" ЗА сериен КОЛОНА "users2.id"
ЗАБЕЛЕЖКА: Създаване на таблица / първичен ключ ще създаде имплицитен индекс "users2_pkey" ЗА МАСА "потребители2"
Създаване на таблица

Както можете да видите, последователността за област идентификатор е създадена автоматично.

Сега, с командата \ г, можете да видите списък на всички налични маси, както и използването \ D потребители - виж описанието на масата за потребители. Ако не получите информацията, която ви интересни, опитайте \ г + вместо \ г. За да се покаже на помощ за команда сигнално \ ч.

Важно е да се отбележи, че имена на таблици, PostgreSQL подразбиране и колоните се превръщат в малки букви. Ако това не желаете това, можете да използвате двойни кавички:

test_database => Създаване на таблица "anotherTable" ( "someValue" VARCHAR (64));
Създаване на таблица

test_database => SELECT * ОТ anotherTable;
ГРЕШКА: връзка "anothertable" не съществува
Линия 1: SELECT * ОТ anotherTable;
^

test_database => SELECT * ОТ "anotherTable";
someValue
-----------
(0 редове)

Останалата част от работата с PostgreSQL не е много по-различно от работа с други системи за управление на релационни бази данни:

test_database => INSERT INTO потребители (вход, парола) VALUES ( 'afiskon', '123456');
INSERT 0 1

test_database => SELECT * от потребителите;

Ако сега се опита да се свърже Postgres от друга машина, тя ще се провали:

psql -h 192.168.0.1 test_database test_user

psql: не може да се свърже със сървъра: Връзката е отказана
Е сървърът, изпълнявани на хост "192.168.0.1" и приемане
TCP / IP връзки на порт 5432?

За да поправите това, добавете ред:

... в /etc/postgresql/9.2/main/postgresql.conf файл, както и:

домакин на всички всички 192.168.0.1/16 md5

... в /etc/postgresql/9.2/main/pg_hba.conf файл и да каже:

Sudo услуга PostgreSQL рестартиране

Сега всичко, което трябва да работи.

pg_dump -C -h 192.168.0.1 -U test_user test_database> ./dump.sql

Ако имате голяма база данни, да обърне внимание на -Fc флага за поддръжка на помощната pg_dump.

Възстановяване от резервно копие:

котка dump.sql | psql -h 192.168.0.1 test_database test_user

По време на архивирането, може да получите съобщение за грешка по този начин:

pg_dump: версията на сървъра: 9.2.4; pg_dump версия: 9.1.9
pg_dump: абортира заради версията на сървъра несъответствие

Доколкото ми е известно, само нормалното решение на този проблем - честно запази навсякъде една и съща версия на PostgreSQL.

Имайте предвид, че стандартната конфигурация PostgreSQL предполага, че се опитвате да го изпълним в микровълновата фурна. Преди да можете да използвате PostgreSQL забравяйте да промените за борба с тези настройки за вашия хардуер и вашата кандидатура.