PostgreSQL SUBSTRING() függvény reguláris kifejezéssel

⚡ Okos összefoglaló

PostgreSQL SUBSTRING pl.tracts és egy karakterlánc egy részét adja vissza, opcionális kezdőpozíciót és hosszt használva, valamint a szöveget egy POSIX reguláris kifejezéssel is összehasonlítja, hogy mintákat, például számokat vagy kódokat kinyerjen.

  • 📋 Syntax: A substring( string [from start] [for length] ) a forrás karakterlánc egy részét adja vissza.
  • 1️⃣ pozíciók: A karakterpozíciók 1-gyel kezdődnek, a hossz elhagyása esetén pedig a karakterlánc végéig olvasunk.
  • ???? Reguláris kifejezés: SUBSTRING(karakterlánc FROM minta) pl.tracaz első olyan szöveg, amely illeszkedik egy POSIX reguláris kifejezésre.
  • 🧮 Grouping: A mintában zárójelben lévő csoport csak az egyezés rögzített részét adja vissza.
  • 🖥️ pgAdmin: Minden alkarakterlánc-lekérdezés ugyanúgy fut a pgAdmin lekérdezésszerkesztőben.
  • 🤖 MI segítség: A mesterséges intelligencia asszisztensei reguláris kifejezésmintákat generálnak és magyaráznak a pontos alkarakterlánc-kifejezésekheztracCIÓ.

PostgreSQL SUBSTRING függvény reguláris kifejezéssel

Mi a PostgreSQL Alkarakterlánc?

Az PostgreSQL a substring függvény segít a példákbantract és egy karakterlánc egy részét adja vissza. A teljes karakterlánc visszaadása helyett csak annak egy részét adja vissza, ami hasznos kódok vágásához és fix szélességű mezők olvasásához.

Szintaxis

Az PostgreSQL A substring függvény a következő szintaxist veszi fel:

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

paraméterek

A következő paramétereket használjuk a substring függvénnyel:

húr A forráskarakterlánc, amelynek adattípusa: varchar, char, string stb.
kezdő pozíció Opcionális paraméter. Azt a helyet jelöli, ahol az ex.tracA karakterlánc végrehajtása megkezdődik. Ha kihagyja ezt a paramétert, a példatracA ció az 1. pozíciótól kezdődik, ami a karakterlánc első karaktere.
hossz Opcionális paraméter. A kiírandó karakterek számát jelöli.traca karakterláncból. Ha elhagyja ezt a paramétert, az ex függvénytracts a kezdő_pozíciótól a karakterlánc végéig.

Példák

Ebben a példában azt szeretnénk kideríteni, hogytraca szó első 4 karaktere Guru99:

SELECT substring('Guru99' for 4);

A parancs a következőt adja vissza:

PostgreSQL Alkarakterlánc

Nem adtuk meg a kiindulási pozíciót, így az extracaz alkarakterlánc 1. pozícióban kezdődött. Négy karaktert különítettek el.traca fenti eredmény visszaadásához szükséges.

A következő példa bemutatja, hogyan kell megadni a kiindulási pozíciót:

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

A parancs a következőt adja vissza:

PostgreSQL Alkarakterlánc

Meghatároztuk, hogy az extracAz alkarakterlánc expressziójának az 1. pozíciótól kell kezdődnie, és 4 karakternek kell lennie.tracted.

Nézzük meg pl.tract 99 a húrból Guru99:

SELECT substring('Guru99' from 5);

A parancs a következőt adja vissza:

PostgreSQL Alkarakterlánc

A kezdőpozíciót 5-nek adtuk meg. Mivel a végrehajtandó karakterek számatracTed nevét nem nevezték meg, az extraca ció a húr végéig futott.

Itt egy másik példa:

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

A parancs a következőt adja vissza:

PostgreSQL Alkarakterlánc

Elkezdtük az exünkettracció az 5. pozícióban, és 2 karakter volt extracted.

Tekintsük az alábbi könyvtáblázatot:

PostgreSQL Részkarakterlánc Könyv tábla

Szeretnénk egy nagyjából pontos képet kapni az egyes könyvek címéről. Példáultraccsak a tábla név oszlopának első 15 karaktere:

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

A parancs a következőt adja vissza:

PostgreSQL Alkarakterlánc-eredmény

Most már van hozzávetőleges elképzelésünk minden könyv nevéről.

Alkarakterláncok illesztése SQL reguláris kifejezéssel

In PostgreSQL, akkor pl.tracegy megadott POSIX reguláris kifejezésre illeszkedő részkarakterlánc. Ebben az esetben a részkarakterlánc függvény a következő szintaxist használja:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Íme a fenti paraméterek magyarázata. A karakterlánc a forráskarakterlánc, amelynek adattípus A varchar, char, string stb. lehet. A matching_pattern a karakterláncban való kereséshez használt minta.

Példák

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

A parancs a következőt adja vissza:

Alkarakterláncok illesztése SQL reguláris kifejezéssel

A bemeneti karakterláncunk a következő: Az életkorod 22. A mintában egy numerikus mintát keresünk; ha megtaláljuk, a függvény ex alkarakterláncatraccsak két karakter.

