SQL и Qt 65

SQL и Qt

Агрегатные функции: COUNT, SUM, AVG, GROUP BY, HAVING

Введение Агрегатные функции вычисляют единое значение на основе множества строк — COUNT (количество), SUM (сумма), AVG (среднее), MIN/MAX (минимум/максимум) — в статье разберём их использование как для всей…

SQL и Qt

Подзапросы (subqueries): вложенные SELECT и их применение

Введение Подзапрос — SELECT-запрос, вложенный внутрь другого запроса (в WHERE, SELECT, FROM, или HAVING), позволяющий выразить условия или вычисления, опирающиеся на результат отдельного, промежуточного запроса. В статье разберём…

SQL и Qt

Нормализация: 1NF, 2NF, 3NF — проектирование без избыточности

Введение В заключительной статье первого блока цикла разберём нормализацию — формальный процесс проектирования структуры таблиц, минимизирующий избыточность хранимых данных и связанные с ней риски противоречивости при модификации, через…

SQL и Qt

Денормализация: когда и почему отступают от нормальных форм

Введение Статья 402 завершилась явной оговоркой о практических пределах нормализации — в этой статье разберём денормализацию подробнее: осознанное, целенаправленное внесение избыточности в схему БД ради производительности или практического…

SQL и Qt

Оконные функции: ROW_NUMBER, RANK, OVER, PARTITION BY

Введение Агрегатные функции (статья 399) сворачивают множество строк в одну итоговую — оконные функции, напротив, вычисляют значение для каждой строки на основе «окна» связанных с ней строк, не…

SQL и Qt

CTE (Common Table Expressions): WITH-запросы и рекурсивные CTE

Введение Подзапросы (статья 400) при усложнении логики становятся трудночитаемыми из-за глубокой вложенности — CTE (Common Table Expression, синтаксис WITH) даёт способ явно поименовать и структурировать промежуточные результаты вычислений…

SQL и Qt

Представления (VIEW): инкапсуляция сложных запросов

Введение Представление (VIEW) — сохранённый, поимённый запрос, который можно использовать подобно обычной таблице в других запросах — в статье разберём, как представления помогают инкапсулировать сложную логику запроса за…

SQL и Qt

Материализованные представления: кеширование результатов запросов

Введение В отличие от обычных представлений (статья 406), не хранящих данные физически, материализованное представление сохраняет результат запроса на момент его создания/последнего обновления, обращение к которому затем читает уже…

SQL и Qt

Транзакции: ACID, COMMIT/ROLLBACK, уровни изоляции

Введение Транзакция — группа операций модификации данных, выполняемых как единая, неделимая единица — все её части либо успешно применяются вместе, либо ни одна из них не применяется вовсе.…