Cet article apprendra à créer et à utiliser des types de tableaux dans SQL standard. Il est bon de noter que bien que les tableaux fassent partie de SQL standard, des bases de données telles que MySQL ne prennent pas en charge les tableaux nativement.
Qu'est-ce qu'un tableau?
Un tableau fait référence à une collection d'une liste ordonnée d'articles. Les tableaux sont très utiles et puissants. Apprendre à travailler avec un tableau peut aider à améliorer les performances et à fournir des techniques de manipulation de données complexes.
Dans des moteurs de base de données tels que BigQuery et PostgreSQL, un tableau est un type intégré qui peut être utilisé n'importe où dans la base de données.
Cependant, contrairement à PostgreSQL, BigQuery vous empêche de créer des tableaux multidimensionnels.
SQL Créer un tableau
La façon la plus simple de créer un tableau est d'utiliser son format littéral. Un exemple est comme indiqué:
SÉLECTIONNERLe code ci-dessus devrait créer un tableau appelé my_array avec les éléments à l'intérieur des crochets.
Un exemple de sortie est comme indiqué:
My_arrayLa deuxième méthode que vous pouvez utiliser pour créer un tableau est la fonction Generate_Array. Cette fonction est uniquement disponible en bigQuery.
Le code ci-dessous montre comment utiliser la fonction Generate_Array pour générer un tableau.
SÉLECTIONNERLe code ci-dessus génère un tableau d'articles de 1 à 5. La sortie résultante est comme indiqué:
My_arrayLa fonction Generate_Array suit la syntaxe comme indiqué ci-dessous:
Generate_array (start_expression, end_expression [, step_expression])Vous pouvez utiliser Step_Expression pour définir la taille de pas pour les éléments générés.
D'autres fonctions similaires incluent:
Vous pouvez consulter la documentation sur les fonctions du tableau pour en savoir plus.
Accéder aux éléments du tableau
BigQuery nous permet d'utiliser la valeur de décalage ou la valeur ordinale pour accéder aux éléments dans un tableau.
Le décalage est une valeur basée sur 0, tandis que l'ordinal est basé sur.
Considérez un exemple de requête ci-dessous:
SÉLECTIONNERDans la requête, nous utilisons la fonction générée_array pour générer un tableau avec des valeurs à partir de 1 à 5.
Nous utilisons ensuite les fonctions décalées et ordinales pour récupérer le premier élément du tableau.
Le code ci-dessus doit retourner:
Offset_0 Ordinal_0Vous pouvez choisir n'importe quelle méthode d'accès à tableau que vous souhaitez utiliser. Par exemple, choisissez Offset si vous préférez un index basé sur 0; Sinon, choisissez Ordinal.
Trouver la longueur du tableau
Pour obtenir la longueur d'un tableau, vous pouvez utiliser la fonction Array_Length comme indiqué:
SÉLECTIONNERCela devrait renvoyer la longueur du tableau comme:
f0_La longueur du tableau fait référence au nombre d'éléments dans le tableau.
Convertir le tableau en lignes
Pour convertir un tableau en un ensemble de lignes, utilisez la fonction la plus innombrable comme indiqué ci-dessous:
SÉLECTIONNERLe code ci-dessus crée un tableau de nombres pair de 0 à 20 et les convertit en lignes en utilisant la fonction la plus intensive.
La sortie résultante est illustrée ci-dessous:
mêmeVous pouvez en savoir plus sur la commande la plus innombrable dans le tutoriel lié.
Convertir le tableau en chaîne
Si vous avez un tableau de chaînes, vous pouvez le convertir en une chaîne à l'aide de la fonction Array_To_String.
L'utilisation de l'exemple est comme indiqué:
SÉLECTIONNERLe code ci-dessus convertit le tableau de chaînes en une seule chaîne. La syntaxe de fonction est:
Array_to_string (array_expression, Delimiter [, null_text])Conclusion
Cet article a fourni les connaissances fondamentales sur la façon de travailler avec des tableaux en SQL standard en utilisant BigQuery. Il y a plus sur le type de tableau au-delà de la portée de ce tutoriel. Vérifiez les ressources ci-dessous pour explorer plus.
https: // cloud.Google.com / bigQuery / docs / référence / standard-sql / tableaux
https: // cloud.Google.com / bigQuery / docs / référence / standard-sql / array_functions
Merci d'avoir lu, et j'espère que vous l'avez apprécié!!