Inné

Inné
Un tableau fait partie du type de collection en SQL, comme introduit dans SQL 99. Un tableau est une collection d'éléments de longueur et de type de données prédéfinis. Un tableau peut être de tout type défini par l'utilisateur ou en raison d'une opération SQL qui renvoie un ensemble de résultats de tableau.

Vous pouvez également avoir un tableau de longueurs variables en utilisant un multiset tel qu'introduit dans SQL 2003.

Vous pouvez en savoir plus dans la ressource fournie ci-dessous:

https: // sql-99.lecture.IO / EN / DERNIER / CHAPTEURS / 10.html

Remarque: Bien que la norme ANSI SQL prenne en charge le type de tableau, certains moteurs SQL ne le prennent pas encore en charge.

SQL Créer un tableau

Nous pouvons créer un tableau en déclarant un type de tableau, puis en définissant une variable de tableau du type de jeu.

Un exemple de syntaxe est illustré ci-dessous:

Créer un type IntaRray en tant que tableau entier [100];

La syntaxe précédente crée un type de tableau intarray.

SQL inné

Pour sélectionner les données d'un tableau, nous utilisons la fonction la plus intensive. Cette fonction prend un tableau et renvoie une table avec une ligne pour chaque élément de la collection spécifiée.

La syntaxe de fonction est comme indiqué:

Inne plus (tableau) [avec décalage]

Prenez l'exemple suivant:

SELECT * FROM UNNEST ([1,2,3,4,5]) As ID avec décalage comme commande de décalage par décalage;

Dans l'exemple de requête précédente, nous utilisons la fonction la plus interne pour déballer ou «aplatir» le tableau dans un ensemble de lignes.

Remarque: nous utilisons l'instruction avec décalage avec implémentation de l'ordre des valeurs de la ligne, car la fonction la plus incevable détruira l'ordre des éléments dans le tableau spécifié. Par conséquent, vous pouvez omettre la clause Order Order by si vous ne vous souciez pas de l'ordre des éléments.

Requête des tableaux imbriqués

Dans certains cas, vous pouvez rencontrer un tableau de structures. Pour accéder et interroger les champs de structure, vous devez les déballer.

Un exemple simpliste est illustré ci-dessous:

Créer un type IntaRray en tant que tableau entier [100];
Declare Array_IDS INTARRAY;
Set array_ids = array [1,2,3,4,5];
SELECT * FROM JOIN UNNEST (Array_IDS) en tant qu'ID;

Dans l'exemple précédent, nous commençons par déclarer un type de tableau. Ensuite, nous utilisons un constructeur de tableau pour initialiser le tableau avec de nouvelles valeurs.

Enfin, nous utilisons la fonction la plus interne pour sélectionner les éléments du tableau dans un ensemble de tableaux de ligne.

Un exemple plus pratique est illustré ci-dessous:

Avec des sites comme (
Sélectionnez "Sites" comme site,
[struct ("linuxhint" comme site_name, ["golang", "rouille", "sql_server", "redis"] comme site_topics)] comme sites
));
SÉLECTIONNER
site, site_topics
Des sites s
Croix rejoindre inné (s.sites) comme site;

La requête précédente doit renvoyer la sortie comme indiqué ci-dessous:

+-------+---------------------------------------------------------+
| Site | site_topic |
+-------+---------------------------------------------------------+
| Sites + LinuxHint, ["Golang", "Rust", "SQL_SERVER", "redis"] |
+-------+---------------------------------------------------------+

Conclusion

Cet article couvre les principes fondamentaux du travail avec les types de collecte SQL et la définition de fonction la plus indemne. Gardez à l'esprit que cela peut varier en fonction du moteur de la base de données et si le type de tableau est mis en œuvre ou non. Nous espérons que vous avez trouvé cet article utile. Consultez les autres articles sur les conseils pour plus de conseils et de tutoriels.

Pour une documentation concrète sur les tableaux standard SQL, consultez la ressource ci-dessous.