O comando SELECT
é utilizado para recuperar dados armazenados em tabelas no MySQL. Ele
permite a realização de diversas operações, desde cálculos simples até consultas mais elaboradas
em bases de dados.
Nos primeiros exemplos, trabalharemos apenas com operações internas do MySQL, sem envolver
tabelas. Posteriormente, exploraremos comandos aplicados a tabelas, que exigem adaptação dos
nomes conforme o contexto do banco de dados utilizado.
Operações Aritméticas Simples
Essas operações utilizam o MySQL como uma calculadora, permitindo somas, multiplicações e outras funções matemáticas básicas.
1 |
|
A consulta SELECT FORMAT(3/7,12)
faz a divisão de 3 por 7 e usa a função FORMAT
para exibir o resultado com 12 casas decimais.
Já na consulta SELECT FORMAT(POWER(2,64),0)
, a função POWER
calcula 2 elevado à potência 64.
Aqui, o FORMAT
é usado para exibir o número sem nenhuma parte decimal, deixando o resultado mais organizado.
Operadores Lógicos e Booleanos
Os operadores lógicos, como AND
(conjunção), OR
(disjunção) e NOT
(negação), são usados para combinar ou modificar condições.
Eles trabalham com valores booleanos, onde 1
representa verdadeiro e 0
representa falso.
Por exemplo, o AND
retorna verdadeiro somente se todas as condições forem verdadeiras, enquanto o OR
retorna verdadeiro se pelo menos uma condição for verdadeira.
Já o NOT
inverte o valor lógico, transformando verdadeiro em falso e vice-versa.
1 |
|
O MySQL segue a precedência lógica onde AND
é avaliado antes de OR
, a menos que haja parênteses explicitando outra ordem.
Operações Bit a Bit
As operações bit a bit permitem a manipulação direta dos bits de valores numéricos inteiros.
Diferente dos operadores lógicos (AND
, OR
), que trabalham com valores booleanos (0
ou 1
), os operadores bit a bit atuam sobre cada bit individualmente nos números binários.
Operação AND Bit a Bit
O AND bit a bit é uma operação binária que utiliza duas representações binárias de mesmo comprimento e realiza a operação lógica AND em cada par de bits correspondentes.
Dessa forma, se ambos os bits na posição comparada forem 1
, o bit na representação binária resultante será 1
(1 × 1 = 1); caso contrário, o resultado será 0
(1 × 0 = 0 e 0 × 0 = 0).
1 |
|
O MySQL permite que façamos esse tipo de operação abstraindo o processo de conversão de decimal para binário. Abaixo o exemplo anterior feito no MySQL:
1 |
|
Operação OR Bit a Bit
O OR bit a bit é uma operação binária que utiliza dois padrões de bits de mesmo comprimento e realiza a operação lógica OR inclusivo em cada par de bits correspondentes.
O resultado em cada posição será 0
se ambos os bits forem 0
; caso contrário, o resultado será 1
.
1 |
|
Abaixo é mostrado como essa operação ocorre no MySQL:
1 |
|
Selecinando Data e Hora
O MySQL oferece diversas funções para retornar informações sobre data e hora no sistema. Essas funções são úteis para capturar o horário atual, a data atual ou até mesmo timestamps. Abaixo estão alguns exemplos:
1 |
|
Além das funções básicas para obter data e hora, o MySQL oferece diversas funções para manipular e extrair informações específicas de datas. Essas funções são úteis para análises temporais mais detalhadas. Abaixo estão alguns exemplos:
1 |
|
Funções Matemáticas
O MySQL possui diversas funções matemáticas embutidas que podem ser usadas para realizar cálculos diretamente no banco de dados. Essas funções são úteis para operações como arredondamento, cálculo de potências, trigonometria, entre outras. Abaixo estão vários exemplos:
1 |
|
Trabalhando com Variáveis de Usuário
No MySQL é possível utilizar variáveis de usuário para armazenar valores temporários durante a execução de consultas. Essas variáveis são úteis para manipular dados, realizar cálculos intermediários ou compartilhar valores entre diferentes comandos SQL dentro de uma mesma sessão.
As variáveis de usuário são identificadas pelo prefixo @
e podem ser atribuídas e acessadas diretamente. Abaixo estão alguns exemplos de uso:
1 |
|
Operações utilizando tabelas
Agora, passamos a trabalhar com tabelas. Lembre-se de substituir os nomes das tabelas e colunas pelos correspondentes ao seu banco de dados.
Abaixo, explicamos os principais usos do comando SELECT
com exemplos práticos:
Consultando todos os registros de uma tabela
Para recuperar todos os registros de uma tabela, utilize o caractere *
:
1 |
|
Consultando colunas específicas
Se você deseja retornar apenas algumas colunas da tabela, especifique os nomes das colunas:
1 |
|
Por exemplo, se quisermos obter o id
e o nome
da tabela clientes
:
1 |
|
Filtrando registros com WHERE
O WHERE
é usado para filtrar registros com base em condições específicas:
1 |
|
Por exemplo, se quisermos selecionar o registro na tabela clientes
de id = 1
:
1 |
|
Utilizando operadores de comparação
Os operadores de comparação no MySQL são ferramentas poderosas que permitem realizar consultas mais detalhadas e precisas. Eles são utilizados para comparar valores em uma tabela, retornando apenas os registros que atendem às condições especificadas. Abaixo estão os principais operadores:
- Igualdade (
=
): Retorna registros onde os valores de um campo são exatamente iguais a determinado valor.1
2-- Retorna todos os registros que atendem a condição coluna1 iqual a 10 SELECT * FROM nome_da_tabela WHERE coluna1 = 10;
- Diferente (
!=
ou<>
): Retorna registros onde os valores são diferentes de um valor determinado.1
2-- Retorna todos os registros que atendem a condição coluna1 diferente de 10 SELECT * FROM nome_da_tabela WHERE coluna1 != 10;
- Maior que (
>
): Retorna registros onde os valores são maiores que determinado valor.1
2-- Retorna todos os registros que atendem a condição coluna1 maior que 10 SELECT * FROM nome_da_tabela WHERE coluna1 > 10;
- Menor que (
<
): Retorna registros onde os valores são menores que determinado valor.1
2-- Retorna todos os registros que atendem a condição coluna1 menor que 50 SELECT * FROM nome_da_tabela WHERE coluna1 < 50;
- Maior ou igual (
>=
): Retorna registros onde os valores são maiores ou iguais a determinado valor.1
2-- Retorna todos os registros que atendem a condição coluna1 maior ou igual a 20 SELECT * FROM nome_da_tabela WHERE coluna1 >= 20;
- Menor ou igual (
<=
): Retorna registros onde os valores são menores ou iguais a determinado valor.1
2-- Retorna todos os registros que atendem a condição coluna1 menor ou igual a 30 SELECT * FROM nome_da_tabela WHERE coluna1 <= 30;
Esses operadores tornam as consultas mais flexíveis e permitem extrair informações específicas, são muito úteis quando estamos trabalhando com de grandes volumes de dados.
Ordenando consultas com ORDER BY
O comando ORDER BY
é utilizado para ordenar os resultados de uma consulta com base em uma ou mais colunas.
Ele permite organizar os dados em ordem crescente (padrão, usando ASC
) ou em ordem decrescente (usando DESC
).
Isso é especialmente útil para visualizar os registros de forma estruturada e hierárquica.
1 |
|
Limitando o número de registros
O comando LIMIT
é usado para restringir a quantidade de registros retornados por uma consulta.
Ele é especialmente útil quando você deseja visualizar apenas uma parte dos dados, como os primeiros resultados de uma tabela ou os registros mais relevantes.
Por exemplo, para limitar a quantidade de resultados a 10 registros, use o LIMIT 10
:
1 |
|
Você também pode combinar o LIMIT
com o OFFSET
para especificar a partir de qual registro a consulta deve começar:
1 |
|
Essa funcionalidade é muito utilizada em paginação de resultados e consultas optimizadas.
Consultando registros únicos com DISTINCT
O comando DISTINCT
é utilizado para eliminar valores duplicados nos resultados de uma consulta.
Ele garante que apenas registros únicos sejam retornados, considerando os valores das colunas especificadas.
Isso é útil quando você precisa identificar valores distintos em uma tabela, como categorias, nomes ou outros atributos.
1 |
|
Usando LIKE para buscar por um padrão
O operador LIKE
no MySQL é utilizado para realizar buscas por padrões em colunas de texto.
Ele é especialmente útil quando você precisa localizar registros que contenham, comecem ou terminem com determinados caracteres.
Para definir os padrões, utilizam-se os curingas %
e _
:
Por exemplo, para buscar todos os registros que contenham strings que comecem com “A”:
1 |
|
Agora se quisermos buscar todos os registros que contenham strings na coluna1 que terminem com “B”:
1 |
|
Todos os registros que contenham strings na coluna1 que possuam “C”:
1 |
|
O caractere coringa %
representa qualquer sequência de caracteres (incluindo nenhuma).
Outro exemplo, digamos que precisamos dos registros que comecem com “A” e contenham exatamente 2 caracteres na sequência.
Para isso, será preciso utilizar o coringa _
, que representa exatamente 1 caractere:
1 |
|
Na instrução acima valores como ANA
, ABC
e A23
atenderiam a condição. Mas valores como ABCD
e ANAS
não atenderiam, pois possuem mais do que 2 caracteres após o “A”.
Contando Registros com COUNT
O COUNT
retorna o número total de registros na tabela ou em um subconjunto filtrado:
1 |
|
Realizando Cálculos com Funções Agregadas
Além do COUNT
, outras funções agregadas podem ser usadas para cálculos:
- Soma dos valores de uma coluna:
1
SELECT SUM(coluna1) FROM nome_da_tabela;
- Média dos valores de uma coluna:
1
SELECT AVG(coluna1) FROM nome_da_tabela;
- Valor máximo de uma coluna:
1
SELECT MAX(coluna1) FROM nome_da_tabela;
- Valor mínimo de uma coluna:
1
SELECT MIN(coluna1) FROM nome_da_tabela;
Agrupando Resultados com GROUP BY
O GROUP BY é usado para agrupar registros com base em uma ou mais colunas:
1 |
|
Filtrando Grupos com HAVING
O HAVING é utilizado para filtrar os resultados após o agrupamento:
1 |
|
Esse material foi criado a partir das fontes listadas abaixo:
- MySQL 8.4 Reference Manual: https://dev.mysql.com/doc/refman/8.4/en/non-typed-operators.html
- Bitwise operation: https://en.wikipedia.org/wiki/Bitwise_operation