Chaque fois que nous exécutons une commande dans PostgreSQL, les flux établissent la connexion avec la borne de texte où le PSQL (shell) est en cours d'exécution. Cependant, dans le cas de l'héritage, le processus de chaque enfant hérite des flux du processus parent. Tous les programmes n'ont pas besoin de ces flux pour être introduits dans le code, certaines fonctions telles que getchar () et putchar () utilisent automatiquement les flux d'entrée et de sortie. Les flux se trouvent dans la catégorie de 3.
Stdin: C'est un flux d'entrée standard. Il est utilisé où le programme lit les données d'entrée.
Stdout: Cela implique le flux de sortie standard utilisé lorsque l'application écrit les données (sortie) dans le fichier.
Stderr: Ce flux fait référence aux erreurs de l'application. Ceci est utilisé pour afficher ou informer l'utilisateur de l'apparition d'une erreur pendant l'exécution.
La syntaxe commune pour ces trois types est:
Fichier * stdin;L'entrée standard est lue par le «clavier» du périphérique d'entrée, tandis que la sortie standard et les erreurs standard sont affichées sur l'écran du moniteur de périphérique de sortie. Les deux premiers flux sont utilisés pour récupérer et afficher les données en mots simples, mais le troisième est principalement utilisé lorsque nous devons diagnostiquer les erreurs. Je parle de la manipulation des exceptions dans les langages de programmation.
Entrée standard (STDIN):
Lors de la création d'un code source, la plupart des fonctions dépendent du flux STDIN pour la fonction d'entrée. Mais certains programmes comme les programmes DIR et LS ne nécessitent pas cette fonctionnalité, car ils prennent les arguments en ligne de commandement. Cette situation se produit lorsque le programme repose sur le système pour l'entrée mais n'interagit pas avec l'utilisateur. Par exemple, les programmes liés au répertoire et aux chemins ne nécessitent pas d'entrées pour être exécutées.
Chaque fichier qui est sous le processus d'exécution est alloué avec un numéro unique par le système. C'est ce qu'on appelle un descripteur de fichiers. Pour l'entrée standard, la valeur du descripteur de fichier est «0». Dans le langage de programmation C, le descripteur de fichier a un fichier variable * STDIN, de même pour le langage C ++. la variable est définie comme std :: CIN.
Stdin dans PostgreSQL
Après l'installation et la configuration de la base de données, pour la connectivité avec le serveur, vous devez fournir un mot de passe pour poursuivre. Ces mesures sont pour l'authentification de l'utilisateur.
Copier les données de STDIN à un tableau
Pour reconnaître le mécanisme de Stdin, nous devons créer une table factice. Afin que nous puissions lire et copier les données d'un fichier à un autre en incorporant STDIN.
>> Créer une école de table (id int, name varchar (10), adresse varchar (20), sujet varchar (20));Une fois le tableau créé, nous ajouterons les valeurs du tableau en utilisant une commande d'insert. Ajoutez quelques exemples de données dans quelques lignes, le repos sera ajouté en utilisant "stdin".
>> Insérer dans les valeurs de l'école (1, «Ahmad», «Lahore», «Sciences»), (2, «Shazain», «Islamabad», «Arts»), (3, «Zain», «Karachi», » les sciences');Outre l'instruction «INSERT», il existe une alternative pour charger les valeurs dans le tableau. C'est à travers "stdin". Dans PostgreSQL, nous entrons dans les données du tableau à partir du terminal en ligne à l'aide d'un délimiteur. Ce délimiteur est un séparateur entre les valeurs de deux colonnes d'une ligne. Ce délimiteur peut être un espace, une virgule ou un blanc en tout cas. Mais en utilisant un délimiteur comme stdin, le CSV (valeurs séparés par des virgules) est recommandé. Et aucun autre symbole n'est référé ici. Un mot-clé «copie» est utilisé qui copiera les données de l'écran PSQL à la table en particulier.
>> Copier l'école de Stdin (Delimiter ',');Lorsque vous utilisez la requête, certaines instructions pour le placement des données sont mentionnées ici. Ce sont les points pour guider l'utilisateur afin que vous deviez être en mesure d'entrer correctement les données. Chaque ligne doit être entrée dans une nouvelle ligne.
Nous irons étape par étape ici. Chaque valeur écrite avant ou entre les virgules représente chaque colonne. Comme, il y a 4 colonnes, donc 4 valeurs sont utilisées comme CSV. Entrez la première ligne puis appuyez sur l'onglet.
Au fur et à mesure qu'une ligne est terminée, vous serez ensuite déplacé vers la ligne suivante. Peu importe le nombre de lignes que vous souhaitez ajouter, tout comme une déclaration d'insertion, toutes les données illimitées seront placées à l'intérieur du tableau. Revenant à l'exemple, maintenant nous avons écrit la deuxième ligne et procéder pour le suivant.
Nous avons utilisé 2 lignes pour démontrer. L'insertion réelle apportera des données jusqu'à la marque de l'exigence. Si vous avez terminé avec l'ajout de lignes dans le tableau et que vous souhaitez quitter ce mécanisme, vous utiliserez sûrement une fin du fichier (EOF).
Vous devez conclure l'ajout de données avec une barre arrière (\) et une période (.) à la dernière ligne lorsque vous ne voulez pas ajouter d'autres lignes.
Maintenant, jetons un aperçu finalisé de l'ensemble du code de la requête à l'EOF. À la fin "Copy 3" indique que 3 lignes sont ajoutées au tableau.
Note: L'opérateur EOF n'est pas ajouté comme symbole dans la nouvelle rangée de la table.
Continuez à ajouter des données via «stdin» en fonction de l'exigence. Vous pouvez vérifier les données que vous avez insérées via l'instruction SELECT.
>> Sélectionner * à l'école;Copier les données d'un tableau à STDIN
Si vous êtes intéressé à copier les données dans une seule table à partir du tableau, nous utilisons STDIN pour cela. Il n'est pas possible de copier directement une table dans l'autre dans PostgreSQL .
Créez un exemple de table pour copier toutes les données de la table (école). Il faut être conscient d'ajouter les données de la colonne, type similaire à la table ciblée.
Maintenant, ajoutez les données de ce fichier en utilisant la même déclaration stdin d'une copie. Les données peuvent être les mêmes ou vous pouvez la modifier en ajoutant une nouvelle ligne qui n'était pas présente dans le tableau d'origine.
>> Copier School_copy de Stdin (Delimètre ',')Utilisez une instruction SELECT pour faire entrer les données.
Sortie à l'aide de STDOUT au lieu de sélectionner l'instruction
Comme nous utilisons STDIN Alternative à l'instruction INSERT. De même, STDOUT est utilisé à la place de l'instruction SELECT. La représentation n'est pas sous la forme d'un tableau. À des fins de sortie, le délimiteur utilisé est «|». Ce délimiteur est automatiquement placé entre les colonnes dans chaque ligne.
>> Copier School_Copy à STDOUT (Demiter '|');Survenir des erreurs tout en utilisant des délimiteurs
Délimiteur '|'
Si vous utilisez un délimiteur '|' En remplacement du CSV, il entraînera une erreur. Cela ne copiera pas les données du terminal et provoque une erreur de syntaxe.
Conclusion
La copie «Postgresql de Stdin» aide à dupliquer les données d'une table à une autre. Dans cet article, nous vous avons d'abord donné une introduction de flux standard, Stdin, ça marche, théoriquement suivi de la brève explication des exemples. Un avantage concurrentiel de la déclaration de stdin sur INSERT est que, si une ligne est ignorée par erreur lors de la copie des données, nous pouvons l'ajouter entre les lignes existantes. Avec les conseils de ce tutoriel, vous pourrez copier le contenu des tables.