Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione alle query SQL per la gestione di database, Dispense di Elementi di Informatica

Una panoramica su come creare e gestire tabelle utilizzando il linguaggio sql, compresi i comandi per inserire, cancellare, modificare e interrogare i dati. Verranno presentate le sintassi per la creazione di tabelle, l'inserimento di dati, la cancellazione di record e la modifica dei dati. Inoltre, verranno esplorate le query select per effettuare operazioni di ricerca sui dati contenuti nelle tabelle.

Tipologia: Dispense

2011/2012

Caricato il 25/05/2012

darkevil
darkevil 🇮🇹

4.5

(20)

12 documenti

1 / 30

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
E.A.P. FEDARCOM
Ente di Addestramento Professionale
Corso: Web Architect
Modulo: Linguaggio SQL
Docente: Amato Antonio
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Anteprima parziale del testo

Scarica Introduzione alle query SQL per la gestione di database e più Dispense in PDF di Elementi di Informatica solo su Docsity!

E.A.P. FEDARCOM

Ente di Addestramento Professionale

Corso: Web Architect

Modulo: Linguaggio SQL

Docente: Amato Antonio

INTRODUZIONE

DATABASE

Cos’è un database

Con il termine database (base di dati) si indica l’insieme dei dati utilizzati in uno specifico sistema informativo, di tipo aziendale, scientifico, amministrativo o altro. Un database è composto da due diversi tipi di informazione, appartenenti a distinti livelli di astrazione:

  • i dati, che rappresentano le entità del sistema da modellare. Le proprietà di tali entità sono descritte in termini di valori (di tipo numerico, alfanumerico ecc). I dati inoltre, sono raggruppati o classificati in categorie in base alla loro struttura comune ( per esempio Libri, Autori);
  • le strutture (metadati), che descrivono le caratteristiche comuni delle varie categorie di dati, quali i nomi e i tipi dei valori. Il database deve inoltre rispondere ai seguenti requisiti.
  • I dati devono essere organizzati con ridondanza minima, ossia non essere inutilmente duplicati.
  • I dati devono essere utilizzabili contemporaneamente da più utenti. Questa esigenza deriva dal punto precedente: è da evitare la situazione in cui ogni utente (o categoria di utenti) lavora su una propria copia dei dati, ed è necessario che esista un’unica versione dei dati, cui tutti gli utenti possano accedere.
  • I dati devono essere permanenti. Ciò implica non solo l’utilizzo di memorie di massa, ma anche l’applicazione di tecniche che preservino l’insieme dei dati in caso di malfunzionamento di un qualsiasi componente del sistema.

Storia di SQL

Le origini di SQL risalgono all’inizio degli anni 70 in California, quando la società IBM sviluppa il System R, un applicativo per la gestione dei dati, il cui linguaggio veniva chiamato Sequel. Questo linguaggio rappresentava l’embrione di quello che sarebbe poi diventato l’attuale SQL. Infatti alla fine degli anni 70, sempre l’IBM, sviluppa un altro prodotto il DB2 (un sistema per la gestione di database relazionali o RDBMS, Relational Data Base Management System ) che utilizza una primordiale versione di SQL. Da allora si sono succeduti un gran numero di prodotti che implementano questo linguaggio e ogni produttore, aggiungendo delle variazioni e estensioni proprie, ha contribuito alla creazione della miriade di dialetti che oggi vengono chiamati SQL.

Tipi di Dati

Il linguaggio SQL prevede l’utilizzo dei seguenti tipi di dati:

  • CHARACTER
  • NUMERIC
  • DECIMAL
  • INTEGER
  • SMALLINT
  • DATE Il tipo CHARACTER può essere di lunghezza fissa o variabile; e può essere abbreviato con CHAR. I tipi NUMERIC, DECIMAL, INTEGER, SMALLINT rappresentano i numeri decimali positivi e negativi con o senza la virgola. Lo standard SQL però non utilizza la virgola, ma il punto, per la separazione dei decimali; alcuni DBMS commerciali invece permettono l’uso della virgola. La parola chiave INTEGER può essere abbreviata con INT, la parola chiave DECIMAL può essere abbreviata con DEC. Il tipo DATE definito nell’SQL standard rappresenta le date come sequenze di tre valori, riferiti ordinatamente all’anno, al mese e al giorno; il primo è rappresentato con quattro cifre, gli altri due con due cifre. Le costanti di tipo DATE sono espresse nel seguente formato:

