Существуют ли опубликованные рекомендации по стилю кодирования для SQL? - PullRequest
24 голосов
/ 10 мая 2011

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

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

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

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

Ответы [ 6 ]

6 голосов
/ 23 июля 2015

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

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

5 голосов
/ 28 сентября 2011

Вот некоторые рекомендации по программированию SQL и лучшие практики, которые мы собрали:

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

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

4 голосов
/ 10 мая 2011

Мне известны два руководства: Стиль программирования SQL Джо Селко и почтенный Код завершения .

Существует также стандарт SQL-92 .Он не содержит раздела стилей, но вы можете считать его стиль неявно каноническим.

2 голосов
/ 19 октября 2016

MySQL имеет краткое описание своих более или менее строгих правил:

https://dev.mysql.com/doc/internals/en/coding-style.html

Самый распространенный стиль кодирования для MySQL от Саймона Холиуэлла:

http://www.sqlstyle.guide/

См. Также этот вопрос: Существует ли соглашение по именованию для MySQL?

1 голос
/ 19 декабря 2018

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

Мое руководство по стилю здесь Вот образец:

-- 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 as p
 where p.SellEndDate is null
   and p.SellStartDate is not null

-- basic delete example
delete cc
  from Sales.CreditCard as cc
 where cc.ExpYear < '2003'
   and cc.ModifiedDate < dateadd(year, -1, getutcdate())
0 голосов
/ 10 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...