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.

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โ:
Paso 2) Abra la base de datos โTutorialsSampleDB.dbโ con el siguiente comando:
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รก:
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รก:
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รก:
- 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รก
- 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รก:
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รก:
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รก:
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รก:
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รก:
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รก:
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รก:
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.













