Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Linguaggio di interrogazione - Teknopedia
Linguaggio di interrogazione - Teknopedia
Niente fonti!
Questa voce o sezione sull'argomento linguaggi di programmazione non cita le fonti necessarie o quelle presenti sono insufficienti.

Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti.

In informatica un linguaggio di interrogazione (in inglese query language o data query language) è un linguaggio usato per creare query sui database e sui sistemi informativi da parte degli utenti. Serve per rendere possibile l'estrazione di informazioni dal database, attraverso il relativo DBMS, interrogando la base dei dati e interfacciandosi dunque con l'utente e le sue richieste di servizio.

Esempi

[modifica | modifica wikitesto]

Alcuni esempi di linguaggi di interrogazione sono:

  • SQL, un linguaggio molto noto usato per i database relazionali
  • MDX, un QL per i database OLAP
  • Datalog, per i database deduttivi
  • XQuery, per le fonti di dati in XML
  • SuprTool, un linguaggio proprietario per SuprTool, un programma per accedere ai database usato per i dati in Image/SQL (TurboIMAGE) e per i database Oracle.

DQL per SQL standard

[modifica | modifica wikitesto]

IL DQL (data query language – linguaggio di interrogazione dei dati) secondo lo standard SQL comprende i comandi per leggere ed elaborare i dati presenti in un database, strutturato secondo il modello relazionale. Questi dati devono essere stati precedentemente inseriti attraverso il Data Manipulation Language (DML) in strutture o tabelle create con il Data Definition Language (DDL), mentre il Data Control Language (DCL) stabilisce se l'utente può accedervi.

Select

[modifica | modifica wikitesto]

Col comando select abbiamo la possibilità di estrarre i dati, in modo mirato, dal database.

Sintassi del comando select

[modifica | modifica wikitesto]
SELECT [ ALL | DISTINCT |     TOP ] lista_elementi_selezione
FROM lista_riferimenti_tabella
[ WHERE espressione_condizionale ]
[ GROUP BY lista_colonne [HAVING Condizione] ]
[ ORDER BY lista_colonne ];

dove:

  • lista_elementi_selezione è l'elenco dei campi da estrarre (separati tra loro con una virgola);
  • lista_riferimenti_tabella è l'elenco delle tabelle da cui estrarre i dati;
  • espressione_condizionale rappresenta l'elenco delle condizioni, ovvero dei requisiti che un campo deve rispettare per poter essere prelevato dall'interrogazione (le condizioni sono specificate mediante gli operatori di confronto, connettori logici e comparatori come between, in, like, is null); lista_colonne è la colonna o le colonne che devono essere prese come riferimento per l'ordinamento dei dati in uscita.

Di default il comando select agisce con il metodo all, ma specificando distinct è possibile eliminare dai risultati le righe duplicate.

La clausola ORDER BY serve per ordinare i risultati in base a uno o più campi.

Limit (o top, a seconda delle implementazioni) limita il numero delle righe fornite: LIMIT 10 prende le prime 10 righe della mia tabella. È anche possibile scartare un certo numero di righe all'inizio dei risultati aggiungendo un parametro a LIMIT o la clausola OFFSET.

L'SQL standard non prevede alcun ordinamento se non si specifica la clausola ORDER BY, pertanto senza di essa anche LIMIT ha un effetto imprevedibile.
Un esempio è il seguente:

 SELECT DISTINCT cognome, nome, citta_residenza
 FROM utenti
 WHERE anni > = 18
 ORDER BY cognome

Questa query estrae l'elenco di tutti gli utenti maggiorenni ordinando l'output in base al cognome. La definizione di select è comunque molto più ampia, prevede molte altre opzioni ma in linea di massima con queste opzioni si compongono la maggior parte delle interrogazioni.

 SELECT DISTINCT *
 FROM utenti

l'asterisco permette di includere nella selezione tutte le colonne della tabella utenti

Con le select è possibile anche eseguire dei calcoli:

