SQLite Funções de string: REPLACE, SUBSTR, TRIM, ROUND

SQLite é por padrão equipado com uma lista de funções integradas no SQLite biblioteca. Você também pode adicionar outras funções personalizadas usando a linguagem C para estender as funções principais.

Observe que, para todos os exemplos a seguir, você deve executar sqlite3.exe e abrir uma conexão com o banco de dados de amostra conforme flui:

Passo 1) Nesta etapa,

  1. Abra Meu Computador e navegue até o seguinte diretório “C:\sqlite" e depois
  2. abrir "sqlite3.exe":

SQLite Funções de String

Passo 2) Abra o banco de dados “TutoriaisSampleDB.db”pelo seguinte comando:

SQLite Funções de String

Agora você está pronto para executar qualquer pergunta e tente quaisquer consultas usadas nas seções a seguir.

Encontrando o comprimento de uma string em SQLite

Para encontrar o comprimento de uma string, use LENGTH(X) onde X é um valor de string. Se X for um valor nulo, a função de comprimento retornará um valor nulo.

Você também pode usar a função de comprimento com valores numéricos para obter o comprimento do valor numérico.

Exemplo:

No exemplo a seguir, tentaremos a sintaxe da função LENGTH com valores como a seguir:

SELECT LENGTH('A string'), LENGTH(NULL), LENGTH(20), LENGTH(20.5);

Isso lhe dará:

Encontrando o comprimento de uma string em SQLite

O resultado é o seguinte:

  • LENGTH('A string') retorna 8 que é o comprimento da string “A string”.
  • COMPRIMENTO(NULO) retorna nulo.
  • LENGTH(20) retorna 2, porque 20 tem 2 comprimentos.
  • COMPRIMENTO(20.5) retorna 4; O ponto flutuante “.” é contado como um caractere, então você terá quatro caracteres – os 3 caracteres que são o comprimento dos números. Mais um caractere para o ponto flutuante “.”.

Mudança de caixa com função UPPER e função LOWER

UPPER(X) retornará a mesma string x, mas representará todos os caracteres da string em caracteres maiúsculos.

LOWER(X) retornará a mesma string x, mas representará todos os caracteres da string em caracteres pequenos.

UPPER e LOWER retornam valores nulos se você passar um valor nulo para eles.

Se você passar valores numéricos para UPPER ou LOWER, ambos retornarão o valor numérico exato.

Exemplo:

SELECT UPPER('a string'), LOWER('A STRING'), UPPER(20), LOWER(20), UPPER(NULL), LOWER(NULL);

Isso lhe dará:

Exemplo de funções UPPER e LOWER em SQLite

O resultado é o seguinte:

  • UPPER('uma string') retorna a string “uma linha”em representação de letra maiúscula“UMA LINHA".
  • LOWER('A STRING') retorna a string “UMA LINHA”em representação de letras minúsculas“uma linha".
  • UPPER(20), LOWER(20) retorna o mesmo número, pois não têm nenhum efeito sobre os números.
  • UPPER(NULL), LOWER(NULL) retorna nulo porque passamos um valor nulo para eles.

SQLite Função SUBSTR

A função SUBSTR retorna um número específico de string, começando em uma posição específica. Você pode passar três operandos para a função, assim “SUBST(X,Y,Z)" como segue:

  • X é a string literal ou a coluna de string a ser analisada. Você pode passar um valor literal (valor estático) ou um nome de coluna, e neste caso o valor será lido a partir dos valores da coluna.
  • Y é a posição inicial para subtrair a string a partir dela.
  • Z é o número de caracteres a serem analisados ​​​​a partir da posição específica Y. Este número é opcional, você pode ignorá-lo e, neste caso, SQLite irá subtrair a string começando da posição Y e informar o final da string.

Exemplo:

Na consulta a seguir, usaremos a função SUBSTR para obter os 4 caracteres começando no segundo caractere dos nomes dos alunos:

SELECT StudentName, SUBSTR(StudentName, 2, 4), SUBSTR(StudentName, 2)
FROM Students;

Isso lhe dará:

Exemplo de função SUBSTR em SQLite

  • SUBSTR(NomeAluno, 2, 4) substring a string “Nome do aluno”começando no segundo caractere e retornando os próximos 4 caracteres.
  • Porém, na função SUBSTR(NomeAluno, 2) não especificamos um número para os caracteres a serem retornados, por isso SQLite retornou todos os caracteres restantes no “Nome do aluno” partindo da segunda posição.

Alterando partes de uma String com SQLite Função SUBSTITUIR

REPLACE é usado para substituir cada string ocorrida em outra string por uma string.

REPLACE(X, Y, Z) – X é a coluna ou literal da string de entrada. Y é a string a ser substituída pela string Z. Observe que ela substituirá qualquer ocorrência da string Y por Z, não apenas uma.

