SQLite Fonctions de chaînes de caractères : REPLACE, SUBSTR, TRIM, LENGTH

⚡ Résumé intelligent

SQLite Les fonctions de chaînes de caractères telles que LENGTH, SUBSTR, REPLACE et TRIM manipulent directement le texte dans les requêtes, tandis que les fonctions numériques comme ABS et ROUND, ainsi que TYPEOF et les fonctions de version, étendent les possibilités offertes par les requêtes. SQLite la bibliothèque fonctionne.

  • (I.e. Durée : La fonction LENGTH compte le nombre de caractères contenus dans une chaîne de caractères et renvoie null lorsque la valeur passée est nulle.
  • (I.e. Conversion de cas : UPPER et LOWER permettent d'afficher une chaîne de caractères en majuscules ou en minuscules, sans modifier les nombres ni les valeurs nulles.
  • ✂️ Sous-chaînes : SUBSTR extracts caractères à partir d'une position choisie, tandis que REPLACE échange chaque occurrence d'une sous-chaîne contre une autre.
  • 🧮 Aides numériques : ABS renvoie une valeur sans son signe, et ROUND raccourcit un nombre décimal au nombre de chiffres demandé.
  • 🔍 inspection: TYPEOF indique le type de données d'une expression, et LAST_INSERT_ROWID renvoie l'identifiant de la dernière ligne insérée.
  • 🤖 Aide à l'IA : GitHub Copilot et les outils de conversion texte-SQL basés sur l'IA SQLite les requêtes de fonctions, tandis que les fonctions C personnalisées étendent la bibliothèque intégrée.

SQLite Fonctions de chaîne

Comment configurer SQLite et exécuter des requêtes de fonction de chaîne

SQLite est équipé par défaut d'une liste de fonctions intégrées dans le SQLite bibliothèque. Vous pouvez également ajouter d'autres fonctions personnalisées à l'aide du langage C pour étendre les fonctions principales.

Notez que, pour tous les exemples suivants, vous devez exécuter sqlite3.exe et ouvrir une connexion à la base de données d'exemple comme suit :

Étape 1) Dans cette étape, ouvrez « Ordinateur » et accédez au répertoire suivant : « C:\sqlite », puis ouvrez « sqlite3.exe » :

SQLite Fonctions de chaîne

Étape 2) Ouvrez la base de données « TutorialsSampleDB.db » à l’aide de la commande suivante :

SQLite Fonctions de chaîne

Vous êtes maintenant prêt à exécuter n'importe quel question et essayez toutes les requêtes utilisées dans les sections suivantes.

Trouver la LONGUEUR d'une chaîne dans SQLite

Pour trouver la longueur d’une chaîne, utilisez LENGTH(X) où X est une valeur de chaîne. Si X est une valeur nulle, la fonction de longueur renverra une valeur nulle.

Vous pouvez également utiliser la fonction length avec des valeurs numériques pour obtenir la longueur de la valeur numérique.

Exemple :

Dans l'exemple suivant, nous allons essayer la syntaxe de la fonction LENGTH avec les valeurs suivantes :

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

Cela vous donnera :

Trouver la LONGUEUR d'une chaîne dans SQLite

Le résultat est le suivant :

  • LENGTH('A string') renvoie 8 qui est la longueur de la chaîne « A string ».
  • LENGTH(NULL) renvoie null.
  • LENGTH(20) renvoie 2, car 20 fait 2 longueurs.
  • LONGUEUR(20.5) renvoie 4 ; La virgule flottante "." est compté comme un caractère, vous aurez donc quatre caractères – les 3 caractères qui correspondent à la longueur des nombres. Plus un caractère supplémentaire pour la virgule flottante « . ».

Étui à langer avec fonction UPPER et fonction LOWER

UPPER(X) renverra la même chaîne x, mais elle représentera tous les caractères de la chaîne en caractères majuscules.

LOWER(X) renverra la même chaîne x, mais elle représentera tous les caractères de la chaîne en petits caractères.

UPPER et LOWER renvoient des valeurs nulles si vous leur transmettez une valeur nulle.

Si vous transmettez des valeurs numériques à UPPER ou LOWER, les deux renverront la valeur numérique exacte.

Exemple :

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

Cela vous donnera :

Exemple de fonctions UPPER et LOWER dans SQLite

