Funciones de cadena SQLite: REEMPLAZAR, SUBSTR, TRIM, ROUND

SQLite está equipado de forma predeterminada con una lista de funciones integradas dentro de la biblioteca SQLite. También puede agregar algunas otras funciones personalizadas utilizando el lenguaje C para ampliar las funciones principales.

Tenga en cuenta que, para todos los siguienteswing En los ejemplos, debe ejecutar sqlite3.exe y abrir una conexión a la base de datos de muestra como flo.wing:

Paso 1) En este paso,

  1. Abra Mi PC y navegue hasta el siguientewing directorio “C:\sqlite" y entonces
  2. abierto "sqlite3.exe"

Funciones de cadena SQLite

Paso 2) Abre la base de datos “TutorialesSampleDB.db” por el siguientewing mando:

Funciones de cadena SQLite

Ahora estás listo para ejecutar cualquier pregunta y pruebe cualquier consulta utilizada a continuaciónwing .

Encontrar la LONGITUD de una cadena en SQLite

Para encontrar la longitud de una cadena, utilice LENGTH(X) donde X es un valor de cadena. Si X es un valor nulo, la función de longitud devolverá un valor nulo.

También puede utilizar la función de longitud con valores numéricos para obtener la longitud del valor numérico.

Ejemplo:

en el siguientewing Por ejemplo, probaremos la sintaxis de la función LONGITUD con los valores siguienteswing:

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

Esto te dará:

Encontrar la LONGITUD de una cadena en SQLite

El resultado es el siguientewing:

  • LENGTH('Una cadena') devuelve 8, que es la longitud de la cadena "Una cadena".
  • LENGTH(NULL) devuelve nulo.
  • LENGTH(20) devuelve 2, porque 20 tiene 2 longitudes.
  • LONGITUD(20.5) devuelve 4; El punto flotante "." se cuenta como un carácter, por lo que tendrá cuatro caracteres: los 3 caracteres que son la longitud de los números. Más un carácter más para el punto flotante “.”.

Estuche cambiador con Función SUPERIOR y Función INFERIOR

UPPER(X) devolverá la misma cadena x, pero representará todos los caracteres de la cadena en mayúsculas.

LOWER(X) devolverá la misma cadena x, pero representará todos los caracteres de la cadena en caracteres pequeños.

UPPER e LOWER devuelven valores nulos si les pasa un valor nulo.

Si pasa valores numéricos a SUPERIOR o INFERIOR, ambos devolverán el valor numérico exacto.

Ejemplo:

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

Esto te dará:

Ejemplo de funciones SUPERIORES e INFERIORES en SQLite

El resultado es el siguientewing:

  • UPPER('una cadena') devuelve la cadena "una cuerda” en representación de letra mayúscula “UNA CUERDA".
  • LOWER('A STRING') devuelve la cadena "UNA CUERDA" en representación de letra minúscula "una cuerda".
  • UPPER(20), LOWER(20) devuelve el mismo número, ya que no tienen ningún efecto sobre los números.
  • UPPER(NULL), LOWER(NULL) devuelve nulo porque les pasamos un valor nulo.

Función SUBSTR de SQLite

La función SUBSTR devuelve un número específico de cadena, comenzando desde una posición específica. Puede pasar tres operandos a la función, así “SUBSTR(X,Y,Z)"como siguewing:

  • X es el literal de cadena o la columna de cadena que se va a analizar. Puede pasar un valor literal (valor estático) o un nombre de columna y, en este caso, el valor se leerá de los valores de la columna.
  • Y es la posición inicial para restar la cadena a partir de ella.
  • Z es el número de caracteres a analizar a partir de la posición específica Y. Este número es opcional, puede ignorarlo y, en este caso, SQLite restará la cadena a partir de la posición Y indicará el final de la cadena.

Ejemplo:

en el siguientewing consulta, usaremos la función SUBSTR para obtener los 4 caracteres comenzando desde el segundo carácter de los nombres de los estudiantes:

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

Esto te dará:

Ejemplo de función SUBSTR en SQLite

  • SUBSTR(NombreEstudiante, 2, 4) subcadena la cadena “Nombre del estudiante”A partir del segundo carácter y devuelve los siguientes 4 caracteres.
  • Sin embargo, en la función SUBSTR(NombreEstudiante, 2) No especificamos un número para los caracteres que se devolverán, es por eso que SQLite devolvió todos los caracteres restantes en el "Nombre del estudiante”A partir de la segunda posición.

Cambiar partes de una cadena con la función REPLACE de SQLite

REPLACE se utiliza para reemplazar cada cadena que ocurre en otra cadena con una cadena.

