Principali comandi DDL e DML - Istituto Paritario Michelangelo

Principali Comandi SQL - DDL (Data Definition Language)
Sono i comandi che gestiscono la creazione, la modifica e la cancellazione delle strutture.
Si distinguono in tre tipi :



Create ---> creazione
Alter ----> modifica
Drop ----> eliminazione
Sintassi :
Comando
CREATE DATABASE IF NOT EXISTS
`<nome database>`;
Significato
creazione di un nuovo database (per gli accenti
digitare ALT + 096 )
DROP DATABASE `<nome database>`;
eliminazione di un database esistente (per gli
accenti digitare ALT + 096 )
Creazione di una tabella ( per i tipi di dato segue
tabella)
CREATE TABLE <nome tabella> (
<nome campo1> <tipo dato> [eventuali
vincoli] ,
<nome campo2> <tipo dato> [eventuali
vincoli] ,
…..
…..
……
<nome campoN> <tipo dato> [eventuali
vincoli]
);
Principali vincoli :
NOT NULL
PRIMARY KEY
AUTO_INCREMENT
DEFAULT
FOREIGN KEY (<nome campo1 >)
REFERENCES <nomeTabella>(<nome
campo2>)
RENAME TABLE <nomeVecchioTabella> to
<nomeNuovoTabella>
Serve per vietare la presenza di valori nulli
Serve a definire la chiave primaria
Serve per definire un campo che si
autoincrementa (in ACCESS di tipo contatore),
viene utilizzato per una chiave primaria
(sicuramente sarà unica)
Serve per impostare un valore di default , ad
esempio : ruolo varchar(20) DEFAULT
'impiegato'
Vincolo di integrità referenziale per la chiave
esterna dove <nome campo1> è il nome del
campo relativo alla chiave esterna ,
<nomeTabella> è la tabella alla quale si vuole
collegare la chiave esterna e <nome campo2> è
il nome del campo relativo alla chiave primaria
di tale tabella.
Serve a rinominare una tabella
1
DROP TABLE <nomeTabella>
ALTER TABLE ....
ALTER TABLE <nomeTabella>
ADD COLUMN <nomecampo> <tipo>
ALTER TABLE <nomeTabella>
ADD FOREIGN KEY (<nome campo chiave
esterna> REFERENCES <nomeTabellaDest>
(<nome campo chiave primaria)
ALTER TABLE <nomeTabella>
CHANGE <nomeVecchioCampo>
<nomeNuovoCampo> <tipoCampo>
ALTER TABLE <nomeTabella>
DROP <nomeCampo>
elimina una tabella
I comandi che modificano la struttura di una
tabella devono essere preceduti dal comando
ALTER TABLE
Aggiunge un campo (o una colonna) alla tabella
Aggiunge il vincolo di chiave esterna sul
<campo chiave esterna> (che deve
necessariamente esistere nella tabella che si sta
modificando)
Rinomina un campo (o una colonna)
Elimina un campo (o una colonna)
Principali tipi di dati
Tipo
int(n)
decimal(M[,D])
double(M,D)
bool
date
time
year
varchar(m)
Descrizione
numero intero composto da n cifre
numero decimale : con M cifre totali di cui D
decimali. I valori di default sono 10 per M e 0
per D. (usato per calcoli finanziari)
numero decimale : M rappresenta il numero
totale di cifre rappresentate e D il numero di
cifre decimali (usato per calcoli scientifici)
variabile che può assumere il valore di "vero" o
"falso" (o anche "sì" o "no")
variabile data: 10 byte – DD-MM-YYYY
(giorno, mese e anno)
variabile per l'ora : 8 byte – HH.MM.SS (ore,
minuti e secondi)
variabile per l'anno : : 1 byte - YYYY (anno
che può essere visualizzato con 2 o 4 caratteri a
seconda del parametro opzionale, se non è
specificato nulla viene visualizzato con 4
caratteri, year(2) visualizza un anno con due
caratteri)
variabile di tipo testo (o stringa) composta da
'm' caratteri. Varchar è una stringa a lunghezza
variabile la lunghezza massima = 65535
caratteri
2
Esempi :
Creazione del database 'Officine' :
CREATE DATABASE IF NOT EXISTS `Officine`
CREATE TABLE Proprietari (
codiceFiscale varchar(16) NOT NULL PRIMARY KEY,
Indirizzo varchar(150),
telefono varchar(20)
)
CREATE TABLE Veicoli (
targa varchar(20) NOT NULL PRIMARY KEY,
modello varchar(70),
tipo varchar(70),
annoImmatricolazione year,
codiceProprietario varchar(16),
FOREIGN KEY (codiceProprietario) REFERENCES Proprietari(codiceFiscale)
)
CREATE TABLE Officine (
Codice int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
nome varchar(100) ,
indirizzo varchar(150)
)
CREATE TABLE Riparazioni (
codice int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
dataAccettazione date,
oraAccettazione time,
Terminata int(1),
dataConsegna date,
oraConsegna time,
targaVeicolo varchar(20),
codiceOfficina int(10),
FOREIGN KEY (targaVeicolo) REFERENCES Veicoli(targa),
FOREIGN KEY (codiceOfficina) REFERENCES Officine(codice)
)
CREATE TABLE Dipendenti (
codiceFiscale varchar(16) NOT NULL PRIMARY KEY,
Indirizzo varchar(150),
telefono varchar(20),
anniServizio int(2),
qualifica varchar(50),
codiceOfficina int(10),
FOREIGN KEY (codiceOfficina) REFERENCES Officine(codice)
)
Modifiche al database appena creato :
3
1) aggiunta del solo campo nome sulla tabella dipendenti
ALTER TABLE dipendenti
ADD nome varchar(100)
2) eliminazione del campo nome dalla tabella dipendenti
ALTER TABLE dipendenti
DROP nome
2.a) aggiunta di un campo citta a officine
ALTER TABLE officine
ADD citta varchar(70)
3) Aggiunta di più campi contemporaneamente
ALTER TABLE dipendenti
ADD nome varchar(100),
ADD cognome varchar(100),
ADD citta varchar(70)
ALTER TABLE proprietari
ADD nome varchar(100),
ADD cognome varchar(100),
ADD citta varchar(70)
****----****
4) Rinomina di un campo
alter table veicoli change annoImmatricolazione annoImmatric year
1) Settare un valore di default
ALTER TABLE riparazioni
ALTER Terminata SET DEFAULT 0;
ALTER TABLE dipendenti
ALTER qualifica SET DEFAULT 'dipendente';
4