DATE ‘AAAA – MM – GG’

La specifica del tipo DATE è effettuata mediante la parola chiave DATE.

Creazione di Tabelle

La creazione di tabelle avviene tramite il comando Create Table La sintassi di questo comando è: CREATE TABLE NomeTabella( NomeColonna Dominio [,NomeColonna Dominio]... [, PRIMARY KEY (ListaDiNomiDiColonna)] ) dove: NomeTabella è il nome della relazione che viene creata; NomeColonna Dominio [,NomeColonna Dominio]... è l’elenco separato da virgole degli attributi, con relativo dominio, che fanno parte della relazione. Ogni tabella ha almeno una colonna; PRIMARY KEY specifica quali attributi fanno parte della chiave primaria. ListaDiNomiDiColonna è una lista separata da virgole di nomi di attributi. La chiave primaria non è obbligatoria. N.B. In Microsoft Access per definire un tipo di dato numerico si utilizza NUMBER. Vediamo adesso degli esempi per creare delle tabelle: CREATE TABLE Studenti (Matricola NUMBER, Cognome CHAR (15), Nome CHAR (15), PRIMARY KEY (Matricola) ) e si otterrà la seguente tabella :

Con i comandi: CREATE TABLE Corsi ( Id NUMBER Nome CHAR (15), Docente CHAR (16), PRIMARY KEY (Id) ) si ottiene la tabella:

Inserire dati all’interno delle tabelle

Il comando INSERT è utilizzato per l’inserimento dei dati in una tabella. La sua sintassi è: INSERT INTO <nome_tabella> Values <lista_di_valori> dove gli elementi della sintassi hanno i seguenti significati: <nome_tabella> identifica la tabella di destinazione <lista_di_valori> è una lista di valori separata da virgole. I valori elencati verranno inseriti nella tabella rispettando l’ordine in cui le colonne sono state definite al momento della creazione della tabella stessa. Essi devono corrispondere ai tipi di dato specificati nella definizione delle colonne. Se ListaDiValori non contiene tante costanti quanti sono gli attributi della relazione, gli attributi per cui manca la costante assumeranno valore NULL. Inseriamo adesso dei valori nella tabella creata in precedenza: INSERT INTO Studenti VALUES ('101010', 'Rossi', 'Mario'); ottenendo la tabella:

Cancellazione dati

In SQL, la cancellazione di record è ottenuta mediante il costrutto DELETE FROM. La sintassi del comando è: DELETE FROM NomeTabella [WHERE Condizione] dove nella clausola DELETE FROM NomeTabella è un nome di relazione creata con CREATE TABLE e WHERE Condizione è un predicato SQL. La query SQL cancella dalla relazione NomeTabella i record che soddisfano la Condizione nella clausola WHERE; se la clausola WHERE non è presente vengono cancellate tutte le tuple della relazione. es: si vuole cancellare lo studente Verdi dalla tabella Studenti occorre scrivere: DELETE FROM Studenti WHERE Cognome = ‘Verdi’;

Modifica dei dati nelle tabelle

Il comando UPDATE è utilizzato per la modifica dei dati nelle tabelle. La sua sintassi è UPDATE <nome_tabella> SET <nome_colonna> = [WHERE ] dove: <nome_tabella> identifica la tabella ad aggiornare SET <nome_colonna> = identifica le colonne e i valori con cui vanno aggiornate [WHERE ] identifica le righe a cui l’aggiornamento va limitato; se è omessa, tutte le righe della tabella saranno soggette all’aggiornamento. es: si vuole aggiornare la matricola dello studente Verdi, della tabella Studenti. UPDATE Studenti SET Matricola = ‘653426’ WHERE Cognome = ‘Verdi’;

QUERY

Interrogazioni sul database (SELECT FROM WHERE)