REEMPLAZAR (X, Y, Z): X es el literal o columna de la cadena de entrada. Y es la cadena que se reemplazará con la cadena Z. Tenga en cuenta que reemplazará cualquier aparición de la cadena Y con Z, no solo una.

Ejemplo:

en el siguientewing consulta, reemplazaremos todas las apariciones de la cadena "xx"con la cadena"SQLite"

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

Esto le dará

Ejemplo de función REEMPLAZAR en SQLite

  • La función de reemplazo reemplazó todas las cadenas "xx"con la cadena"SQLite".
  • Entonces la salida será "SQLite es muy liviano, SQLite es fácil de aprender".

Recortar espacios en blanco con la función TRIM de SQLite

TRIM elimina los espacios en blanco desde el principio o desde el final de la cadena. No eliminará ningún espacio en el medio de la cadena, sólo desde el principio o desde el final.

Ejemplo:

en el siguientewing consulta, usaremos la función TRIM para eliminar los espacios en blanco del principio y del final de la cadena.

Tenga en cuenta que el operador de concatenación “||” se utiliza para agregar un “;” adicional hasta el final de la cuerda. Para mostrarle que los espacios vacíos fueron eliminados en la ventana negra.

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

Esto te dará:

Ejemplo de función TRIM en SQLite

  • Observe cómo se eliminaron los espacios en blanco desde el principio y el final de la cadena, reemplazados por '; ' al final.

Lectura de valores absolutos con la función SQLite ABS

La función ABS devuelve el valor absoluto de un valor numérico. El valor absoluto es el valor numérico sin ningún signo positivo o negativo. ABS(X) devuelve un valor dependiendo del valor de X como siguewing:

  • El valor absoluto de X si X es un valor numérico.
  • Un valor NULL si X es un valor nulo.
  • Valor “0.0” si X es una cadena.

Ejemplo:

en el siguientewing consulta, intentaremos obtener el valor absoluto de una cadena, un número y un valor nulo usando la función ABS:

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

Esto te dará:

Ejemplo de función ABS en SQLite

Los resultados son los siguientes.wing:

  • ABS(-2), ABS(+2) devuelve 2, porque 2 es el valor absoluto tanto para “-2” como para “+2”.
  • ABS('una cadena') devuelve "0.0" porque pasó un valor de cadena, no un valor numérico.
  • ABS(nulo) devuelve nulo porque le pasó un valor nulo.

Redondeo de valores con función ROUND en SQLite

Los números decimales son números con punto flotante "." en él, por ejemplo, "20.5", "8.65". La parte a la izquierda del punto flotante se llama parte entera y la parte a la derecha del punto flotante es la parte decimal.

Los números enteros son aquellos números que no tienen ningún punto flotante. Por ejemplo, "20", "8".

ROUND(X) convierte los valores decimales o las columnas X en números enteros únicamente. Se devolverá la parte entera que está a la izquierda del punto decimal y se eliminarán todos los dígitos a la derecha del punto decimal.

Ejemplo:

en el siguientewing consulta probaremos la función REDONDEAR con diferentes opciones:

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

Esto te dará:

Ejemplo de función ROUND en SQLite

El resultado es el siguiente.wing:

  • REDONDEAR(12.4354354): devuelve el valor "12", porque no especificó el número de dígitos. Entonces, SQLite eliminó toda la parte decimal.
  • REDONDEAR(12.4354354, 2): devuelve el valor “12.44”, porque especificó solo 2 dígitos para redondear, que son los dos dígitos desde la derecha del punto decimal.
  • ROUND(NULL): devuelve nulo porque le pasaste un valor nulo.
  • ROUND('una cadena'): devuelve el valor "0.0" porque le pasaste un valor de cadena.

Encontrar el tipo de datos de expresión con la función TYPEOF

Si desea averiguar el tipo de una columna o un valor literal, puede usar la función TYPEOF para hacerlo.

La función TYPEOF(X), por su nombre, devuelve el tipo de datos de la expresión X. Devuelve un valor de cadena que indica el tipo de datos de X. Devuelve el valor según los tipos de datos, ya sea un valor "NULO", real, texto, entero,…, etc.

Ejemplo:

en el siguientewing consulta probaremos la función TYPEOF con diferentes tipos de valores literales:

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

Esto te dará:

Ejemplo de función TYPEOF en SQLite

Los resultados devueltos son los siguientes.wing:

  • TYPEOF(nulo): devuelve nulo porque le pasaste un valor nulo.
  • TYPEOF(12): devuelve un número entero, ya que 12 es un número entero.
  • TYPEOF(12.5) – devuelve REAL ya que 12.5 es un número real.
  • TYPEOF('una cadena'): devuelve texto ya que "una cadena" es un texto.

