SQL Pro
5.08K subscribers
142 photos
2 videos
10 files
127 links
SQL Pro - всё об SQL
Реклама: @anothertechrock

Контент канала:
1. Разбор вопросов с собеседований
2. Трюки SQL
3. Видео
4. Тесты
5. Задачи на логику
6. Юмор
Download Telegram
Трюк дня. Как узнать размер базы данных PostgreSQL?

Например, имеется пользователь postgres, база base и доступ trust.

Решение будет вечером.

#tips
😁1
Трюк дня. Как узнать размер базы данных PostgreSQL?

Для сохранения кластера базы данных:

pg_dumpall -U postgres -w > backup

Для восстановления кластера базы данных:

psql -U postgres -w -f backup postgres

#tips
💩3😱1
Трюк дня. Как объединить операторы LIKE и IN без написания сложных подзапросов?

WHERE something LIKE 'bla%'
OR something LIKE '%foo%'
OR something LIKE 'batz%'

Повысьте читаемость и расширяемость запроса.

Решение будет вечером.

#tips
🤡1
Трюк дня. Как узнать размер базы данных PostgreSQL?

Такое решение полностью стандартно, работало, и будет работать на любой СУБД:

create table patterns (pattern varchar (32));
insert into patterns values ('bla%');
insert into patterns values ('%foo%');
insert into patterns values ('batz%');

select something
from tab
where exists (
select 1
from patterns
where something like pattern
);

Вместо таблицы можно использовать любую конструкцию способную вернуть строки, такие как например: представление, табличные функции, коллекции и т.д.

#tips
🤡7👍1
Трюк дня. Что означает CONSTRAINT?

Что означает CONSTRAINT в данном контексте? Для чего может быть ограничение CONSTRAINT person_pkey PRIMARY KEY (id)?

Есть 2 таблицы :

CREATE TABLE company(
id integer NOT NULL,
name character varying,
CONSTRAINT company_pkey PRIMARY KEY (id)
);

CREATE TABLE person(
id integer NOT NULL,
name character varying,
company_id integer,
CONSTRAINT person_pkey PRIMARY KEY (id)
);

Решение будет вечером.

#tips
Трюк дня. Что означает CONSTRAINT?

Определение:

CONSTRAINT company_pkey PRIMARY KEY (id)

эквивалентно определению:

PRIMARY KEY (id)

и означает, что id является первичным ключом таблицы.

Т.к. в данном случае первичный ключ состоит из одного столбца, то его можно было бы указать на уровне поля:

CREATE TABLE company(
id integer PRIMARY KEY,
name character varying
);

Возможность определения ключа на уровне таблицы полезна если ключ — составной.

PRIMARY KEY (id, name)

В первом случае у ограничения задано имя. Это имя будет выводиться в сообщениях об ошибках. Также по имени можно это ограничение удалить. В случае если имя ограничения не задано явно, оно будет сгенерировано СУБД.

#tips
👍4
Трюк дня. Как сохранить и восстановить базу данных PostgreSQL?

Например, имеется пользователь postgres, база base и доступ trust.

Решение будет вечером.

#tips
Трюк дня. Как сохранить и восстановить базу данных PostgreSQL?

Для сохранения кластера базы данных:

pg_dumpall -U postgres -w > backup

Для восстановления кластера базы данных:

psql -U postgres -w -f backup postgres

#tips
Трюк дня. Как вывести поля по шаблону (PostgreSQL)?

Есть таблица A с Transaction_id. В столбце есть разные цифры от нуля до миллиарда. Как вывести поля, где только 4 символа и 3-символ 7?

Решение будет вечером.

#tips
Трюк дня. Как вывести поля по шаблону (PostgreSQL)?

SELECT transaction_id
FROM a
WHERE CAST(transaction_id AS TEXT) LIKE '__7_'

#tips