Structured Query Language parte 1



Похожие документы
Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

DBMS (Data Base Management System)

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

Lezione V. Aula Multimediale - sabato 29/03/2008

Sistemi per la gestione di database: MySQL ( )

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

Informatica per le discipline umanistiche 2 lezione 10

Dispensa di database Access

Corso sul linguaggio SQL

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

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

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Al giorno d oggi, i sistemi per la gestione di database

Archivi e Basi di Dati

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

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

DATABASE.

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Access. P a r t e p r i m a

Le Basi di Dati. Le Basi di Dati

Corso di Laboratorio di Basi di Dati

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

SQL (STRUCTURED QUERY LANGUAGE)

Operazioni sui database

Definizione di domini

Informatica (Basi di Dati)

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Organizzazione degli archivi

Le query. Lezione 6 a cura di Maria Novella Mosciatti

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Capitolo 13. Interrogare una base di dati

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Introduzione ai database relazionali

Corso di Informatica (Basi di Dati)

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

SQL/OLAP. Estensioni OLAP in SQL

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Il linguaggio SQL: query innestate

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Organizzazione delle informazioni: Database

Introduzione all Algebra Relazionale

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Sistemi Informativi e Basi di Dati

Progettazione Logica. Progettazione Logica

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Progettazione di Basi di Dati

I database relazionali (Access)

Data management a.a Il linguaggio SQL

SQL Laboratorio di Basi di Dati a.a. 2002/2003

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

OSSIF WEB. Manuale query builder

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Basi di Dati: Corso di laboratorio

TEORIA sulle BASI DI DATI

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

Istruzioni DML di SQL

DATABASE RELAZIONALI

Basi di Dati e Microsoft Access

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

BASI DI DATI - : I modelli di database

I Sistemi Informativi

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

DATABASE. A cura di Massimiliano Buschi

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Il linguaggio SQL: le basi

Sistemi Mobili e Wireless Android - Dati persistenti: SQLite

Elena Baralis 2013 Politecnico di Torino 1

Corso di Sistemi di Elaborazione delle informazioni

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

Sistemi Informativi Aziendali II

Il Modello Relazionale

Dati relazionali e XML

Introduzione al data base

MAX, SUM, AVG, COUNT)

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

DATA BASE MANAGEMENT SYSTEM

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

Interrogazioni nidificate, commenti

MODULO 5 DATA BASE PROGRAMMA. Progettazione rapida introduzione alla progettazione di DB

Database Manager Guida utente DMAN-IT-01/09/10

Cultura Tecnologica di Progetto

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

SQL IL LINGUAGGIO DI INTERROGAZIONE

Lezioni di Laboratorio sui Data Base

Basi di dati e Sistemi informativi aziendali

Транскрипт:

Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Structured Query Language parte 1 Come interrogare una base di dati relazionale ed avere la risposta esatta Docente: Gennaro Pepe CEFRIEL Gennaro.pepe@cefriel.it http://www.cefriel.it/item

Riassumendo...le.le basi dati (1) Fatture Schedario dei numeri di telefono dei fornitori Ordini dei clienti Indirizzi dei clienti Archivio prodotti in magazzino Fatture Fornitori Ordini Clienti Magazzino informazioni tabelle base di dati - 2 -

Tabelle, record e campi Riassumendo...le basi di dati (2) I dati sono organizzati in tabelle chiamate relazioni. Ogni relazione è definita dalle colonne di cui è composta e contiene tutte le tuple (o righe) dello stesso tipo contenute nella base di dati. Le colonne della tabella rappresentano i campi o proprietà della tabella; ogni riga corrisponde a un record e raggruppa i valori che queste proprietà assumono in una tupla. tabella Rubrica Nome Cognome Telefono Indirizzo Gennaro Pepe 02-XXXXX Via Fucini 2 Marco Rossi 0575-XXXXXX Via Torre, 1 Città Milano Novara record Gennaro Pepe 02-XXXXX Via Fucini 2 Milano campo Gennaro - 3 -