Encontrar el último registro insertado con SQLite LAST_INSERT_ROWID

SQLite asigna una clave entera (Id) para todas las filas de todas las tablas. Este número se utiliza para identificar de forma única estas filas.

Cuando INSERTA una nueva fila en una tabla, SQLite asignará al ID de fila un valor único.

Si la tabla tiene una clave principal declarada en una sola columna y esa columna es de tipo de datos INTEGER, entonces el valor de esta columna se utilizará como ID de fila.

La función LAST_INSERT_ROWID() devuelve el ROW_ID de la última fila insertada en cualquier tabla de la base de datos. Tenga en cuenta que no requiere ningún operando.

Ejemplo:

en el siguientewing Por ejemplo, ejecutaremos la función LAST_INSERT_ROWID() de la siguiente manera:

SELECT LAST_INSERT_ROWID();

Esto te dará:

Ejemplo de función LAST_INSERT_ROWID en SQLite

  • LAST_INSERT_ROWID() devuelve 0 porque no hay filas insertadas en ninguna tabla en la conexión de base de datos actual.

Ahora, insertemos un nuevo estudiante y ejecutemos la función LAST_INSERT_ROWID() nuevamente después de la declaración de inserción, así:

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

Esto te dará:

Ejemplo de función LAST_INSERT_ROWID en SQLite

  • Después de insertar un nuevo estudiante con ID 11, LAST_INSERT_ROWID() devolverá el ID de la última fila insertada, que es 11.

Obteniendo la versión de su biblioteca SQLite

Para obtener la versión de su biblioteca SQLite, debe llamar a la función SQLITE_VERSION().

Ejemplo:

Averigüemos cuál es la versión de SQLite que estamos usando ejecutando lo siguientewing mando:

SELECT SQLITE_VERSION();

Esto te dará:

Ejemplo para obtener la versión de su biblioteca SQLite

SQLITE_VERSION() devuelve 3.9.2, que es la versión de SQLite que estamos usando.

Crear funciones definidas por el usuario y agregar funciones definidas por el usuario

Para algunos usuarios, las funciones principales de SQLite son limitadas. Es posible que necesiten agregar funciones personalizadas para sus necesidades personalizadas.

SQLite no admite la creación de funciones definidas por el usuario. A diferencia de otros sistemas de administración de bases de datos, no puede crear funciones definidas por el usuario en SQLite directamente.

Sin embargo, puede crear una función utilizando lenguajes de programación como C#, C, PHP o C++ y adjuntar esa función con las funciones principales de SQLite en la propia biblioteca SQLite, usando "sqlite3_create_function" función. Luego podrás reutilizarlos en tu base de datos.

Ejemplo:

en el siguientewing Por ejemplo, crearemos una función definida por el usuario usando C# lenguaje de programación y agregarlo a las funciones SQLite:

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

Este fragmento de código está escrito en el Lenguaje de programación C #; crea una función C# usando el código C#.

El nombre de la función será “DoubleValor"Toma un parámetro y devuelve su valor multiplicado por 2.

Tenga en cuenta que C# agrega automáticamente esta función a SQLite. Todo lo que necesitas es compilar y ejecutar este código. Luego C# agregará esa función con el mismo nombre a la lista de funciones SQLite. Entonces puedes usar esta función en SQLite.

De la misma manera que utiliza lenguajes de programación como C#, C, PHP o C++, también puede crear funciones agregadas definidas por el usuario. Que se utilizan para ampliar las funciones agregadas en SQLite y utilizarlas para crear funciones agregadas personalizadas.

Resumen

  • SQLite proporciona un conjunto completo de funciones integradas que facilitan el trabajo con tablas y columnas de bases de datos, como vimos. Puede utilizar estas funciones con columnas y valores literales dentro de cualquier expresión en sus consultas SQL.
  • También puede utilizar la función de longitud con valores numéricos para obtener la longitud del valor numérico.
  • UPPER e LOWER devuelven valores nulos si les pasa un valor nulo.
  • La función SUBSTR devuelve un número específico de cadena, comenzando desde una posición específica.
  • REPLACE se utiliza para reemplazar cada cadena que ocurre en otra cadena con una cadena.
  • TRIM elimina espacios en blanco desde el principio o desde el final de la cadena.
  • La función ABS devuelve el valor absoluto de un valor numérico.
  • ROUND(X) convierte los valores decimales o las columnas X en números enteros únicamente.
  • La función TYPEOF(X), por su nombre, devuelve el tipo de datos de la expresión X.
  • La función LAST_INSERT_ROWID() devuelve el ROW_ID de la última fila insertada en cualquier tabla de la base de datos.