Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> software >> SQL Server >> .

Cosa fa un linguaggio non procedurale SQL?

SQL (linguaggio di query strutturato) è considerato un linguaggio non procedurale perché si concentra su * cosa * dati da recuperare, non * come * recuperarli. Al contrario, i linguaggi procedurali specificano i passaggi esatti che il computer deve intraprendere per ottenere un risultato.

Ecco cosa rende SQL non procedurale:

* Natura dichiarativa: Descrivi il risultato desiderato (ad esempio, "Seleziona tutti i clienti dalla tabella" clienti "in cui il paese è" USA "") e il motore SQL determina il modo più efficiente per eseguire la query. Non dettare gli algoritmi o i passaggi specifici.

* Ottimizzazione da parte del sistema di database: Il sistema di gestione del database (DBMS) è responsabile della creazione di un piano di esecuzione - una sequenza di operazioni - per raggiungere il risultato desiderato. Questo piano potrebbe comportare l'indicizzazione, i giunti, l'ordinamento e altre tecniche trasparenti per l'utente. L'utente non specifica come vengono eseguite queste operazioni.

* Operazioni orientate al set: SQL funziona su set di dati (tabelle) piuttosto che singoli record. Una singola istruzione SQL può manipolare migliaia o milioni di file contemporaneamente. Ciò contrasta con i linguaggi procedurali, che in genere elaborano i dati un record alla volta.

Al contrario, un linguaggio procedurale (come C o Python) richiederebbe di scrivere un codice che esplicitamente:

1. Apre la connessione del database.

2. Itera attraverso ogni record nella tabella "clienti".

3. Controlla il paese di ogni record.

4. Se il paese è "USA", aggiunge il record a un set di risultati.

5. Chiude la connessione del database.

SQL estrae tutti questi passaggi, rendendolo molto più semplice ed efficiente per le attività di manipolazione dei dati, specialmente quando si tratta di set di dati di grandi dimensioni. Il "How" viene lasciato all'ottimizzatore del sistema di database.

 

software © www.354353.com