SQL Academy · leksjon

Grunnleggende om array-kolonner

Opprett og les array-verdier.

Leksjon 1 av 413 trinn

Grunnleggende om array-kolonner er en gratis leksjon i SQL Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SQL Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hva er en arraykolonne

PostgreSQL støtter arraykolonner, der én enkelt celle kan inneholde flere verdier av samme type. I stedet for å lagre kommaseparert tekst får du en typesikker liste som kan spørres mot, indekseres og behandles med innebygde funksjoner.

Arrays kan inneholde heltall, tekst, boolske verdier, datoer eller alle andre PostgreSQL-typer. Syntaksen ser ut som integer[] eller text[].

Deklarere en arraykolonne

Legg til [] etter et hvilket som helst typenavn i en CREATE TABLE-setning for å deklarere en arraykolonne. Tabellen nedenfor lagrer en liste over tagger for hver artikkel.

CREATE TABLE articles (
  id      serial PRIMARY KEY,
  title   text NOT NULL,
  tags    text[]
);

Sette inn arrayverdier

Bruk literaler med krøllparenteser omgitt av enkle anførselstegn for å sette inn arraydata. Hvert element skilles med komma inne i parentesene: '{"sql","database"}'.

Alternativt kan du bruke konstruktorsyntaksen ARRAY[...], som vist på den andre raden.

INSERT INTO articles (title, tags) VALUES
  ('Intro to SQL',    '{"sql","beginner"}'),
  ('Advanced Joins',  ARRAY['sql','joins','performance']),
  ('NULL Handling',   '{"sql","nulls","tips"}');

Lese hele arrayet

Det fungerer på samme måte å velge en arraykolonne som å velge en hvilken som helst annen kolonne. PostgreSQL returnerer hele arrayet som én enkelt verdi i resultatsettet, vist i format med krøllparenteser.

SELECT id, title, tags
FROM   articles;

Få tilgang til ett element

Arrayindekser i PostgreSQL er 1-baserte (det første elementet har indeks 1, ikke 0). Bruk hakeparenteser etter kolonnenavnet for å få tilgang til et bestemt element.

SELECT title,
       tags[1] AS first_tag,
       tags[2] AS second_tag
FROM   articles;

Uthenting av et utsnitt av arrayet

Du kan hente ut et område av elementer ved å bruke utsnittssyntaksen lower:upper i hakeparenteser. Begge grensene er inklusive.

SELECT title,
       tags[1:2] AS first_two_tags
FROM   articles;

Filtrering med ANY

Bruk uttrykket = ANY(column) for å finne rader der et array inneholder en bestemt verdi. Dette returnerer rader der minst ett element i arrayet samsvarer med den angitte verdien.

SELECT id, title, tags
FROM   articles
WHERE  'joins' = ANY(tags);

Filtrering med @>-operatoren

Inneholder-operatoren @> kontrollerer om arrayet til venstre inneholder alle elementene i arrayet til høyre. Dette er nyttig når du vil finne rader som inneholder et sett med obligatoriske tagger.

SELECT id, title, tags
FROM   articles
WHERE  tags @> ARRAY['sql','tips'];

Hente arrayets lengde

Funksjonen array_length(arr, dimension) returnerer antallet elementer langs en gitt dimensjon. For et endimensjonalt array bruker du 1 som det andre argumentet.

SELECT title,
       array_length(tags, 1) AS tag_count
FROM   articles
ORDER  BY tag_count DESC;

Legge til elementer

Bruk funksjonen array_append(array, element) eller konkateneringsoperatoren || for å legge til et nytt element på slutten av en eksisterende arraykolonne.

UPDATE articles
SET    tags = array_append(tags, 'featured')
WHERE  title = 'Intro to SQL';

SELECT title, tags FROM articles WHERE title = 'Intro to SQL';

Flette ut et array til rader

Funksjonen unnest(array) utvider et array til et sett med rader — én rad per element. Dette er nyttig for aggregeringer, join-operasjoner eller andre operasjoner som trenger hvert element separat.

SELECT title, unnest(tags) AS tag
FROM   articles
ORDER  BY title, tag;

Kort test

Test forståelsen av PostgreSQL-arraykolonner.

Oppsummering: Grunnleggende om arraykolonner

I denne leksjonen lærte du hvordan PostgreSQL-arraykolonner fungerer fra start til slutt:

  • Deklarer arrays med syntaksen type[] i CREATE TABLE
  • Sett inn verdier ved hjelp av literaler med krøllparenteser eller ARRAY[...]
  • Få tilgang til elementer med 1-basert indeks og utsnitt med lower:upper
  • Filtrer med = ANY(col) for én enkelt verdi eller @> for et delsett
  • Mål lengden med array_length(col, 1)
  • Legg til elementer ved hjelp av array_append() eller ||
  • Utvid arrays til rader med unnest()

Arrays er en kraftig PostgreSQL-funksjon som kan forenkle skjemaer når en verdiliste hører til én enkelt entitet.

Gratis å komme i gang

Lær deg SQL med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
46
Leksjoner
183

Ofte stilte spørsmål

Er leksjonen «Grunnleggende om array-kolonner» gratis?

Ja – hele teksten i «Grunnleggende om array-kolonner» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SQL Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Grunnleggende om array-kolonner»?

Opprett og les array-verdier. Du øver på SQL Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med SQL Academy?

Ingen tidligere erfaring er nødvendig. SQL Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Grunnleggende om array-kolonner»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne SQL Academy-leksjonen?

Ja. Alle SQL Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grunnleggende om array-kolonner
  2. Søke i arrayer
  3. UNNEST og aggregering
  4. Arrayer kontra normaliserte tabeller
← Tilbake til SQL Academy