I comandi d’interrogazione – query- consentono di effettuare operazioni di ricerca sui dati contenuti nelle tabelle del database, impostando le condizioni che tali dati devono soddisfare. Se si utilizza un interprete di comandi, il risultato dell’interrogazione verrà direttamente visualizzato sullo schermo. Tutte le interrogazioni sul database vengono effettuate utilizzando in maniera diretta o indiretta il comando di selezione specificato mediante l’operazione SELECT. Le selezioni operano su tabelle e restituiscono come risultato una tabella. La sintassi del comando di selezione è la seguente: <comando_select> :: = SELECT [ALL|DISTINCT] <lista_di _selezione> <espressione_di_tabella> [<clausola_di_ordinamento>] dove <espressione_di_tabella> :: = <clausola_FROM> [<clausola_WHERE>] [<clausola_GROUP_BY>] Come risulta dalla sintassi, nel comando è obbligatorio specificare, oltre alla <lista_di_selezione>, la sola clausola FROM. La clausola FROM indica la tabella o le tabelle su cui eseguire la selezione. Deve essere specificato il nome di almeno una tabella; successivamente, separati da virgole, possono essere indicati i nomi di altre tabelle.

con l’espressione: SELECT * FROM assegni; si ottiene: ............................................................................................................. Assegno Beneficiari Importo Note ............................................................................................................ 1 Computer Shop 500 Stampante 2 Assicurazioni ASSO 954 Assicurazioni automobili 3 SNAM 650 Riscaldamento casa 4 Supermarket GS 490 Alimentari 5 Scuola 490 Scuola di musica L’asterisco (*) di SELECT * indica al database di fornire tutte le colonne associate alla tabella specificata dalla clausola FROM. Come termina una istruzione SQL: In alcune implementazioni si usa il punto e virgola (;) in altre il punto e virgola o lo slash (/).

Selezionare le colonne o cambiare l’ordine di apparizione

Esempi: con l’espressione: SELECT importo, assegno FROM assegni; dalla tabella precedente si ottiene: .............................................. IMPORTO ASSEGNO .............................................. 500 1 954 2 650 3 490 4 490 5

Clausola DISTINCT (query senza duplicati)

Esaminando il contenuto del campo Importo della tabella ASSEGNI, si potrà notare che il valore 490 appare due volte. Possiamo visualizzare tale colonna facendo comparire i valori ripetuti una sola volta: SELECT DISTINCT Importo FROM ASSEGNI; ..................... IMPORTO .................... 500 954 650 490 Altro esempio: Con l’espressione: SELECT DISTINCT NOME, COGNOME FROM DOCENTI; si ottiene:

L’operatore somma:

Data la tabella con i prezzi espressi in centesimi: nella seguente espressione: SELECT ELEMENTO, PREZZOINGROSSO, PREZZOINGROSSO + 150 FROM PREZZO; l’operatore + aggiunge 150 a ogni prezzo e genera la seguente tabella:

Operatore sottrazione:

L’operatore meno svolge due funzioni. La prima è quella di cambiare il segno a un numero, la seconda è quella di sottrarre i valori di una colonna da quelli di un’altra colonna. Vediamo il primo caso:

con l’espressione SELECT REGIONE, - TEMPMIN, - TEMPMAX FROM MINMAX; si ottiene: Vediamo il secondo caso: con l’espressione SELECT REGIONE, (TEMPMAX – TEMPMIN) Differenza FROM MINMAX;

con l’espressione SELECT Elemento, PrezzoIngrosso, (PrezzoIngrosso * 0.9) NuovoPrezzo FROM PREZZO; si ottiene

Operatori di confronto

L’operatore (=):

Esempio: dalla seguente tabella vogliamo estrapolare tutti i dati dell’amico Mario SELECT * FROM AMICI WHERE NOME = ‘Mario’;

Gli operatori: maggiore (>) , maggiore o uguale (>=), minore (<),

minore o uguale (<=), diverso (<>):

Questi operatori si usano allo stesso modo di come si usa l’operatore di uguaglianza. Vediamo alcuni esempi: Voglio sapere chi ha più di 44 anni SELECT * FROM ANAGRAFICA WHERE Età > 44; Voglio sapere chi ha un’età diversa da 55 anni SELECT * FROM ANAGRAFICA WHERE Età <> 55;