Cos è SQL? SQL (Structured Query Language) è il linguaggio di riferimento per le basi di dati relazionali Data Definition Language (permette di definire lo schema di una b.d.r.) Data Manipulation Language (permette di modificare le istanze delle b.d.r.) Data Control Language (permette di definire controllo e autorizzazioni in una b.d.r) Comandi SQL (Structured Query Language) DDL DML DCL CREATE DROP INSERT UPDATE GRANT REVOKE DELETE SELECT - 4 -

Come viene usato SQL? SQL esprime le interrogazioni dichiarando l obiettivo dell interrogazione stessa e non il modo per raggiungerlo Tale interrogazione viene passata ad un interprete che la analizza e formula una interrogazione equivalente utilizzando il linguaggio procedurale specifico del DBMS Rappresenta uno strumento per l accesso ai dati alternativo a quelli che prevedono l uso di linguaggi di sviluppo ad hoc e/o interfacce amichevoli personalizzate per il particolare DB NOTA. Anche se sono diffuse interfacce di tipo grafico, la conoscenza di SQL rimane molto importante per lavorare con i DB (soprattutto per chi deve sviluppare SW) - 5 -

Le tappe della storia 1974 : prima proposta Structured English Query Language - SEQUEL (IBM Research) 1981 : prima implementazione in SQL/DS (IBM) dal 1983 ca.: standard di fatto 1986 : prima versione standard dell ANSI 1989 : estensione dello standard SQL-89 1992 : SQL-92 o SQL2 1999 : SQL3, ancora non implementato da nessuno, orientato agli aspetti più avanzati, quali le applicazioni web, XML, il paradigma ad oggetti - 6 -

Selezione semplice Per visualizzare o estarre i dati da una tabella occorre utilizzare le query di selezione, basate sull uso del comando SELECT Come dice il nome, una tale interrogazione permette di selezionare dei particolari dati di una tabella e visualizzarli La selezione viene fatta sulla base dei nomi delle colonne della tabella La parola chiave FROM permette di scegliere la tabella del database da cui si vogliono estarre i dati select ListaCampi from Tabella - 7 -

Selezione semplice es. Nome Età Reddito persone Angelo Marco Piero 27 26 19 48 45 50 Individuare tutti i nomi e i rispettivi redditi select Nome, Reddito from Persone; Nome Angelo Marco Piero Reddito 48 45 50-8 -

Ordinare i dati Per avere in output un insieme di righe ordinate secondo un certo campo, si può utilizzare il comando Order by select ListaCampi from Tabella order by campox Esempio Individuare nomi e persone redditi ordinati per Nome Età Reddito Reddito select Nome,Reddito from persone order by Reddito; - 9 -

