Начало работы с PostgreSQL. Администрирование PostgreSQL
Get Started With PostgreSQL
Duration 00:41:44
Get Started With PostgreSQL - Полный список уроков
Развернуть / Свернуть- Урок 1. Create a Postgres Table 00:01:45
- Урок 2. Insert Data into Postgres Tables 00:04:24
- Урок 3. Filter Data in a Postgres Table with Query Statements 00:03:35
- Урок 4. Update Data in Postgres 00:01:55
- Урок 5. Delete Postgres Records 00:02:43
- Урок 6. Group and Aggregate Data in Postgres 00:06:45
- Урок 7. Sort Postgres Tables 00:01:20
- Урок 8. Ensure Uniqueness in Postgres 00:03:53
- Урок 9. Use Foreign Keys to Ensure Data Integrity in Postgres 00:02:18
- Урок 10. Create Foreign Keys Across Multiple Fields in Postgres 00:03:08
- Урок 11. Enforce Custom Logic with Check Constraints in Postgres 00:02:07
- Урок 12. Speed Up Postgres Queries with Indexes 00:02:33
- Урок 13. Find Intersecting Data with Postgres_ Inner Join 00:04:26
- Урок 14. Select Distinct Data in Postgres 00:00:52
Курс «Get Started With PostgreSQL» заставить вас сказать что вы «знаете SQL» - создание таблиц, вставки, выборки, обновления, удаления, агрегации, индексы, объединения и ограничения. По пути мы будем моделировать проблемы реального мира, чтобы вы могли увидеть, насколько мощный PostgreSQL!
24-04-2016 30-11--0001 ru 15 уроков
Если Вы начали осваивать SQL, то в процессе изучения Вам предстоит столкнуться со множеством вопросов и непонятных моментов, ответы на которые подготовил данный видеокурс. В процессе обучения будут разобраны такие темы, как: создание базы данных, ее изменение и удаление, оператор вставки INSERT, использование запроса SELECT и конструкций WHERE, операторы UPDATE и DELETE, создание различных связей между таблицами с использованием операторов...
Duration 01:26:19
24-04-2016 30-11--0001 ru 9 уроков
Duration 08:50:57
17-06-2018 30-11--0001 ru 6 уроков
Курс СУБД PostgreSQL состоит из 6 уроков, рассчитан для новичков, которые впервые встречают такое понятием как СУБД. Курс включает в себя как теоретическую, так и практическую часть. На данном курсе учащиеся спроектируют небольшую базу данных сети продуктовых магазинов, определят необходимую структуру. Функционал (индексы, представления, триггеры, функции). После прохождения курса, учащиеся будут понимать принципы проектирования БД,...
Duration 03:05:26
28-11-2018 12-09-2018 en 164 урока
Создайте 9 проектов - освойте две основные и современные технологии в Python и PostgreSQL. Всегда хотели узнать один из самых популярных языков программирования на планете? Почему бы не изучить два из самых популярных одновременно? Python и SQL используются многими технологическими компаниями, малыми и большими. Это потому, что они мощные, но чрезвычайно гибкие.
Duration 21:53:10
27-12-2018 ru 10 уроков
Данный курс предназначен для изучения основ SQL: теоретических основ реляционной модели, операций реляционной алгебры, правил и назначение нормализации, использования ER диаграммы для моделирования предметной области, практического использования всех операторов SQL (операторов определения данных (Data Definition Language, DDL): CREATE, ALTER, DROP; манипуляции данными (Data Manipulation Language, DML):...
Duration 05:23:59
Последнее добавленное
en
13-03-2019
В дополнение к обновлению всех инструментов до последних и самых лучших версий Complete Intro to React v5 реструктурировал семинар, чтобы больше сосредоточиться на обучении основным принципам React, не жертвуя при этом какими-либо инструкциями по инструментарию. В этом двухдневном тренинге Брайан...
en
13-03-2019
Единственный курс, который вам нужен для изучения веб-разработки - HTML, CSS, JS, Node и многое другое! Привет! Добро пожаловать в The Web Developer Bootcamp, единственный курс, который вам нужен для изучения веб-разработки. Существует множество вариантов онлайн-обучения разработчиков...
en
13-03-2019
- Tutorial
Мне хотелось создать прекрасный объемлющий мануал Getting Start без всякой воды, но включающий основные плюшки для начинающих по системе PostgreSQL в Linux.
PostgreSQL является объектно-реляционной системой управления базами данных (ОРСУБД) на основе POSTGRES, версия 4.2 , разработанной в Университете Калифорнии в Беркли департаменте компьютерных наук.
PostgreSQL является open source потомком оригинального кода Berkeley. Он поддерживает большую часть стандарта SQL и предлагает множество современных функций:
- Cложные запросы
- Управление конкурентным доступом с помощью многоверсионности
- типов данных
- функций
- операторов
- агрегатных функций
- индекс методов
- процедурных языков
Сборка и установка
Как и все любители мейнстрима PostgreSQL мы будем конечно же собирать, а не скачивать готовые пакеты (в репозитариях Debian, например, нет последней версии). Вот лежит множество версий, скачивать конечно же лучше всего последнюю. На момент написания поста это версия 9.2.2Wget http://ftp.postgresql.org/pub/source/v9.2.2/postgresql-9.2.2.tar.gz
tar xzf postgresql-9.2.2.tar.gz
Теперь у нас есть директория с исходниками сей прекрасной базы данных.
По умолчанию файлы базы будут установлены в директорию /usr/local/pgsql, но эту директорию можно изменить задав
Prefix=/path/to/pgsql
перед командой./configure
Перед сборкой можно указать компилятор С++
Export CC=gcc
PostgeSQL может использовать readline библиотеку, если у вас её нет и нет желания её ставить просто укажите опцию
Without-readline
Надеюсь у всех есть Autotools ? Тогда вперед к сборке:
Cd postgresql-9.2.2
./configure --without-readline
sudo make install clean
Все господа! Поздравляю!
Настройка
Нам необходимо указать хранилище данных наших баз данных (кластер) и запустить её.Есть один нюанс - владельцем директории данных и пользователь, который может запускать базу должен быть не root. Это сделано в целях безопасности системы. Поэтому создадим специального пользователя
sudo useradd postgres -p postgres -U -m
И далее все понятно
Sudo chown -R postgres:postgres /usr/local/pgsql
Важный процесс. Мы должны инициализировать кластер баз дынных. Сделать мы должны это от имени пользователя postgres
Initdb -D /usr/local/pgsql/data
Теперь нужно добавить запуск PostgreSQL в автостарт. Для этого существует уже готовый скрипт и лежит он в postgresql-9.2.2/contrib/start-scripts/linux
Этот файл можно открыть и обратить внимание на следующие переменные:
- prefix - это место куда мы ставили PostgreSQL и задавали в./configure
- PGDATA - это то, где хранится кластер баз данных и куда должен иметь доступ наш пользователь postgres
- PGUSER - это тот самый пользователь, от лица которого будет все работать
Sudo cp ./postgresql-9.2.2/contrib/start-scripts/linux /etc/init.d/postgres
sudo update-rc.d postgres defaults
Перезапускам систему, чтобы проверить что наш скрипт работает.
Вводим
/usr/local/pgsql/bin/psql -U postgres
И если появится окно работы с базой, то настройка прошла успешно! Поздравляю!
По умолчанию создается база данных с именем postgres
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 127.0.0.1/32 trust
host all all::1/128 trust
Первая строка отвечает за локальное соединение, вторая - за соединение про протоколу IPv4, а третья по протоколу IPv6.
Самый последний параметр - это как раз таки метод авторизации. Его и рассмотрим (только основные)
- trust - доступ к базе может получить кто угодно под любым именем, имеющий с ней соединение.
- reject - отклонить безоговорочно! Это подходит для фильтрации определенных IP адресов
- password - требует обязательного ввода пароля. Не подходит для локальных пользователей, только пользователи созданные командой CREATE USER
- ident - позволяет только пользователем зарегистрированным в файле /usr/local/pgsql/data/pg_ident.conf устанавливать соединение с базой.
Утилиты для работы с базой
pg_config
Возвращает информацию о текущей установленной версии PostgreSQL.initdb
Инициализирует новое хранилище данных (кластер баз данных). Кластер представляет собой совокупность баз данных управляемых одним экземпляром севера. initdb должен быть запущен от имени будущего владельца сервера (как указано выше от имени postgres).pg_ctl
Управляет процессом работы сервера PostgreSQL. Позволяет запускать, выполнять перезапуск, останавливать работу сервера, указать лог файл и другое.psql
Клиент для работы с базой дынных. Позволяет выполнять SQL операции.createdb
Создает новую базу данных. По умолчанию, база данных создается от имени пользователя, который запускает команду. Однако, чтобы задать другого - необходимо использовать опцию -O (если у пользователя есть необходимые привилегии для этого). По сути - это обертка SQL команды CREATE DATABASE.dropdb
Удаляет базу данных. Является оберткой SQL команды DROP DATABASE.createuser
Добавляет нового пользователя базы дынных. Является оберткой SQL команды CREATE ROLE.dropuser
Удаляет пользователя базы данных. Является оберткой SQL команды DROP ROLE.createlang
Добавляет новый язык программирования в базу PostgreSQL. Является оберткой SQL команды CREATE LANGUAGE.droplang
Удаляет язык программирования. Является оберткой SQL команды DROP LANGUAGE.pg_dump
Создает бэкап (дамп) базы данных в файл.pg_restore
Восстанавливает бэкап (дамп) базы данных из файла.pg_dumpall
Создает бэкап (дамп) всего кластера в файл.reindexdb
Производит переиндексацию базы данных. Является оберткой SQL команды REINDEX.clusterdb
Производит перекластеризацию таблиц в базе данных. Является оберткой SQL команды CLUSTER.vacuumdb
Сборщик мусора и оптимизатор базы данных. Является оберткой SQL команды VACUUM.Менеджеры по работе с базой
Что касается менеджера по работа с базой, то есть php менеджер - этоPostgreSQL — это кроссплатформенная объектно-реляционная СУБД с открытым исходным кодом. Из этой статьи вы узнаете, как установить PostgreSQL в Ubuntu Linux, подключиться к нему и выполнить пару простых SQL-запросов, а также о том, как настроить резервное копирование.
Чтобы установить PostgreSQL 9.2 в Ubuntu 12.10, выполните следующие команды:
sudo
apt-add-repository ppa:pitti/
postgresql
sudo
apt-get update
sudo
apt-get install
postgresql-9.2
Попробуем поработать с СУБД через оболочку:
sudo -u postgres psql
Создадим тестовую базу данных и тестового пользователя:
CREATE
DATABASE
test_database;
CREATE
USER
test_user WITH
password "qwerty"
;
GRANT
ALL
ON
DATABASE
test_database TO
test_user;
Для выхода из оболочки введите команду \q .
Теперь попробуем поработать с созданной базой данных от имени test_user:
psql -h localhost test_database test_user
Создадим новую таблицу:
CREATE
SEQUENCE
user_ids;
CREATE
TABLE
users (
id INTEGER
PRIMARY
KEY
DEFAULT
NEXTVAL
("user_ids"
)
,
login CHAR
(64
)
,
password CHAR
(64
)
)
;
Обратите внимание, что в отличие от некоторых других СУБД, в PostgreSQL нет столбцов со свойством auto_increment. Вместо этого в постгресе используются последовательности (sequences). На данный момент достаточно знать, что с помощью функции nextval мы можем получать уникальные числа для заданной последовательности:
SELECT NEXTVAL ("user_ids" ) ;
Прописав в качестве значения по умолчанию для поля id таблицы users значение NEXTVAL ("user_ids" ) , мы добились того же эффекта, что дает auto_increment. При добавлении новых записей в таблицу мы можем не указывать id, потому что уникальный id будет сгенерирован автоматически. Несколько таблиц могут использовать одну и ту же последовательность. Таким образом мы сможем гарантировать, что значения некоторых полей у этих таблиц не пересекаются. В этом смысле последовательности более гибки, чем auto_increment.
Точно такую же таблицу можно создать и при помощи всего лишь одной команды:
CREATE
TABLE
users2 (
id SERIAL
PRIMARY
KEY
,
login CHAR
(64
)
,
password CHAR
(64
)
)
;
В этом случае последовательность для поля id создается автоматически.
Теперь с помощью команды \d можно ознакомиться со списком всех доступных таблиц, а с помощью \d users — увидеть описание таблицы users. Если вы не получили интересующую вас информацию, попробуйте \d+ вместо \d . Список баз данных можно получить командой \l , а переключиться на конкретную БД — командой \c dbname . Для отображения справки по командам скажите \? .
Важно отметить, что в PostgreSQL по умолчанию имена таблиц и столбцов приводятся к нижнему регистру. Если это поведение нежелательно, можно воспользоваться двойными кавычками:
CREATE TABLE "anotherTable" ("someValue" VARCHAR (64 ) ) ;
Еще одна особенность PostgreSQL, с которой могут возникнуть сложности в начале работы с этой СУБД — так называемые «схемы». Схема представляет собой что-то вроде пространства имен для таблиц, как бы каталог с таблицами внутри базы данных.
Создание схемы:
CREATE SCHEMA bookings;
Переключение на схему:
SET search_path TO bookings;
Просмотреть список существующих схем можно командой \dn . По умолчанию используется схема с именем public. В принципе, можно успешно использовать PostgreSQL, и не зная про существование схем. Но при работе с унаследованным кодом, а также в некоторых граничных случаях, знание о схемах может очень пригодиться.
В остальном работа с PostgreSQL мало чем отличается от работы с любой другой реляционной СУБД:
INSERT
INTO
users (login,
password)
VALUES
("afiskon"
,
"123456"
)
;
SELECT
*
FROM
users;
Если сейчас вы попытаетесь подключиться к постгресу с другой машины, то потерпите неудачу:
psql -h 192.168.0.1 test_database test_user
Psql: could not connect to server: Connection refused
Is the server running on host "192.168.0.1" and accepting
TCP/IP connections on port 5432?
Чтобы исправить это, добавьте строку:
listen_addresses = "localhost,192.168.0.1"
… в файл /etc/postgresql/9.2/main/postgresql.conf, а также.
System AdministrationЭтот пост - краткая инструкция для начинающих, для тех кто впервые установил PostgreSQL. Здесь вся необходимая информация для того, чтобы начать работу с PostgreSQL.
Подключение к СУБД
Первое, что нужно сделать - получить доступ к PostgreSQL, доступ в качестве суперпользователя.Настройки аутентификации находятся в файле pg_hba.conf.
- local all postgres peer
Подключаемся:
- $ sudo -u postgres psql postgres postgres
- # TYPE DATABASE USER ADDRESS METHOD
- hostssl all all 0.0.0.0/0 md5
Установка переменной окружения PGPASSWORD
Сразу скажу, что лучше этот способ не использовать, потому что некоторые операционные системы позволяют просматривать обычным пользователям переменные окружение с помощью ps. Но если хочется, то надо написать в терминале:- export PGPASSWORD=mypasswd
Хранение пароля в файле.pgpass
Если мы говорим о Linux, то файл должен находится в $HOME (/home/username). Права на запись и чтение должны быть только у владельца (0600). В файл нужно записывать строки вида:- hostname:port:database:username:password
Получение справочной информации
\? - выдаст все доступные команды вместе с их кратким описанием,\h - выдаст список всех доступных запросов,
\h CREATE - выдаст справку по конкретному запросу.
Управление пользователями СУБД
Как получить список пользователей PostgreSQL? Или можно сделать запрос к таблице pg_user.- SELECT * FROM pg_user ;
Создание нового пользователя PostgreSQL
Из командной оболочки psql это можно сделать с помощью команды CREATE.- CREATE USER username WITH password "password" ;
- createuser -S -D -R -P username
Изменение пароля пользователя
- ALTER USER username WITH PASSWORD "password" ;
Изменение ролей пользователя
Чтобы пользователь имел право создавать базы данных, выполните запрос:- ALTER ROLE username WITH CREATEDB ;
Управление базами данных
Вывод списка баз данных в терминале psql: Тоже самое из терминала Linux:- psql -l
- CREATE DATABASE dbname OWNER dbadmin ;
- createdb -O username dbname;
Настройка прав доступа к базе данных
Если пользователь является владельцем (owner) базы данных, то у него есть все права. Но если вы хотите дать доступ другому пользователю, то сделать это можно с помощью команды GRANT. Запрос ниже позволит пользователю подключаться к базе данных. Но не забывайте о конфигурационном файле pg_hba.conf, в нем тоже должны быть соответствующие разрешения на подключение.- GRANT CONNECT ON DATABASE dbname TO dbadmin ;