Как писать код на SQL?

Опубликовано: 17.11.2019

Каковы наилучшие способы написания SQL-запроса?

SQL Query используется для извлечения необходимых данных из базы данных. Однако может быть несколько запросов SQL, которые дают одинаковые результаты, но с разным уровнем эффективности. Неэффективный запрос может истощить ресурсы базы данных, снизить скорость базы данных или привести к потере обслуживания для других пользователей. Поэтому очень важно оптимизировать запрос, чтобы получить наилучшую производительность базы данных. Более детально вы можете узнать тут. Давайте рассмотрим несколько примеров таблиц, чтобы понять эти различные методы для оптимизации запроса. Клиенты: Таблица «Клиенты» содержит информацию о потенциальных покупателях магазина.

1. Обеспечить правильное форматирование для запроса

При написании запроса очень важно обеспечить правильное форматирование. Это повышает удобочитаемость запроса, а также облегчает рассмотрение и устранение неисправностей. Некоторые из правил форматирования запроса приведены ниже:
  • Поместите каждый оператор в запрос в новую строку.
  • Поместите ключевые слова SQL в запрос в верхнем регистре.
  • Используйте в запросе заглавную букву CamelCase и избегайте подчеркивания (укажите ProductName, а не Product_Name).
Пример: это запрос, который отображает CustomerID и LastName клиентов, которые заказали продукты в настоящее время и моложе 50 лет.
Выберите отдельные Customers.CustomerID, Customers.LastName из Customers. ВНУТРЕННИЙ объединяет заказы на Customers.CustomerID = Orders.CustomerID, где Customers.Age <50;
Приведенный выше запрос выглядит нечитаемым, поскольку все операторы находятся в одной строке, а ключевые слова - в нижнем регистре. Поэтому ниже приведена оптимизированная версия с использованием правил форматирования, указанных ранее.
ВЫБЕРИТЕ DISTINCT Customers.CustomerID, Customers.LastName
ОТ клиентов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Заказы
ON Customers.CustomerID = Orders.CustomerID
ГДЕ Клиенты. Возраст <50;

2. Укажите поля SELECT вместо использования SELECT *

SELECT * используется для получения всех данных из таблицы. Поэтому его не следует использовать, если все данные фактически не требуются для данного условия, поскольку они крайне неэффективны и замедляют время выполнения запроса. Гораздо лучше использовать SELECT вместе со специальными полями, необходимыми для оптимизации запроса. Пример: это запрос, который отображает все данные в таблице Customers, когда требовались только CustomerID и LastName .
ВЫБРАТЬ * 
ОТ клиентов;
Лучше использовать оператор выбора с полями CustomerID и LastName для получения желаемого результата.
ВЫБЕРИТЕ CustomerID, LastName 
ОТ клиентов;

3. Удалите коррелированные подзапросы, если не требуется

Коррелированный подзапрос - это вложенный запрос, который зависит от внешнего запроса для его значений. Если в базе данных находятся миллионы пользователей, коррелированный подзапрос неэффективен и занимает много времени, так как он должен выполняться миллионы раз. В этом случае внутреннее соединение более эффективно.