Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Create e Vincoli | DDL e DML in SQL
SQL Intermedio

book
Create e Vincoli

In precedenza, abbiamo lavorato per diverse aziende ed eseguito query SELECT per le loro esigenze. Tuttavia, dobbiamo imparare come creare e modificare tabelle.

Le tabelle vengono create utilizzando l'istruzione CREATE, che ha una struttura simile all'istruzione SELECT, tranne che invece di selezionare dati, crea dati:

CREATE TABLE example (
id INT PRIMARY KEY,
some_info VARCHAR(50)
);
1234
CREATE TABLE example ( id INT PRIMARY KEY, some_info VARCHAR(50) );
copy

Nota

Quando esegui questi esempi, non otterrai alcun output perché questi esempi creano solo una nuova tabella. Se esegui nuovamente il codice, riceverai un errore che dice che la tabella esiste già. Questi frammenti di codice sono esempi e più avanti nel compito, i dati verranno inseriti in queste nuove tabelle create e visualizzati sullo schermo in modo da poter vedere che tutto funziona.

Analizziamo la query SQL sopra.

Questa query crea una tabella vuota con due colonne: id e some_info.

Nota i tipi di dati utilizzati per ciascuna colonna:

  • INT è per dati interi;
  • VARCHAR(50) è per testo, consentendo fino a 50 caratteri.

Non copriremo tutti i tipi di dati ora, poiché ce ne sono molti. Ci concentreremo sui principali in questa sezione ed esploreremo altri man mano che continuiamo ad apprendere.

Ad esempio, creiamo un'altra tabella con diversi tipi di dati:

CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
birthdate DATE,
salary DECIMAL(10, 2),
is_active BOOLEAN
);
1234567
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), birthdate DATE, salary DECIMAL(10, 2), is_active BOOLEAN );
copy

Con questa query, creiamo una tabella vuota che dovrebbe contenere informazioni sugli utenti, inclusi:

  1. Un ID con un tipo di dato intero;
  2. Informazioni sul name, con un tipo di dato VARCHAR(50);
  3. Informazioni sulla data di nascita, con un tipo di dato DATE;
  4. Informazioni sul salario, con un tipo di dato numero a virgola mobile;
  5. Se l'utente è attivo, con un tipo di dato che accetta solo valori true o false.

Vincoli

In SQL, i vincoli sono regole applicate alle colonne per garantire l'integrità dei dati. Ad esempio, quando usiamo PRIMARY KEY accanto a ID, significa che questa colonna deve avere valori unici e non può essere vuota. Ogni tabella può avere solo una PRIMARY KEY.

Ecco alcuni vincoli comuni:

  • NOT NULL: Questo garantisce che la colonna non possa avere valori vuoti.
  • UNIQUE: Questo garantisce che tutti i valori nella colonna siano diversi.
  • DEFAULT: Questo imposta un valore predefinito per la colonna se non viene fornito alcun valore.

Questi sono solo alcuni esempi. Vediamo come possiamo modificare una tabella per includere questi vincoli:

CREATE TABLE users_2 (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
birthdate DATE,
salary DECIMAL(10, 2) DEFAULT 50000,
is_active BOOLEAN
);
1234567
CREATE TABLE users_2 ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, birthdate DATE, salary DECIMAL(10, 2) DEFAULT 50000, is_active BOOLEAN );
copy

Ora, la colonna name deve sempre avere un valore, poiché non può essere vuota o nulla. Inoltre, se non viene specificato alcun salario, verrà impostato di default a 50000.

L'uso di vincoli come questi aiuta a garantire che i dati nella tua tabella siano accurati e seguano le regole che hai impostato.

Compito

Swipe to start coding

Il tuo compito è creare una tabella chiamata library.

Questa tabella dovrebbe avere 4 colonne:

  • id - chiave primaria intera;
  • title - varchar, non nullo;
  • author - varchar;
  • pages - int.

Alla fine della query, assicurati di mettere un punto e virgola (;).

Si prega di utilizzare questi nomi di colonne esattamente come specificato.

Nota

A destra, vedrai una grande quantità di codice; non modificarlo. È scritto per garantire che la tua soluzione sia controllata correttamente. Impareremo tutto ciò che è scritto lì più avanti in questa sezione.

Istruzioni Brevi

  • Usa una query CREATE per creare una nuova tabella chiamata library.
  • La tabella dovrebbe avere quattro colonne: id, title, author e pages.
  • Per la prima colonna, specifica INT PRIMARY KEY.
  • Per la seconda colonna, specifica VARCHAR(50) NOT NULL.
  • Per la terza colonna, specifica VARCHAR(50).
  • Per la quarta colonna, specifica INT.

Soluzione

CREATE TABLE library (
id INT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
author VARCHAR(50),
pages INT
);

-- Please do not modify the code below!
-- It is necessary for the correct execution of the task.
-- Later, we will review everything written below; you don't need it right now.

INSERT INTO library (id, title, author, pages) VALUES
(1, 'CAMINO GHOSTS', 'John Grisham', '213'),
(2, 'FUNNY STORY', 'Emily Henry', '341');

SELECT * FROM library;

DROP TABLE IF EXISTS library;
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 1
-- Write your solution here






-- Please do not modify the code below!
-- It is necessary for the correct execution of the task.
-- Later, we will review everything written below; you don't need it right now.

INSERT INTO library (id, title, author, pages) VALUES
(1, 'CAMINO GHOSTS', 'John Grisham', '213'),
(2, 'FUNNY STORY', 'Emily Henry', '341');

SELECT * FROM library;

DROP TABLE IF EXISTS library;
toggle bottom row
Query ResultQuery Result
No query executed yet...
some-alt