Kopia PostgreSQL ze stdin

Kopia PostgreSQL ze stdin
PostgreSQL, podobnie jak inne systemy zarządzania bazami danych, obsługuje standardowe strumienie. Te strumienie są odpowiedzialne za manipulowanie danymi do przechowywania w PostgreSQL. Są to kanały wejściowe i wyjściowe komunikacji między aplikacją a środowiskiem tworzonym w momencie wykonania.

Ilekroć wykonujemy polecenie w PostgreSQL, strumienie tworzą połączenie z terminalem tekstowym, w którym działa PSQL (powłoka). Jednak w przypadku dziedziczenia proces każdego dziecka dziedziczy strumienie od procesu nadrzędnego. Nie każdy program potrzebuje tych strumieni do wprowadzenia w kodzie, niektórych funkcji, takich jak getchar () i putchar () Użyj strumieni wejściowych i wyjściowych automatycznie. Strumienie leżą w kategorii 3.

Stdin: Jest to standardowy strumień wejściowy. Jest używany tam, gdzie program odczytuje dane wejściowe.

Stdout: To implikuje standardowy strumień wyjściowy używany, gdy aplikacja zapisuje dane (wyjście) do pliku.

Stderr: Ten strumień odnosi się do błędów w aplikacji. Służy do wyświetlania lub powiadomienia użytkownika o występowaniu błędu podczas wykonywania.

Wspólną składnią dla tych trzech typów jest:

Plik *stdin;
Plik *stdout;
Plik *stderr;

Standardowe wejście jest odczytywane przez urządzenie wejściowe „klawiatura”, podczas gdy standardowe wyjście i standardowe błędy są wyświetlane na ekranie monitorowania urządzenia wyjściowego. Pierwsze dwa strumienie są używane do pobierania i wyświetlania danych w prostych słowach, ale trzeci jest najczęściej używany, gdy musimy zdiagnozować błędy. Mówię o obsłudze wyjątków w językach programowania.

Standardowe wejście (stdin):

Podczas tworzenia kodu źródłowego większość funkcji zależy od strumienia stdin dla funkcji wprowadzania. Ale niektóre programy, takie jak programy DIR i LS, nie wymagają tej funkcji, ponieważ przyjmują argumenty wiersza poleceń. Ta sytuacja ma miejsce, gdy program opiera się na systemie danych wejściowych, ale nie wchodzi w interakcję z użytkownikiem. Na przykład programy związane z katalogiem i ścieżkami nie wymagają wejścia do wykonania.

Każdy plik, który jest w procesie wykonywania, jest przydzielany unikalnym numerem przez system. Nazywa się to deskryptorem pliku. W przypadku standardowego wejścia wartość deskryptora pliku wynosi „0”. W języku programowania C Deskryptor pliku ma plik zmienny * stdin, podobnie dla języka C ++. Zmienna jest zdefiniowana jako std :: cin.

Stdin w PostgreSQL

Po instalacji i konfiguracji bazy danych, aby połączyć się z serwerem, musisz podać hasło, aby kontynuować. Środki te dotyczą uwierzytelnienia użytkownika.

Skopiuj dane ze stdin do tabeli

Aby potwierdzić mechanizm stdina, musimy utworzyć stół manekina. Abyśmy mogli odczytać i kopiować dane z pliku do drugiego, włączając stdin.

>> Utwórz szkołę tabeli (ID int, Nazwa Varchar (10), Adres Varchar (20), podmiot varchar (20));

Po utworzeniu tabeli dodamy wartości w tabeli za pomocą polecenia Insert. Dodaj przykładowe dane w kilku rzędach, spoczynku zostanie dodane za pomocą „stdin”.

