PostgreSQL для чайника. Slackware 12.0


sskirtochenko - Posted on 15 Апрель 2008

PostgreSQL - свободная открытая СУБД.
Сайт - http://www.postgresql.org/
Википедия - http://ru.wikipedia.org/wiki/PostgreSQL

1. Запуск PostgreSQL в Slackware 12.0

Под root'ом набираем в консоли:

#/etc/rc.d/rc.postgresql start

2. Создаём пользователя postgres
3. Заходим под ним в консоли

#su postgres

4. Смотрим список баз данных

$ psql -l
List of databases
   Name    |  Owner   | Encoding
-----------+----------+-----------
 postdb    | postgres | SQL_ASCII
 postgres  | postgres | SQL_ASCII
 template0 | postgres | SQL_ASCII
 template1 | postgres | SQL_ASCII
(4 rows)

Пояснение psql - утилита для работы с базами данных PostgreSQL

5. Попробуем зайти в одну из них

$ psql postdb
Welcome to psql 8.3.0, the PostgreSQL interactive terminal.
 
Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit
 
postdb=#

6. Список таблиц в открытой базе можно посмотреть так:

postdb=# \dt
          List of relations
 Schema |  Name   | Type  |  Owner
--------+---------+-------+----------
 public | cities  | table | postgres
 public | weather | table | postgres
(2 rows)

7. Хотим создать свою таблицу:

postdb=# create table org (kod varchar(80), --код организации
postdb(# name varchar(80) --название организации);

8. Добавляем записи в таблицу:
8.1. Добавляем записи из консоли:

postdb=# INSERT INTO org VALUES ('КодОрганизация1','ИмяОрганизация1');

8.2. Добавялем записи из файла

postdb=# copy org (kod, name) from '/media/TEMP/2';
COPY 2

Примечание:

содержимое файла /media/TEMP/2 таково:

$ cat /media/TEMP/2
КодОрганизация1 ИмяОрганизация1
КодОрганизация2 ИмяОрганизация2

где между, например, КодОрганизация1 ИмяОрганизация1
стоит символ табуляции.

Посмотреть содержимое таблицы org можно так:

postdb=# select * from org;
              kod              |             name
-------------------------------+-------------------------------
 КодОрганизация1 | ИмяОрганизация1
 КодОрганизация1 | ИмяОрганизация1
 КодОрганизация2 | ИмяОрганизация2
(3 rows)

9. Очистить таблицу можно
9.1. так:

postdb=# delete from org *;
DELETE 3

9.2. или так:

postdb=# Truncate org;
TRUNCATE TABLE

10. Добавить колонку в таблицу можно так:

postdb=# ALTER TABLE org ADD COLUMN okpo varchar(80);
ALTER TABLE

Смотрим таблицу:

postdb=# select * from org;
 kod | name | okpo
-----+------+------
(0 rows)

11. Удалить колонку можно так:

postdb=# ALTER TABLE org DROP COLUMN okpo;
ALTER TABLE

12. Переименовать колонку можно так:

postdb=# ALTER TABLE org RENAME COLUMN okpo TO okpo1;
ALTER TABLE

Смотрим, что получилось:

postdb=# select * from org;
 kod | name | okpo1
-----+------+------
(0 rows)

13. Изменить тип колонки можно так:
postdb=# ALTER TABLE org ALTER COLUMN name TYPE varchar(250);

Замечание:
при попытке залить в базу данные в кодировке UTF8 я не учел большего размера данных в этой кодировке (по крайней мере в 2 раза мне пришлось увеличить размер поля).

Прикрутил гуёвину pgAdmin III. При установке на Слакваре 12.0 ругался на отсутствие либ. Помогла установка пакетов wxgtk-2.8.7-i486-2kjz.tgz и wxwidgets-2.8.7-i486-1gds.tgz (спасибо Podosinnikovу Leonidу).

Консоль конечно хорошо, но все таки, какие есть gui программы для работы с PostgreeSQL?
В MySQL есть такие как mysql-admin и mysql-query-browser.

отлично. спасибо Ж:-)
я как раз думал кой где поставить и попробовать
--
Signature invent in progress 24% ##........

Прошу комментарить тогда, что и как получается.

Только сегодня решил попробовать, всё так, только вот мне кажется что в пункте 7 маленькая ошибочка (комментарий во второй строке примера захватывает окончание конструкции (");").

да без проблем Ж:-)
как только дойдут руки покавырять
--
Signature invent in progress 24% ##........