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));
Scarica

Lezione5 DDL