Manières astucieuses d'utiliser une chaîne de concaténation SQL

Manières astucieuses d'utiliser une chaîne de concaténation SQL

Langage de requêtes structurées (SQL) est un outil remarquablement puissant et plein de fonctionnalités. Une fois que vous maîtrisez le plus commandes SQL importantes , vous pouvez commencer à être un peu plus créatif avec votre SQL. Aujourd'hui, je vais vous montrer tout ce que vous devez savoir sur les chaînes de concaténation SQL.





Il existe de nombreux dialectes SQL différents. Pour tous ces exemples, j'utilise le PostgreSQL une variante.





comment désactiver les sous-titres sur netflix

Qu'est-ce que la concaténation ?

Concaténer signifie réunir deux choses. Vous l'avez peut-être utilisé dans un langage de programmation pour joindre deux chaînes. Peut-être avez-vous des variables de prénom et de nom que vous avez réunies en une variable de nom complet.





La concaténation est un moyen très utile de combiner deux chaînes en une seule. PHP utilise un point pour joindre des chaînes ensemble, alors que JavaScript et jQuery utilisent un signe plus.

La concaténation en SQL fonctionne exactement de la même manière. Vous utilisez un opérateur spécial pour joindre deux choses en une. Voici un exemple en Pseudocode :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

Dans les langages de programmation, la concaténation facilite la lecture du code. Si votre code doit toujours accéder à deux chaînes, les combiner en une seule facilite la mémorisation et réduit la longueur du code.

Alors que les variables en SQL sont moins courantes (mais sont toujours utilisées), la concaténation est toujours nécessaire pour renvoyer des résultats combinés ou pour manipuler des données.





Comment concaténer

La concaténation est très facile en SQL. Bien que SQL soit un langage courant, les moteurs de base de données individuels implémentent les fonctionnalités de différentes manières. Bien que tous ces exemples soient dans le dialecte PostgreSQL, il est facile de les traduire en d'autres variantes en recherchant simplement sur le Web « Concaténer ». Différents moteurs peuvent avoir une syntaxe différente pour la concaténation, mais le principe reste le même.

Pour en revenir à notre exemple de nom, voici une base sélectionner mettre en doute:





SELECT first_name, last_name, email FROM users_table

Rien de complexe ici, ajoutons donc dans la concaténation :

SELECT first_name || last_name AS full_name, email FROM users_table

Comme vous pouvez le voir, cette concaténation a parfaitement fonctionné, mais il y a un petit problème. Le nom complet résultant a été assemblé exactement comme le produit des deux colonnes -- il devrait y avoir un espace entre les noms !

Heureusement, c'est facile à corriger : il suffit de concaténer un espace entre les deux :

SELECT first_name || ' ' || last_name AS full_name, email FROM users_table

Ce sont des exemples de base, mais vous devriez voir comment fonctionne la concaténation -- c'est vraiment aussi simple que cela ! L'opérateur du tuyau ( | ) est utilisé deux fois entre les clauses. Votre moteur SQL sait que chaque partie avant et après ce symbole doit être jointe et traitée comme une seule. Attention cependant, si vous utilisez l'opérateur concat mais que vous ne concaténez rien, vous obtiendrez une erreur.

Comme mentionné ci-dessus, ces exemples utilisent la variante PostgreSQL de SQL. D'autres variantes peuvent utiliser un opérateur différent, ou même une fonction spéciale que vous devez appeler. Cela n'a pas vraiment d'importance comment vous concaténez des chaînes, à condition que vous le fassiez de la manière prévue par votre moteur de base de données.

Aller plus loin

Maintenant que vous connaissez les bases, examinons quelques exemples détaillés, ainsi que quelques pièges courants.

La plupart des moteurs de base de données concatèneront avec succès un mélange de chaînes et d'entiers, peut-être même des dates. Vous rencontrerez généralement des problèmes lorsque vous essayez de concaténer des types complexes tels que des tableaux :

SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table

Ce code ne fonctionnera pas. Il n'est pas possible de combiner des chaînes avec des objets complexes tels que des tableaux. Si vous réfléchissez à ce que vous devez faire, vous pouvez souvent écrire du code simple qui fonctionne, plutôt qu'un code complexe et fou qui ne s'exécute pas.

Si vous avez bien réfléchi à ce que vous devez faire et que vous ne parvenez toujours pas à faire fonctionner le SQL, avez-vous envisagé d'utiliser un langage de programmation ? En tant que développeur de logiciels travaillant sur du code hérité, je connais la douleur d'essayer de déboguer SQL dans lequel quelqu'un a entassé tant de logique que c'est un miracle qu'il fonctionne - si vous essayez d'écrire de la logique en SQL, passez à un langage de programmation (il existe de nombreux langages faciles à apprendre).

La concaténation fonctionne très bien pour déclarations aussi :

SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date

Il se passe quelques choses ici. Dans cet exemple, JOURNÉE , MOIS , et ANNÉE sont des paramètres qui ont été transmis à partir d'un script. Peut-être que ceux-ci ont été générés par code ou saisis par un utilisateur. Ceux-ci sont concaténés ensemble, puis convertis en un type de date (à l'aide de la syntaxe de conversion PostgreSQL en date ::Date ).

L'utilisation de la concaténation de cette manière vous permet d'enchaîner les parties individuelles d'une date, qui peuvent ensuite être traitées comme une date « réelle », par opposition à une chaîne. N'oubliez pas que cet exemple de base ne protège pas contre l'injection SQL, alors ne l'utilisez pas dans un code de production sans le modifier.

Un autre écueil à surveiller est nul valeurs (une chaîne nulle est une chaîne vide ou non existante). Étant donné cette requête :

SELECT first_name || ' ' || NULL AS full_name, email FROM users_table

Cette requête échoue silencieusement. Cela est dû à la façon dont la concaténation est codée en interne sur votre moteur de base de données. Vous ne rencontrerez peut-être pas toujours ce problème, mais c'est assez courant.

Si vous pensez que les données renvoyées par votre requête peuvent être nulles, vous devrez utiliser un se fondre . La fusion peut être considérée à peu près comme « si c'est nul, remplacez-le par cette autre chaîne ou colonne » :

SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table

Maintenant que vous savez utiliser la concaténation en SQL, qu'allez-vous en faire ? Allez-vous faire un site web et l'animer avec SQL ? Ou peut-être avez-vous besoin d'un générateur de site statique pour une approche plus simple de la création de sites Web.

Quoi que vous fassiez, faites-le nous savoir dans les commentaires ci-dessous!

comment revenir à Windows 7 à partir de 10
Partager Partager Tweeter E-mail 6 alternatives audibles : les meilleures applications de livres audio gratuites ou bon marché

Si vous n'avez pas envie de payer pour des livres audio, voici quelques excellentes applications qui vous permettent de les écouter gratuitement et légalement.

Lire la suite
Rubriques connexes
  • La programmation
  • La programmation
  • SQL
A propos de l'auteur Joe Coburn(136 articles publiés)

Joe est diplômé en informatique de l'Université de Lincoln, au Royaume-Uni. C'est un développeur de logiciels professionnel, et lorsqu'il ne pilote pas de drones ou n'écrit pas de musique, on le trouve souvent en train de prendre des photos ou de produire des vidéos.

Plus de Joe Coburn

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner