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: