PostgreSQL - шпаргалка по наиболее часто используемым командам

PostgreSQL - шпаргалка по наиболее часто используемым командам

В последнее время всё чаще приходится сталкиваться с PostgreSQL в своей работе. И сравнивая данную БД с другими, приходишь к выводу, что синтаксис SQL немного отличается от общепринятых стандартов. Столкнувшись с такой проблемой, решил написать мини-шпаргалку по наиболее частым командам, которые понадобятся любому разработчику.

Так же, как и в Oracle, все манипуляции с базой (DML) делаются через системные таблицы и обвязывающие их процедуры и view. Тут нет ни show databases, ни show create table. Но и DML, при этом, транзакционный - можно откатить транзакцию, создающую базу, например.

Установка Postgres

Ищем докер-контейнеры для PostgreSql:

docker search postgres

Устанавливаем Postgre:

docker run --rm --name postgres -e POSTGRES_PASSWORD=my_pass -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data  postgres

Соединяемся с базой данных от имени пользователя homestead

psql -U homestead -h localhost

Соединяемся с базой данных test_db

\c test_db;

Выход из базы данных:

\q

Вывести список всех баз данных:

\l

Вывести список всех схем:

\dn

Показать список всех хранимых процедур и функций:

\df

Показать список представлений:

\dv

Список таблиц текущей базы данных:

\dt

Список таблиц с более подробной информацией о них:

\dt+

Подробная информация о конкретной таблице:

\d+ table_name

Вывести информацию о функции:

\df+ function_name

Вывести запрос в красивом формате:

\x

Показать список пользователей:

\du

Помощь по командам:

\?

Показать список табличных пространств:

\db

Табличное пространство - позволяют организовать логику размещения файлов объектов базы данных в файловой системе.

По умолчанию создаются:

• pg_default - используется по умолчанию для баз данных template1 и template0

• pg_global - используется для общих системных каталогов.

• pg_tblspc - содержит ссылки на новые табличные пространства.

Показать текущую версию БД:

select version();

Вывести дополнительные аттрибуты строки:

select xmin,xmax,cmin,cmax,ctid from tbl;

ctid является ссылкой на следующую, более новую, версию той же строки. У самой новой, актуальной, версии строки ctid ссылается на саму эту версию.

Полная заморозка

VACUUM FREEZE

VACUUM FULL

vacuumdb --all --freeze

 

Показать все системные файлики:

\dS+

Мониторинг:

\d pg_stat_activity

SELECT * FROM pg_stat_activity;

\d pg_database

SELECT * FROM pg_database;

\d pg_class

SELECT * FROM pg_class;

CREATE EXTENSION pg_visibility;

 

Чтобы получить айди нужной вым базы данных,В ыполняем команду:

SELECT txid_current();

Вывести все блокировки трансакций:

SELECT * FROM pg_locks;

Файл конфигурации находится в папке /var/lib/postgresql/data/postgresql.conf

Популярное

Самые популярные посты

Как быть максимально продуктивным на удалённой работе?
Business

Как быть максимально продуктивным на удалённой работе?

Я запустил собственный бизнес и намеренно сделал всё возможное, чтобы работать из любой точки мира. Иногда я сижу с своём кабинете с большим 27-дюймовым монитором в своей квартире в г. Чебоксары. Иногда я нахожусь в офисе или в каком-нибудь кафе в другом городе.

Привет! Меня зовут Сергей Емельянов и я трудоголик
Business PHP

Привет! Меня зовут Сергей Емельянов и я трудоголик

Я программист. В душе я предприниматель. Я начал зарабатывать деньги с 11 лет, в суровые 90-е годы, сдавая стеклотару в местный магазин и обменивая её на сладости. Я зарабатывал столько, что хватало на разные вкусняшки.

Акция! Профессиональный разработчик CRM за 2000 руб. в час

Выделю время под ваш проект. Знания технологий Vtiger CRM, SuiteCRM, Laravel, Vue.js, Golang, React.js. Предлагаю варианты сотрудничества, которые помогут вам воспользоваться преимуществами внешнего опыта, оптимизировать затраты и снизить риски. Полная прозрачность всех этапов работы и учёт временных затрат. Оплачивайте только рабочие часы разработки после приемки задачи. Экономьте на платежах по его содержанию разработчика в штате. Возможно заключение договора по ИП. С чего начать, чтобы нанять профессионального разработчика на full-time? Просто заполните форму!

Telegram
@sergeyem
Telephone
+4915211100235