PostgreSQL Funkcja SUBSTRING() z przykładem wyrażenia regularnego

⚡ Inteligentne podsumowanie

PostgreSQL PODCIĄG np.tracts zwraca część ciągu znaków, używając opcjonalnej pozycji początkowej i długości, a także dopasowuje tekst do wyrażenia regularnego POSIX w celu wyodrębnienia wzorców, takich jak liczby lub kody.

  • 📋 Składnia: substring( string [od początku] [dla długości] ) zwraca część ciągu źródłowego.
  • 1️⃣ Pozycje: Pozycje znaków zaczynają się od 1, a pominięcie długości oznacza koniec ciągu.
  • 🔎 Wyrażenie regularne: SUBSTRING(string ZE wzorca) np.tracto pierwszy tekst pasujący do wyrażenia regularnego POSIX.
  • 🧮 Grouping: Grupa ujęta w nawiasy we wzorcu zwraca tylko przechwyconą część dopasowania.
  • 🖥️. pgAdmin: Każde zapytanie o podciąg działa w ten sam sposób w edytorze zapytań pgAdmin.
  • 🤖 Pomoc AI: Asystenci AI generują i wyjaśniają wzorce wyrażeń regularnych w celu dokładnego tworzenia podciągówtraccja.

PostgreSQL Funkcja SUBSTRING z wyrażeniem regularnym

Czym jest PostgreSQL Podciąg?

PostgreSQL funkcja podciągu pomaga w np.tract i zwraca część ciągu. Zamiast zwracać cały ciąg, zwraca tylko jego część, co jest przydatne do przycinania kodów i odczytu pól o stałej szerokości.

Składnia

PostgreSQL Funkcja substring przyjmuje następującą składnię:

substring( string [from starting_position] [for length] )

Parametry

Poniższe parametry są używane z funkcją substring:

ciąg Ciąg źródłowy, którego typ danych to varchar, char, string itp.
pozycja startowa Parametr opcjonalny. Oznacza miejsce, w którym znajduje się byłytracRozpocznie się pisanie ciągu. Jeśli pominiesz ten parametr,traccja zaczyna się od pozycji 1, która jest pierwszym znakiem w ciągu.
długość Parametr opcjonalny. Oznacza liczbę znaków, które mają zostać pobrane.tracted z ciągu. Jeśli pominiesz ten parametr, funkcja extracts od pozycji początkowej do końca ciągu.

Przykłady

W tym przykładzie chcemy wyeksploatowaćtracpierwsze 4 znaki ze słowa Guru99:

SELECT substring('Guru99' for 4);

Polecenie zwróci następującą informację:

PostgreSQL Podciąg

Nie określiliśmy pozycji początkowej, więc extracpodciąg zaczynał się od pozycji 1. Wyekstrahowano cztery znakitraczwrócił powyższy wynik.

Poniższy przykład pokazuje, jak określić pozycję początkową:

SELECT substring('Guru99' from 1 for 4);

Polecenie zwróci następującą informację:

PostgreSQL Podciąg

Określiliśmy, że byłytracciąg znaków powinien zaczynać się od pozycji 1, a 4 znaki powinny byćtracprzetrząsać.

Pozwól namtract 99 z ciągu Guru99:

SELECT substring('Guru99' from 5);

Polecenie zwróci następującą informację:

PostgreSQL Podciąg

Określiliśmy pozycję początkową jako 5. Ponieważ liczba znaków do wyświetleniatracnie określono ted, extraccja biegła do końca sznurka.

Oto kolejny przykład:

SELECT substring('Guru99' from 5 for 2);

Polecenie zwróci następującą informację:

PostgreSQL Podciąg

Zaczęliśmy od byłegotraccja na pozycji 5, a 2 znaki zostały usuniętetracprzetrząsać.

Rozważ tabelę Book podaną poniżej:

PostgreSQL Tabela książek podciągowych

Chcemy mieć ogólne pojęcie o nazwie każdej książki. Możemy np.tractylko pierwsze 15 znaków z kolumny nazwy tabeli:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Polecenie zwróci następującą informację:

PostgreSQL Wynik podciągu

Mamy teraz przybliżone pojęcie o nazwie każdej książki.

Dopasowywanie podciągów za pomocą wyrażenia regularnego SQL

In PostgreSQL, możesz byćtracpodciąg ta pasujący do określonego wyrażenia regularnego POSIX. W tym przypadku funkcja podciągu używa następującej składni:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Oto wyjaśnienie powyższych parametrów. Ciąg jest ciągiem źródłowym, którego typ danych jest varchar, char, string itd. Wzorzec_dopasowania to wzorzec używany do wyszukiwania w ciągu.

Przykłady

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Polecenie zwróci następującą informację:

Dopasowywanie podciągów za pomocą wyrażenia regularnego SQL

Nasz ciąg wejściowy to Twój wiek to 22 lata. W tym wzorze szukamy wzorca liczbowego; po jego znalezieniu funkcja podciągu, np.tracto tylko dwa znaki.

Jak dopasować podciągi za pomocą pgAdmin

