Подтвердить что ты не робот

Существуют ли опубликованные правила стиля кодирования для SQL?

Часто я получаю очень сложные инструкции SQL, и я задавался вопросом, существует ли там директива по стилю, которая диктует общий способ выделения различных аспектов запроса.

Я ищу что-то описательное по строкам Python PEP8 или Zend Frameworks, а не код на примере.

Большинство моих запросов написаны для MySQL.

Знаете ли вы о универсальном руководстве по стилю? Возможно, вы сами написали. Поделитесь своими рекомендациями.

4b9b3361

Ответ 1

С тех пор как я задал этот вопрос, я написал общедоступное руководство по стилю SQL, совместимое с книгой по стилю программирования SQL Joe Celko под лицензией Creative Commons Attribution-ShareAlike.

Он доступен на сайте www.sqlstyle.guide или в виде уценки прямо из репозитория GitHub.

Ответ 2

Ниже приведены некоторые рекомендации и рекомендации по программированию SQL:

  • Не используйте SELECT * в своих запросах.
  • Всегда используйте псевдонимы таблиц, когда оператор SQL содержит несколько источников.
  • Используйте более читаемые условия соединения ANSI-Standard, а не объединения старого стиля.
  • Не используйте номера столбцов в предложении ORDER BY.
  • Всегда используйте список столбцов в своих инструкциях INSERT.
  • Никогда не используйте двойные кавычки в коде T-SQL.
  • Не префикс имен хранимых процедур "sp_".
  • Всегда используйте форматировщик SQL для форматирования вашего SQL, например Instant SQL Formatter (бесплатный и онлайн)

Вы можете проверить подробное объяснение этих лучших практик в этом сообщении в блоге.

Ответ 5

Задумывались ли вы о том, чтобы ваша команда использовала инструмент со встроенными возможностями форматирования? Это для жабы для MySql. Его не будет руководством как таковым, но по крайней мере приведет к некоторой последовательности.

Ответ 6

Kickstarter имеет руководство по стилю здесь. У меня есть модифицированная версия этого для людей, которые предпочитают строчные буквы SQL и Celko "река".

Мой гид по стилю здесь. Вот образец:

-- basic select example
select p.Name as ProductName
     , p.ProductNumber
     , pm.Name as ProductModelName
     , p.Color
     , p.ListPrice
  from Production.Product as p
  join Production.ProductModel as pm
    on p.ProductModelID = pm.ProductModelID
 where p.Color in ('Blue', 'Red')
   and p.ListPrice < 800.00
   and pm.Name like '%frame%'
 order by p.Name

-- basic insert example
insert into Sales.Currency (
    CurrencyCode
    ,Name
    ,ModifiedDate
)
values (
    'XBT'
    ,'Bitcoin'
    ,getutcdate()
)

-- basic update example
update p
   set p.ListPrice = p.ListPrice * 1.05
     , p.ModifiedDate = getutcdate()
  from Production.Product p
 where p.SellEndDate is null
   and p.SellStartDate is not null

-- basic delete example
delete cc
  from Sales.CreditCard cc
 where cc.ExpYear < '2003'
   and cc.ModifiedDate < dateadd(year, -1, getutcdate())