PostgreSQL Nieznane przykłady

PostgreSQL Nieznane przykłady
Możesz określić kolumnę w PostgreSQL jako tylko szereg odpowiednich rodzajów danych. Wbudowane, określone przez użytkownika i niezbywalne typy danych to możliwości. Poza tym tablice są bardzo istotne w PostgreSQL. Nauczyłeś się o tablicach w PostgreSQL, w tym sposób konstruowania, zapytania, a czasem nawet generowania tablic za pomocą metody tablicy. Są jednak chwile, kiedy chciałbym zrobić odwrotnie i przekonwertować tablicę PostgreSQL na wiersze. Istnieje wiele przyczyn, dlaczego chcesz to zrobić. Przez chwilę powiedzmy, że szukasz skrzyżowania dwóch tablic. W PostgreSQL operator przecięcia może skutecznie to zrobić dla dwóch różnych zestawów wierszy. Jednak nie ma odpowiednika do tablic. Podobnie operator Unii dołącza do 2 par rzędów; Jednak nie ma nic porównywalnego dla tablic. Najnowocześniejsza metoda wydaje się być tajemnicą tego wszystkiego. Podczas konsumowania nie jest należy zachować ostrożność, ponieważ (jak w przypadku większości systemów komputerowych) PostgreSQL zrobiłby wszystko, co poinstruujesz, nie dokładnie to, co chcesz.

Aby w pełni opracować tę koncepcję, otwórz zainstalowaną powłokę wiersza polecenia PostgreSQL w systemie. Podaj nazwę serwera, nazwę bazy danych, numer portu, nazwę użytkownika i hasło dla konkretnego użytkownika, jeśli nie chcesz rozpocząć pracy z opcjami domyślnymi. Jeśli chcesz pracować z domyślnymi parametrami, pozostaw każdą opcję pustej i naciśnij Enter Every Option. Teraz twoja skorupa wiersza poleceń jest przygotowana do pracy.

Przykład 01: Zdefiniuj dane typu tablicy

Dobrym pomysłem jest zbadanie podstaw przed przejściem do modyfikowania wartości tablicy w bazie danych. Oto sposób określenia listy typu tekstu. Możesz zobaczyć wyjście pokazane na liście typu tekstu za pomocą klauzuli Wybierz.

>> Wybierz 'aqsa, raza, saeed' :: text [];

Rodzaj danych należy zdefiniować podczas pisania zapytania. PostgreSQL nie rozpozna typu danych, jeśli wydaje się to ciągiem. Alternatywnie możemy użyć formatu Array [], aby określić go jako typ ciągu, jak pokazano poniżej w zapytaniu. Na podstawie cytowanej poniżej wyjścia widać, że dane zostały pobrane jako typ tablicy za pomocą zapytania Wybierz.

>> Wybierz tablicę [„aqsa”, „raza”, „saeed”];

Po wybraniu tych samych danych tablicy za pomocą zapytania Wybierz podczas korzystania z klauzuli, nie działa tak, jak powinien. Na przykład wypróbuj poniższe zapytanie z klauzuli w skorupce. Sprawdzisz, że wymyśli błąd. Wynika to z faktu, że wybierz z klauzuli zakłada, że ​​dane, które pobiera, to prawdopodobnie grupa wierszy lub niektóre punkty z tabeli.

>> Wybierz * z tablicy [„aqsa”, „raza”, „saeed”];

Przykład 02: Konwertuj tablicę na wiersze

Tablica [] jest funkcją, która zwraca wartość atomową. W rezultacie pasuje tylko z wybraniem, a nie z klauzuli, ponieważ nasze dane nie były w formie „wierszu”. Dlatego otrzymaliśmy błąd w powyższym przykładzie. Oto jak użyć funkcji UNNENEST do konwertowania tablic na wiersze, gdy zapytanie nie działa z klauzulą.

>> Wybierz Unnest (tablica [„aqsa”, „raza”, „saeed”]);

Przykład 03: Konwertuj wiersze na tablicę

Aby ponownie przekształcić wiersze w tablicę, musimy zdefiniować to konkretne zapytanie w zapytaniu, aby to zrobić. Musisz użyć dwóch wybranych zapytań tutaj. Wewnętrzne zapytanie wyboru konwersje tablicę w wiersze za pomocą funkcji Unnest. Podczas gdy zewnętrzne zapytanie wyboru ponownie przekształca wszystkie te wiersze w jedną tablicę, jak pokazano na cytowanym obrazie. Uważaj; Musisz użyć mniejszych pisowni „tablicy” w zewnętrznym zapytaniu.

>> Wybierz tablicę (wybierz unnest (tablica [„aqsa”, „raza”, „saeed”]));

Przykład 04: Usuń duplikaty przy użyciu odrębnej klauzuli

Odrębne może pomóc wydobyć duplikaty z dowolnej formy danych. Jednak koniecznie wymaga użycia wierszy jako danych. Oznacza to, że ta metoda działa dla liczb całkowitych, tekstu, pływaków i innych typów danych, ale tablice nie są dozwolone. Aby usunąć duplikaty, musisz najpierw przekonwertować dane typu tablicy na rzędy za pomocą metody niezniszczonej. Następnie te przekonwertowane wiersze danych zostaną przekazane do odrębnej klauzuli. Możesz rzucić okiem na dane wyjściowe poniżej, że tablica została przekonwertowana na rzędy, a następnie tylko odrębne wartości od tych wierszy zostały pobrane przy użyciu odrębnej klauzuli.

>> Wybierz odrębny UNNEST ('aqsa, Raza, Saeed, Raza, Uzma, aqsa' :: text []);

Jeśli potrzebujesz tablicy jako wyjścia, użyj funkcji array () w pierwszym zapytaniu i użyj klauzuli odrębnej w następnym zapytaniu. Z wyświetlonego obrazu widać, że wyjście zostało pokazane w formie tablicy, a nie w wierszu. Podczas gdy wyjście zawiera tylko odrębne wartości.

>> Wybierz tablicę (wybierz wyraźny unnest ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: text []));

Przykład 05: Usuń duplikaty podczas korzystania z klauzuli zamówienia

Możesz także usunąć zduplikowane wartości z tablicy typu float, jak pokazano poniżej. Wraz z odrębnym zapytaniem będziemy używać klauzuli kolejności, aby uzyskać wynik w kolejności sortowania określonej wartości. Wypróbuj poniżej wyświetlone zapytanie w skorupce wiersza polecenia, aby to zrobić.

>> Wybierz odrębny UNNEST ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []) zamów o 1;

Po pierwsze, tablica została przekonwertowana na rzędy za pomocą funkcji Unnenest; Następnie te wiersze zostaną sortowane w kolejności rosnącej za pomocą klauzuli kolejności, jak pokazano poniżej.

Aby ponownie przekonwertować wiersze na tablicę, użyj tego samego zapytania w skorupce podczas używania z małą funkcją alfabetyczną (). Możesz rzucić okiem na poniższe wyjście, że tablica została najpierw przekonwertowana na wiersze, wówczas wybrano tylko odrębne wartości. W końcu wiersze zostaną ponownie przekształcone w tablicę.

>> Wybierz tablicę (wybierz odrębny UNNEST ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []));

Wniosek:

Na koniec z powodzeniem wdrożyłeś każdy przykład z tego przewodnika. Mamy nadzieję, że nie masz żadnego problemu podczas wykonywania metody unnest (), odrębnej i array () w przykładach.