Data Definition Language

linguaggio che fa parte del linguaggio SQL

DDL è l'acronimo inglese di Data Definition Language, ovvero un linguaggio che permette di creare, modificare o eliminare gli oggetti in un database. Sono i comandi DDL a definire la struttura del database e quindi dei dati ivi contenuti. Ma non fornisce gli strumenti per modificare i dati stessi: per tale scopo di usa il DML. L'utente deve avere i permessi necessari per agire sulla struttura del database e questi permessi vengono assegnati tramite il DCL.

Create database

Il comando create database serve a creare un nuovo database, che potrà contenere tabelle, viste, stored procedure, trigger o altri tipi di oggetti.

Sintassi del comando create database

La sintassi è la seguente:

CREATE DATABASE nome_database


Alter database

Il comando alter database serve a modificare un database esistente.    
   

Sintassi del comando alter database

La sintassi è la seguente:

ALTER {DATABASE | SCHEMA} [db_name]   
 COLLATE collation_name   
   


Drop database

Il comando drop database serve a cancellare un database.

Sintassi del comando drop database

La sintassi è la seguente:

DROP DATABASE nome_database

Create table

Il comando create table ha la funzione di creare una nuova tabella (o tavola).
Il nome della tabella può essere scritto indifferentemente in MAIUSCOLO o in minuscolo, in ogni caso, però, è necessario che rispetti le seguenti regole:

  1. Può essere formato da lettere e numeri, ma il primo carattere deve sempre essere una lettera;
  2. Non può superare i 30 caratteri di lunghezza;
  3. Non può avere lo stesso nome di una tabella o vista già esistente sullo stesso utente di database.


La tabella può essere creata vuota (vedi la create table semplice) oppure può essere creata e riempita di dati (vedi la create table mediante select): nel secondo caso la struttura della tabella è definita implicitamente dal numero di colonne (o campi) estratti dalla select, dal tipo di dato di ciascuna colonna e dai nomi delle rispettive colonne estratte dalla select (o dagli alias ad esse applicati). Nel caso in cui la tabella venga popolata in fase di creazione, la transazione viene automaticamente conclusa da un comando di COMMIT.

Sintassi del comando create table

  • Create table semplice:
CREATE TABLE nome_tabella(
nome_colonna1 tipo di dato constraint (opzionale), nome_colonna2 tipo di dato constraint (opzionale), nome_colonna3 tipo di dato constraint (opzionale), ... nome_colonnaN tipo di dato constraint (opzionale) );
  • Create table mediante select:
CREATE TABLE nome_tabella 
AS
SELECT ...;

Alter table

Il comando alter table ha la funzione di modificare la struttura della tabella.
L'operatore ADD consente di inserire una nuova colonna su una tabella esistente oppure di aggiungere delle constraint alle colonne della tabella.
L'operatore MODIFY consente di cambiare il tipo di dato e/o la constraint propri di ogni colonna di una tabella.
L'operatore DROP consente di eliminare la constraint dalla colonna.

Sintassi del comando alter table

Operatore add
  • Inserimento di una nuova colonna:
ALTER TABLE nome_tabella 
ADD nome_colonna_nuova tipo di dato constraint;
  • Aggiunta di una chiave primaria (primary key):
ALTER TABLE nome_tabella 
ADD CONSTRAINT nome_tabella_pk PRIMARY KEY (nome_colonna che funge da chiave primaria);
  • Aggiunta di una chiave esterna (foreign key) ereditata da un'altra tabella:
ALTER TABLE nome_tabella_figlia 
ADD CONSTRAINT nome_tabella_figlia_fk FOREIGN KEY (nome_colonna che funge da chiave esterna sulla tabella figlia) REFERENCES nome_tabella_padre (nome_colonna che funge da chiave primaria sulla tabella padre);
Operatore modify
  • Modifica del tipo di dato di una colonna:
ALTER TABLE nome_tabella 
MODIFY nome_colonna tipo di dato nuovo;
  • Modifica della constraint di una colonna:
ALTER TABLE nome_tabella 
MODIFY nome_colonna constraint nuova;
Operatore drop
  • Eliminazione della chiave primaria:
ALTER TABLE nome_tabella 
DROP PRIMARY KEY;
  • Eliminazione della chiave esterna:
ALTER TABLE nome_tabella_figlia 
DROP CONSTRAINT nome_tabella_figlia_fk;

Drop table

Il comando drop table consente di distruggere una tabella, eliminandola fisicamente dal database.
Come tutti i comandi DDL è un'operazione irreversibile, e provoca la perdita di tutti i dati contenuti nella tabellla.

Sintassi del comando alter table

DROP TABLE nome_tabella;

Rename

Il comando rename consente di rinominare una tabella.

Sintassi del comando rename

RENAME nome_tabella TO nuovo_nome_tabella;