SQLite Funciones de cadena: REEMPLAZAR, SUBSTR, RECORTAR, LONGITUD

⚡ Resumen inteligente

SQLite Las funciones de cadena como LENGTH, SUBSTR, REPLACE y TRIM manipulan el texto directamente dentro de las consultas, mientras que las funciones auxiliares numéricas como ABS y ROUND, además de TYPEOF y las funciones auxiliares de versión, amplían lo que la SQLite La biblioteca funciona.

  • 📏 Eslora: La función LENGTH cuenta cuántos caracteres contiene una cadena y devuelve null cuando el valor pasado es null.
  • 🔠 Conversión de mayúsculas y minúsculas: Las funciones UPPER y LOWER convierten una cadena a mayúsculas o minúsculas, dejando los números y los valores nulos sin cambios.
  • ✂️ Subcadenas: SUBSTR extracts caracteres desde una posición elegida, mientras que REPLACE intercambia cada ocurrencia de una subcadena por otra.
  • 🧮 Ayudantes numéricos: ABS devuelve un valor sin signo, y ROUND reduce un número decimal a los dígitos que usted solicite.
  • 🔍 inspección: TYPEOF informa el tipo de datos de una expresión, y LAST_INSERT_ROWID devuelve el ID de la última fila insertada.
  • 🤖 Asistencia de IA: GitHub Copilot y las herramientas de IA para convertir texto a SQL SQLite Las funciones C personalizadas realizan consultas, mientras que las funciones C personalizadas extienden la biblioteca integrada.

SQLite Funciones de cadena

Como instalar SQLite y ejecutar consultas de funciones de cadena

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

Tenga en cuenta que, para todos los ejemplos siguientes, debe ejecutar sqlite3.exe y abrir una conexión a la base de datos de ejemplo como se indica a continuación:

Paso 1) En este paso, abra Mi PC y navegue hasta el siguiente directorio “C:\sqlite” y luego abra “sqlite3.exe”:

SQLite Funciones de cadena

Paso 2) Abra la base de datos “TutorialsSampleDB.db” con el siguiente comando:

SQLite Funciones de cadena

