Insérer la ligne si les valeurs n'existent pas déjà dans PostgreSL

Insérer la ligne si les valeurs n'existent pas déjà dans PostgreSL

La connaissance et la manipulation des systèmes de gestion des bases de données nous ont fait familiariser avec les modifications des bases de données. Qui implique généralement la création, l'insertion, la mise à jour et la suppression des fonctions appliquées sur des tables spécifiques. Dans l'article actuel, nous verrons comment les données sont gérées par la méthode d'insertion. Nous devons avoir à créer une table dans laquelle nous voulons l'insertion. L'instruction d'insertion est utilisée pour l'ajout de nouvelles données dans des rangées de tables. L'instruction PostgreSQL Inserts couvre certaines règles pour l'exécution réussie d'une requête. Tout d'abord, nous devons mentionner le nom du tableau suivi des noms de colonne (attributs) où nous voulons insérer des lignes. Deuxièmement, nous devons saisir les valeurs, séparées par une virgule après la clause de valeur. Enfin, chaque valeur doit être dans le même ordre que la séquence des listes d'attributs est fournie lors de la création d'un tableau particulier.

Syntaxe

>> Insérer dans TableName (colonne1, colonne) valeurs ('value1', 'value2');

Ici, une colonne est les attributs de la table. La valeur des mots clés est utilisée pour saisir les valeurs. La «valeur» est les données des tableaux à saisir.

Insertion des fonctions de ligne dans Shell PostgreSQL (PSQL)

Après une installation réussie de PostgreSQL, nous entrons le nom de la base de données, le numéro de port et le mot de passe. PSQL sera initié. Nous allons ensuite effectuer des requêtes respectivement.

Exemple 1: Utilisation d'insert pour ajouter de nouveaux enregistrements aux tables
Après la syntaxe, nous créerons la requête suivante. Pour insérer une ligne dans la table, nous créerons un tableau nommé «Client». Le tableau respectif contient 3 colonnes. Le type de données de colonnes particulières doit être mentionné pour saisir des données dans cette colonne et éviter la redondance. La requête pour créer une table est:

>> Créer un client de table (id int, name varchar (40), country varchar (40));

Après avoir créé le tableau, nous allons maintenant entrer des données en insérant manuellement les lignes dans des requêtes séparées. Premièrement, nous mentionnons le nom de la colonne pour maintenir la précision des données dans des colonnes particulières concernant les attributs. Et puis, des valeurs seront entrées. Les valeurs sont codées par des comas uniques, car ils doivent être insérés sans aucune altération.

>> Insérer dans les valeurs du client (id, nom, pays) ('1', 'alia', 'Pakistan');

Après chaque insertion réussie, la sortie sera «0 1», ce qui signifie que 1 ligne est insérée à la fois. Dans la requête comme mentionné précédemment, nous avons inséré les données 4 fois. Pour afficher les résultats, nous utiliserons la requête suivante:

>> sélectionner * chez le client;

Exemple 2: Utilisation de l'instruction INSERT dans l'ajout de plusieurs lignes dans une seule requête
La même approche est utilisée pour insérer des données mais ne pas introduire plusieurs fois des instructions d'insertion. Nous entrons dans les données à la fois en utilisant une certaine requête; Toutes les valeurs d'une ligne sont séparées par »en utilisant la requête suivante, nous atteindrons la sortie requise

Exemple 3: Insérez plusieurs lignes dans un tableau en fonction des nombres dans un autre tableau
Cet exemple concerne l'insertion de données d'un tableau à un autre. Considérez deux tables, «A» et «B». Le tableau «A» a 2 attributs, je.e., nom et classe. En appliquant une question de création, nous présenterons une table. Après la création du tableau, les données seront entrées en utilisant une requête d'insertion.

>> Créer le tableau A (nom Varchar (30), classe Varchar (40));
>> Insérer dans A Values ​​('Amna', 1), ('Bisma', '2'), ('Javed', '3'), ('maha', '4');

Quatre valeurs sont insérées dans le tableau en utilisant la théorie excédentaire. Nous pouvons vérifier en utilisant des instructions sélectionnées.

