PostgreSQL SUBSTRING() funkcija s primjerom regularnog izraza

โšก Pametni saลพetak

PostgreSQL SUBSTRING extracts vraฤ‡a dio niza, koristeฤ‡i opcionalnu poฤetnu poziciju i duljinu, a takoฤ‘er usporeฤ‘uje tekst s POSIX regularnim izrazom kako bi izvukla uzorke poput brojeva ili kodova.

  • ๐Ÿ“‹ Sintaksa: podniz(niz [od poฤetka] [za duljinu]) vraฤ‡a dio izvornog niza.
  • 1๏ธโƒฃ pozicije: Pozicije znakova poฤinju od 1, a izostavljanjem duljine ฤita se do kraja niza.
  • ๐Ÿ”Ž Regularni izraz: SUBSTRING(niz IZ uzorka) npr.tracts prvi tekst koji odgovara POSIX regularnom izrazu.
  • ๐Ÿงฎ Grouping: Grupa u zagradama u uzorku vraฤ‡a samo taj zabiljeลพeni dio podudaranja.
  • ๐Ÿ–ฅ๏ธ pgAdmin: Svaki upit podniza izvrลกava se na isti naฤin unutar pgAdmin editora upita.
  • ๐Ÿค– Pomoฤ‡ za umjetnu inteligenciju: AI asistenti generiraju i objaลกnjavaju regularne izraze za toฤan podniz extraction.

PostgreSQL Funkcija SUBSTRING s regularnim izrazom

ล to je PostgreSQL Podniz?

The PostgreSQL Funkcija podniza vam pomaลพe da extract i vraฤ‡a dio niza. Umjesto vraฤ‡anja cijelog niza, vraฤ‡a samo njegov dio, ลกto je korisno za skraฤ‡ivanje kodova i ฤitanje polja fiksne ลกirine.

Sintaksa

The PostgreSQL funkcija podniza ima sljedeฤ‡u sintaksu:

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

Parametri

Sljedeฤ‡i parametri se koriste s funkcijom substring:

niz Izvorni niz ฤiji je tip podataka varchar, char, string itd.
poฤetni_poloลพaj Neobavezni parametar. Oznaฤava mjesto gdje se extracIzrada niza ฤ‡e zapoฤeti. Ako izostavite ovaj parametar, extracPoฤetak niza poฤinje od pozicije 1, ลกto je prvi znak u nizu.
duลพina Neobavezni parametar. Oznaฤava broj znakova koji ฤ‡e se prikazati.traciz niza. Ako izostavite ovaj parametar, funkcija extracts od poฤetne_pozicije do kraja niza.

Primjeri

U ovom primjeru ลพelimo objasnititracprva 4 znaka iz rijeฤi Guru99:

SELECT substring('Guru99' for 4);

Naredba ฤ‡e vratiti sljedeฤ‡e:

PostgreSQL Podniz

Nismo odredili poฤetnu poziciju, pa je bivลกitracPoฤelo je na poziciji 1. ฤŒetiri znaka su izostavljenatracpotrebno je vratiti gornji rezultat.

Sljedeฤ‡i primjer pokazuje kako odrediti poฤetnu poziciju:

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

Naredba ฤ‡e vratiti sljedeฤ‡e:

PostgreSQL Podniz

Naveli smo da bivลกitracPodniz treba zapoฤeti od pozicije 1, a 4 znaka trebaju biti extracted.

Neka nam budetract 99 iz niza Guru99:

SELECT substring('Guru99' from 5);

Naredba ฤ‡e vratiti sljedeฤ‡e:

PostgreSQL Podniz

Poฤetnu poziciju smo odredili kao 5. Buduฤ‡i da je broj znakova koje treba prikazatitracted nije bio naveden, bivลกitraccija je iลกla do kraja niza.

Evo joลก jednog primjera:

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

Naredba ฤ‡e vratiti sljedeฤ‡e:

PostgreSQL Podniz

Zapoฤeli smo bivลกi/bivลกatraccija na poziciji 5, a 2 znaka su bila izostavljenatracted.

Razmotrite donju tablicu knjiga:

PostgreSQL Tablica knjige podnizova

ลฝelimo dobiti okvirnu ideju o nazivu svake knjige. Moลพemo npr.tracsamo prvih 15 znakova iz stupca s imenom u tablici:

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

Naredba ฤ‡e vratiti sljedeฤ‡e:

PostgreSQL Rezultat podniza

Sada imamo okvirnu ideju o nazivu svake knjige.

Usklaฤ‘ivanje podnizova sa SQL regularnim izrazom

In PostgreSQL, moลพeลก bivลกitracpodniz koji odgovara odreฤ‘enom POSIX regularnom izrazu. U ovom sluฤaju, funkcija podniza koristi sljedeฤ‡u sintaksu:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Evo objaลกnjenja gore navedenih parametara. Niz je izvorni niz, ฤiji tip podataka je varchar, char, string i tako dalje. Matching_pattern je uzorak koji se koristi za pretraลพivanje u stringu.

Primjeri

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

Naredba ฤ‡e vratiti sljedeฤ‡e:

Usklaฤ‘ivanje podnizova sa SQL regularnim izrazom

Naลก ulazni niz je Vaลกa dob je 22. U uzorku traลพimo numeriฤki uzorak; kada ga pronaฤ‘e, funkcija podniza extracsamo dva znaka.

Kako uskladiti podnizove pomoฤ‡u pgAdmin-a

