Загрузка...

Гайд по оформлению SQL-запросов

Алексанян Андрон CEO IT Resume

Стиль написания SQL-кода — это не просто вопрос эстетики. Хорошо структурированный и понятный код сильно облегчит вам работу, в первую очередь потому, что будет понятен и вам, и вашим коллегам. Представьте, что вы открываете свой старый запрос через пару месяцев. Сможете ли вы быстро понять, что именно вы там написали? В этой статье мы разберем, как писать SQL так, чтобы он был чистым, аккуратным и легко читаемым.

Именование объектов

Начнем с основ для удобной работы с базой данных:

  • Избегайте названия во множественном числе.
  • Для объединения слов используйте нижнее подчеркивание: employee_city или стиль CamelCase: EmployeeCity.
  • Не используйте в имени специальные символы, такие как $, &, * идругие.
  • Не начинайте имя с подчеркивания.
  • Не давайте одно имя и таблице, и столбцу.
  • Избегайте сокращений.
  • Включайте ключевое слово AS для создания «алиасов».
  • Для названия первичного ключа избегайте имя id. Лучше комбинировать id с названием таблицы, например: id_employee.

Оператор SELECT

  • Лучше писать ключевые слова запроса (SELECT, FROM, WHERE, ORDER BY, GROUP BY и HAVING) в начале новой строки. Если после SELECT идет перечисление атрибутов, лучше разделить их, поместив каждый в отдельную строку с равными отступами.
  • Обязательно ставьте запятые в конце строки, а не в начале следующей.

    SELECT p.PersonId, p.FirstName, p.LastName FROM Person AS p;

Оператор WHERE

Если оператор WHERE имеет более одного условия, то расположите каждое условие на новой строке, начиная с условных операторов AND или OR.

SELECT p.PersonId, p.FirstName, p.LastName FROM Person AS p; WHERE p.Name = 'New York' OR p.Name = 'Chicago';

Оператор JOIN

Если вы объединяете таблицы, то пишите операторы INNER JOIN, LEFT JOIN и так далее с новой строки. Оператор ON также лучше перенести на новую строку.

SELECT p.PersonId, p.FirstName, p.LastName FROM Person AS p; JOIN City AS c ON p.CityId = c.CityId;

Комментирование

Лучше не писать много комментариев в коде. Если они необходимы, лучше использовать многострочные комментарии: /* text */. Комментарий должен быть написан над соответствующей строкой кода.

SELECT p.PersonId, p.FirstName, p.LastName, /* Name column is the name of the city: */ p.Name, FROM Person AS p WHERE p.Name = 'New York';

Вложенный SQL-запрос

Если запрос содержит подзапрос, то он должен быть записан в новой строке с отступом. Для структуры CASE следует размещать каждое выражение WHEN и END на новой строке.

SELECT p.FirstName CASE WHEN p.Age < 18 THEN 'below 18' WHEN p.Age >= 18 THEN '18 or more' END AS Age FROM Person AS p;

Другие типы запросов

Аналогичные правила действуют для запросов, которые изменяют, вставляют или удаляют данные.

Пишите ключевое слово VALUES взапросах ввода в начале новой строки и переносите каждый кортеж на новую строку с отступом:

INSERT INTO Car(id_car, name, year) VALUES (1, 'Audi', 2010), (2, 'Skoda', 2015);

В запросе UPDATE ключевые слова SET и WHERE, как и в запросе SELECT, удобнее переносить на новую строку без отступа:

UPDATE Car SET year = 2012 WHERE Name = 'Audi';

Или в запросе DELETE:

DELETE FROM Car WHERE Name = 'Audi';

Всё понятно?

Тогда примените полученные знания на практике - решите нашу задачку!
Решать задачу!

Эпилог

Писать SQL красиво — это не просто вопрос эстетики, а залог успеха в работе с базами данных. Соблюдение стиля помогает избежать хаоса, ускоряет работу и делает код доступным для всех, кто с ним столкнется. Надеемся, что теперь вам стало понятнее, как оформлять SQL-запросы так, чтобы и через полгода вы могли без труда в них разобраться.

SQL 26.08.2024