Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa:...
-
Upload
tiziana-landi -
Category
Documents
-
view
229 -
download
0
Transcript of Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa:...
sql: esempi di linguaggio sql nell'implementazione mysql
1
CREATE SCHEMA <nome_schema>che nel DBMS mysql diventa:
CREATE DATABASE [IF NOT EXIST] nome_databaseLa clausola IF NOT EXIST evita la segnalazione di errore se tale cartella gia’ esiste.
CREATE DATABASE Registro_Automobilistico
Esempio 1
sql: esempi di linguaggio sql nell'implementazione mysql
2
CREATE TABLE <nome_tabella>che nel DBMS mysql diventa:
CREATE TABLE nome_tabella
CREATE TABLE Categorie(Cod_Categoria char(2),Nome_Categoria char(30))
Esempio 2
sql: esempi di linguaggio sql nell'implementazione mysql
3
CREATE TABLE Veicoli(Targa char(10),Cod_Modello char(3),Cod_Categoria char(2),Cilindrata numeric(4),Cod_Combustibile char(2),Cavalli_Fiscali numeric(3),Velocità numeric(6),Posti numeric(2),Immatricolazione date)
Esempio 3
sql: esempi di linguaggio sql nell'implementazione mysql
4
Dovremmo digitare:CREATE TABLE Veicoli(Targa char(10),Cod_Modello char(3) not null,Cod_Categoria char(2),Cilindrata numeric(4),Cod_Combustibile char(2),Cavalli_Fiscali numeric(3),Velocità numeric(6),Posti numeric(2),Immatricolazione date)
Esempio 4
sql: esempi di linguaggio sql nell'implementazione mysql
5
Avendo però già implementato la tabella Veicoli non possiamo ricrearla ma dobbiamo modificarla usando il comando ALTER TABLE che sarà illustrato più avanti.
Il comando nel DBMS mysql presenta questa sintassi: ALTER TABLE VeicoliModify Cod_Modello char(3) not null
sql: esempi di linguaggio sql nell'implementazione mysql
6
CREATE TABLE Modelli(Cod_Modello char(3),Nome_Modello char(30) unique,Cod_Fabbrica char(3),Numero_Versioni numeric(1))
Esempio 5
sql: esempi di linguaggio sql nell'implementazione mysql
7
Avendo però già implementato la tabella Veicoli non possiamo ricrearla……….
ALTER TABLE VeicoliModify targa char(10) primary key
Esempio 6
sql: esempi di linguaggio sql nell'implementazione mysql
8
Nel DBMS le colonne di una chiave primaria devono essere dichiarate not null
CREATE TABLE Proprietà(Targa char(10) not null,Cod_Proprietario char(5) not null,Data_Acquisto date,Data_Cessione date,Primary Key (Targa,Cod_Proprietario))
Esempio 7
sql: esempi di linguaggio sql nell'implementazione mysql
9
Avendo però già implementato la tabella Veicoli non possiamo ricrearla……….
Il comando nel DBMS mysql presenta questa sintassi:
ALTER TABLE VeicoliDrop Cod_Categoria cascade
ALTER TABLE VeicoliAdd Cod_Categoria char(2) REFERENCES Categorie (Cod_Categoria)
Esempio 8
sql: esempi di linguaggio sql nell'implementazione mysql
10
Se nell’esempio precedente fosse stato specificatoALTER TABLE Veicoli Drop Cod_Categoria cascade
ALTER TABLE VeicoliAdd Cod_Categoria char(2) REFERENCES Categorie (Cod_Categoria) ON DELETE CA-SCADELa cancellazione della categoria con codice 04 avrebbe causato anche la cancellazione del veicolo con targa C845905Z
Esempio 9
sql: esempi di linguaggio sql nell'implementazione mysql
11
ALTER TABLE VeicoliADD CONSTRAINT Controlla_CilindrataCHECK (Cilindrata < 3000)
ALTER TABLE VeicoliADD CONSTRAINT Controlla_Cilindrata
CHECK (Cilindrata between 1500 and 3000)
Esempio 9bis
sql: esempi di linguaggio sql nell'implementazione mysql
12
DROP database Registro_Automobilistico RESTRICT non ha alcun effettoDROP database Registro_Automobilistico CASCADE cancella il database
in questa versione di mysql mancano però le due opzioni RESTRICT e CASCADE per cui:CREATE database Prova_Drop crea il databaseDROP database Prova_Drop cancella il database
Esempio 10
sql: esempi di linguaggio sql nell'implementazione mysql
13
DROP table Categorie RESTRICT fallisceDROP table Categorie CASCADE elimina la ta-bella ed il vincolo di chiave esterna in Veicoli
in questa versione di mysql mancano però le due opzioni RESTRICT e CASCADE per cui:CREATE table Prova_Drop crea il databaseDROP table Prova_Drop cancella il database
Esempio 11
sql: esempi di linguaggio sql nell'implementazione mysql
14
in questa versione di mysql mancano però le due opzioni RESTRICT e CASCADE per cui:
ALTER TABLE CategorieAdd esempio char(3) crea la colonna esempio
ALTER TABLE CategorieDrop esempio cancella la colonna esempio
Esempio 12
sql: esempi di linguaggio sql nell'implementazione mysql
15
ALTER TABLE VeicoliADD CONSTRAINT Controlla_CilindrataCHECK (Cilindrata < 3000)
crea il vincolo di tabella: cilindrata<3000
Esempio 13
sql: esempi di linguaggio sql nell'implementazione mysql
16
ALTER TABLE VeicoliALTER Cilindrata SET DEFAULT 0pone a 0 il valore di default di cilindrata
ALTER TABLE Veicoli ALTER Cilindrata DROP DEFAULTpone a null il valore di default di cilindrata
Esempio 14
sql: database relazionali 17
Categorie
Cod_CategoriaNome_Categoria
Veicoli
TargaCod_CategoriaCod_CombustibileCod_ModelloCilindrataCavalli_FiscaliVelocitàPostiImmatricolazione
Combustibili
Cod_CombustibileNome_Combustibile
Fabbriche
Cod_FabbricaNome_Fabbrica
Modelli
Cod_ModelloCod_FabbricaNome_ModelloNumero_Versioni
Proprietari
Cod_ProprietarioCognomeNomeIndirizzoProvincia
1
N
1
N
N
1
Proprietà
TargaCod_ProprietarioData_AcquistoData_Cessione
1
N
1
N1
N
Registro automobilistico
sql: esempi di linguaggio sql nell'implementazione mysql
18
INSERT INTO categorie (`cod_categoria`, `nome_categoria`) VALUES ('05', 'tir')
inserisce i valori elencati nella tabella Veicoli
Esempio 16
sql: esempi di linguaggio sql nell'implementazione mysql
19
update veicoli SET Cilindrata=null, Cavalli_fiscali=0 WHERE Cod_Modello="001“
vengono aggiornate più colonne della stessa tabella
Esempio 17
sql: esempi di linguaggio sql nell'implementazione mysql
20
DELETE FROM veicoliWHERE Targa=“A123456X”determina la cancellazione di una sola riga (es-sendo Targa chiave primaria)
DELETE FROM veicoli WHERE cod_categoria='01‘determina la cancellazione delle righe con Cod_Categoria=’01’
Esempio 18
sql: esempi di linguaggio sql nell'implementazione mysql
21
SELECT Cod_Modello, Nome_Modello FROM modellirestituisce i valori delle due colonne indicate relativi a tutte le righe della tabella
Esempio 19
sql: esempi di linguaggio sql nell'implementazione mysql
22
SELECT Cod_Modello ‘Codice’ FROM Modellirestituisce i valori della colonna Cod_Modello rinominandola Codice
SELECT * FROM Modellirestituisce i valori di tutte le colonne della tabella
Esempio 20
sql: esempi di linguaggio sql nell'implementazione mysql
23
SELECT Cod_Modello ‘Modelli presenti’ FROM Veicolirestituisce tutte le righe della tabella anche con lo stesso valore di Cod_Modello
SELECT DISTINCT Cod_Modello ‘Modelli presenti’ FROM Veicolirestituisce tutte le righe della tabella dove i valori di Cod_Modello non vengono ripetuti
Esempio 21
sql: esempi di linguaggio sql nell'implementazione mysql
24
SELECT * FROM veicoli WHERE Cilindrata>1000restituisce tutte le righe della tabella dove i valori di Cilindrata sono maggiori di mille
SELECT * FROM veicoliWHERE Cod_Combustibile=’01’AND Cilindrata>1000restituisce le righe dove i valori di Cilindrata so-no maggiori di mille e Combustibile=01
Esempio 22
sql: esempi di linguaggio sql nell'implementazione mysql
25
SELECT MAX(Cilindrata) ‘Cilindrata massima’FROM Veicolifornisce il valore della cilindrata massima
SELECT AVG(Cilindrata) ‘Cilindrata media’FROM Veicolifornisce il valore della cilindrata media
Esempio 23
sql: esempi di linguaggio sql nell'implementazione mysql
26
SELECT COUNT(*) ‘Numero Veicoli’FROM Veicolifornisce il numero di veicoli (righe)
SELECT MIN(Cilindrata) ‘Cilindrata minima’FROM VeicoliWHERE Cod_Combustibile=‘01’fornisce il valore della cilindrata minima tra i veicoli con Cod_Combustibile=01
Esempio 23……
sql: esempi di linguaggio sql nell'implementazione mysql
27
SELECT * FROM VeicoliWHERE Cilindrata > 1500ORDER BY Cavalli_Fiscali DESC, Targa
restituisce le righe della tabella Veicoli con cilin-drata maggiore di 1500, ordinate primariamente in modo decrescente in base ai cavalli fiscali e secondariamente in modo crescente per targa
Esempio 24
sql: esempi di linguaggio sql nell'implementazione mysql
28
SELECT Targa, Categorie.Cod_Categoria, Nome_CategoriaFROM Veicoli, CategorieWHERE Veicoli.Cod_Categoria = Categorie.Cod_Categoria
restituisce una tabella a tre colonne: le targhe di Veicoli con i corrispondenti Cod_Categoria e Nome_Categoria di Categorie
Esempio 25
sql: esempi di linguaggio sql nell'implementazione mysql
29
SELECT Targa, Categorie.Cod_Categoria, Nome_CategoriaFROM Veicoli, CategorieWHERE Veicoli.Cod_Categoria = Categorie.Cod_Categoria AND Cilindrata > 1600ORDER BY Targarestituisce una tabella a tre colonne: le targhe di Veicoli (con Cilindrata>1600) con i corrispon-denti Cod_Categoria e Nome_Categoria di Cate-gorie, ordinate per targhe crescenti
Esempio 25….
sql: esempi di linguaggio sql nell'implementazione mysql
30
SELECT Targa, Nome_Categoria FROM Veicoli,CategorieWHERE Veicoli.Cod_Categoria=Categorie.Cod_Categoria
nel DBMS MySql il comando Join ha solo la se-guente sintassi
SELECT Targa, Nome_Categoria FROM VeicoliINNER JOIN Categorie ON Veicoli.Cod_Categoria=Categorie.Cod_Categoria
Esempio 26