Filtrare i dati La clausola WHERE permette di specificare una condizione che deve essere soddisfatta dai dati estratti Su ciascuna riga vengono valutati i valori dei campi coinvolti nella condizione: solo se essi verificano la condizione i campi di tale riga specificati dalla SELECT vengono selezionati select ListaCampi from Tabella where Condizione La La condizione è un un predicato (o (o più) che usa gli operatori =, =, <>, <, <, >, >, <=, >= >= - 10 -

Filtrare i dati - es. Nome Età Reddito persone Angelo Marco Piero 27 26 19 48 45 50 Individuare nomi e redditi delle persone che guadagnano più di di 45 45 select Nome, Reddito from Persone where Reddito>45; Nome Angelo Piero Reddito 48 50-11 -

Filtrare i dati wildcard Per specificare i criteri di selezione su dei campi di tipo testo è possibile utilizzare la funzione LIKE L uso dei segni % o * permette di selezionare più stringhe che si corrispondono solo in parte I segni _ o? spesso permette di sostituire invece un singolo carattere select ListaCampi from Tabella where campox like text* - 12 -

Filtrare i dati wildcard es. Nome Età Reddito persone Angelo Marco Martina Piero 27 26 23 19 48 45 52 50 Individuare l età di di tutte le le persone con un un nome che inizia per Mar. select Età from persone where nome like Mar* ; Età 26 23-13 -

Filtraggio avanzato operatori logici Attraverso gli operatori AND ed OR è possibile combinare più criteri di selezione L operatore NOT è utilizzabile per creare delle condizioni che sono il negato di altre - 14 -

Filtraggio avanzato es. es. (1) Nome Età Reddito persone Angelo Marco Martina Piero 27 26 23 19 48 45 52 50 Individuare nome nome e età età di di tutte tutte le le persone con con un un nome nome che che inizia per per Mar Mar e un un reddito maggiore di di 50. 50. Individuare nome nome e età età di di tutte tutte le le persone con con un un nome nome che che non non inizia per per Mar. select nome, età from persone where nome not like Mar* ; Nome Angelo Piero - 15 - Età 27 19 select nome, età from persone where nome like Mar* and Reddito>50; Nome Martina Età 23

Filtraggio avanzato..altri.altri operatori L operatore IN permette di specificare la condizione di appartenenza ad un certo insieme di valori (eventualmente risultato dell esecuzione di un altra query) Per verificare se un attributo è null si usa l operatore IS Es. Attributo is null oppure Attributo is not null - 16 -

Filtraggio avanzato es. es. (2) Nome Età Reddito persone Angelo Marco Martina 27 26 23 48 45 52 Individuare nome nome e età età di di tutte tutte le le persone con con un un nome nome che che non non è Angelo, Giovanni e Marco. Piero 19 50 select nome, età from persone where nome not in ( Angelo, Giovanni, Marco ); Nome Martina Piero Età 23 19-17 -

Duplicati In SQL si possono avere più righe uguali in una stessa tabella L eliminazione dei duplicati non viene fatta automaticamente perché è una operazione costosa e spesso non necessaria Se non si vogliono i duplicati è necessario esplicitarlo tramite la parola chiave distinct persone Nome Età Reddito Individuare i nomi distinti della tabella persone select distinct Nome from persone; - 18 -

I campi calcolati Spesso i dati presenti in una base di dati non sono nella forma di cui hanno bisogno le applicazioni che li utilizzeranno: Città CAP Provincia Città CAP Provincia Prezzo Quantità Costo (=Prezzo x Quantità) Utilizzando operatori quali, +, & è possibile concatenare più stringhe Utilizzando gli operatori aritmetici è possibile associare a dei campi del risultato delle espressioni Utilizzando il comando AS è possibile specificare un alias per un campo o un espressione - 19 -

I campi calcolati es. Nome Compenso_mensile Mesi_di_lavoro persone Angelo Marco Martina 3 2,5 4 3 5 6 Selezionare il il nome nome e il il compenso totale di di ogni ogni persona select nome, compenso_mensile*mesi_di_lavoro as compenso from persone; Nome Compenso Angelo Marco Martina 9 12,5 24-20 -

Uso di funzioni Al pari di altri linguaggi di programmazione, SQL supporta l uso di funzioni per la manipolazione dei dati Tali funzioni spesso sono molto specifiche al DBMS Esse si possono dividere in quattro grosse categorie: manipolazione di stringhe di testo operazioni matematiche manipolazione di valori di date ed orari estrazione di informazioni di sistema - 21 -

Uso di funzioni es. Funzioni di manipolazioni di date: Year(data) Month(data) Dayofmonth(data) Datepart(yyyy, data) mm dd to_char(data, YY ) MM DD Funzioni matematiche: ABS(x) SQRT(x) EXP(x) LOG x)... valore assoluto radice quadrata esponenziale - 22 -

Esercizio Film (Codice, Titolo, Data_uscita, CasaProduttrice, Regista, Sceneggiatore, Costo) 1. Trovare i registi ed I titoli precisi dei film della serie Rocky 2. Trovare i film che hanno come regista lo sceneggiatore 3. Trovare i film diretti da Spielberg ed usciti tra il 1990 ed il 2000-23 -

Soluzione 1. select Titolo, Regista from Film where Film.Titolo LIKE Rocky* 2. select Titolo from Film where Film.Regista=Film.Sceneggiatore 3. select Titolo, Anno from Film where (Film.Regista LIKE Spielberg ) AND ( Year(Film.Data_uscita)>1990 ) AND ( Year(Film.Data_uscita)<2000 ) - 24 -

Bibliografia Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone - Seconda edizione settembre 1999 - McGraw Hill Capitolo 4.2 Teach Yourself SQL in 10 minutes second edition Ben Forta 2001, SAMS - 25 -