Le résultat est le suivant :

  • UPPER('a string') renvoie la chaîne « a string » en majuscules « A STRING ».
  • LOWER('A STRING') renvoie la chaîne « A STRING » en minuscules « une chaîne ».
  • UPPER(20), LOWER(20) renvoie le même nombre, car ils n'ont aucun effet sur les nombres.
  • UPPER(NULL), LOWER(NULL) renvoie null car nous leur avons transmis une valeur nulle.

SQLite Fonction SUBSTR

La fonction SUBSTR renvoie un nombre précis de chaînes de caractères, à partir d'une position spécifique. Vous pouvez lui passer trois opérandes, comme ceci : « SUBSTR(X,Y,Z) ».

  • X est la chaîne littérale ou la colonne de chaîne à analyser. Vous pouvez transmettre une valeur littérale (valeur statique) ou un nom de colonne, et dans ce cas, la valeur sera lue à partir des valeurs de la colonne.
  • Y est la position de départ pour extract la chaîne qui commence à partir de là.
  • Z est le nombre de caractères à analyser à partir de la position spécifique Y. Ce nombre est facultatif, vous pouvez l'ignorer, et dans ce cas, SQLite volonté extract la chaîne commençant à la position Y indique la fin de la chaîne.

Exemple :

Dans la requête suivante, nous utiliserons la fonction SUBSTR pour obtenir les 4 caractères à partir du deuxième caractère à partir des noms des étudiants :

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

Cela vous donnera :

Exemple de fonction SUBSTR dans SQLite

  • SUBSTR(StudentName, 2, 4) extrait la sous-chaîne « StudentName » à partir du deuxième caractère et renvoie les 4 caractères suivants.
  • Cependant, dans la fonction SUBSTR(StudentName, 2), nous n'avons pas spécifié de nombre pour les caractères à renvoyer, c'est pourquoi SQLite a renvoyé tous les caractères restants dans « StudentName » à partir de la deuxième position.

Changer des parties d'une chaîne avec SQLite Fonction REMPLACER

REPLACE est utilisé pour remplacer chaque chaîne survenue sur une autre chaîne par une chaîne.

REPLACE(X, Y, Z) – X est le littéral ou la colonne de la chaîne d’entrée. Y est la chaîne à remplacer par la chaîne Z. Notez qu'elle remplacera toute occurrence de la chaîne Y par Z, pas une seule.

Exemple :

Dans la requête suivante, nous remplacerons toutes les occurrences de la chaîne « xx » par la chaîne «SQLite"

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

Cela vous donnera

Exemple de fonction REPLACE dans SQLite

  • La fonction de remplacement a remplacé toutes les chaînes « xx » par la chaîne «SQLite" .
  • Le résultat sera donc «SQLite est très léger, SQLite est facile à apprendre ».

Couper les espaces vides avec SQLite Fonction TRIM

TRIM supprime les espaces vides au début ou à la fin de la chaîne. Cela ne supprimera aucun espace au milieu de la chaîne, uniquement depuis le début ou la fin.

Exemple :

Dans la requête suivante, nous utiliserons la fonction TRIM pour supprimer les espaces vides du début et de la fin de la chaîne.

Notez que l'opérateur de concaténation « || » est utilisé pour ajouter un « ; » supplémentaire jusqu'à la fin de la chaîne. Pour vous montrer que les espaces vides ont été supprimés dans la fenêtre noire.

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

Cela vous donnera :

Exemple de fonction TRIM dans SQLite

Remarquez comment les espaces vides ont été supprimés au début et à la fin de la chaîne, remplacés par ' ; ' à la fin.

Lire des valeurs absolues avec SQLite Fonction ABS

La fonction ABS renvoie la valeur absolue d'une valeur numérique. La valeur absolue est la valeur numérique sans aucun signe positif ou négatif. ABS(X) renvoie une valeur dépendant de la valeur de X comme suit :

  • La valeur absolue de X si X est une valeur numérique.
  • Une valeur NULL si X est une valeur nulle.
  • Valeur « 0.0 » si X est une chaîne.

Exemple :

Dans la requête suivante, nous allons essayer d'obtenir la valeur absolue d'une chaîne, un nombre et une valeur nulle à l'aide de la fonction ABS :

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

Cela vous donnera :

Exemple de fonction ABS dans SQLite

Les résultats comme suit :

  • ABS(-2), ABS(+2) renvoie 2, car 2 est la valeur absolue pour « -2 » et « +2 ».
  • ABS('a string') renvoie « 0.0 » car vous avez transmis une valeur de chaîne et non une valeur numérique.
  • ABS(null) renvoie null car vous lui avez transmis une valeur nulle.

Arrondir les valeurs avec la fonction ROUND dans SQLite

