Estratto del documento

Linguaggio di query (I parte)

Il linguaggio di query è usato per le interrogazioni, ovvero per selezionare determinate tuple da una o più relazioni che soddisfano se richieste espresse nella query. Il formato più comune è:

  • SELECT o clausola di proiezione
  • FROM o clausola from
  • WHERE o clausola di qualificazione

Clausola SELECT

SELECT (ultima ad essere analizzata) specifica le colonne che devono essere restituite dalla relazione, ovvero "proiezione" della tabella che si intende visualizzare dall'interrogazione fatta.

  • La notazione "nome_relazione.nome_colonna", indica il nome della colonna di una determinata tabella che si intende visualizzare
  • La notazione "nome_relazione", indica che si intende visualizzare tutte le colonne di una tabella
  • La notazione "*", indica che si intende visualizzare tutte le colonne di tutte le relazioni espresse nella clausola FROM.

Nel comando SELECT è inoltre possibile specificare la clausola DISTINCT che se utilizzata elimina dalla proiezione eventuali tuple duplicate, se viene omessa invece le tuple duplicate vengono visualizzate normalmente.

Clausola FROM

FROM in questa clausola si specificano tutte le tabelle che devono essere analizzate nella query (ovvero solo le tabelle dalle quali si prendono i dati per l'interrogazione), viene raccolta quindi una lista di relazioni separate da virgole.

Clausola WHERE

WHERE è effettivamente la clausola che fa la selezione, ovvero qualifica le tuple delle relazioni che devono essere restituite dall'interrogazione. Essa lavora in una combinazione booleana di predicati (AND, OR, NOT).

I predicati

Oltre ai predicati booleani (AND, OR, NOT) esistono predicati semplici, come gli operatori relazionali di confronto (<, >, >=, <=, =, <>), che possono essere combinati con quelli booleani.

Es. e op e’, dove:

  • e ed e’ sono espressioni che denotano valori, possono essere formate semplicemente da una colonna o dalla somma (o altre operazioni) di più colonne
  • op è un operatore relazionale di confronto, oltre a quelli già visti SQL ne offre molti altri

In una interrogazione viene quindi prima valutata la clausola FROM, una volta note le tabelle dalle quali prendere i dati, si analizza la clausola WHERE che identifica le tuple che soddisfano tale clausola e infine si applica la clausola SELECT che mostra solo le colonne interessare delle tuple scelte dall'interrogazione (ovviamente l'ordine delle tuple che compaiono dall'interrogazione dipende dall'ordine in cui le colonne erano elencate nella clausola SELECT, se si usa "*" (STAR) l'ordine è quello in cui le relazioni compaiono nella clausola FROM e per ogni relazione dipendono dall'ordine in cui erano elencate al momento della definizione della relazione (al momento di CREATE TABLE).

Operatori e Funzioni

SQL fornisce numerosi operatori e funzioni utilizzati per specificare predicati ed espressioni, i più comuni sono:

Operatori di confronto

  • <, >, >=, <=, =, <>
  • BETWEEN permette di identificare l'appartenenza di un valore ad un intervallo (es. e BETWEEN v1 AND v2, la forma negata è NOT BETWEEN)
  • IN permette di identificare l'appartenenza di un valore a un insieme specificato (es. e IN (v1, v2, v3, …), la forma negata è NOT IN)
  • LIKE permette di eseguire semplici operazioni di "pattern-matching" su stringhe (es. e LIKE pattern, dove pattern è una stringa che contiene caratteri come "%" o "_", con % si denota una sequenza di caratteri arbitrari di lunghezza qualsiasi, con _ si denota esattamente un carattere, la forma negata è sempre NOT LIKE)

Se si volessero determinare i film che hanno come terza lettera nel titolo la "d" basterebbe: SELECT * FROM Film WHERE titolo LIKE '_ _ d%';

Funzioni e espressioni

  • Aritmetiche: Oltre agli usuali operatori aritmetici (+, -, *, /) comprendono:
    • funzione ABS(n), che, dato un valore numerico n, ne calcola il valore assoluto
    • funzione MOD(n,b) che, dati due valori interi n e b, calcola il resto della divisione intera di n e b
    • funzioni logaritmiche, esponenziali, per il calcolo della radice quadrata, dell'elevamento a potenza, della parte intera superiore e inferiore
  • Su stringhe: Oltre all'operatore di concatenazione denotato da || comprendono:
    • LENGTH(str) restituisce...
Anteprima
Vedrai una selezione di 3 pagine su 7
Basi di dati - linguaggio di Query Pag. 1 Basi di dati - linguaggio di Query Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Basi di dati - linguaggio di Query Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher koganzjo di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi dell' Insubria o del prof Carminati Barbara.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community