Zobaczmy teraz, jak wykonać te czynności za pomocą pgAdmin. Zapytania, które nie wymagają bazy danych, można wykonać bezpośrednio z okna edytora zapytań. Wystarczy wykonać następujące czynności:

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2) W pgAdmin kliknij ikonę Narzędzia zapytań.

Dopasowywanie podciągów za pomocą pgAdmin

Otworzy się okno edytora zapytań.

Krok 3) Wpisz następujące zapytanie w oknie edytora.

SELECT substring('Guru99' for 4);

Krok 4) Kliknij ikonę Wykonaj, aby wykonać zapytanie.

Dopasowywanie podciągów za pomocą pgAdmin

Krok 5) Wykonanie zapytania zostało zakończone. Powinno ono zwrócić następujący wynik:

Dopasowywanie podciągów za pomocą pgAdmin

2 przykład:

SELECT substring('Guru99' from 1 for 4);

Powinno zostać zwrócone:

Dopasowywanie podciągów za pomocą pgAdmin

Oto następny przykład:

SELECT substring('Guru99' from 5);

Powinno zostać zwrócone:

Dopasowywanie podciągów za pomocą pgAdmin

3 przykład:

SELECT substring('Guru99' from 5 for 2);

Powinno zostać zwrócone:

Dopasowywanie podciągów za pomocą pgAdmin

Teraz uruchommy przykład, korzystając z tabeli Book z bazy danych Demo:

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2) Na pasku nawigacyjnym po lewej stronie kliknij Bazy danych, a następnie kliknij Demo.

Dopasowywanie podciągów za pomocą pgAdmin

Krok 3) Wpisz zapytanie w edytorze zapytań:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Krok 4) Kliknij przycisk Wykonaj.

Dopasowywanie podciągów za pomocą pgAdmin

Powinno zostać zwrócone:

PostgreSQL Wynik podciągu

Mamy teraz podstawowe pojęcie o nazwie każdej książki.

Dopasowywanie podciągów za pomocą wyrażenia regularnego SQL

Aby wykonać to samo w pgAdmin, wykonaj następujące czynności:

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2) Kliknij ikonę Narzędzia do wysyłania zapytań.

Dopasowywanie podciągów za pomocą wyrażenia regularnego SQL

Otworzy się okno edytora zapytań.

Krok 3) Wpisz następujące zapytanie w oknie edytora.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Krok 4) Kliknij ikonę Wykonaj, aby wykonać zapytanie.

Dopasowywanie podciągów za pomocą wyrażenia regularnego SQL

Powinno zostać zwrócone:

Dopasowywanie podciągów za pomocą wyrażenia regularnego SQL

Pobierz bazę danych używaną w tym samouczku

FAQ

SUBSTR to skrócona wersja funkcji SUBSTRING, która zwraca fragment ciągu. Funkcja SUBSTRING obsługuje również standardowe słowa kluczowe SQL FROM i FOR oraz wyrażenia regularne POSIX, natomiast SUBSTR akceptuje jedynie argumenty pozycji i długości rozdzielone przecinkami.

PostgreSQL Funkcja SUBSTRING opiera się na jedynkach, więc pierwszy znak znajduje się na pozycji 1, a nie 0. Przekazanie pozycji początkowej 1 powoduje zwrócenie ciągu od pierwszego znaku w górę.

Gdy wzorzec POSIX niczego nie spełnia, funkcja SUBSTRING zwraca NULL zamiast pustego ciągu. Testowanie wyniku za pomocą IS NULL pozwala obsłużyć wiersze, w których brakuje oczekiwanego wzorca.

Użyj wyrażenia regularnego, które przechwytuje to, co następuje po znaku. Na przykład SUBSTRING(email FROM '@(.*)') zwraca wszystko po znaku @, podając domenę każdego adresu e-mail.

Użyj funkcji SUBSTRING, gdy potrzebujesz pierwszego pasującego tekstu jako prostej wartości. Wybierz regexp_matches(), gdy chcesz zwrócić każde dopasowanie lub wiele grup przechwytujących jako tablicę, ponieważ funkcja SUBSTRING zwraca tylko pierwsze dopasowanie.

Asystenci AI, tacy jak GitHub Copilot, zamieniają opis w języku potocznym na wzorzec POSIX, wyjaśniają, do czego pasuje każdy token, i sugerują ciągi testowe, co zmniejsza konieczność prób i błędów podczas tworzenia np. podciągów.traczapytania dotyczące cji.

Tak. Opisz fragment tekstu, którego szukasz, a asystent AI utworzy wywołanie SUBSTRING z odpowiednimi pozycjami lub wyrażeniem regularnym, które możesz uruchomić i dopracować w pgAdmin.

Tak, dopasowanie POSIX SUBSTRING domyślnie uwzględnia wielkość liter. Aby dopasować bez względu na wielkość liter, należy zmniejszyć oba pola wejściowe, na przykład SUBSTRING(lower(name) FROM lower(pattern)), aby wielkie i małe litery były traktowane tak samo.

Podsumuj ten post następująco: