Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990...
Transcript of Corso di · Matricola Nome Cognome Data Nascita Nazione media M00031 Mario Bianchi 12/04/1990...
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
Settima parteInterrogazione di una base di dati
Modello E/R
STOSTIENE
STUDENTE ESAME
DOCENTE
EFFETTUA
1
1
N
N
Modello Relazionale
Studente(matricola, nome, cognome, datanascita, nazionalità, media)
Esame(id, nomeesame, crediti, voto, studente, docente)
Docente(identificativo, nome, cognome, datanascita, nazionalità, dipartimento)
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
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)
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.
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.
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
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]
)
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)
)
ESEMPI
CREATE TABLE PERSONE(
ID_PERSONA NUMBER PRIMARY KEY,NOME VARCHAR2(25),COGNOME VARCHAR2(25),UNIQUE (NOME, COGNOME))
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.
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]
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)
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)
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
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)
ALTER TABLE
Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella.
ALTER TABLE nome_tabellaDROP COLUMN nome_colonna
ALTER TABLE
Il comando ALTER TABLE ha la funzione di modificare la struttura di una tabella.
ALTER TABLE studente DROP COLUMN nome
DELETE
Serve per eliminare i dati di una tabella
DELETE FROM nome_tabellaWHERE condizione
DELETE FROM docente
WHERE nome = "Francesco"
DROP TABLE
Il comando drop table consente di distruggere una tabella, eliminandola dal database.
Eliminare una tabella:
DROP TABLE nome_tabella
DROP TABLE studente
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 ])
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);
UPDATE
L’istruzione UPDATE è usata per modificare dati esistenti nelle tabelle
UPDATE nome_tabellaSET colonna1 = valore1, …, collonnaN = valoreN WHERE condizione
UPDATE
L’istruzione UPDATE è usata per modificare dati esistenti nelle tabelle
UPDATE studente
SET nome="Giovanni"
WHERE nome="Mario"
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’’
Fine
“Non ne posso più!!! Una lezione davvero infinita…”