>> Włóż do wartości szkolnych (1, „Ahmad”, „Lahore”, „Sciences”), (2, „shazain”, „Islamabad”, „Arts”), (3, „Zain”, „Karaczi”, ',', ',', ',', ',', ',', ',', ' nauki);

Oprócz instrukcji „wstaw” istnieje alternatywa dla załadowania wartości w tabeli. Dzieje się tak przez „stdin”. W PostgreSQL wprowadzamy dane w tabeli z terminala pod względem rzędu za pomocą ogranicznika. Ten ogranicznik jest separatorem między wartościami dwóch kolumn rzędu. Ten ogranicznik może być w każdym przypadku przestrzenią, przecinkiem lub pustą. Ale stosując ogranicznik jako stdin, zaleca się CSV (wartości oddzielone przecinkami). I nie jest tu nie odwoływany żaden inny symbol. Używane jest słowo kluczowe „Kopia”, które skopiuje dane z ekranu PSQL w szczególności do tabeli.

>> Kopiuj szkołę ze stdin (delimiter ',');

Podczas korzystania z zapytania wymieniono tutaj niektóre instrukcje dotyczące umieszczania danych. Są to punkty, które mogą prowadzić użytkownika, aby móc poprawnie wprowadzić dane. Każdy wiersz powinien zostać wprowadzony w nowej linii.

Tutaj pójdziemy krok po kroku. Każda wartość zapisana przed lub między przecinkami reprezentuje każdą kolumnę. Ponieważ istnieją 4 kolumny, więc 4 wartości są używane jako CSV. Wprowadź pierwszy wiersz, a następnie naciśnij kartę.

Po zakończeniu jednego wiersza zostaniesz przeniesiony do następnego wiersza. Bez względu na to, ile wierszy chcesz dodać, podobnie jak instrukcja wstawka, wszystkie nieograniczone dane zostaną umieszczone w tabeli. Wracając do przykładu, teraz napisaliśmy drugi wiersz i kontynuowaliśmy do następnego.

Użyliśmy 2 rzędów do zademonstrowania. Rzeczywiste wstawienie przeniesie dane do znaku wymogu. Jeśli skończysz z dodaniem wierszy w tabeli i chcesz zrezygnować z tego mechanizmu, z pewnością użyjesz końca pliku (EOF).

Musisz zakończyć dodawanie danych za pomocą backslash (\) i okresu (.) Na ostatnim wierszu, gdy nie chcesz dodawać kolejnych wierszy.

Teraz spójrzmy na cały kod od zapytania do EOF. Na końcu „Kopia 3” wskazuje, że do tabeli dodaje się 3 wiersze.

Notatka: Operator EOF nie jest dodawany jako symbol w nowym rzędzie tabeli.

Dodaj dane za pośrednictwem „stdin” zgodnie z wymogiem. Możesz sprawdzić dane, które wprowadziłeś za pośrednictwem instrukcji Select.

>> Wybierz * ze szkoły;

Skopiuj dane z tabeli do stdin

Jeśli chcesz skopiować dane w jednej tabeli z tabeli, używamy do tego stdina. Nie można bezpośrednio skopiować jednej tabeli do drugiej w PostgreSQL .

Utwórz przykładową tabelę, aby skopiować wszystkie dane z tabeli (szkoła). Należy zdawać sobie sprawę z dodania danych kolumny, typu podobnego do celowanej tabeli.

Teraz dodaj dane z tego pliku za pomocą tej samej instrukcji stdin kopii. Dane mogą być takie same lub możesz je zmienić, dodając nowy wiersz, który nie był obecny w oryginalnej tabeli.

>> Kopiuj szkołę_copy ze stdin (DeLimeter ',')

Użyj instrukcji SELECT, aby uzyskać wprowadzone dane.

Wyjście za pomocą stdout zamiast instrukcji select

Gdy używamy alternatywy stdin dla instrukcji Wstaw. Podobnie stdout jest używany w miejscu instrukcji Select. Reprezentacja nie ma w postaci tabeli. W celu wyjściowego używanym ograniczeniem jest „|”. Ten ogranicznik jest automatycznie umieszczony między kolumnami w każdym rzędzie.

>> kopiuj szkołę_copy do stdout (delimiter '|');

Powstają błędy podczas korzystania z ograniczeń
Separator „|”

Jeśli używasz ogranicznika „|” W wymianie CSV spowoduje błąd. To nie skopiuje danych z terminalu i powoduje błąd składni.

Wniosek

„PostgreSQL kopia ze stdin” pomaga w powielaniu danych jednej tabeli do drugiej. W tym artykule po raz pierwszy przedstawiliśmy standardowe strumienie, stdin, to działa, teoretycznie, a następnie krótkie wyjaśnienie przykładów. Konkurencyjna krawędź stdina nad Insert Instrukcja polega na tym, że jeśli wiersz zostanie pominięty błędnie podczas kopiowania danych, możemy dodać ją między istniejącymi wierszami. Pod przewodnictwem tego samouczka będziesz w stanie skopić treść tabel.