SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

Documenti analoghi
Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

Manuale SQL. Manuale SQL - 1 -

Caratteristiche dei linguaggi per Database

Structured Query Language

Sistemi di Elaborazione delle Informazioni

SQL: le funzioni di aggregazione

Select From Where...

Linguaggio SQL seconda parte

Informatica Grafica. Basi di dati parte 2

QL (Query Language) Alice Pavarani

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

SQl come DML. Angelo Chianese,, Vincenzo Moscato, Antonio Picariello,, Lucio Sansone

Lezioni di Laboratorio sui Data Base

SQL /10/2016 Basi di dati - SQL 1

SQL (STRUCTURED QUERY LANGUAGE)

Sistemi di Elaborazione delle Informazioni

Stringhe di caratteri

Linguaggio SQL. Prof. Giuseppe Tandoi

(Lezione SQL 1) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione. Università degli Studi di Padova

Fondamenti di Informatica A. A / 1 9

Corso di Informatica Linguaggio SQL prima parte

Corso di Basi di Dati

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

IL MODELLO RELAZIONALE

PROGETTAZIONE DI DATABASE Linguaggio SQL

SQL (STRUCTURED QUERY LANGUAGE)

PRODOTTO CARTESIANO Caso Generale

Archivi e basi di dati - ing. M. Cossentino. Settore. Traccia 1. Traccia 200. Settore non polarizzato

Gestione delle informazioni. Tot. h 10. Base di Dati. Tot. h 56. Grafica in C# - Laboratorio- Tot. h 40. Dipartimento Informatica Materia Informatica

Sommario. Introduzione... 13

A.A. 2018/2019. Esercitazione 11. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola:

Corso di Informatica Medica

Laboratorio di Basi di Dati

A.A. 2018/2019. Introduzione a SQL FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Basi di Dati: Corso di laboratorio

Unità C1. Obiettivi. Le funzionalità di SQL. L evoluzione del linguaggio. L utilizzo di SQL. I tipi di dato. Il linguaggio SQL

Basi di Dati. Dettagli e Approfondimenti SQL-92 25/02/2004. Dettagli e Approfondimenti. DDL: Tabelle. DML: Aggiornamenti.

SQL DDL. Create database. Alter database. Drop database

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

Basi di Dati SQL-92. Dettagli e Approfondimenti

Basi di Dati. Concetti Avanzati

Basi di Dati SQL-92. Dettagli e Approfondimenti

Appunti su SQL. Query Language. Comando Select

ESERCITAZIONI ACCESS

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

IL LINGUAGGIO SQL LE BASI

Database parte 2. Database azienda

Laboratorio di Basi di Dati

BASI di DATI. SQL: concetti fondamentali

Viste come strumenti di programmazione

SQL: "storia" 31/05/2006 2

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

SQL e algebra relazionale

Basi di Dati. Concetti Fondamentali SQL-92 25/02/2004. Concetti Fondamentali. Introduzione. Interrogazioni. Creazione ed eliminazione di bd

SQL - Structured Query Language

SQL. Lezione 1. Docente: Alberto Belussi

Basi di Dati SQL-92. Concetti Fondamentali

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO

SQL Esempi. 24/10-7/11/2016 Basi di dati - SQL 1

Appunti su SQL. Query Language. Comando Select

Basi di Dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Interpretazione delle query nidificate

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Query SQL - singola tabella

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

SQL STRUCTURED QUERY LANGUAGE

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Query SQL - singola tabella

Progettazione di Sistemi Informatici

Laboratorio di Basi di Dati

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

DDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language)

MODULO 2. Query normali e parametriche Query di:

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Archivi e Basi di Dati. lezione 07 1

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Versione 1.0. (DB Visite Specialistiche)

Il linguaggio SQL. Il linguaggio SQL

Introduzione Basi di Dati. Orazio Battaglia

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL

Esempio di database relazionale con l utilizzo del prodotto MySQL

SQL Esempi /10/2017 Basi di dati - SQL 1

Prova Scritta di Basi di Dati