De même, nous créerons le tableau «B», ayant des attributs de tous les noms et sujets. Les mêmes 2 requêtes seront appliquées pour insérer et pour récupérer l'enregistrement à partir du tableau correspondant.

>> créer le tableau B (allNames varchar (30), sujet varchar (70));

Retrouvez l'enregistrement par la théorie sélectionnée.

>> sélectionner * dans b;

Pour insérer les valeurs de la table b Dans le tableau, nous utiliserons la requête suivante. Cette requête fonctionnera de telle manière que tous les noms de la table b sera inséré dans le tableau un avec le comptage des nombres qui montrent le nombre d'occurrences d'un nombre particulier dans la colonne respective de la table b. "B.allNames "représente la fonction objet pour spécifier le tableau. Compter (B.AllNames) La fonction fonctionne pour compter l'occurrence totale. Au fur et à mesure que chaque nom se produit en même temps, la colonne résultante aura 1 numéro.

>> Insérer dans un (nom, classe) SELECT B.allNames, compter (b.allNames) de B Group by B.allNames;

Exemple 4: insérer des données en lignes s'ils n'existent pas
Cette requête est utilisée pour entrer dans les lignes si elle n'est pas présente. Premièrement, la requête fournie vérifie si la ligne est déjà présente ou non. S'il existe déjà, les données ne sont pas ajoutées. Et si les données ne sont pas présentes dans une ligne, la nouvelle insertion aura lieu. Ici, TMP est une variable temporaire utilisée pour stocker des données pendant un certain temps.

>> Insérer dans b (allNames, sujet) sélectionnez * à partir de (sélectionnez 'kinza' comme allNames, 'Islamiat' comme sujet) comme tmp où il n'y a pas (sélectionnez allNames from b where allNames = 'sundus' limite 1);

Exemple 5: Upsert postgresql à l'aide de l'instruction INSERT
Cette fonction a deux variétés:

  • Mise à jour: si un conflit se produit, Si l'enregistrement correspond aux données existantes du tableau, elle est mise à jour avec de nouvelles données.
  • Si un conflit se produit, ne faites rien: Si un enregistrement correspond aux données existantes dans le tableau, elle saute l'enregistrement, ou si une erreur est fondée, elle est également ignorée.

Initialement, nous formerons un tableau avec quelques exemples de données.

>> Créer la table TBL2 (id int clé primaire, le caractère de nom variant);

Après avoir créé un tableau, nous insérerons des données dans TBL2 en utilisant la requête:

>> Insérer dans les valeurs TBL2 (1, 'Uzma'), (2, 'Abdul'), (3, 'Hamna'), (4, 'Fatima'), (5, 'Shiza'), (6, ' Javeria ');

Si un conflit se produit, mise à jour:

>> Insérer dans les valeurs TBL2 (8, 'Rida') sur le conflit (id) faire le nom de mise à jour du nom = exclu.Nom;

Au début, nous entrons des données en utilisant la requête de conflit de l'ID 8 et le nom Rida. La même requête sera utilisée en suivant le même ID; Le nom sera modifié. Vous remarquerez maintenant comment les noms seront modifiés sur le même identifiant dans la table.

>> Insérer dans les valeurs TBL2 (8, 'mahi') sur le conflit (id) faire du nom de mise à jour le nom = exclu.Nom;

Nous avons constaté qu'il y avait un conflit sur ID «8», donc la ligne spécifiée est mise à jour.

Si un conflit se produit, ne faites rien

>> Insérer dans les valeurs TBL2 (9, «Hira») sur le conflit (id) ne faites rien;

En utilisant cette requête, une nouvelle ligne est insérée. Après cela, nous utiliserons si la même requête pour voir le conflit qui s'est produit.

>> Insérer dans les valeurs TBL2 (9, «Hira») sur le conflit (id) ne faites rien;

Selon l'image ci-dessus, vous verrez qu'après l'exécution de la requête «Insérer 0 0», aucune donnée n'est entrée.

Conclusion

Nous avons aperçu le concept de compréhension de l'insertion de lignes dans les tableaux où les données ne sont pas présentes, ou l'insertion n'est pas terminée, si un enregistrement est trouvé, pour réduire la redondance dans les relations de base de données.