Les nombres décimaux sont des nombres à virgule flottante « ». dessus, par exemple, « 20.5 », « 8.65 ». La partie à gauche de la virgule flottante est appelée la partie entière et la partie à droite de la virgule flottante est la partie décimale.

Les nombres entiers sont des nombres sans virgule flottante. Par exemple, « 20 », « 8 ».

ROUND(X) convertit les valeurs décimales ou les colonnes X en nombres entiers uniquement. La partie entière qui est la partie à gauche du point décimal sera renvoyée et tous les chiffres à droite du point décimal seront supprimés.

Exemple :

Dans la requête suivante, nous allons essayer la fonction ROUND avec différentes options :

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

Cela vous donnera :

Exemple de fonction ROUND dans SQLite

Le résultat comme suit :

  • ROUND(12.4354354) – renvoie la valeur « 12 », car vous n'avez pas spécifié le nombre de chiffres. Donc, SQLite supprimé toute la partie décimale.
  • ROUND(12.4354354, 2) – renvoie la valeur « 12.44 », car vous avez spécifié seulement 2 chiffres à arrondir qui sont les deux chiffres à droite de la virgule décimale.
  • ROUND(NULL) – renvoie null car vous lui avez transmis une valeur nulle.
  • ROUND('a string') – renvoie la valeur « 0.0 » car vous lui avez transmis une valeur de chaîne.

Trouver le type de données de l'expression avec la fonction TYPEOF

Si vous souhaitez connaître le type d'une colonne ou une valeur littérale, vous pouvez utiliser la fonction TYPEOF pour le faire.

La fonction TYPEOF(X), de par son nom, renvoie le type de données de l'expression X. Elle renvoie une valeur de chaîne indiquant le type de données de X. Elle renvoie la valeur en fonction des types de données, qu'il s'agisse d'une valeur « NULL », réel, texte, entier, …, etc.

Exemple :

Dans la requête suivante, nous allons essayer la fonction TYPEOF avec différents types de valeurs littérales :

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

Cela vous donnera :

Exemple de fonction TYPEOF dans SQLite

Les résultats renvoyés sont les suivants :

  • TYPEOF(null) – renvoie null car vous lui avez transmis une valeur nulle.
  • TYPEOF(12) – renvoie un entier car 12 est un nombre entier.
  • TYPEOF(12.5) – renvoie REAL car 12.5 est un nombre réel.
  • TYPEOF('a string') – renvoie le texte car « une chaîne » est un texte.

Trouver le dernier enregistrement inséré avec SQLite LAST_INSERT_ROWID

SQLite attribue une clé entière (Id) pour toutes les lignes de toutes les tables. Ce numéro est utilisé pour identifier de manière unique ces lignes.

Lorsque vous INSÉREZ une nouvelle ligne sur une table, SQLite attribuera au rowid une valeur unique.

Si la table a une clé primaire déclarée sur une seule colonne et que cette colonne est de type de données INTEGER, alors cette valeur de colonne sera utilisée comme rowid.

La fonction LAST_INSERT_ROWID() renvoie le ROW_ID de la dernière ligne insérée dans n'importe quelle table de la base de données. Notez que cela ne prend aucun opérande.

Exemple :

Dans l'exemple suivant, nous exécuterons la fonction LAST_INSERT_ROWID() comme suit :

SELECT LAST_INSERT_ROWID();

Cela vous donnera :

Exemple de fonction LAST_INSERT_ROWID dans SQLite

LAST_INSERT_ROWID() renvoie 0 car aucune ligne n'est insérée dans aucune table dans la connexion actuelle à la base de données.

Maintenant, insérons un nouvel étudiant et exécutons à nouveau la fonction LAST_INSERT_ROWID() après l'instruction insert, comme ceci :

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

Cela vous donnera :

Exemple de fonction LAST_INSERT_ROWID dans SQLite

Après avoir inséré un nouvel étudiant avec l'identifiant 11, LAST_INSERT_ROWID() renverra le dernier identifiant de ligne inséré qui est 11.

Obtenir la version de votre SQLite bibliothèque math

Pour obtenir la version de votre SQLite bibliothèque, vous devez appeler la fonction SQLITE_VERSION().

Exemple :

Voyons quelle est la version du SQLite nous l'utilisons en exécutant la commande suivante :

SELECT SQLITE_VERSION();

Cela vous donnera :

Exemple pour obtenir la version de votre SQLite bibliothèque math

SQLITE_VERSION() renvoie 3.9.2 qui est la version du SQLite nous utilisons.