Basi di Dati - Informatica umanistica Esercitazione (Lab)

Uno dei principali motivi del successo delle basi di dati: è diventato uno standard

Transcript:

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini

Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle

Introduzione SQL: linguaggio di interrogazione standard per DBMS relazionali Consente anche: manipolazione dati, riorganizzazione dati, esecuzione di comandi amministrativi Non è un linguaggio di programmazione completo Utilizzabile in ambienti di programmazione Sono disponibili shell di interpretazione dei comandi Nato nei primi anni 80 sulla spinta di IBM che ne ha curato anche la standardizzazione, l ultima versione è ISO/IEC 9075-2:2003

Istruzione SELECT Molto flessibile Restituisce una tabella temporanea Sintassi SELECT [ALL DISTINCT]<lista attributi> FROM <lista tabelle> [WHERE <condizione>] [GROUP BY <lista attributi>] [HAVING <condizione>] [ORDER BY <lista attributi> [ASC DESC]]

Istruzione SELECT (2) SELECT: attributi da selezionare FROM: tabelle che contengono gli attributi di cui sopra WHERE: condizione di scelta fra le righe GROUP BY: modo di raggruppamento HAVING: condizione sui gruppi ORDER BY: attributi di ordinamento ASC cerscente DESC decrescente

Proiezione Scelta di alcuni attributi da una tabella (*) Possibile ridenominazione (AS)

Restrizione Opera sulle righe Ottiene un sottoinsieme delle righe della tabella Dipende dalle condizioni specificate nel WHERE Operatori (<, <=, =, >=, >, <>) e connettori logici (AND, OR, NOT) Operatori BETWEEN, IN, IS NULL

LIKE Operatore per ricerche flessibili sulle stringhe Da usarsi con caratteri speciali % una qualsiasi sequenza di caratteri o (*) _ un singolo carattere qualsiasi o (?)

Operazioni sulle colonne Nella lista delle colonne Operatori matematici Concatenazione di stringhe o & o +

Funzioni scalari di gruppo Restituiscono un singolo valore e sono applicate su insiemi di righe Max Min AVG SUM (attributo) COUNT ( * Espressione) con * tutte le righe, con Espressione conta solo quelle in cui Espressione è <> NULL

Raggruppamenti GROUP BY: raggruppa righe secondo la lista degli attributi specificata HAVING: specifica delle condizioni sui gruppi formati dagli attributi della clausola GROUP BY

Join Prodotto Cartesiano (CROSS JOIN) SELECT <lista attributi> FROM <tabella1>,<tabella2> Giunzione Naturale (NATURAL JOIN) SELECT <lista attributi> FROM <tab1>,<tab2> WHERE <tab1.pk> = <tab2.fk>

Inner Join <tab1> INNER JOIN <tab2> [ON <condizione>] Non è limitato solo alle connessioni fra le chiavi Non è solo di uguaglianza Non è limitato alle sole tabelle connesse in fasi di costruzione dello schema

Outer Join SELECT <lista attributi> FROM <tab1> [LEFT RIGHT] JOIN <tab2> ON <tab1.campo1> <opconf> <tab2.campo2> <opconf> = < > = <= >= Fornisce tutte le righe anche quelle che non hanno corrispondenze dal lato indicato

Self Join Join che lega due occorrenze presenti nella stessa tabella Come i precedenti, solo che ha bisogno di due istanze della stessa tabella nel FROM con la ridenominazione

Join su più tabelle Come quello su due tabelle Non serve che siano collegate logicamente Bastano dei domini comuni a due a due

Subquery scalari (1) Esempio: selezione di righe sulla base del risultato di un altra query Def. : una query racchiusa da parentesi () che può essere inserita in un altra istruzione SQL, principalmente come parametro di una sezione di WHERE SELECT matricola, cognome, nome, eta FROM Studente WHERE eta > (SELECT AVG(eta) FROM studente)

