Come creare una tabella Sql

Un database relazionale è composto da una serie di tavole (table). Per creare una nuova tabella nel linguaggio SQL uso il comando CREATE TABLE

CREATE TABLE nome tabella
(
colonna1 dominio [vincoli] ,
colonna2 dominio [vincoli] ,
[ ... ]
colonna_n dominio [vincoli]
)

Dove nome tabella è il nome della nuova tabella.

Tra parentesi tonde sono elencati i nomi delle colonne con i relativi domini e vincoli.

Nota. Alcuni esempi di vincoli sono PRIMARY KEY, NOT NULL, UNIQUE, REFERENCES. I vincoli sono un'informazione facoltativa. Posso creare una tabella anche senza indicare alcun vincolo. In ogni caso, è sempre possibile modificare la struttura della tabella anche in un secondo momento con il comando ALTER TABLE.

Cosa sono le tabelle nel linguaggio SQL

Le tabelle (o relazione) sono un metodo di organizzazione logica dei dati.

Grazie alle tabelle le informazioni sono strutturate come un insieme di oggetti ( record o righe ) e di proprietà ( campi logici o colonne ).

Esempio

un esempio di tabella

Ogni tavola è composta da un numero di colonne che identificano la qualità del dato (es. nome, cognome ecc.) e da un numero di righe che identificano i dati stessi.

Esempio. Una tavola contiene i nomi degli alunni di una classe. In questo caso, le colonne definiscono le qualità dei dati ( nome, cognome dell'alunno, età, ecc. ) mentre le righe raggruppano tutte le informazioni per ogni singolo alunno.

Ogni riga (tupla) è denominata "record".

Le colonne sono invece conosciute come "campi" o "attributi".

Ogni colonna ha un nome e un dominio ossia può ricevere soltanto un tipo di dato (caratteri, numeri, date, ecc. ).

Esempio. Nella tabella precedente la prima colonna si chiama CodiceCliente e ospita numeri interi. La seconda si chiama Cognome e ospita stringhe. E via dicendo. E' sempre meglio usare dei nomi mnemonici per le colonne della tabella. In questo modo è più facile capire l'informazione che contengono.

A cosa serve una tabella?

Grazie alle tabelle non ci si deve più preoccupare della struttura fisica dei dati all'interno di un file ma soltanto della struttura logica delle informazioni.

Un esempio pratico

Posso creare la tabella "Clienti" del precedente esempio con il comando CREATE TABLE

CREATE TABLE Clienti
(
CodiceCliente NUMBER(5),
Cognome VARCHAR(20),
Nome VARCHAR(20),
Città VARCHAR(20)
);

Le specifiche tra parentesi sono i nomi dei campi della tavola seguiti dalla specifica/dominio del tipo del dato.

Esempio. Il primo campo CodiceCliente è del tipo NUMBER(5), ossia numerico con massimo 5 cifre. Il secondo campo Cognome è invece del tipo VARCHAR(20) e identifica un campo di tipo alfanumerico lungo max. 20 caratteri.

Il risultato è una tabella come la seguente:

un esempio di tabella

Una nuova tabella è sempre vuota. Non ha dati (istanze) al suo interno.

Per inserire i dati nella tabella si usa il comando INSERT INTO.

Nota. Inizialmente soltanto chi crea la tabella ha tutti i privilegi e le autorizzazioni.

Primary Key

Per velocizzare l'accesso ai dati posso anche aggiungere una chiave o un indice logico.

Al momento della creazione della tabella posso anche indicare un attributo chiave con il vincolo PRIMARY KEY.

Esempio

Associo al campo CodiceCliente il vincolo di chiave PRIMARY KEY.

CREATE TABLE Clienti
(
CodiceCliente NUMBER(5) PRIMARY KEY,
Cognome VARCHAR(20),
Nome VARCHAR(20),
Città VARCHAR(20)
);

Not Null

Il vincolo NOT NULL specifica che un attributo della tabella non può ospitare un valore nullo. Deve essere sempre documentato.

Esempio

Associo il vincolo agli attributi Cognome e Nome.

CREATE TABLE Clienti
(
CodiceCliente NUMBER(5) PRIMARY KEY,
Cognome VARCHAR(20) NOT NULL,
Nome VARCHAR(20) NOT NULL,
Città VARCHAR(20)
);

In questa tabella non è possibile aggiungere una riga alla tabella se non sono indicati i valori del Nome e del Cognome.

Il nome della Città può, invece, mancare ed essere sostituito con un vaore nullo (NULL).

Unique

Il vincolo UNIQUE impedisce la ripetizione di un valore in una colonna (attributo) fatta eccezione che per i valori nulli.

Esempio

In questa tabella non possono esserci persone con lo stesso cognome.

CREATE TABLE Clienti
(
CodiceCliente NUMBER(5) PRIMARY KEY,
Cognome VARCHAR(20) UNIQUE,
Nome VARCHAR(20),
Città VARCHAR(20)
);

E' invece possibile che ci siano persone con lo stesso nome o città.

Default

Il vincolo Default indica un valore di default da scrivere nell'attributo quando è vuoto.

Se non è indicato un valore di default, il linguaggio SQL utilizza il valore nullo (NULL).

Esempio

In questa tabella l'attributo figli ha un valore di default pari a zero.

CREATE TABLE persone (
nome varchar(20),
cognome varchar(20),
figli integer(2) DEFAULT 0
)

Quando inserisco nella tabella una nuova riga senza indicare nulla nell'attributo figli, il DBMS scrive automaticamente 0 nell'attributo figli.

I tipi di dati delle colonne

Il dominio di una colonna può ospitare diversi tipi di dati.

Ecco i principali tipi di domini.

  1. CHAR(n) / VARCHAR(n)
    stringa alfanumerica lunga n.
  2. SMALLINT
    numero compreso tra -32.767 e +32.767
  3. INTEGER
    numero compreso tra -2.147.483.647 e +2.147.483.647
  4. DECIMAL[(m[,n])]
    numero in virgola mobile con m valori significativi e con n valori decimali
  5. SMALLFLOAT
    numero in virgola mobile
  6. FLOAT
    numero in virgola mobile corrispondente al tipo double
  7. DATE
    campo in formato data

E così via

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Menu principale

  1. Il linguaggio Sql
  2. Come installare MySQL sul PC
  3. Come installare PostgreSQL
  4. Come creare una tabella
  5. Come fare una selezione
  6. Come modificare i dati in una tabella