Hogyan illeszthetők össze a karakterláncok a pgAdmin használatával

Most nézzük meg, hogyan hajthatók végre ezek a műveletek a pgAdmin használatával. Az adatbázist nem igénylő lekérdezések közvetlenül a lekérdezésszerkesztő ablakból futtathatók. Ehhez tegye a következőket:

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2) A pgAdmin felületén kattintson a Lekérdező eszköz ikonra.

Alkarakterláncok egyeztetése a pgAdmin használatával

Megnyílik a lekérdezésszerkesztő ablak.

Step 3) Írd be a következő lekérdezést a szerkesztőablakba.

SELECT substring('Guru99' for 4);

Step 4) A lekérdezés végrehajtásához kattintson a Végrehajtás ikonra.

Alkarakterláncok egyeztetése a pgAdmin használatával

Step 5) A lekérdezés végrehajtása befejeződött. A következő eredményt kell visszaadnia:

Alkarakterláncok egyeztetése a pgAdmin használatával

Példa 2:

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

A következőt kell visszaadnia:

Alkarakterláncok egyeztetése a pgAdmin használatával

Íme a következő példa:

SELECT substring('Guru99' from 5);

A következőt kell visszaadnia:

Alkarakterláncok egyeztetése a pgAdmin használatával

Példa 3:

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

A következőt kell visszaadnia:

Alkarakterláncok egyeztetése a pgAdmin használatával

Most futtassuk a példát a Demo adatbázis Book táblázatával:

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2) A bal oldali navigációs sávon kattintson az Adatbázisok, majd a Demó elemre.

Alkarakterláncok egyeztetése a pgAdmin használatával

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

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

Step 4) Kattintson a Végrehajtás gombra.

Alkarakterláncok egyeztetése a pgAdmin használatával

A következőt kell visszaadnia:

PostgreSQL Alkarakterlánc-eredmény

Most már minden könyv nevéről van egy alapötletünk.

Alkarakterláncok illesztése SQL reguláris kifejezéssel

Ugyaneznek a pgAdminban való végrehajtásához tegye a következőket:

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2) Kattintson a Lekérdező eszköz ikonra.

Alkarakterláncok illesztése SQL reguláris kifejezéssel

Megnyílik a lekérdezésszerkesztő ablak.

Step 3) Írd be a következő lekérdezést a szerkesztőablakba.

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

Step 4) A lekérdezés végrehajtásához kattintson a Végrehajtás ikonra.

Alkarakterláncok illesztése SQL reguláris kifejezéssel

A következőt kell visszaadnia:

Alkarakterláncok illesztése SQL reguláris kifejezéssel

Töltse le az oktatóanyagban használt adatbázist

GYIK

A SUBSTR a SUBSTRING rövidebb álneve, és egy karakterlánc egy részét adja vissza. A SUBSTRING támogatja az SQL-szabványú FROM és FOR kulcsszavakat, valamint a POSIX reguláris kifejezéseket, míg a SUBSTR csak vesszővel elválasztott pozíció- és hosszargumentumokat fogad el.

PostgreSQL A SUBSTRING egy alapú, tehát az első karakter az 1-es pozícióban található, nem a 0-ban. Az 1-es kezdőpozíció átadása az első karaktertől kezdődően adja vissza a karakterláncot.

Ha a POSIX minta semmivel sem egyezik, a SUBSTRING függvény NULL értéket ad vissza üres karakterlánc helyett. Az eredmény IS NULL paraméterrel történő tesztelése lehetővé teszi azon sorok kezelését, amelyekben a várt minta hiányzik.

Használjon egy reguláris kifejezést, amely rögzíti a karakter utáni részt. Például a SUBSTRING(email FROM '@(.*)') a @ jel utáni összes részt visszaadja, megadva az egyes e-mail címek domain részét.

Használd a SUBSTRING függvényt, ha az első egyező szövegre egyszerű értékként van szükséged. Válaszd a regexp_matches() függvényt, ha minden egyezést vagy több rögzítési csoportot tömbként szeretnél visszaadni, mivel a SUBSTRING csak az első egyezést adja vissza.

Az olyan mesterséges intelligencia asszisztensek, mint a GitHub Copilot, egy egyszerű angol leírást POSIX mintává alakítanak, elmagyarázzák, hogy az egyes tokenek mire illeszkednek, és tesztkarakterláncokat javasolnak, ami csökkenti a próbálkozásokat és hibákat az alkarakterláncok létrehozásakor, pl.tracciós lekérdezések.

Igen. Írd le a kívánt szövegrészt, és az AI asszisztens egy SUBSTRING hívást készít a megfelelő pozíciókkal vagy reguláris kifejezéssel, amelyet a pgAdmin-on belül futtathatsz és finomíthatsz.

Igen, a POSIX SUBSTRING egyezés alapértelmezés szerint megkülönbözteti a kis- és nagybetűket. A kis- és nagybetűk közötti egyezéshez mindkét bemenetet alacsonyabbra kell állítani, például SUBSTRING(lower(név) FROM lower(minta)), így a nagy- és kisbetűket ugyanúgy kezeli a rendszer.

Foglald össze ezt a bejegyzést a következőképpen: