funções numéricas

Disponível

Lista de funções numéricas

Como dissemos acima, não basta um SGBD simplesmente armazenar dados de um determinado tipo, ele também precisa suportar um extenso conjunto de operações super-rápidas em dados desses tipos.

E, como você sabe, todos os DBMSs suportam uma variedade de tipos numéricos e operações neles. Hoje você conhecerá os mais populares deles.

Todas as funções numéricas no MySQL podem ser condicionalmente divididas em 5 grupos:

  • operações aritméticas
  • operações de bits
  • Funções de arredondamento
  • funções algébricas
  • Funções trigonométricas

A propósito, você está familiarizado com muitos deles graças à linguagem Java, então acho que eles não serão uma surpresa para você. Mas vamos começar em ordem.

A lista completa de recursos pode ser encontrada aqui .

Operaçoes aritimeticas

Não há, em princípio, nada de inesperado, todas as mesmas operações padrão de outros lugares:

# Exemplo
1 +, -, *, / 2+2*2 Adição, subtração, multiplicação, divisão (não é perfeito!)
2 % 13% 5 Restante da divisão
3 MOD 13MOD5 Restante da divisão
4 DIV 13 DIV 5 Divisão por inteiro

Do interessante: ao dividir dois números inteiros, você obtém um número real. Para dividir por número inteiro, você precisa usar o operador DIV.

Se você deseja obter o restante de uma divisão por um número inteiro, precisa usar o operador MOD ou %, como na linguagem Java. Não vou dar exemplos, pois para mim tudo é óbvio aqui.

operações de bits

Você também pode realizar operações bit a bit em números em SQL, muito parecido com Java. Embora existam nuances. A lista de operações de bit disponíveis é apresentada na tabela abaixo:

# Exemplo Observação
1 & 0b1111 e 0b1000 E bit a bit
2 | 0b1111 | 0b0001 OU bit a bit
3 ^ 0b1111^0b1111 Bit XOR
4 ~ ~0b1111 inversão bit a bit
5 >> 128 >> ​​​​5 Deslocamento de bits para a direita
6 << 2 << 5 Deslocamento de bits para a esquerda
7 BIT_COUNT() BIT_COUNT(255) Retorna o número de bits que são 1

Antes da versão 8.0 do MySQL, tais operações só podiam ser executadas no tipo de dados BIGINT, que tinha 64 bits de comprimento e era semelhante ao tipo longo do Java. No entanto, no MySQL 8.0 (que estamos considerando), o conceito mudou. Agora, essas operações podem ser executadas em tipos binários especiais:

  • BINÁRIO
  • VARBINÁRIO
  • E também sobre tipos BLOB (que são uma matriz de bytes)

Todos os outros tipos são simplesmente convertidos para o tipo BIGINT e as operações são realizadas como antes (somente nos primeiros 64 bits).

Funções de arredondamento

Para o arredondamento no MySQL, são usadas funções dolorosamente familiares a você. Uma lista deles é fornecida na tabela abaixo:

# Exemplo Observação
1 CEIL(), TETO() CEIL (5.1) = 6 Arredonda um número real para cima
2 CHÃO() ANDAR(5,9) = 5 Arredonda um número real para baixo
3 REDONDO() RODADA(4.1) = 4 Arredonda um número real para o inteiro mais próximo
4 TRUNCAR() TRUNCAR(4.123, 2) = 4.12 Trunca um número para N casas decimais
5 ALEATÓRIO() 0,61914388706828 Retorna um número real aleatório entre 0 e 1
6 RAND(N) 0,93845168309142 Retorna um número real aleatório entre 0 e 1. N é usado como valor inicial

Você está familiarizado com todas as funções de arredondamento desde a primeira missão em Java. Somente as funções TRUNCATE() e RANDOM(N) podem ser de interesse aqui.

A função TRUNCATE (número, quantidade) toma como primeiro parâmetro um número real, e como segundo parâmetro o número de casas decimais a serem deixadas. O número é ajustado para o número desejado de casas decimais.

Quanto à função RAND(N), as coisas são um pouco mais complicadas. Como você provavelmente sabe, um computador não pode gerar números aleatórios. Em vez disso, ele gera a chamada sequência numérica pseudo-aleatória. Ou seja, olhando para um número, não fica claro se é aleatório ou não, mas a sequência de números já pode ser semelhante ao aleatório. Os desenvolvedores tiram proveito disso gerando uma sequência de números muito semelhante ao aleatório.

Nesse caso, cada novo número da sequência é gerado de acordo com uma regra complicada baseada no número anterior dessa sequência . Portanto, se você passar um determinado número inicial (também chamado de semente) para o algoritmo de geração de números aleatórios, receberá sempre a mesma sequência de números aleatórios .

Comentários
  • Populares
  • Novas
  • Antigas
Você precisa acessar para deixar um comentário
Esta página ainda não tem nenhum comentário