Exemplo:

Na consulta a seguir, substituiremos todas as ocorrências da string “xx”com a string“SQLite":

SELECT REPLACE('xx is very lightweight, xx is easy to learn', 'xx', 'SQLite');

Isso lhe dará

Exemplo de função REPLACE em SQLite

  • A função de substituição substituiu todas as strings “xx”com a string“SQLite".
  • Então a saída será "SQLite é muito leve, SQLite é fácil de aprender”.

Cortando espaços em branco com SQLite Função TRIM

TRIM remove espaços em branco do início ou do final da string. Não removerá nenhum espaço no meio da string, apenas no início ou no final.

Exemplo:

Na consulta a seguir, usaremos a função TRIM para remover os espaços em branco do início e do final da string.

Observe que o operador de concatenação “||” é usado para adicionar um “;” extra. até o final da string. Para mostrar que os espaços vazios foram removidos da janela preta.

SELECT TRIM('      SQLite is easy to learn        ') || ';';

Isso lhe dará:

Exemplo de função TRIM em SQLite

  • Observe como os espaços em branco foram removidos do início e do final da string, substituídos por ' ; ' no final.

Lendo Valores Absolutos com SQLite Função ABS

A função ABS retorna o valor absoluto de um valor numérico. O valor absoluto é o valor numérico sem qualquer sinal positivo ou negativo. ABS(X) retorna um valor dependendo do valor de X como segue:

  • O valor absoluto de X se X for um valor numérico.
  • Um valor NULL se X for um valor nulo.
  • Valor “0.0” se X for uma string.

Exemplo:

Na consulta a seguir, tentaremos obter o valor absoluto de uma string, um número e um valor nulo usando a função ABS:

SELECT ABS(-2), ABS(+2), ABS('a string'), ABS(null);

Isso lhe dará:

Exemplo de função ABS em SQLite

Os resultados são os seguintes:

  • ABS(-2), ABS(+2) retorna 2, porque 2 é o valor absoluto para “-2” e “+2”.
  • ABS('a string') retorna “0.0” porque você passou um valor de string e não um valor numérico.
  • ABS(null) retorna null porque você passou um valor nulo para ele.

Arredondando valores com a função ROUND em SQLite

Números decimais são números com ponto flutuante “.” nele, por exemplo, “20.5”, “8.65”. A parte à esquerda do ponto flutuante é chamada de parte inteira, e a parte à direita do ponto flutuante é chamada de parte decimal.

Números inteiros são aqueles números sem nenhum ponto flutuante. Por exemplo, “20”, “8”.

ROUND(X) converte os valores decimais ou colunas X em apenas números inteiros. A parte inteira que é a parte à esquerda da vírgula será retornada e todos os dígitos à direita da vírgula serão removidos.

Exemplo:

Na consulta a seguir tentaremos a função ROUND com diferentes opções:

SELECT ROUND(12.4354354), ROUND(12.4354354, 2), ROUND(NULL), ROUND('a string');

Isso lhe dará:

Exemplo de função ROUND em SQLite

O resultado é o seguinte:

  • ROUND(12.4354354) – retorna o valor “12”, porque você não especificou o número de dígitos. Então, SQLite removeu toda a parte decimal.
  • ROUND(12.4354354, 2) – retorna o valor “12.44”, porque você especificou apenas 2 dígitos para arredondar, que são os dois dígitos à direita da vírgula decimal.
  • ROUND(NULL) – retorna nulo porque você passou um valor nulo para ele.
  • ROUND('a string') – retorna o valor “0.0” porque você passou um valor de string para ele.

Encontrando o tipo de dados da expressão com a função TYPEOF

Se quiser descobrir o tipo de uma coluna ou um valor literal, você pode usar a função TYPEOF para fazer isso.

A função TYPEOF(X), pelo seu nome, retorna o tipo de dados da expressão X. Ela retorna um valor de string indicando o tipo de dados de X. Ela retorna o valor com base nos tipos de dados, seja um valor “NULL”, real, texto, inteiro,…, etc.

Exemplo:

Na consulta a seguir tentaremos a função TYPEOF com diferentes tipos de valores literais:

SELECT TYPEOF(null), TYPEOF(12), TYPEOF(12.5), TYPEOF('a string');

Isso lhe dará:

Exemplo de função TYPEOF em SQLite

Os resultados retornados são os seguintes:

  • TYPEOF(null) – retorna nulo porque você passou um valor nulo para ele.
  • TYPEOF(12) – retorna um número inteiro, pois 12 é um número inteiro.
  • TYPEOF(12.5) – retorna REAL, pois 12.5 é um número real.
  • TYPEOF('a string') – retorna texto, pois “uma string” é um texto.

Encontrando o último registro inserido com SQLite LAST_INSERT_ROWID

