MySQL является одним из наиболее часто используемых языков для хранения данных в базах данных. В языке есть много команд, известных как запросы, которые помогают пользователю выполнять различные задачи, включая поиск, изменение, обновление и т. д., делая данные презентабельными и обеспечивая простоту обработки. Двумя наиболее часто используемыми запросами для поиска являются «Где» и «Имея».
Основные выводы
- Предложение HAVING фильтрует записи на основе агрегатных функций и групп, а предложение WHERE фильтрует отдельные записи перед их группировкой.
- Предложение HAVING используется с оператором GROUP BY, тогда как предложение WHERE можно использовать независимо или в сочетании с другими предложениями.
- Предложение WHERE нельзя использовать с агрегатными функциями, но предложение HAVING можно использовать с такими функциями, как COUNT, SUM и AVG.
Предложение «иметь» и «где»
Предложение HAVING в SQL используется для фильтрации записей в сочетании с предложением GROUP BY при использовании агрегатных функций. Предложение WHERE используется для фильтрации записей перед их группировкой или агрегированием.
Предложение «Имеет» используется для фильтрации столбцов, присутствующих в таблице и сгруппированных по определенному условию, заданному предложением «группа по». Преимущество использования предложения Have заключается в том, что оно может содержать агрегатные функции, а также реализуется для столбцов.
Предложение Where может использоваться с несколькими функциями, такими как SELECT, UPDATE и DELETE, и используется для фильтрации записей, присутствующих в данной таблице, и может использоваться для предоставления фильтра при объединении таблиц. Предложение работает со строками и не требует группировки по предложению. Запрос предложения where может выполнять любую логическую операцию, такую как «не», «И» и т. д.
Сравнительная таблица
Параметры сравнения | Имея пункт | Где пункт |
---|---|---|
Функция | Предложение используется для фильтрации данных из группы. | Предложение where используется для фильтрации данных из записей таблицы. |
Группировать по пункту | Он не может работать без предложения group by и используется в запросе после него. | Он может работать без предложения group by и даже если указано предложение where на первом месте. |
Агрегатные операции | Агрегированные операции могут выполняться с данными, поскольку они фильтруют группы. | Он не может выполнять эти операции, поскольку фильтрует отдельные строки. |
Процесс подачи заявки | Предложение Имея используется с предложением group by, а затем предложение Наличие работает со столбцами группы. | Предложение where используется для фильтрации строк данной таблицы. |
Выбор | Предложение Have сначала извлекает все данные, затем группирует их, после чего фильтрация выполняется в соответствии с указанным условием. | Предложение Where извлекает только указанный объем данных в соответствии с предоставленным условием. |
Что такое оговорка?
Предложение Наличие используется для фильтрации данных и используется в запросе в сопряжении с группировкой по команде. Предложение group by сначала группирует данные в соответствии с запросом, а затем предложение have используется для работы со столбцами сгруппированных данных. Фильтрация данных — достаточно длительный процесс.
Преимущество использования этого предложения заключается в том, что оно может работать с множеством различных агрегатных функций, таких как SUM, COUNT и т. д. Результатом выполненных вычислений является число. Можно использовать агрегатные функции многострочных функций, поскольку они выполняются в группе, а еще одним преимуществом является то, что они также могут работать с операторамиwhere.
Работа с предложением Where немного отличается. Следующие шаги: -
- Несколько строк извлекаются на основе оператора where.
- Строки группируются с помощью предложения group by.
- Затем следуют различные функции, такие как суммирование и подсчет.
- Данные отображаются в соответствии с условием, указанным в предложении have.
У предложения Have есть свои недостатки. Предложение нельзя использовать вместе с несколькими предложениями, такими как «Обновить», «Изменить», «Удалить» и т. д., и это было проблемой. Он также сортирует данные по группам; поэтому несколько раз сложно отсортировать данные по каким-то предпочтениям.
Что такое пункт «Где»?
Предложение where используется в запросе для фильтрации различных типов данных из записей таблицы. Оператор select имеет свои ограничения, например, он не может выполнять агрегатные функции в запросе, с которым он используется, а также не может помочь в тех случаях, когда требуется конкретная сумма.
Предложение Where может использоваться в разных местах и с множеством различных предложений, таких как «Обновить», «Изменить» и «Удалить», а также может использоваться для выполнения с его помощью специальных задач. Разделение по этому предложению выполняется до предложения group by, т. е. данные фильтруются раньше, и они могут иметь или не иметь предложение group by. Этапы выполнения внутреннего запроса следующие:
Пример: - ВЫБЕРИТЕ состояние из имени таблицы, где число = 1 группировать по состоянию;
- Приведенный выше запрос сначала будет состоянием столбца из записей таблицы.
- Затем записи будут выбраны на основе заданного условия.
- После выбора данные будут сгруппированы по штату, к которому они принадлежат, и будет присвоен номер в соответствии с людьми в каждом штате.
Предложение Where может выполнять некоторые задачи, такие как логические операции и объединение двух или более условий или отрицание условия с помощью таких операций, как И, ИЛИ и НЕ.
Основные различия между предложением «иметь» и «где»
- Предложение Have используется для сортировки данных после того, как они были сгруппированы предложением group by, тогда как предложение Where используется для фильтрации записей таблицы до или после группировки.
- Оператор group by имеет разные значения позиции в запросах. В предложении «иметь» его использование обязательно, тогда как в предложении «Где» оно используется после выполнения запроса и фильтрации данных.
- Предложение Have может выполнять агрегатные операции. В конце концов, он может запускать многострочные функции и сначала группировать данные, тогда как предложение Where не может выполняться, потому что оно может запускать только однострочные функции.
- Предложение Have фильтрует данные в соответствии со столбцами и представляет собой число перед разными фильтрами, тогда как предложение Where фильтрует записи или строки таблицы.
- Предложение Have сначала извлекает все данные в таблице, а затем фильтрует их после группировки, тогда как предложение Where сначала фильтрует данные или записи таблицы.