32 слова | 1 минута
PostgreSQL
Выборка данных
# DISTINCT - без повторений
SELECT DISTINCT email * FROM users ORDER BY email;
# OFFSET - с определенной позиции
SELECT * FROM users OFFSET 10 LIMIT 100;
# FETCH - по аналогии с LIMIT
SELECT * FROM users OFFSET 10 FETCH FIRST 100 ROW ONLY;
# IN - в списке (позволяющий сократить запрос)
SELECT * FROM users WHERE id IN (1,2);
# BETWEEN - запрос значений в заданном диапазоне
SELECT * FROM users WHERE id BETWEEN 1 AND 100;
# LIKE - поиск (iLIKE для игнорирования прописных и заглавных букв)
SELECT * FROM users WHERE email LIKE '%test%';
# COALESCE - замена пустых значений на заранее заготовленные
SELECT COALESCE(email, 'nont found') FROM users;
# HAVING - условие наличия
SELECT email, COUNT(*) FROM users GROUP BY email HAVING COUNT(*) > 10;
Агрегаты и Базовая Арифметика
MIN, MAX, AVG, ROUND, SUM
Работа с Датой и Временем
NOW(), INTERVAL(1 YEAR), EXTRACT(YEAR FROM NOW()), AGE
ON CONFLICT DO
# при конфликте что то делать
INSERT INTO..... ON CONFLICT (id) DO NOTHING;
# при конфликте поменять email
INSERT INTO..... ON CONFLICT (id) DO UPDATE SET email = EXCLUDED.email;
RETURNING - Можем в одном запросе вернуть
INSERT INTO clients(name) VALUES('Denis') RETURNING id;
DELETE FROM customers RETURNING *;
Foreign key

Подробнее: https://postgrespro.ru/docs/postgrespro/10/tutorial-fk