5 лайфхаков для более эффективной работы SQL

В статье расскажем о 5 базовых лайфхаках для баз данных SQL. Благодаря им вы сможете быстрее обрабатывать данные и эффективнее работать.

лайфхаки с sql

Называйте колонки и таблицы простыми названиями

  • Используйте одно слово для названия таблицы вместо двух. Если вам все же нужно использовать несколько слов для таблицы, используйте в названии нижние подчеркивания вместо пробелов или точек.
  • Если вы будете использовать точки в названиях объектов, вы запутаетесь между названиями схем и баз данных. Если вы будете использовать пробелы, нужно будет добавить знаки кавычек в запросе, чтобы он запустился.
  • Пишите названия колонок и таблиц прописными, чтобы пользователям не нужно было помнить, где какую букву писать, если вы перейдете на регистрозависимую базу данных.

Правильно обращайтесь с датами в SQL

  • Пишите даты в формате datetime, чтобы базы работали быстрее.
  • С датами, которые хранятся в строках, работать сложнее. Убедитесь в том, что в строках нет дат.
  • Не делите год, месяц и день на отдельные колонки. Из-за этого сложнее писать и фильтровать запросы.
  • Используйте UTC для вашей временной зоны. Если у вас гибрид зон не-UTC и UTC, понимать данные будет гораздо сложнее.

Понимайте порядок выполнения

Когда вы понимаете порядок выполнения запросов, вы можете понимать, как работает запрос, или почему он не запускается.

FROM — включает JOINs, поэтому используйте CTE или подзапрос, чтобы сначала отфильтровать данные.

WHERE — ограничивает присоединенный набор данных.

GROUP BY — сворачивает поля с агрегирующими функциями (COUNT, MAX, SUM, AVG)

HAVING — выполняет ту же функцию, что WHERE с агрегированными значениями.

SELECT — задает значения и агрегации в массиве данных после группировки.

ORDER BY — возвращает таблицу, отсортированную по одной или нескольким колонкам.

LIMIT — задает, сколько отдать рядов, чтобы не выводить слишком много данных.

Помните об ограничениях NULL

NULL означает, что значение неизвестно — но оно не ноль и не пустое. Поэтому если вы сравниваете значения NULL с NULL, сложно что-то понять. То, какой запрос вы зададите в коде, влияет на стратегию, которую нужно выбрать.

Подробнее о NULL и о том, как решать эту проблему

Правильно создавайте таблицу

Когда вы создаете таблицу из таблицы, используйте SELECT TOP 0, чтобы создать структуру таблицы до того, как вставлять туда данные. Для этого нужно выполнить два шага вместо одного, но в итоге запрос будет обрабатываться быстрее:

insert into <table name2>

select [ID] , [CreatedDate] , [RegionName] , [SalesPerson]

from <table name1 >

Если вы обновляете таблицу новыми данными, используйте команду TRUNCATE. Она удаляет все столбцы из таблицы, не удаляя формат и хедеры:

truncate table <table name1> — deletes the contents of the table

insert into <table name1>

select [ID] ,

[CreatedDate] ,

[RegionName] ,

[SalesPerson]

from …

Источник: статья на Hackernoon.

Alyona Susol

Четыре года занималась маркетингом и редактурой, сейчас работает в команде PR.