Ö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.
Ö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 SERIALNumerisk 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.3Texttyper: 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(aldrigFLOAT) - ID:n →
BIGSERIALellerUUID - Datum →
TIMESTAMPTZför händelser,DATEfö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?
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
- Vad ett RDBMS är och varför tabeller spelar roll
- Primärnycklar och unikhet
- NULL: det tredje sanningsvärdet
- Översikt över datatyper: INT VARCHAR DATE BOOLEAN