Grunnleggende om array-kolonner
Opprett og les array-verdier.
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[]iCREATE 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.
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
- Grunnleggende om array-kolonner
- Søke i arrayer
- UNNEST og aggregering
- Arrayer kontra normaliserte tabeller