Sistemi di Elaborazione delle Informazioni
Download
Report
Transcript Sistemi di Elaborazione delle Informazioni
Lezione 5 - SQL
Linguaggi per DB
Per interagire con le basi di dati occorre un linguaggio
Linguaggio SQL (Structured Query Language),
linguaggio standardizzato per basi dati, progettato per:
Creare e modificare schemi di database DDL (Data
Definition Language)
Inserire, Modificare e gestire dati memorizzati DML
(Data Manipulation Language
Interrogare i dati memorizzati DQL (Data Query
Language)
Creare e gestire strumenti di controllo ed accesso ai dati
DCL (Data Control Language)
DBMS MySQL
RDBMS Relational DataBase Management System
Software di libero utilizzo
Scaricabile gratuitamente dal sito:
https://www.mysql.it/
Tipi di Dati MySQL
Ogni DBMS presenta tipi di dati diversi
I dati che tratteremo sono:
Stringhe alfanumeriche
Numeri
Valori booleani
Date
Stringa Alfanumerica
Si tratta di testo contenente lettere e numeri
In MySQL si usa la parola Varchar(n)
VARCHAR è una stringa a lunghezza variabile:
In precedenza la lunghezza massima era 255 e gli spazi
vuoti a destra venivano eliminati in fase di
memorizzazione
ora invece ciò non avviene più e la lunghezza massima
dichiarabile è salita a 65535 caratteri
Dati Numerici
Esistono sia tipi di dati interi che decimali
Dati numerici decimali
Float(M,D)
Double(M,D)
M rappresenta il numero totale di cifre rappresentate e D il
numero di cifre decimali
Dati numerici Interi
Int(M)
L’indicazione del parametro M sugli interi non influisce sui
valori memorizzabili, ma rappresenta la lunghezza minima
visualizzabile per il dato. Se il valore occupa meno cifre, viene
riempito a sinistra con degli spazi
Date
Una colonna DATE può contenere date da ’1000-01-01′
(1° gennaio 1000) a ’9999-12-31′ (31 dicembre 9999)
MySQL visualizza le date nel formato appena
mostrato, tuttavia consente di inserirle sotto forma di
stringhe o numeri
Tipi Logici
Bool e Boolean
Memorizzano i valori logici:
Vero
Falso
Creazione di Tabelle
Utilizzando la sintassi SQL possiamo creare le tabelle
del nostro database:
Lo standard si avvicina molto alla lingua inglese:
CREATE TABLE "nome_della_tabella"
("colonna_1" "tipo_di_dati_per_la_colonna_1",
"colonna_2" "tipo_di_dati_per_la_colonna_2",
... );
Tabella Studenti
CREATE TABLE Studenti
( CodiceFiscale Varchar(16), Nome Varchar(15),
Cognome Varchar(15) );
Diagramma E-R
Crfeazione Tabelle
CREATE TABLE Reparti
( CodR Varchar(8), Nome Varchar(15),
NumeroPostiLetto Int );
CREATE TABLE Ospedali
( CodOsp Varchar(8), Nome Varchar(15), Indirizzo
Varchar(25) );
Creazione Tabelle
CREATE TABLE SaleOperatorie
( CodS Varchar(8), Nome Varchar(15), NumeroTavoli Int );
CREATE TABLE Dipendenti
( Matricola Varchar(8), Nome Varchar(15), Cognome
Varchar(15), Indirizzo Varchar(25), Figli Int, DataNascita
Date );
Creazione Tabelle
CREATE TABLE Medici
( Matricola Varchar(8), Nome Varchar(15), Cognome Varchar(15),
Indirizzo Varchar(25), Figli Int, DataNascita Date,
Specializzazione Varchar(15) );
CREATE TABLE TecniciAmministrativi
( Matricola Varchar(8), Nome Varchar(15), Cognome Varchar(15),
Indirizzo Varchar(25), Figli Int, DataNascita Date, Mansione
Varchar(15));
CREATE TABLE Infermieri
( Matricola Varchar(8), Nome Varchar(15), Cognome Varchar(15),
Indirizzo Varchar(25), Figli Int, DataNascita Date );
Attributo Chiave
Occorre prevedere uno o più campi che
contraddistunguono i record in maniera univoca
La chiave garantisce l'identificazione di ogni riga
PRIMARY KEY (NomeAttributo)
CREATE TABLE SaleOperatorie
( CodS Varchar(8), Nome Varchar(15), NumeroTavoli Int,
PRIMARY KEY (CodS) );
Diagramma E - R
Esercizio
Analizzare il diagramma E – R precedente, utilizzare la
sintassi SQL per definire le Entità rappresentate
Creazione Tabelle
CREATE TABLE Madre
( CF Varchar(16), Nome Varchar(15),Eta Int, TipoParto
Varchar(10), Letto Int, Stanza Int, Malattie Int
PRIMARY KEY (CF));
CREATE TABLE Bambino
( CF Varchar(16), Nome Varchar(15),Eta Int, Dieta
Varchar(10), Letto Int, PRIMARY KEY (CF));
Creazione Tabelle
CREATE TABLE Giorno
(Matricola Varchar(8), Nome Varchar(15),Ore Int,
Stanza Int, PRIMARY KEY (Matricola));