Capítulo 6. Funções e Operadores

Índice
6.1. Operadores lógicos
6.2. Operadores de comparação
6.3. Funções e operadores matemáticos
6.4. Funções e operadores para cadeias de caracteres
6.5. Funções e operadores para cadeias binárias
6.6. Comparação com padrão
6.6.1. LIKE
6.6.2. SIMILAR TO e as expressões regulares do SQL99
6.6.3. Expressões regulares POSIX
6.7. Funções para formatar tipos de dado
6.8. Funções e operadores para data e hora
6.8.1. EXTRACT, date_part
6.8.2. date_trunc
6.8.3. AT TIME ZONE
6.8.4. Data e hora corrente
6.9. Funções e operadores geométricos
6.10. Funções para tipo endereço de rede
6.11. Funções para manipulação de seqüências
6.12. Expressões condicionais
6.12.1. CASE
6.12.2. COALESCE
6.12.3. NULLIF
6.13. Funções diversas
6.14. Funções de agregação
6.15. Expressões de subconsulta
6.15.1. EXISTS
6.15.2. IN (forma escalar)
6.15.3. IN (forma de subconsulta)
6.15.4. NOT IN (forma escalar)
6.15.5. NOT IN (forma de subconsulta)
6.15.6. ANY/SOME
6.15.7. ALL
6.15.8. Comparação linha por linha

O PostgreSQL disponibiliza várias funções e operadores para os tipos de dado nativos. Os usuários também podem definir suas próprias funções e operadores, conforme descrito no Guia do Programador do PostgreSQL. Os comandos \df e \do do psql podem ser utilizados para mostrar a lista de todas as funções e operadores disponíveis, respectivamente.

Havendo preocupação em relação à portabilidade, deve-se ter em mente que a maior parte das funções e operadores descritos neste capítulo não são especificadas no padrão SQL, com exceção dos operadores mais triviais para aritmética e para comparação, e de algumas funções indicadas explicitamente. Algumas destas funcionalidades estendidas estão presentes em outras implementações do SQL e, em muitos casos, a funcionalidade é compatível e consistente entre vários produtos.

6.1. Operadores lógicos

Os operadores lógicos habituais estão disponíveis:

AND
OR
NOT

O SQL utiliza a lógica booleana de três valores, onde o valor nulo representa o "desconhecido". Observe as seguintes tabelas verdade:

aba AND ba OR b
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
TRUENULLNULLTRUE
FALSEFALSEFALSEFALSE
FALSENULLFALSENULL
NULLNULLNULLNULL

aNOT a
TRUEFALSE
FALSETRUE
NULLNULL