View on GitHub

Software Development Guidelines

软件项目管理规范

SQL Guidelines

SQL Style

style types

type examples
lower case lower_case
upper case UPPER_CASE
pascal case PascalCase
camel case camelCase
pascal_case Pascal_Case
camel_case camel_Case

file name styles

type style examples
package header pkg_.sql pkg_UserManager.sql
package body pkb_.sql pkb_UserManager.sql
trigger trg__.sql trg_User_InsertA.sql
function fun_.sql fun_StringUtil.sql
default .sql CreateTables.sql

name styles

item style examples
keywords lower case select
table name pascal case Department
table alias lower case d
field name pascal case DepartmentId
field alias pascal case FullName
package name pascal case UserManager
function name camel case findUser

statements styles

main idea:
keep things align

 select d.DepartmentId
      , d.DepartmentName
      , e.EmployeeName
      , case
           when e.Gender = 1
           then 'F'
           else 'M'
        end
        as GenderName
      , (
         select n.full_Name
           from Names n
          where n.Name_Id = d.EmployeeId
        ) -- option 2.1
        as FullName
   from Departments d
inner join -- option 1.1
        Employees e
     on e.DepartmentId = d.DepartmentId
    and (
            e.enabled = 1
         or e.status = 'super'
        )
inner join -- option 1.1
       (
         select EmployeeId
           from Employees
          where EmployeeName = 'Joe'
        ) Managers m -- option 2.2
     on m.EmployeeId = e.ManagerId
  where d.type = 1
    and d.status = 'active'
order by d.DepartmentName  -- option 1.2
      , e.EmployeeName
 SELECT d.DepartmentId
      , d.DepartmentName
      , e.EmployeeName
      , (
         SELECT n.full_Name
           FROM Names n
          WHERE n.Name_Id = d.EmployeeId
        ) -- option 2.1
        AS FullName
   FROM Departments d
INNER JOIN Employees e -- option 1.2
     ON e.DepartmentId = d.DepartmentId
    AND (
            e.enabled = 1
         OR e.status = 'super'
        )
INNER JOIN -- option 1.1
       (
         SELECT EmployeeId
           FROM Employees
          WHERE EmployeeName = 'Joe'
        ) Managers m -- option 2.2
     ON m.EmployeeId = e.ManagerId
  WHERE d.type = 1
    AND d.status = 'active'
ORDER BY d.DepartmentName
      , e.EmployeeName