Expressões SQL

A sintaxe de muitas instruções e expressões inclui o termo Expressão, ou um termo para um tipo específico de expressão como SubconsultaTabela. Dentro das instruções, são permitidas expressões nestes pontos especificados. Alguns locais permitem apenas um tipo específico de expressão, ou uma expressão com uma propriedade específica. A lista todas as expressões SQL possíveis, e indica onde são permitidas.

Quando não é especificado o contrário, é permitida uma expressão em qualquer lugar onde aparece Expressão na sintaxe. Isto inclui:

  • ExpressãoSeleção
  • Instrução UPDATE (porção SET)
  • VALUES Expressão
  • Cláusula WHERE

Obviamente, muitas outras instruções incluem estes elementos como blocos de construção e, portanto, permitem expressões como parte destes elementos. Tabela de Expressões Tipo da expressão Explicação Expressões gerais Todas as expressões que podem resultar em um valor de qualquer tipo.

Expressão de referência a coluna Referência a coluna

Permitida na ExpressãoSeleção, na instrução UPDATE e na cláusula WHERE das instruções de manipulação de dados.

O que faz referência ao valor da coluna tornado visível para a expressão que contém a referência a coluna.

O nome-da-coluna deve ser qualificado pelo nome da tabela ou pelo nome da correlação se houver ambiguidade.

O qualificador do nome-da-coluna deve ser o nome da correlação, se for atribuído nome de correlação à tabela na Cláusula FROM. O nome da tabela não é mais visível como qualificador para nome-da-coluna após a tabela ter recebido um aliás pelo nome da correlação.

Expressão constanteConstante

A maioria dos tipos de dado nativos normalmente possuem constantes associadas aos mesmos (conforme mostrado em ).

Expressão NULLNULL

Permitido nas expressões CAST, na lista de valores do INSERT, e na cláusula SET do UPDATE. Utilizado na expressão CAST o nulo recebe um tipo de dado específico.

NULL é uma constante sem tipo que representa um valor desconhecido.

Expressão de parâmetro dinâmico Parâmetro dinâmico

Permitido em qualquer lugar na expressão onde o tipo de dado pode ser facilmente deduzido. Consulte .

Parâmetro dinâmico é o parâmetro de uma instrução SQL para o qual não é especificado valor quando a instrução é criada. Em vez disto, a instrução possui um ponto de interrogação (?) marcando a posição de cada um dos parâmetros dinâmicos. Consulte .

Os parâmetros dinâmicos são permitidos apenas em instruções preparadas. Devem ser especificados valores para os mesmos antes da instrução preparada ser executada. Os valores especificados devem corresponder aos tipos esperados.

Expressão CASTExpressão CAST

Permite especificar o tipo de dado de NULL ou de um parâmetro dinâmico, ou converter um valor para outro tipo de dado. Consulte .

Expressão de subconsulta escalar Subconsulta escalar

Uma subconsulta que retorna uma única linha com uma única coluna. Consulte .

Expressão de subconsulta tabela Subconsulta tabela

Permitida como ExpressãoTabela na cláusula FROM, e com EXISTS, IN e comparações quantificadas.

Uma subconsulta que retorna mais de uma coluna e mais de uma linha. Consulte SubconsultaTabela.

Expressão condicional Expressão condicional

A expressão condicional escolhe a expressão a ser avaliada baseado em um teste booleano.
Expressões booleanas Expressões que resultam em valores booleanos. A maioria das expressões gerais podem resultar em valores booleanos.

Geralmente as expressões booleanas usadas na cláusula WHERE são feitas de operandos operados por operadores SQL. Consulte .

Expressões numéricas Expressões numéricas Expressões que resultam em valores numéricos. A maioria das expressões gerais podem resultar em valores numéricos.

Os valores numéricos possuem um dos seguintes tipos de dado:

SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION, DECIMAL.

Expressões +, -, *, /, e + - unários Expressões +, -, *, /, e + - unários

+ -, *, /, e + - unários

Avaliam a operação matemática esperada nos operandos. Se os dois operandos forem do mesmo tipo, o tipo do resultado não será promovido, e portanto o operador de divisão em operandos inteiros resulta em um inteiro que é o truncamento do resultado numérico real. Quando são misturados tipos de dado diferentes, estes são promovidos conforme descrito em .

O + unário é um não-operador (ou seja, +4 é o mesmo que 4). O - unário é o mesmo que multiplicar o valor por -1, mudando efetivamente o sinal.

AVG

Retorna a média de um conjunto de valores numéricos.

SUM

Retorna a soma de um conjunto de valores numéricos.

Função LENGTHLENGTH

Retorna o número de caracteres em uma cadeia de caracteres ou de bits. Consulte .

LOWER

Consulte .

COUNT

Retorna o contagem de um conjunto de valores. Consulte e .
Expressões de caractere Expressões de caractere Expressões que resultam em um valor CHAR ou VARCHAR. A maioria das expressões gerais podem resultar em um valor CHAR ou VARCHAR.

Expressões de cadeia de caracterescom curingas Um valor CHAR ou VARCHAR que utiliza curingas.

Usadas no padrão do LIKE.

Os caracteres curinga % e _ transformam a cadeia de caracteres em um padrão com relação ao qual o operador LIKE pode procurar por uma correspondência.

Função de concatenaçãocomo uma expressão Expressão de concatenação

Em uma operação de concatenação, o operador de concatenação, "||", concatena seu operando à direita ao seu operando à esquerda. Opera em cadeias de caracteres e de bits. Consulte .

Funções de cadeia nativas

As funções de cadeia nativas atuam em uma cadeia e retornam uma cadeia. Consulte , , , e

Funções USER

As funções USER retornam informações sobre o usuário corrente na forma de uma cadeia de caracteres. Consulte , , e
Expressões de data e hora Expressões de data e hora Uma expressão data/hora resulta em um valor do tipo DATE, TIME, ou TIMESTAMP. A maioria das expressões gerais podem resultar em um valor data/hora.

Função CURRENT_DATEcomo uma expressão CURRENT_DATE

Retorna a data corrente. Consulte .

Função CURRENT_TIMEcomo uma expressão CURRENT_TIME

Retorna a hora corrente. Consulte .

Função CURRENT_TIMESTAMPcomo uma expressão CURRENT_TIMESTAMP

Retorna o carimbo do tempo corrente. Consulte .