CodeGym /Corsi /SQL SELF /Fondamenti della creazione delle tabelle: CREATE T...

Fondamenti della creazione delle tabelle: CREATE TABLE

SQL SELF
Livello 17 , Lezione 0
Disponibile

Nelle prime lezioni abbiamo messo le basi sulle database relazionali e PostgreSQL, imparato a lavorare con psql e pgAdmin, e anche come creare e gestire database. Ora è il momento di passare alla creazione del vero "materiale da costruzione" delle database relazionali – le tabelle. Sono proprio le tabelle che conservano tutte le info che poi potremo filtrare, ordinare o unire.

Per creare tabelle in PostgreSQL si usa il comando CREATE TABLE. Questo comando descrive la struttura della tabella: il suo nome, le colonne e i loro tipi di dati.

Struttura generale del comando

Ecco come appare la sintassi base:

CREATE TABLE tabella (
    colonna1 tipo_dati constraints,
    colonna2 tipo_dati constraints,
    ...
);

Vediamo le parti:

  • tabella – nome della tabella (ad esempio, students).
  • colonna1 – nome della colonna (ad esempio, id, name).
  • tipo_dati – tipo di dati della colonna (ad esempio, INTEGER, VARCHAR).
  • constraints – vincoli sui dati (ad esempio, NOT NULL, PRIMARY KEY).

Adesso creiamo la nostra prima tabella.

Esempio di creazione di una tabella

Scenario: nel database didattico dobbiamo salvare i dati sugli studenti. Per questo creiamo la tabella students con i campi:

  • id: identificatore unico dello studente (si incrementa automaticamente);
  • name: nome dello studente (stringa fino a 100 caratteri);
  • age: età dello studente (numero intero positivo).
CREATE TABLE students (
    id SERIAL PRIMARY KEY,  -- ID unico dello studente
    name VARCHAR(100),      -- nome
    age INTEGER             -- età
);

Cosa succede qui:

  1. id SERIAL PRIMARY KEY: viene creata la colonna id che genera automaticamente numeri unici (1, 2, 3...) per ogni riga. È anche la chiave primaria della tabella.
  2. name VARCHAR(100): viene creata una colonna di testo, dove VARCHAR(100) significa che la stringa può essere lunga fino a 100 caratteri.
  3. age INTEGER: viene creata una colonna numerica per salvare l'età.

Ora, se eseguiamo questa query in psql o pgAdmin, la tabella students verrà creata.

Tipi di dati per le colonne

Quando crei una tabella è importante scegliere il tipo di dati giusto per ogni colonna. PostgreSQL offre un sacco di tipi, ma partiamo dai più usati.

Tipo di dati Descrizione Esempio di valori
INTEGER Numeri interi. Perfetto per età, quantità, identificatori. 1, 42, 100
VARCHAR(n) Stringa lunga fino a n caratteri. Ideale per testi con lunghezza limitata. 'Alice', 'Bob'
TEXT Stringhe senza limiti. Usato per testi lunghi (tipo descrizione di un prodotto). 'Testo molto lungo...'
DATE Data senza ora. Usato per date di nascita, eventi. 2023-10-12
BOOLEAN Tipo logico: TRUE o FALSE. Usato per flag (tipo fatto/non fatto). TRUE, FALSE

Scegliere il tipo di dati giusto

  • Se salvi numeri – usa INTEGER.
  • Per stringhe con limite di lunghezza – meglio VARCHAR(n).
  • Per testo senza limiti – usa TEXT.
  • Date e orari salvali in DATE o TIMESTAMP.

Esempio: creiamo la tabella courses

Supponiamo che nel nostro database dobbiamo anche salvare info sui corsi. Ogni corso ha:

  • id: identificatore unico;
  • name: nome del corso (stringa fino a 100 caratteri);
  • description: descrizione del corso (testo lungo);
  • start_date: data di inizio corso.

Codice SQL:

CREATE TABLE courses (
    id SERIAL PRIMARY KEY,      -- ID unico del corso
    name VARCHAR(100),          -- nome del corso
    description TEXT,           -- descrizione
    start_date DATE             -- data di inizio
);

Esercizio pratico

Ora tocca a te creare una tabella! Ecco il compito:

  1. Crea la tabella teachers con i campi:
    • id: identificatore unico.
    • name: nome dell'insegnante (stringa fino a 50 caratteri).
    • subject: materia che insegna (stringa fino a 50 caratteri).
    • hire_date: data di assunzione.

Esempio di codice da eseguire:

CREATE TABLE teachers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    subject VARCHAR(50),
    hire_date DATE
);

Dopo averlo fatto, usa il comando \d teachers in psql per assicurarti che la tabella sia stata creata.

Errori tipici nella creazione delle tabelle

Quando inizi a lavorare con le tabelle, possono capitare errori. Ecco alcune situazioni comuni:

Errore nel nome della tabella o della colonna. In PostgreSQL i nomi non sono case sensitive, ma se usi le virgolette " intorno ai nomi, devi stare attento. Ad esempio, CREATE TABLE "MyTable" crea la tabella "MyTable", mentre mytable non viene riconosciuto come suo nome.

Tipo di dati sbagliato. Se indichi un tipo di dati che non esiste, la query darà errore.

CREATE TABLE example (
    column1 STRANGE_TYPE
);

Questa query non funzionerà perché STRANGE_TYPE non esiste.

Dimenticare il PRIMARY KEY. Se ti dimentichi di aggiungere la chiave primaria, la tabella verrà creata, ma sarà più difficile identificare le righe.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION