JAVA_FILLTHEGAPS Telegram 565
Полезное в PostgreSQL, часть 1

Алгоритмы с литкода — это База. Но только для собеседований, на практике вы редко их встретите.

С SQL ситуация обратная. На собесах спросят максимум джойн и HAVING, а на практике всё гораздо интереснее.

Сегодня расскажу простые и полезные приёмы PostgreSQL, с которыми ваши скрипты станут симпатичнее💅

1️⃣ JOIN + USING

Если при джойне таблиц имена столбцов совпадают, вместо ON используйте USING:
SELECT * FROM table1 
INNER JOIN table2 USING (user_id);


2️⃣ INSERT + SELECT

Чтобы вставить в одну таблицу значения из другой, нет смысла вытаскивать данные отдельно. INSERT и SELECT прекрасно комбинируются:
INSERT INTO users (id, name)
SELECT user_id, fullname FROM customers;


3️⃣ RETURNING

Чтобы после вставки вернуть новые строки, отдельный SELECT не нужен. Добавьте RETURNING для нужных столбцов:
INSERT INTO users VALUE (…)
RETURNING id;


Обычно возвращают id, но можно вернуть несколько столбцов и даже *.

Для DELETE RETURNING тоже работает и возвращает удалённые строки.

4️⃣ Тестовые данные

Для генерации простейших тестовых данных через SQL вам пригодятся:

🔸 generate_series(a, b) — последовательность целых чисел от a до b. Той же функцией генерятся даты в заданном диапазоне, синтаксис смотрите в документации

🔸 random() — случайное число от 0 до 1

🔸 md5(а) — хэш числа а. Помогает превратить результат random() в строку

Дальше комбинируем. Например, так:
INSERT INTO t
SELECT id, // 1, 2,…, 100
'name' || id, // name1,…, name100
random(),
md5(random()::text)
FROM generate_series(1,100) id;


Одним запросом получаем 100 строк в базе!

Приёмы выше хоть и простые, но пригодятся на большинстве проектов. Пользуйтесь и ставьте огонёчек, если нужна вторая часть🔥



tgoop.com/java_fillthegaps/565
Create:
Last Update:

Полезное в PostgreSQL, часть 1

Алгоритмы с литкода — это База. Но только для собеседований, на практике вы редко их встретите.

С SQL ситуация обратная. На собесах спросят максимум джойн и HAVING, а на практике всё гораздо интереснее.

Сегодня расскажу простые и полезные приёмы PostgreSQL, с которыми ваши скрипты станут симпатичнее💅

1️⃣ JOIN + USING

Если при джойне таблиц имена столбцов совпадают, вместо ON используйте USING:

SELECT * FROM table1 
INNER JOIN table2 USING (user_id);


2️⃣ INSERT + SELECT

Чтобы вставить в одну таблицу значения из другой, нет смысла вытаскивать данные отдельно. INSERT и SELECT прекрасно комбинируются:
INSERT INTO users (id, name)
SELECT user_id, fullname FROM customers;


3️⃣ RETURNING

Чтобы после вставки вернуть новые строки, отдельный SELECT не нужен. Добавьте RETURNING для нужных столбцов:
INSERT INTO users VALUE (…)
RETURNING id;


Обычно возвращают id, но можно вернуть несколько столбцов и даже *.

Для DELETE RETURNING тоже работает и возвращает удалённые строки.

4️⃣ Тестовые данные

Для генерации простейших тестовых данных через SQL вам пригодятся:

🔸 generate_series(a, b) — последовательность целых чисел от a до b. Той же функцией генерятся даты в заданном диапазоне, синтаксис смотрите в документации

🔸 random() — случайное число от 0 до 1

🔸 md5(а) — хэш числа а. Помогает превратить результат random() в строку

Дальше комбинируем. Например, так:
INSERT INTO t
SELECT id, // 1, 2,…, 100
'name' || id, // name1,…, name100
random(),
md5(random()::text)
FROM generate_series(1,100) id;


Одним запросом получаем 100 строк в базе!

Приёмы выше хоть и простые, но пригодятся на большинстве проектов. Пользуйтесь и ставьте огонёчек, если нужна вторая часть🔥

BY Java: fill the gaps


Share with your friend now:
tgoop.com/java_fillthegaps/565

View MORE
Open in Telegram


Telegram News

Date: |

Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” How to create a business channel on Telegram? (Tutorial) Choose quality over quantity. Remember that one high-quality post is better than five short publications of questionable value. Image: Telegram. Clear
from us


Telegram Java: fill the gaps
FROM American