Subquery scalari (2) Condizioni di uso Deve restituire un solo valore Deve comparire a destra dell operatore di confronto Non si possono confrontare due subquery Nella subquery non si possono usare (GROUP BY e HAVING)

Subquery e IN (1) Con la clausola IN si può controllare in un insieme, quindi possiamo usare subquery che restituiscono un vettore (colonna) di dati SELECT * FROM Impiegato WHERE Impiegato.matricola IN (SELECT DISTINCT Familiare.matricola FROM Familiare Where eta<18 AND legame = F )

Subquery e IN (2) SELECT DISTINCT * FROM Impiegato, Familiare WHERE Impiegato.matricola = Familiare.matricola and Familiare.eta<18 and Familiare.legame= F Da usare il Join se si vogliono in output campi anche della tabella familiare

Subquery annidate SELECT Filiale.* FROM Filiale WHERE codice IN (SELECT codice_filiale FROM Tariffa WHERE codice_categoria = (SELECT codice FROM Categoria WHERE descrizione = Lusso ) AND prezzo<30) Possibili problemi di efficienza

Tipi di linguaggi per il DBMS Data Manipulation Language (DML): comandi per inserire, modificare, cancellare occorrenze in una tabella Data Definition Language (DDL): comandi per la struttura del DB (creazione/eliminazione di tabelle/attributi/vincoli/viste) Data Control Language (DCL): comandi per il controllo sui dati, gestione degli utenti, diritti

INSERT (1) Inserimento di righe in tabelle Dati specificati nell istruzione INSERT INTO <nome_tabella> [lista_colonne] VALUES <lista_valori> Es: INSERT INTO Studente (matricola, cognome, nome) VALUES (2523789, Rossi, Mario ) Corrispondenza 1 a 1 fra lista colonne e lista valori Campi non presenti nella lista messi a NULL Se non c è la lista colonne, i valori saranno assegnati ai campi nell ordine in cui compaiono nella tabella Il valore della chiave primaria deve sempre essere assegnato

INSERT (2) Accoppiata con una SELECT per ottenere i dati da inserire INSERT INTO Studente_Laureato (SELECT * FROM Studente WHERE laureato = S ) La tabella Studente_Laureato deve essere già presente e deve avere la stessa struttura di Studente

UPDATE Modifica i dati già presenti Sintassi UPDATE <nome_tabella> SET <colonna>=<espressione> [{,<colonna>=<espressione>}] [WHERE <condizione>] L espressione può essere anche una subquery scalare

DELETE Elimina tutte le righe che rispettano la condizione scritta nella clausola WHERE Sintassi: DELETE FROM <nome_tabella> [WHERE <condizione>]

CREATE TABLE Comando per la creazione di tabelle Sintassi: CREATE TABLE <nome_tabella> ( { <nome_colonna> <tipo [ (dimensione) ] > [NOT NULL CONSTRAINT <nome_vincolo> PRIMARY KEY UNIQUE ] [,] } )

Tipi di dati CHAR (n): sequenza alfanumerica di n caratteri CHAR VARYING (n): come sopra ma qui n è un valore massimo DECIMAL (t,f) numero decimale di t cifre di cui f decimali INTEGER numero intero (4 byte) SMALLINT intero corto (2 byte) FLOAT (n) numero a virgola mobile a precisione variabile REAL / DOUBLE numeri a virgola mobile a precisione fissa DATE

Vincoli di integrità NOT NULL: attributo obbligatorio (specificabile anche senza il predicato CONSTRAINT) UNIQUE: valore che deve essere diverso in tutte le righe PRIMARY KEY: indica la chiave primaria della relazione, indicabile una sola volta nella creazione della tabella

Vincoli di integrità di tabella Chiave primaria composta di più attributi Da indicarsi alla fine della CREATE TABLE CONSTRAINT <vincolo> PRIMARY KEY ( {<attributo> [,] } ) Chiavi esterne CONSTRAINT <vincolo> FOREIGN KEY ({<attributo_nella_tabella> [,] }) REFERENCES <nome_tabella_esterna> ({<attributo_esterno> [,] })