Sada pogledajmo kako se ove radnje izvode pomoฤ‡u pgAdmin-a. Upiti koji ne trebaju bazu podataka mogu se izvrลกiti izravno iz prozora ureฤ‘ivaฤa upita. Samo uฤinite sljedeฤ‡e:

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2) Na pgAdminu kliknite ikonu Alata za upite.

Podudaranje podnizova pomoฤ‡u pgAdmin-a

Otvorit ฤ‡e se prozor ureฤ‘ivaฤa upita.

Korak 3) U prozor editora upiลกite sljedeฤ‡i upit.

SELECT substring('Guru99' for 4);

Korak 4) Pritisnite ikonu Izvrลกi da biste izvrลกili upit.

Podudaranje podnizova pomoฤ‡u pgAdmin-a

Korak 5) Izvrลกavanje upita je zavrลกeno. Trebao bi vratiti sljedeฤ‡e:

Podudaranje podnizova pomoฤ‡u pgAdmin-a

Primjer 2:

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

Trebao bi vratiti sljedeฤ‡e:

Podudaranje podnizova pomoฤ‡u pgAdmin-a

Evo sljedeฤ‡eg primjera:

SELECT substring('Guru99' from 5);

Trebao bi vratiti sljedeฤ‡e:

Podudaranje podnizova pomoฤ‡u pgAdmin-a

Primjer 3:

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

Trebao bi vratiti sljedeฤ‡e:

Podudaranje podnizova pomoฤ‡u pgAdmin-a

Sada pokrenimo primjer pomoฤ‡u tablice Book Demo baze podataka:

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2) Na navigacijskoj traci s lijeve strane kliknite Baze podataka, a zatim kliknite Demo.

Podudaranje podnizova pomoฤ‡u pgAdmin-a

Korak 3) Unesite upit u ureฤ‘ivaฤ upita:

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

Korak 4) Pritisnite gumb Izvrลกi.

Podudaranje podnizova pomoฤ‡u pgAdmin-a

Trebao bi vratiti sljedeฤ‡e:

PostgreSQL Rezultat podniza

Sada imamo osnovnu ideju imena svake knjige.

Usklaฤ‘ivanje podnizova sa SQL regularnim izrazom

Da biste postigli isto na pgAdmin-u, uฤinite sljedeฤ‡e:

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2) Kliknite ikonu Alata za upite.

Usklaฤ‘ivanje podnizova sa SQL regularnim izrazom

Otvorit ฤ‡e se prozor ureฤ‘ivaฤa upita.

Korak 3) U prozor editora upiลกite sljedeฤ‡i upit.

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

Korak 4) Pritisnite ikonu Izvrลกi da biste izvrลกili upit.

Usklaฤ‘ivanje podnizova sa SQL regularnim izrazom

Trebao bi vratiti sljedeฤ‡e:

Usklaฤ‘ivanje podnizova sa SQL regularnim izrazom

Preuzmite bazu podataka koriลกtenu u ovom vodiฤu

Pitanja i odgovori

SUBSTR je kraฤ‡i alias od SUBSTRING i vraฤ‡a dio niza. SUBSTRING takoฤ‘er podrลพava SQL-standardne kljuฤne rijeฤi FROM i FOR plus POSIX regularne izraze, dok SUBSTR prihvaฤ‡a samo argumente pozicije i duljine odvojene zarezima.

PostgreSQL SUBSTRING se temelji na jedinici, tako da se prvi znak nalazi na poziciji 1, a ne 0. Prosljeฤ‘ivanje poฤetne pozicije 1 vraฤ‡a niz od prvog znaka nadalje.

Kada POSIX uzorak ne odgovara niฤemu, SUBSTRING vraฤ‡a NULL umjesto praznog niza. Testiranje rezultata s IS NULL omoguฤ‡uje vam rukovanje retcima gdje oฤekivani uzorak nedostaje.

Koristite regularni izraz koji obuhvaฤ‡a ono ลกto slijedi znak. Na primjer, SUBSTRING(email FROM '@(.*)') vraฤ‡a sve nakon znaka @, dajuฤ‡i vam dio domene svake adrese e-poลกte.

Koristite SUBSTRING kada vam je potreban prvi odgovarajuฤ‡i tekst kao jednostavna vrijednost. Odaberite regexp_matches() kada ลพelite da se svako podudaranje ili viลกe grupa za snimanje vrati kao niz, buduฤ‡i da SUBSTRING vraฤ‡a samo prvo podudaranje.

AI asistenti poput GitHub Copilota pretvaraju opis na jednostavnom engleskom jeziku u POSIX uzorak, objaลกnjavaju ฤemu odgovara svaki token i predlaลพu testne nizove, ลกto smanjuje pokuลกaje i pogreลกke pri izgradnji podniza extracupiti o ciji.

Da. Opiลกite dio teksta koji ลพelite, a AI asistent ฤ‡e izraditi SUBSTRING poziv s ispravnim pozicijama ili regularnim izrazom, koji moลพete pokrenuti i poboljลกati unutar pgAdmin-a.

Da, POSIX SUBSTRING podudaranje je prema zadanim postavkama osjetljivo na velika i mala slova. Za podudaranje bez obzira na velika i mala slova, smanjite oba ulaza, na primjer SUBSTRING(lower(name) FROM lower(pattern)), tako da se velika i mala slova tretiraju isto.

Saลพmite ovu objavu uz: