Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990...

28
Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II 1

Transcript of Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990...

Page 1: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

Corso di

Sistemi di Elaborazione delle Informazioni

Dott. Francesco Rossia.a. 2017/2018

SCUOLA DI MEDICINA E CHIRURGIA

Università degli Studi di Napoli Federico II

1

Page 2: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

Settima parteInterrogazione di una base di dati

Page 3: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

Modello E/R

STOSTIENE

STUDENTE ESAME

DOCENTE

EFFETTUA

1

1

N

N

Page 4: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

Modello Relazionale

Studente(matricola, nome, cognome, datanascita, nazionalità, media)

Esame(id, nomeesame, crediti, voto, studente, docente)

Docente(identificativo, nome, cognome, datanascita, nazionalità, dipartimento)

Page 5: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

Matricola Nome Cognome Data Nascita

Nazione media

M00031 Mario Bianchi 12/04/1990 Italia 28

M00033 Marie Le Pen 11/02/1988 Francia 26,5

ID Nomeesame Crediti Voto Studente Docente

001 Matematica 1 5 26 M00031 DOC0001

002 Fisica 1 9 25 M00033 DOC0002

003 Matematica 1 5 28 M00033 DOC0001

004 Fisica 1 9 30 M00031 DOC0002

Identificativo Nome Cognome Data Nascita Nazione Dipartimento

DOC0001 Massimo Della Pietra 12/2/1960 Italia Medicina

DOC0002 Giulia Volpe 12/03/1977 Italia Fisica

DOC0003 Francesco Migliore 03/03/1980 Italia Informatica

Studente

Esame

Docente

Page 6: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

SQL

• Data Definition Language(DDL) è un insieme istruzioni del linguaggio SQL utilizzate per definire la struttura dei dati (creare tabelle, modificare tabelle,eliminare tabelle) .

• Data Manipulation Language (DML) è un insieme di istruzioni del linguaggio SQL utilizzate per la manipolazione dei dati (inserimento dati, aggiornare dati, eliminare dati)

Page 7: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

CREATE TABLE

Il comando CREATE TABLE ha la funzione di creare una nuova tabella.

Il nome della tabella può essere maiuscolo o minuscolo e deve rispettare le seguenti regole:

• Può essere formato da lettere e numeri, ma il primo carattere deve sempre essere una lettera;

• Non può superare i 30 caratteri di lunghezza;

• Non può avere lo stesso nome di una tabella già esistente.

Page 8: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

Vincoli sui campi

• NOT NULL: Il vincolo NOT NULL indica che non è ammesso il valore nullo sul campo. In tal caso, in fase di inserimento, il campo deve sempre essere specificato.

• UNIQUE: Un vincolo UNIQUE si applica ad un campo o un insieme di campi di una tabella. Garantisce che non vengano immessi valori duplicati.

• PRIMARY KEY: Definisce la chiave primaria della tabella.

Page 9: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

SQL tipi di dati

CHARACTER(n) Stringa di lunghezza Fissa N

VARCHAR(n) Stringa di lunghezza Variabile massimo N

BINARY(n) Stringa binaria lunghezza fissa N

BOOLEAN Valore booleano

VARBINARY(n) or Stringa binaria lunghezza variabile massimo N

INTEGER Valore intero

FLOAT Valore decimale

DATE Data

Page 10: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

CREATE TABLE

Sintassi generale:

CREATE TABLE nome_tabella(

nome_colonna1 tipo di dato [vincolo opzionale],

nome_colonna2 tipo di dato [vincolo opzionale],

nome_colonnaN tipo di dato [vincolo opzionale]

)

Page 11: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ESEMPI

CREATE TABLE Studente

(

Matricola int NOT NULL,

Nome varchar(255) NOT NULL,

Cognome varchar(255) NOT NULL,

Datanascita DATE,

Nazione varchar(255),

PRIMARY KEY (Matricola)

)

Page 12: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ESEMPI

CREATE TABLE PERSONE(

ID_PERSONA NUMBER PRIMARY KEY,NOME VARCHAR2(25),COGNOME VARCHAR2(25),UNIQUE (NOME, COGNOME))

Page 13: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ALTER TABLE

Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella. Il comando può utilizzare i seguenti operatori:

• L'operatore ADD consente di inserire una nuova colonna in una tabella esistente oppure di aggiungere un vincolo.

• L'operatore ALTER COLUMN consente di cambiare il tipo di dato in una colonna.

• L'operatore DROP consente di eliminare una colonna o un vincolo.

Page 14: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ALTER TABLE

Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella.

ALTER TABLE nome_tabellaADD COLUMN | CONSTRAINT nome_colonna_nuova tipo_di_dato [vincolo opzionale]

Page 15: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ALTER TABLE

Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella.

Aggiungere una nuova colonna:

ALTER TABLE studente

ADD COLUMN via varchar(100)

Page 16: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ALTER TABLE

Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella.

Aggiungere un vincolo:

ALTER TABLE studenteADD CONSTRAINT studente PRIMARY KEY (matricola)

Page 17: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ALTER TABLE

Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella.

ALTER TABLE nome_tabellaALTER COLUMN nome_colonna tipo di dato

Page 18: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ALTER TABLE

Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella.

Modifica di una colonna:

ALTER TABLE studente ALTER COLUMN nome varchar(100)

Page 19: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ALTER TABLE

Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella.

ALTER TABLE nome_tabellaDROP COLUMN nome_colonna

Page 20: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ALTER TABLE

Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella.

ALTER TABLE studente DROP COLUMN nome

Page 21: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

DELETE

Serve per eliminare i dati di una tabella

DELETE FROM nome_tabellaWHERE condizione

DELETE FROM docente

WHERE nome = "Francesco"

Page 22: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

DROP TABLE

Il comando drop table consente di distruggere una tabella, eliminandola dal database.

Eliminare una tabella:

DROP TABLE nome_tabella

DROP TABLE studente

Page 23: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

INSERT

Consente di inserire tuple all’interno di una tabella

Inserire dati in una tabella:

INSERT INTO nome_tabella (colonna1 [, colonna2, colonnaN ]) VALUES (valore1 [, valore2, valoreN ])

Page 24: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

INSERT

Consente di inserire tuple all’interno di una tabella

Inserire dati in una tabella:

INSERT INTO studente (matricola, nome, cognome, datanascita, nazione, media)

VALUES("M00038","Alfredo","Ranieri",12/06/1940,"Italia",23.4);

Page 25: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

UPDATE

L’istruzione UPDATE è usata per modificare dati esistenti nelle tabelle

UPDATE nome_tabellaSET colonna1 = valore1, …, collonnaN = valoreN WHERE condizione

Page 26: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

UPDATE

L’istruzione UPDATE è usata per modificare dati esistenti nelle tabelle

UPDATE studente

SET nome="Giovanni"

WHERE nome="Mario"

Page 27: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

ESERCIZI

• Creare la tabella Esame

• Creare la tabella Docente

• Inserire un nuovo studente nella tabella Esame

• Inserire un nuovo docente nella tabella Docente

• Aggiungere il campo data nella tabella Esame

• Aggiungere il vincolo matricola come chiave primaria nella tabella Studente

• Modificare il campo cognome ad una lunghezza massima di 100 caratteri

• Eliminare tutti i dati della tabella Docente

• Eliminare la tabella Docente

• Eliminare le righe della tabella Esame in corrispondenza del nomesame = ‘’Fisica 1’’

• Aggiornare tutti i valori ‘’Medicina’’ in ‘’Medicina e Chirurgia’’

Page 28: Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990 Italia 28 M00033 Marie Le Pen 11/02/1988 Francia 26,5 ID Nomeesame Crediti Voto ...

Fine

“Non ne posso più!!! Una lezione davvero infinita…”