Select DISTINCT cod_art, prezzo_unit*giacenza AS Totale, giacenza*ingombro AS TotIngombro;
 FROM articoli

questo produce dati estratti ma anche dati calcolati. La clausola AS serve per dare un nome alla nuova colonna nella nuova tabella che creerà la select.

Molti DBMS supportano la clausola non standard LIMIT, che deve essere posta per ultima e può avere tre forme:

 LIMIT <numero_risultati>
 LIMIT <pos_primo_risultato>, <numero_risultati>
 LIMIT <numero_risultati> [OFFSET <pos_primo_risultato>]

numero_risultati è il numero delle righe da estrarre. pos_primo_risultato è l'indice della prima riga da estrarre. Insieme, possono essere utilizzati per suddividere i risultati in blocchi e leggerli un po' alla volta (per esempio per comodità del DBA, o per la paginazione dei risultati mostrati da una applicazione web).

Join

[modifica | modifica wikitesto]

Una forma di select composto tra più tabelle con uno o più campi comuni si ottiene attraverso la clausola Join.

Subquery

[modifica | modifica wikitesto]

Le subquery possono essere inserite ovunque il linguaggio SQL ammetta un'espressione che restituisce un singolo valore e nella clausola FROM. In questo secondo caso, le subquery sono chiamate anche tabelle derivate (derived table).

Le subquery propriamente dette possono restituire un singolo valore, oppure un insieme di risultati, a seconda dei casi. Un esempio piuttosto semplice è quello in cui si vogliono estrarre da una tabella i valori numerici superiori alla media. Una sola Select non può leggere la media e al contempo i valori che la superano. A questo scopo si avrà una select che legge la media:

SELECT AVG(campo1) FROM mia_tabella;

Questa query verrà inserita nella clausola WHERE della query più esterna; la subquery viene eseguita per prima:

SELECT * FROM mia_tabella WHERE campo1 > (SELECT AVG(campo1) FROM mia_tabella);

Come si vede, da un punto di vista sintattico è necessario porre le subquery tra parentesi.

Tabelle derivate

[modifica | modifica wikitesto]

Le tabelle derivate sono un caso particolare di subquery: una Select interna estrae i dati che verranno poi interrogati dalla Select esterna.

L'esempio seguente viene utilizzato a scopo didattico, ma non rappresenta un approccio ottimale. Si supponga comunque di voler estrarre i record per i quali il campo mail non è vuoto, scegliendoli tra gli utenti la cui registrazione è stata confermata. Ecco come ottenere questo risultato con una tabella derivata:

SELECT email FROM (SELECT email FROM utenti WHERE conferma = TRUE);

In realtà le tabelle derivate sono utili laddove non vi sono altri approcci possibili, il che accade quando la query esterna contiene una JOIN.

Altri progetti

[modifica | modifica wikitesto]

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file sul linguaggio di interrogazione

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Vladimir Slamecka, query language, su Enciclopedia Britannica, Encyclopædia Britannica, Inc. Modifica su Wikidata
  • (EN) Opere riguardanti Query languages (Computer science), su Open Library, Internet Archive. Modifica su Wikidata
V · D · M
Linguaggi di interrogazione
In uso.QL · ALPHA · CQL · Cypher · D · DMX · Datalog · GraphQL · Gremlin · ISBL · LDAP · LINQ · MQL · MDX · OQL · OCL · QUEL · SMARTS · SPARQL · SQL · XQuery · XPath · YQL
ProprietariYQL · LINQ
SuperatiCODASYL
Controllo di autoritàLCCN (EN) sh96000160 · GND (DE) 4134011-5 · BNF (FR) cb125325719 (data) · J9U (EN, HE) 987007537280505171
  Portale Informatica: accedi alle voci di Teknopedia che trattano di informatica
Estratto da "https://it.wikipedia.org/w/index.php?title=Linguaggio_di_interrogazione&oldid=143963833"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022