SQLite atribui uma chave inteira (Id) para todas as linhas em todas as tabelas. Este número é usado para identificar exclusivamente essas linhas.

Quando você INSERT uma nova linha em uma tabela, SQLite atribuirá ao rowid um valor único.

Se a tabela tiver uma chave primária declarada em apenas uma coluna e essa coluna for do tipo de dados INTEGER, então o valor desta coluna será usado como rowid.

A função LAST_INSERT_ROWID() retorna o ROW_ID da última linha inserida em qualquer tabela do banco de dados. Observe que não é necessário nenhum operando.

Exemplo:

No exemplo a seguir executaremos a função LAST_INSERT_ROWID() da seguinte forma:

SELECT LAST_INSERT_ROWID();

Isso lhe dará:

Exemplo de função LAST_INSERT_ROWID em SQLite

  • LAST_INSERT_ROWID() retorna 0 porque não há linhas inseridas em nenhuma tabela na conexão de banco de dados atual.

Agora, vamos inserir um novo aluno e executar a função LAST_INSERT_ROWID() novamente após a instrução insert, assim:

INSERT INTO Students VALUES(11, 'guru', 1, '1998-10-12');
SELECT LAST_INSERT_ROWID();

Isso lhe dará:

Exemplo de função LAST_INSERT_ROWID em SQLite

  • Após inserirmos um novo aluno com id 11, LAST_INSERT_ROWID() retornará o último id de linha inserido que é 11.

Obtendo a versão do seu SQLite biblioteca

Para obter a versão do seu SQLite biblioteca, você tem que chamar a função SQLITE_VERSION().

Exemplo:

Vamos descobrir qual é a versão do SQLite estamos usando executando o seguinte comando:

SELECT SQLITE_VERSION();

Isso lhe dará:

Exemplo para obter a versão do seu SQLite biblioteca

SQLITE_VERSION() retorna 3.9.2 que é a versão do SQLite Nós estamos usando.

Criando funções definidas pelo usuário e agregando funções definidas pelo usuário

Para alguns usuários, o SQLite as funções principais são limitadas. Talvez eles precisem adicionar funções personalizadas para suas necessidades personalizadas.

SQLite não oferece suporte à criação de funções definidas pelo usuário. Ao contrário de outros sistemas de gerenciamento de banco de dados, você não pode criar funções definidas pelo usuário em SQLite diretamente.

No entanto, você pode criar uma função usando linguagens de programação como C#, C, PHP ou C++ e anexou essa função ao núcleo SQLite funções no SQLite própria biblioteca, usando “sqlite3_criar_função”função. Então você pode reutilizá-los em seu banco de dados.

Exemplo:

No exemplo a seguir, criaremos uma função definida pelo usuário usando C# linguagem de programação e adicioná-lo a SQLite funções:

[SQLiteFunction(Name = "DoubleValue", Arguments = 1, FuncType = FunctionType.Scalar)]
public class DoubleValue: SQLiteFunction
{
    public override object Invoke(object[] args)
    {
        return args[0] * 2;
    }
}

Este trecho de código está escrito no Linguagem de Programação C#; ele cria uma função C# usando o código C#.

O nome da função será “DoubleValor” ele pega um parâmetro e retorna seu valor multiplicado por 2.

Observe que o C# adiciona automaticamente esta função ao SQLite. Tudo que você precisa é compilar e executar este código. Então o C# adicionará essa função com o mesmo nome à lista de SQLite funções. Então você pode usar esta função em SQLite.

Da mesma forma, usando linguagens de programação como C#, C, PHP ou C++, você também pode criar funções agregadas definidas pelo usuário. Que são usados ​​para estender as funções agregadas em SQLite e use-os para criar funções agregadas personalizadas.

Resumo

  • SQLite fornece um conjunto abrangente de funções integradas que facilitam o trabalho com tabelas e colunas do banco de dados, como vimos. Você pode usar essas funções com colunas e também com valores literais em qualquer expressão em suas consultas SQL.
  • Você também pode usar a função de comprimento com valores numéricos para obter o comprimento do valor numérico.
  • UPPER e LOWER retornam valores nulos se você passar um valor nulo para eles.
  • A função SUBSTR retorna um número específico de string, começando em uma posição específica.
  • REPLACE é usado para substituir cada string ocorrida em outra string por uma string.
  • TRIM remove espaços em branco do início ou do final da string.
  • A função ABS retorna o valor absoluto de um valor numérico.
  • ROUND(X) converte os valores decimais ou colunas X em apenas números inteiros.
  • A função TYPEOF(X), pelo seu nome, retorna o tipo de dados da expressão X.
  • A função LAST_INSERT_ROWID() retorna o ROW_ID da última linha inserida em qualquer tabela do banco de dados.