Création de fonctions définies par l'utilisateur et agrégation de fonctions définies par l'utilisateur

Pour certains utilisateurs, le SQLite les fonctions de base sont limitées. Ils devront peut-être ajouter des fonctions personnalisées pour leurs besoins personnalisés.

SQLite ne prend pas en charge la création de fonctions définies par l'utilisateur. Contrairement à d'autres systèmes de gestion de bases de données, vous ne pouvez pas créer de fonctions définies par l'utilisateur dans SQLite .

Cependant, vous pouvez créer une fonction en utilisant des langages de programmation comme C#, C, PHP ou C++ et j'ai attaché cette fonction avec le noyau SQLite fonctions dans le SQLite La bibliothèque elle-même, en utilisant la fonction « sqlite3_create_function ». Vous pouvez ensuite les réutiliser dans votre base de données.

Exemple :

Dans l'exemple suivant, nous allons créer une fonction définie par l'utilisateur en utilisant le langage de programmation C# et l'ajouter à SQLite les fonctions:

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

Cet extrait de code est écrit dans le Langage de programmation C#; il crée une fonction C# en utilisant le code C#.

Le nom de la fonction sera «DoubleLa fonction « Value » prend un paramètre et renvoie sa valeur multipliée par 2.

Notez que C# ajoute automatiquement cette fonction à SQLite. Tout ce dont vous avez besoin est de compiler et d'exécuter ce code. Ensuite, C# ajoutera cette fonction du même nom à la liste des SQLite les fonctions. Ensuite, vous pouvez utiliser cette fonction dans SQLite.

De la même manière en utilisant des langages de programmation comme C#, C, PHP ou C++, vous pouvez également créer des fonctions globales définies par l'utilisateur. Qui sont utilisés pour étendre les fonctions d'agrégation dans SQLite et utilisez-les pour créer des fonctions d'agrégation personnalisées.

FAQ

Les fonctions scalaires telles que LENGTH, UPPER et ROUND s'exécutent une fois par ligne et renvoient chacune une valeur. Les fonctions d'agrégation comme COUNT, SUM et GROUP_CONCAT traitent plusieurs lignes simultanément et renvoient un résultat combiné unique pour l'ensemble du groupe.

SQLite Cette fonction concatène des chaînes de caractères à l'aide de l'opérateur ||, par exemple 'a' || 'b'. Les versions plus récentes ajoutent également les fonctions scalaires concat() et concat_ws(), tandis que group_concat() combine les valeurs de plusieurs lignes en une seule chaîne délimitée.

Oui. SQLite Fournit les fonctions DATE, TIME, DATETIME, JULIANDAY et STRFTIME. Ces fonctions permettent de formater et de calculer des dates à partir de texte, d'horodatages Unix ou de la valeur spéciale « now », car SQLite stocke les dates sous forme de TEXTE, RÉEL ou ENTIER plutôt que dans un type dédié.

Par défaut, UPPER et LOWER ne modifient que les lettres ASCII de A à Z ; les caractères accentués et non latins restent inchangés. La conversion complète de la casse Unicode nécessite la compilation de l’extension ICU. SQLite, que peu de configurations par défaut incluent.

Utilisez la fonction INSTR(X, Y), qui renvoie la première position de la sous-chaîne Y dans la chaîne X, en comptant à partir de 1. Elle renvoie 0 si la sous-chaîne est absente. Associez INSTR et SUBSTR à l'exemple.tract texte après un caractère correspondant.

Encadrez l'expression par IFNULL(X, fallback) ou COALESCE(X, fallback) pour remplacer une valeur par défaut lorsqu'une fonction renvoie null. COALESCE accepte plusieurs arguments et renvoie la première valeur non nulle, ce qui est utile lorsque de nombreuses colonnes sont vides.

Oui. Copilote GitHub Il suggère des appels aux fonctions LENGTH, SUBSTR, REPLACE et ROUND à partir d'un commentaire ou d'un nom de table, et génère du code de fonction personnalisé en C ou C#. Testez toujours son résultat par rapport à votre schéma, car il peut inventer des noms de colonnes.

Oui. Les assistants IA de conversion de texte en SQL transforment les requêtes en langage clair en SQLite Les requêtes qui utilisent des fonctions de chaînes de caractères comme TRIM et REPLACE. Elles accélèrent le prototype.pingVous devez toutefois vérifier le code SQL généré par rapport à vos données, car les modèles d'apprentissage automatique produisent parfois une logique inexacte.

Résumez cet article avec :