Datilografia é significativa na programação. Você será mais eficiente ao usar técnicas de digitação rápida para escrever código na linguagem de programação SQL.
Programação em SQL e datilografia
Aprender SQL e praticar digitação andam naturalmente juntos. As consultas SQL estão cheias de parênteses, vírgulas, operadores e aspas. Pequenos erros, como uma aspa incorreta ou um ponto e vírgula esquecido, podem fazer a consulta inteira falhar. Ao escrever SQL, é útil saber quais partes da sintaxe são comuns entre diferentes bancos de dados e quais são específicas. Este artigo foca principalmente no PostgreSQL, mas também menciona MySQL, SQLite e SQL Server onde a sintaxe difere.
O que é característico da sintaxe SQL?
SQL (Structured Query Language) é uma linguagem declarativa. Em vez de descrever passo a passo como obter os dados, você declara quais dados deseja. Quase todas as instruções começam com uma palavra-chave como SELECT
, INSERT
ou UPDATE
. A ordem das cláusulas é fixa: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
. PostgreSQL e MySQL compartilham essa ordem, então se você aprender em um, pode aplicar no outro.
SELECT id, name
FROM customers
WHERE active = true
ORDER BY created_at DESC;
Caracteres especiais usados com frequência
SQL contém muitos sinais de pontuação. Parênteses ()
envolvem funções e condições. Vírgulas ,
separam colunas. O ponto .
é usado em esquemas e nomes de tabelas, como public.users
. Aspas simples '...'
delimitam strings. O PostgreSQL usa aspas duplas "..."
para identificadores, enquanto o MySQL usa backticks `...`
. No SQL Server, também aparecem colchetes [...]
. Praticar esses símbolos ajuda a escrever consultas corretas.
-- String literal
SELECT * FROM books WHERE title = 'War and Peace';
-- Identificadores com espaços (PostgreSQL)
SELECT "Order ID", "Customer Name" FROM orders;
Letras maiúsculas e minúsculas
Por convenção, as palavras-chave SQL são frequentemente escritas em maiúsculas: SELECT
, FROM
, WHERE
. Isso facilita a leitura, mas não é obrigatório. No PostgreSQL, identificadores não citados são convertidos automaticamente em minúsculas, então MyTable
e mytable
são tratados como iguais. No MySQL, o comportamento depende do sistema operacional. Para prática, usar palavras-chave em maiúsculas é comum, pois destaca a estrutura da consulta.
Ponto e vírgula e fim da instrução
No PostgreSQL, cada instrução geralmente termina com um ponto e vírgula ;
. Esquecê-lo pode impedir a execução em ferramentas como psql
. MySQL e SQLite são mais permissivos em modo interativo, mas o ponto e vírgula ainda é recomendado. Esse pequeno caractere é frequentemente a causa de erros.
Consultas SELECT e joins
Escrever consultas geralmente significa escrever joins. O PostgreSQL usa INNER JOIN
, LEFT JOIN
e RIGHT JOIN
. Cada join requer a palavra-chave ON
seguida de uma condição. Um espaço ou erro de digitação na condição quebra a consulta. Praticar joins ajuda a ganhar precisão com símbolos como =
e .
.
SELECT c.id, c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id
WHERE o.amount > 100;
Funções e expressões
O PostgreSQL possui muitas funções integradas como COUNT()
, SUM()
e AVG()
. Parênteses são sempre obrigatórios. Funções de data e hora como NOW()
ou DATE_TRUNC()
são específicas do PostgreSQL. O MySQL tem equivalentes como CURDATE()
ou DATE_FORMAT()
. Escrevê-las corretamente exige atenção a underscores, vírgulas e parênteses.
SELECT DATE_TRUNC('month', created_at) AS month,
COUNT(*) AS orders
FROM orders
GROUP BY month
ORDER BY month;
INSERT, UPDATE, DELETE
Instruções que modificam dados usam muitos sinais de pontuação. INSERT
usa parênteses e vírgulas para colunas e valores. UPDATE
usa =
separados por vírgulas. DELETE
combina palavras-chave com condições. Essas estruturas são quase idênticas no PostgreSQL, MySQL, SQLite e SQL Server, embora as regras de aspas variem.
INSERT INTO users (id, name, email)
VALUES (1, 'Alice', 'a@example.com');
UPDATE users
SET name = 'Bob', email = 'bob@example.com'
WHERE id = 1;
DELETE FROM users WHERE id = 2;
Common Table Expressions (CTE)
O PostgreSQL usa frequentemente CTEs iniciadas com WITH
. Elas contêm muitos parênteses e vírgulas, sendo um bom exercício de digitação. MySQL e SQLite as suportam em versões recentes, e o SQL Server também. Colocar corretamente os parênteses é o erro mais comum.
WITH recent_orders AS (
SELECT * FROM orders WHERE created_at > NOW() - INTERVAL '30 days'
)
SELECT customer_id, COUNT(*) AS order_count
FROM recent_orders
GROUP BY customer_id;
Funções de janela
O PostgreSQL é conhecido por suas funções de janela avançadas. A sintaxe típica OVER (PARTITION BY ... ORDER BY ...)
exige digitação precisa de parênteses e palavras-chave. MySQL e SQL Server também as suportam, mas o PostgreSQL é frequentemente a referência.
SELECT customer_id,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;
Parâmetros e placeholders
Em aplicações, os placeholders variam entre bancos de dados. O PostgreSQL usa $1, $2
, o MySQL e o SQLite usam ?
, e o SQL Server usa @p1
. Esses pequenos símbolos são fáceis de digitar incorretamente, mas são essenciais para a execução.
-- PostgreSQL
SELECT * FROM users WHERE id = $1;
-- MySQL
SELECT * FROM users WHERE id = ?;
Resumo
Por convenção, as palavras-chave SQL são escritas em maiúsculas, enquanto os identificadores permanecem em minúsculas, a menos que sejam citados. O PostgreSQL usa aspas duplas para identificadores, placeholders $n
, CTEs e funções de janela. O MySQL usa backticks e placeholders ?
. O SQL Server introduz colchetes e parâmetros @
. O SQLite mantém a sintaxe simples, mas exige precisão. Praticar consultas SQL melhora a exatidão na digitação de sinais de pontuação, palavras-chave e símbolos, e focar no PostgreSQL oferece experiência com um dos bancos de dados modernos mais usados.