Panoramica dei tipi di dati: INT VARCHAR DATE BOOLEAN
Impari i principali tipi di dati SQL: interi, varchar/testo, date e timestamp, valori booleani e decimali, e come scegliere il tipo giusto per ogni colonna
Panoramica dei tipi di dati: INT VARCHAR DATE BOOLEAN è una lezione SQL Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento SQL Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso SQL Academy include 4 lezioni in totale.
Perché i tipi sono importanti
Ogni colonna ha un tipo definito. Il tipo determina:
- Quali valori sono validi
- Quanto spazio di archiviazione utilizza ogni riga
- Quali operatori e funzioni sono applicabili
- In che modo il pianificatore sceglie gli indici e i join
Tipi interi
PostgreSQL dispone di tre dimensioni per i tipi interi:
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 SERIALNumerico / decimale
Per il denaro e i valori decimali esatti, utilizzate NUMERIC(precision, scale), mai 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 e Numeric
REAL (4 byte) e DOUBLE PRECISION (8 byte) sono inesatti: arrotondano le frazioni binarie. Vanno bene per la scienza, ma sono pessimi per il denaro.
-- Inexact:
SELECT 0.1::FLOAT + 0.2::FLOAT; -- 0.30000000000000004
-- Exact:
SELECT 0.1::NUMERIC + 0.2::NUMERIC; -- 0.3Tipi testuali: VARCHAR e TEXT
PostgreSQL dispone di due tipi testuali principali:
-- 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.Data e ora
Utilizzate i tipi per data e ora, non memorizzate mai le date come stringhe:
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.Booleano
BOOLEAN memorizza TRUE, FALSE o 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
Per identificatori univoci a livello globale:
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 e JSONB
Per documenti semistrutturati:
-- JSON — text, preserves whitespace, no index
-- JSONB — binary, deduplicated keys, indexable with GIN
CREATE TABLE events (
id BIGSERIAL PRIMARY KEY,
payload JSONB NOT NULL
);Array
Le colonne PostgreSQL possono essere array di qualsiasi tipo di base:
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);Scegliere il tipo giusto
Regole pratiche:
- Denaro →
NUMERIC(maiFLOAT) - ID →
BIGSERIALoUUID - Date →
TIMESTAMPTZper gli eventi,DATEper i giorni di calendario - Codici brevi →
VARCHAR(n); testo lungo →TEXT - Flag →
BOOLEAN
Riepilogo
Scegliete il tipo più ristretto che sia adatto.
- Tipi corretti = indici più piccoli, statistiche migliori e meno errori
- NUMERIC per i valori decimali esatti
- TIMESTAMPTZ per i timestamp degli eventi
- Evitate di memorizzare dati tipizzati come stringhe: perdereste la convalida e l'indicizzazione
Verifica rapida
Dovete memorizzare il prezzo di un prodotto. Quale tipo dovreste scegliere?
Domande Frequenti
La lezione «Panoramica dei tipi di dati: INT VARCHAR DATE BOOLEAN» è gratuita?
Sì — il testo completo di «Panoramica dei tipi di dati: INT VARCHAR DATE BOOLEAN» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso SQL Academy, passa a CoddyKit PRO. Il corso SQL Academy include 4 lezioni in totale.
Cosa imparerò in «Panoramica dei tipi di dati: INT VARCHAR DATE BOOLEAN»?
Impari i principali tipi di dati SQL: interi, varchar/testo, date e timestamp, valori booleani e decimali, e come scegliere il tipo giusto per ogni colonna Eserciti SQL Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare SQL Academy?
Non è richiesta alcuna esperienza precedente. SQL Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Panoramica dei tipi di dati: INT VARCHAR DATE BOOLEAN»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione SQL Academy?
Sì. Ogni lezione SQL Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Che cos’è un RDBMS e perché le tabelle sono importanti
- Chiavi primarie e unicità
- NULL: il terzo valore di verità
- Panoramica dei tipi di dati: INT VARCHAR DATE BOOLEAN