Ahora estás listo para ejecutar cualquier pregunta y pruebe cualquier consulta utilizada en las siguientes secciones.

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 siguiente ejemplo, probaremos la sintaxis de la función LENGTH con valores como los siguientes:

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 siguiente:

  • 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.
  • LENGTH(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 SUPERIOR e INFERIOR en SQLite

El resultado es el siguiente:

  • UPPER('a string') devuelve la cadena “a string” en mayúsculas: “A STRING“.
  • LOWER('A STRING') devuelve la cadena “A STRING” en minúsculas, representada como “a string“.
  • UPPER(20), LOWER(20) devuelven 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.

SQLite Función SUBSTR

La función SUBSTR devuelve una cadena de caracteres de un número específico, comenzando desde una posición determinada. Puede pasar tres operandos a la función, como por ejemplo “SUBSTR(X,Y,Z)”:

  • 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 extract la cadena que comienza desde 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 voluntad extracLa cadena que comienza en la posición Y indica el final de la cadena.

Ejemplo:

En la siguiente consulta, utilizaremos la función SUBSTR para obtener los 4 caracteres a partir del 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(StudentName, 2, 4) extrae la subcadena "StudentName" comenzando desde el segundo carácter y devuelve los siguientes 4 caracteres.
  • Sin embargo, en la función SUBSTR(StudentName, 2) no especificamos un número para los caracteres que se deben devolver, por eso SQLite devolvió todos los caracteres restantes en “StudentName” comenzando desde la segunda posición.

Cambiar partes de una cadena con SQLite Función REEMPLAZAR

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 la siguiente consulta, reemplazaremos todas las ocurrencias 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 replace reemplazó todas las cadenas “xx” con la cadena “SQLite".
  • Entonces el resultado será “SQLite es muy ligero, SQLite es fácil de aprender”.

Recortar espacios en blanco con SQLite Función TRIM

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 la siguiente consulta, utilizaremos 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.

Leer valores absolutos con SQLite Función 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 que depende del valor de X, como se muestra a continuación:

  • 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 la siguiente consulta, intentaremos obtener el valor absoluto de una cadena, un número y un valor nulo utilizando 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:

  • 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.

Redondear valores con la 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 la siguiente 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 REDONDEAR en SQLite

El resultado es el siguiente:

  • ROUND(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 la siguiente 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:

  • 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 en todas las tablas. Este número se utiliza para identificar de forma única estas filas.

Cuando INSERTAS 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 utiliza ningún operando.

Ejemplo:

En el siguiente 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 tu SQLite

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

Ejemplo:

Averigüemos cuál es la versión del SQLite Estamos usando esto ejecutando el siguiente comando:

SELECT SQLITE_VERSION();

Esto te dará:

Ejemplo para obtener la versión de su SQLite

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

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

Para algunos usuarios, el SQLite Las funciones básicas 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 gestión de bases de datos, no puede crear funciones definidas por el usuario en SQLite .

Sin embargo, puedes crear una función utilizando lenguajes de programación como C#, C, PHP o C++ y adjunto esa función con el núcleo SQLite funciones en el SQLite La propia biblioteca, utilizando la función “sqlite3_create_function”. Luego puedes reutilizarla en tu base de datos.

Ejemplo:

En el siguiente ejemplo crearemos una función definida por el usuario utilizando el lenguaje de programación C# y la agregaremos a SQLite funciones:

[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á “DoubleLa función "Valor" 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 SQLite funciones. Entonces puedes usar esta función en SQLite.

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

Preguntas Frecuentes

Las funciones escalares como LENGTH, UPPER y REDONDEAR se ejecutan una vez por fila y devuelven un valor cada una. Las funciones de agregación como CONTAR, SUMA y AGRUPACIÓN_CONCAT procesan varias filas juntas y devuelven un único resultado combinado para todo el grupo.

SQLite Une cadenas con el operador ||, por ejemplo 'a' || 'b'. Las versiones más recientes también añaden las funciones escalares concat() y concat_ws(), mientras que group_concat() combina valores de varias filas en una única cadena delimitada.

Sí. SQLite Proporciona FECHA, HORA, FECHA Y HORA, JULIANDAY y STRFTIME. Estas funciones formatean y calculan fechas a partir de texto, marcas de tiempo Unix o el valor especial 'ahora', ya que SQLite Almacena las fechas como TEXTO, REAL o ENTERO en lugar de un tipo específico.

Por defecto, MAYÚSCULAS y MINÚSCULAS solo cambian las letras ASCII de la A a la Z, por lo que los caracteres acentuados o no latinos permanecen sin cambios. La conversión completa de mayúsculas y minúsculas de Unicode necesita la extensión ICU compilada en SQLite, que pocas compilaciones predeterminadas incluyen.

Utilice la función INSTR(X, Y), que devuelve la primera posición de la subcadena Y dentro de la cadena X, contando desde 1. Devuelve 0 cuando la subcadena está ausente. Combine INSTR con SUBSTR paratract texto después de un carácter coincidente.

Envuelva la expresión en IFNULL(X, fallback) o COALESCE(X, fallback) para sustituir un valor predeterminado cuando una función devuelve null. COALESCE acepta varios argumentos y devuelve el primer valor que no es null, lo que resulta útil cuando muchas columnas pueden estar vacías.

Sí. Copiloto de GitHub Sugiere llamadas a LENGTH, SUBSTR, REPLACE y ROUND a partir de un comentario o nombre de tabla, y genera código de función definido por el usuario en C o C#. Siempre compruebe su resultado con su esquema, ya que puede generar nombres de columna ficticios.

Sí. Los asistentes de texto a SQL con IA convierten las solicitudes en lenguaje natural en SQLite Consultas que utilizan funciones de cadena como TRIM y REPLACE. Aceleran el protocolo.pingSin embargo, debes verificar el SQL generado con tus datos, ya que los modelos de aprendizaje automático a veces producen una lógica inexacta.

Resumir este post con: