Skip to main content

Considerações Iniciais

Introdução

Para rotinas em SQL, deve-se observar as seguintes considerações: 

  1. Palavras reservadas devem ser escritas todas com as letras maiúsculas.
  2. Nomes de tabelas e campos devem utilizar notação CamelCase.
  3. Parâmetros devem possuir o prefixo "P" e utilizar notação CamelCase.
  4. Para facilitar a implementação e leitura de cláusulas, deve existir uma coluna do início ao fim da cláusula em que é feita a separação de palavras reservadas e campos/tabelas, como no exemplo abaixo:
    SELECT SUM(T1.Campo1) Campo1,
           T2.Campo1
      FROM Tabela1 T1
INNER JOIN Tabela T2
        ON T2.Campo2 = T1.Campo1
     WHERE T1.Campo3 = :PTabela1Campo3
       AND T2.Campo3 = :PTabela2Campo3
  GROUP BY T2.Campo1
 UNION ALL
    SELECT (SELECT Campo 1
              FROM Tabela 3) Campo1, 
           T2.Campo1
      FROM Tabela4 T4
INNER JOIN (SELECT Campo1
              FROM Tabela5) T5
        ON T5.Campo1 = T4.Campo1
     WHERE T4.Campo3 = :PTabela4Campo3
  ORDER BY 1

Perceba que na cláusula exemplo acima, as linhas 4 e 14 possuem as maiores palavras reservadas/expressões da cláusula, logo todas as outras palavras reservadas recebem a adição de pelo menos um espaço em branco à sua esquerda, para que o fim de todas as expressões finalizem na mesma coluna. Formando assim, uma coluna do início ao fim da cláusula que divide palavras reservadas para a esquerda e campos/tabelas para a direita.

Palavras Reservadas

Adicionar aqui as palavras reservadas do documento

ACTIVE DOUBLE NUMERIC
ADD DROP OF
AND EDIT ON
ALL ELSE ONLY
ALTER END OPEN
ANY EXECUTE OR
AS EXISTS ORDER
ASC FILTER OUTER
ASCENDING FIRST PERCENT
AT FLOAT PLAN
AVG FOR POSITION
BEFORE FOREIGN PRECISION
BEGIN FROM PREPARE
BETWEEN FULL PRIMARY
BLOB FUNCTION PROCEDURE
BY GENERATOR PUBLIC
CASE GEN_ID REAL
CAST GROUP RIGHT
CHAR HAVING ROWS
COALESCE HOUR SELECT
COLLATE IF SET
COLUMN IN SIZE
COMMIT INACTIVE SOME
CONTINUE INDEX SQL
COUNT INNER SUM
CREATE INSERT TABLE
CURRENT INTEGER THEN
CURRENT_DATE INTO TRIGGER
CURRENT_ROLE IS TRUNCATE
CURRENT_TIME JOIN TYPE
CURRENT_TIMESTAMP KEY UNION
CURRENT_TRANSACTION LAST UPDATE
CURRENT_USER LEFT UPDATING
CURSOR LENGTH USE
DATABASE LIKE USER
DATE LONG USING
DAY MAX VALUE
DEC MERGE VALUES
DECIMAL MIN VIEW
DECLARE MINUTE WHEN
DEFAULT MONTH WHERE
DELETE NAMES WHILE
DESC NO WITH
DESCENDING NOT YEAR
DISTINCT NULL YEARDAY
DO NULLIF