Čo je PostgreSQL podreťazec?
Funkcia podreťazca PostgreSQL vám pomôže extrahovať a vrátiť časť reťazca. Namiesto vrátenia celého reťazca vráti iba jeho časť.
V tomto výučbe PostgreSQL sa dozviete:
- Čo je Postgresql podreťazec?
- Syntax
- Príklady
- Zhoda podreťazcov s regulárnym výrazom SQL
- Pomocou pgAdmin
Syntax
Podreťazcová funkcia PostgreSQL má nasledujúcu syntax:
substring( string [from starting_position] [for length] )
Parametre
názov | Popis |
struna | Zdrojový reťazec, ktorého typ údajov je varchar, char, string atď. |
počiatočná_pozícia | Je to voliteľný parameter. Označuje miesto, kde sa začne extrakcia reťazca. Ak tento parameter vynecháte, extrakcia sa začne od pozície 1, ktorá je prvým znakom v reťazci. |
dĺžka | Je to voliteľný parameter. Označuje počet znakov, ktoré sa majú z reťazca extrahovať. Ak tento parameter vynecháte, funkcia sa extrahuje z počiatočnej polohy na koniec reťazca. |
Príklady
V tomto príklade chceme extrahovať prvé 4 znaky zo slova Guru99:
SELECT substring('Guru99' for 4);
Príkaz vráti nasledujúce:
Nezadali sme počiatočnú pozíciu, takže extrakcia podreťazca sa začína na pozícii 1. Na vrátenie vyššie uvedeného boli extrahované 4 znaky.
Nasledujúci príklad ukazuje, ako určiť počiatočnú pozíciu:
SELECT substring('Guru99' from 1 for 4);
Príkaz vráti nasledujúce:
Zadali sme, že extrakcia podreťazca by mala začínať od pozície 1 a mali by sa extrahovať 4 znaky.
Vyťažme 99 z reťazca Guru99:
SELECT substring('Guru99' from 5);
Príkaz vráti nasledujúce:
Počiatočnú pozíciu sme určili ako 5. Pretože nebol zadaný počet znakov, ktoré sa majú extrahovať, extrakcia prebehla na koniec reťazca.
Tu je ďalší príklad:
SELECT substring('Guru99' from 5 for 2);
Príkaz vráti nasledujúce:
Extrakciu sme začali na pozícii 5 a extrahovali sme 2 znaky.
Zvážte nižšie uvedenú tabuľku kníh:
Chceme získať približnú predstavu o názve každej knihy. Zo stĺpca s názvami tabuľky však môžeme extrahovať iba prvých 15 znakov:
SELECTid,SUBSTRING(name, 1, 15 ) AS name_initialFROMBookORDER BYid;
Príkaz vráti nasledujúce:
Teraz máme približnú predstavu o názve každej knihy.
Zhoda podreťazcov s regulárnym výrazom SQL
V PostgreSQL môžeme extrahovať podreťazec zodpovedajúci zadanému regulárnemu výrazu POSIX. V tomto prípade sa funkcia podreťazca používa s nasledujúcou syntaxou:
SUBSTRING(string FROM matching_pattern)
alebo
SUBSTRING(string, matching_pattern);
Tu je vysvetlenie vyššie uvedených parametrov:
Reťazec je zdrojový reťazec, ktorého dátovým typom je varchar, char, string atď.
Matching_pattern je vzor, ktorý sa má použiť na vyhľadávanie v reťazci.
Príklady:
SELECTSUBSTRING ('Your age is 22','([0-9]{1,2})') as age;
Príkaz vráti nasledujúce:
Náš vstupný reťazec je, keď máte 22 rokov. Vo vzore hľadáme v našom reťazci číselný vzor, ak je tento nájdený, funkcia podreťazca by mala extrahovať iba dva znaky.
Pomocou pgAdmin
Teraz sa pozrime, ako sa akcie vykonávajú pomocou programu pgAdmin.
Vyššie uvedené dotazy, kde nepotrebujeme databázu, je možné vykonať priamo z okna editora dotazov. Postupujte takto:
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2) Kliknite na ikonu Dotazovací nástroj.
Otvorí sa okno editora dotazov.
Krok 3) Do okna editora zadajte nasledujúci dotaz.
SELECT substring('Guru99' for 4);
Krok 4) Kliknutím na ikonu Execute vykonajte dopyt.
Mal by vrátiť nasledujúce:
Príklad 2:
SELECT substring('Guru99' from 1 for 4);
Mal by vrátiť nasledujúce:
Tu je ďalší príklad:
SELECT substring('Guru99' from 5);
Mal by vrátiť nasledujúce:
Príklad 3:
SELECT substring('Guru99' from 5 for 2);
Mal by vrátiť nasledujúce:
Teraz si ukážme príklad pomocou tabuľky Kniha demo databázy:
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2)
- Na navigačnom paneli vľavo kliknite na položku Databázy.
- Kliknite na ukážku.
Krok 3) Zadajte dopyt do editora dotazov:
SELECTid,SUBSTRING(name, 1, 15 ) AS name_initialFROMBookORDER BYid;
Krok 4) Kliknite na tlačidlo Vykonať.
Mal by vrátiť nasledujúce:
Teraz máme základnú predstavu o názve každej knihy.
Zhoda podreťazcov s regulárnym výrazom SQL
To isté dosiahnete na pgAdmin, postupujte takto:
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2) Kliknite na ikonu Dotazovací nástroj.
Otvorí sa okno editora dotazov.
Krok 3) Do okna editora zadajte nasledujúci dotaz.
SELECTSUBSTRING ('Your age is 22','([0-9]{1,2})') as age;
Krok 4) Kliknutím na ikonu Execute vykonajte dopyt.
Mal by vrátiť nasledujúce:
Zhrnutie:
- Funkcia PostgreSQL Substring pomáha pri extrakcii a vrátení iba časti reťazca.
- Prvý znak reťazca je na pozícii 1.
- Ak nie je zadaný počet znakov, ktoré sa majú z reťazca extrahovať, funkcia extrahuje znaky zo zadanej počiatočnej polohy na koniec reťazca.
- Ak je zadaný počet znakov, ktoré sa majú extrahovať, extrahuje sa iba tento počet znakov.
Stiahnite si databázu použitú v tomto výučbe