Data Definition LanguageIn informatica il Data Definition Language (DDL) è un linguaggio, parte del linguaggio SQL, che permette di creare, modificare o eliminare gli oggetti in un database ovvero agire sullo schema di database. Sono i comandi DDL a definire la struttura del database e quindi l'organizzazione logica dei dati in esso contenuti, ma non fornisce gli strumenti per modificare i valori assunti dai dati o per interrogare i dati stessi per il quale si usano rispettivamente il Data Manipulation Language e il Data Query Language. È utilizzato sia in fase di progettazione, sia in fase di ristrutturazione del database. Per agire sulla struttura del database l'utente deve avere i permessi necessari, assegnati tramite il Data Control Language (DCL). DominiCreate DomainOltre ai tipi come integer, char, float, ... possiamo crearne altri: la creazione è simile ad una ridenominazione di un tipo fondamentale visto tra quelli sopra o di un tipo creato ex novo, ereditandone tutte le caratteristiche. Sintassi del comando Create DomainCREATE DOMAIN nome_dominio AS tipo [ ValoreImpostato ] [ Vincolo ] { DefSchema }
Si crea un tipo di nome nome_dominio partendo da un precedente tipo, impostando un opzionale valore di default ed un insieme di vincoli. Questa operazione permette di definire una ed una sola volta tutte le caratteristiche (vincoli) che possono essere associati ad un attributo, quando questo è utilizzato in più tabelle, evitando così ridondanze. Drop DomainElimina un dominio definito dall'utente. Sintassi del comando Drop DomainDROP DOMAIN nome_dominio [CASCADE|RESTRICT]
Se si specifica SchemiCreate schemaLo schema è una collezione di tutti gli oggetti che faranno parte della base di dati, cioè domini, tabelle, viste, privilegi, asserzioni. È un po' come la parte dichiarativa di un programma scritto con un linguaggio imperativo: prima creiamo i tipi, le funzioni e le procedure, poi le utilizziamo nel corpo. Sintassi del comando create schemaCREATE SCHEMA [ NomeSchema ] [ [ autorization ] Autorizzazione ] { DefElementoSchema }
Autorizzazione è il nome dell'utente proprietario dello schema; se mancante si assume che sia l'utente che ha lanciato il comando. Il NomeSchema può essere omesso: in tal caso il nome sarà quello dell'utente proprietario. Per ogni utente ci sono delle Autorizzazioni cioè possiamo imporre certi limiti a chi interroga la nostra base di dati. Drop SchemaCancella uno schema già definito. Sintassi del comando Drop SchemaDROP SCHEMA nome_schema [CASCADE|RESTRICT]
Se si specifica DatabaseCreate databaseIl comando Sintassi del comando create databaseLa sintassi è la seguente: CREATE {DATABASE | SCHEMA} nome_database
[create_specification [, create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
| [DEFAULT] COLLATE collation_name
Se nell'esecuzione del comando si specifica Alter databaseIl comando Sintassi del comando alter databaseLa sintassi è la seguente: ALTER {DATABASE | SCHEMA} [nome_database]
[DEFAULT] CHARACTER SET charset_name
| [DEFAULT] COLLATE collation_name
Drop databaseIl comando Sintassi del comando drop databaseLa sintassi è la seguente: DROP DATABASE nome_database
TabelleCreate tableIl comando
Oltre a definire gli attributi di una tabella è possibile definire dei vincoli.
Vincoli d'integritàPer implementare i vincoli di integrità con l'SQL esistono delle parole riservate. Vincoli intrarelazionali
Vincoli interrelazionaliPer la gestione di questo tipo di vincoli si utilizza la Sintassi del comando create table
CREATE TABLE nome_tabella(
nome_colonna1 tipo di dato CONSTRAINT,
nome_colonna2 tipo di dato CONSTRAINT,
nome_colonna3 tipo di dato CONSTRAINT,
...
nome_colonnaN tipo di dato CONSTRAINT);
CREATE TABLE nome_tabella
AS
SELECT...;
Alter table
Sintassi del comando alter tableOperatore add
ALTER TABLE nome_tabella
ADD nome_colonna_nuova tipo_di_dato CONSTRAINT;
ALTER TABLE nome_tabella
ADD CONSTRAINT nome_tabella_pk
PRIMARY KEY (nome_colonna)); /*che funge da chiave primaria*/
ALTER TABLE nome_tabella
ADD CONSTRAINT nome_tabella_pk
ADD INDEX nome_indice (nome_colonna)
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
ALTER TABLE nome_tabella
MODIFY nome_colonna tipo di dato nuovo; /*il tipo di dato nuovo deve essere compatibile*/
ALTER TABLE nome_tabella
MODIFY nome_colonna CONSTRAINT nuova;
Operatore drop
ALTER TABLE nome_tabella
DROP PRIMARY KEY;
ALTER TABLE nome_tabella_figlia
DROP CONSTRAINT nome_tabella_figlia_fk;
Drop tableIl comando Sintassi del comando Drop tableDROP TABLE nome_tabella [CASCADE|RESTRICT]
RenameIl comando Sintassi del comando RenameRENAME nome_tabella TO nuovo_nome_tabella;
IndiciCreate IndexÈ una scorciatoia per evitare alter table complessi. Aggiunge un indice a una tabella. Sintassi del comando Create IndexCREATE [UNIQUE] INDEX nome_indice
ON nome_tabella (nome_colonna [ASC|DESC])
Se si specifica Drop IndexÈ una scorciatoia per evitare alter table complessi. Elimina un indice da una tabella. Sintassi del comando Drop indexDROP INDEX nome_indice
ON nome_tabella
Strumenti per la gestione
Voci correlate
Collegamenti esterni
|
Portal di Ensiklopedia Dunia