Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa:...

30
sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA <nome_schema> che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola IF NOT EXIST evita la segnalazione di errore se tale cartella gia’ esiste. CREATE DATABASE Registro_Automobilistico Esempio 1

Transcript of Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa:...

Page 1: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 2: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 3: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 4: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 5: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 6: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 7: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 8: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 9: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 10: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 11: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 12: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 13: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 14: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 15: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 16: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 17: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 18: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 19: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 20: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 21: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 22: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 23: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 24: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 25: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 26: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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……

Page 27: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 28: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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

Page 29: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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….

Page 30: Sql: esempi di linguaggio sql nell'implementazione mysql 1 CREATE SCHEMA che nel DBMS mysql diventa: CREATE DATABASE [IF NOT EXIST] nome_database La clausola.

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