Considerações Iniciais
Introdução
Para rotinas em SQL, deve-se observar as seguintes considerações:
-
Palavras reservadas devem ser escritas todas com as letras maiú
sculas.sculas. - Nomes de tabelas e campos devem utilizar notação
CamelCase.CamelCase. -
Parâmetros devem possuir o prefixo "P" e utilizar notação
CamelCase.CamelCase. - 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,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,usula, logo todas as outras palavras reservadas recebem a adição de pelo menos um espaço em branco à sua esquerda,esquerda, para que o fim de todas as expressões finalizem na mesma coluna.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
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 |