SQL Academy · Lektion

Översikt över datatyper: INT VARCHAR DATE BOOLEAN

Lär Er SQL:s centrala datatyper: heltal, varchar/text, datum och tidsstämplar, booleska värden och decimaler samt hur Ni väljer rätt typ för varje kolumn.

Lektion 4 av 413 steg

Översikt över datatyper: INT VARCHAR DATE BOOLEAN är en gratis lektion i SQL Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för SQL Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i SQL Academy innehåller totalt 4 lektioner.

Varför typer är viktiga

Varje kolumn har en fast typ. Typen avgör:

  • Vilka värden som är giltiga
  • Hur mycket lagringsutrymme varje rad använder
  • Vilka operatorer och funktioner som kan användas
  • Hur frågeplaneraren väljer index och join-operationer

Heltalstyper

PostgreSQL har tre storlekar på heltal:

SMALLINT  -- 2 bytes,  -32768 to 32767
INTEGER   -- 4 bytes,  ±2.1 billion       (alias: INT)
BIGINT    -- 8 bytes,  ±9.2 quintillion

-- Auto-incrementing variants:
SMALLSERIAL  BIGSERIAL  SERIAL

Numerisk typ / decimaltyp

För pengar och exakta decimaltal använder du NUMERIC(precision, scale) — aldrig FLOAT.

CREATE TABLE invoices (
  id BIGSERIAL PRIMARY KEY,
  amount NUMERIC(12, 2) NOT NULL,   -- up to 10 digits + 2 decimals
  tax_rate NUMERIC(5, 4) NOT NULL   -- 0.0875 = 8.75%
);

Float kontra Numeric

REAL (4 byte) och DOUBLE PRECISION (8 byte) är ungefärliga — de avrundar binära bråk. De fungerar bra för vetenskapliga beräkningar men är usla för pengar.

-- Inexact:
SELECT 0.1::FLOAT + 0.2::FLOAT;   -- 0.30000000000000004

-- Exact:
SELECT 0.1::NUMERIC + 0.2::NUMERIC;  -- 0.3

Texttyper: VARCHAR kontra TEXT

PostgreSQL har två huvudsakliga texttyper:

-- VARCHAR(n) — variable-length, max n characters
email VARCHAR(255)

-- TEXT — variable-length, no declared limit
description TEXT

-- In PostgreSQL both have the same performance.
-- VARCHAR(n) just adds a length check.
-- CHAR(n) (fixed-length, blank-padded) — avoid.

Datum och tid

Använd datum- och tidstyperna — lagra aldrig datum som strängar:

DATE         -- 2024-03-15
TIME         -- 14:30:00
TIMESTAMP    -- 2024-03-15 14:30:00      (no time zone)
TIMESTAMPTZ  -- 2024-03-15 14:30:00+02   (recommended)
INTERVAL     -- 1 day, 3 hours

-- Prefer TIMESTAMPTZ unless you have a strong reason not to.

Booleska värden

BOOLEAN lagrar TRUE, FALSE eller NULL.

CREATE TABLE tasks (
  id BIGSERIAL PRIMARY KEY,
  done BOOLEAN NOT NULL DEFAULT false
);

SELECT * FROM tasks WHERE done;        -- shorthand for done = true
SELECT * FROM tasks WHERE NOT done;

UUID

För globalt unika identifierare:

CREATE TABLE api_keys (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id BIGINT NOT NULL,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

JSON och JSONB

För halvstrukturerade dokument:

-- JSON   — text, preserves whitespace, no index
-- JSONB  — binary, deduplicated keys, indexable with GIN

CREATE TABLE events (
  id BIGSERIAL PRIMARY KEY,
  payload JSONB NOT NULL
);

Arrayer

Kolumner i PostgreSQL kan vara arrayer av valfri bastyp:

CREATE TABLE posts (
  id BIGSERIAL PRIMARY KEY,
  title TEXT NOT NULL,
  tags TEXT[] NOT NULL DEFAULT '{}'
);

INSERT INTO posts (title, tags) VALUES
  ('Hello', ARRAY['sql', 'intro']);

SELECT * FROM posts WHERE 'sql' = ANY(tags);

Välja rätt typ

Tumregler:

  • Pengar → NUMERIC (aldrig FLOAT)
  • ID:n → BIGSERIAL eller UUID
  • Datum → TIMESTAMPTZ för händelser, DATE för kalenderdagar
  • Korta koder → VARCHAR(n); lång text → TEXT
  • Flaggor → BOOLEAN

Sammanfattning

Välj den snävaste typen som passar.

  • Rätt typer = mindre index, bättre statistik och färre fel
  • NUMERIC för exakta decimaltal
  • TIMESTAMPTZ för tidsstämplar för händelser
  • Undvik att lagra typad data som strängar — du förlorar validering och indexering

Snabbkontroll

Du behöver lagra priset på en produkt. Vilken typ bör du välja?

Gratis att börja

Lär dig SQL med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
46
Lektioner
183

Vanliga frågor

Är lektionen ”Översikt över datatyper: INT VARCHAR DATE BOOLEAN” gratis?

Ja – hela texten till ”Översikt över datatyper: INT VARCHAR DATE BOOLEAN” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i SQL Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i SQL Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Översikt över datatyper: INT VARCHAR DATE BOOLEAN”?

Lär Er SQL:s centrala datatyper: heltal, varchar/text, datum och tidsstämplar, booleska värden och decimaler samt hur Ni väljer rätt typ för varje kolumn. Ni övar på SQL Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig SQL Academy?

Du behöver inga förkunskaper. Utbildningen i SQL Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Översikt över datatyper: INT VARCHAR DATE BOOLEAN”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här SQL Academy-lektionen?

Ja. Varje SQL Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Vad ett RDBMS är och varför tabeller spelar roll
  2. Primärnycklar och unikhet
  3. NULL: det tredje sanningsvärdet
  4. Översikt över datatyper: INT VARCHAR DATE BOOLEAN
← Tillbaka till SQL Academy