SQLite Funciones de cadena: REEMPLAZAR, SUBSTR, TRIM, ROUND
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 muestra como se indica a continuaciรณn:
Paso 1) En este paso,
- Abra Mi PC y navegue hasta el siguiente directorio โC:\sqlite" y entonces
- abierto "sqlite3.exe"
Paso 2) Abre la base de datos โTutorialesSampleDB.db" mediante 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('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) 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 un nรบmero especรญfico de cadenas, comenzando desde una posiciรณn especรญfica. Puede pasar tres operandos a la funciรณn, como este:SUBSTR(X,Y,Z)" de la siguiente manera:
- 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 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(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 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 de reemplazo reemplazรณ todas las cadenas "xx"con la cadena"SQLite".
- Entonces la salida 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, puede 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 biblioteca misma, usando โfunciรณn_crear_sqlite3" funciรณn. Luego podrรกs reutilizarlos en tu base de datos.
Ejemplo:
En el siguiente ejemplo crearemos una funciรณn definida por el usuario utilizando C# lenguaje de programaciรณn y agregarlo 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รก โ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 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.
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.













