Qual è la differenza tra SQL, PL-SQL e T-SQL?


360

Qual è la differenza tra SQL, PL-SQL e T-SQL?

Qualcuno può spiegare quali sono le differenze tra questi tre e fornire scenari in cui ciascuno sarebbe utilizzato in modo pertinente?


1
Il linguaggio di query utilizzato da Microsoft SQL Server è una variante del linguaggio di query strutturato standard ANSI, SQL. La variante di SQL Server si chiama Transact-SQL.

SQL è un linguaggio orientato ai dati per la selezione e la manipolazione di insiemi di dati. PL / SQL è un linguaggio procedurale per creare applicazioni

SQL è un linguaggio di query strutturato PL / SQL è un linguaggio procedurale esteso a sql è sviluppato da Oracle T-SQL è sviluppato da microsoft

Risposte:


379
  • SQL è un linguaggio di query per operare sui set.

    È più o meno standardizzato e utilizzato da quasi tutti i sistemi di gestione di database relazionali: SQL Server, Oracle, MySQL, PostgreSQL, DB2, Informix, ecc.

  • PL/SQL è un linguaggio procedurale proprietario utilizzato da Oracle

  • PL/pgSQL è un linguaggio procedurale utilizzato da PostgreSQL

  • TSQL è un linguaggio procedurale proprietario utilizzato da Microsoft in SQL Server.

I linguaggi procedurali sono progettati per estendere le capacità di SQL pur essendo in grado di integrarsi bene con SQL. Sono state aggiunte diverse funzionalità come variabili locali ed elaborazione di stringhe / dati. Queste caratteristiche rendono il linguaggio Turing completo.

Vengono inoltre utilizzati per scrivere procedure memorizzate: pezzi di codice che risiedono sul server per gestire regole aziendali complesse che sono difficili o impossibili da gestire con operazioni basate su set puri.


14
TSQL è anche usato da Sybase; almeno in Oracle, le procedure PL / SQL possono fare molto di più che gestire semplicemente "regole aziendali"; Le procedure PL / SQL possono accedere a siti Web, inviare e-mail, ecc.
Erich Kitzmueller,

3
PL / SQL non esiste solo nel database, ad es. Oracle Forms contiene un'implementazione lato client di PL / SQL.
Erich Kitzmueller,

2
Nota che ogni database ha la propria implementazione di SQL (T-SQL e PL / SQL sono due dei più comuni), lo standard SQL ANSII viene spesso utilizzato quando si utilizzano più backend, ma non tutti i database utilizzano tutte le funzionalità ANSII SQL. E l'implementazione specifica del database di SQl tende a essere quella che funziona meglio per quel database - dopo tutto devono darti un motivo per usare il loro database, giusto?
HLGEM,

2
Correzione: SQL è un linguaggio per operare su tabelle per le quali SQL stesso fornisce la definizione. Lo standard SQL evita le parole "set" e "relazione" e i loro derivati. Le tabelle SQL non sono impostate.
giorno

1
Sarebbe sicuramente bello avere un linguaggio procedurale sql che funzioni su Oracle e SQL Server.
RayLoveless,

113

SQL

SQL viene utilizzato per comunicare con un database, è il linguaggio standard per i sistemi di gestione di database relazionali.

In dettaglio Structured Query Language è un linguaggio di programmazione appositamente progettato per la gestione dei dati contenuti in un sistema di gestione di database relazionali (RDBMS) o per l'elaborazione di flussi in un sistema di gestione di flussi di dati relazionali (RDSMS).

Originariamente basato sull'algebra relazionale e sul calcolo relazionale della tupla, SQL è costituito da un linguaggio di definizione dei dati e un linguaggio di manipolazione dei dati. L'ambito di SQL include l'inserimento, la query, l'aggiornamento e l'eliminazione di dati, la creazione e la modifica di schemi e il controllo dell'accesso ai dati. Sebbene SQL sia spesso descritto come, e in larga misura, un linguaggio dichiarativo (4GL), include anche elementi procedurali.

PL / SQL

PL / SQL è una combinazione di SQL insieme alle funzionalità procedurali dei linguaggi di programmazione. È stato sviluppato da Oracle Corporation

Specialità di PL / SQL

  • linguaggio di elaborazione delle transazioni completamente portatile e ad alte prestazioni.
  • fornisce un ambiente di programmazione integrato interpretato e indipendente dal SO.
  • essere richiamato direttamente dall'interfaccia SQL * Plus della riga di comando.
  • È inoltre possibile effettuare chiamate dirette da chiamate in linguaggio di programmazione esterno al database.
  • la sintassi generale si basa su quella del linguaggio di programmazione ADA e Pascal.
  • Oltre a Oracle, è disponibile nel database in memoria TimesTen e IBM DB2.

T-SQL

Abbreviazione di Transaction-SQL , una forma estesa di SQL che aggiunge variabili SQL, controllo delle transazioni, gestione degli errori e delle eccezioni ed elaborazione delle righe a SQL

Il Structured Query Language o SQL è un linguaggio di programmazione focalizzato sulla gestione di database relazionali. SQL ha i suoi limiti che hanno spinto il gigante del software Microsoft a costruire su SQL con le proprie estensioni per migliorare la funzionalità di SQL . Microsoft ha aggiunto il codice a SQL e lo ha chiamato Transact-SQL o T-SQL. Tieni presente che T-SQL è proprietario ed è sotto il controllo di Microsoft mentre SQL, sebbene sviluppato da IBM, è già un formato aperto.

T-SQL aggiunge una serie di funzionalità che non sono disponibili in SQL.

Ciò include elementi di programmazione procedurale e una variabile locale per fornire un controllo più flessibile del flusso dell'applicazione. Un certo numero di funzioni sono state aggiunte a T-SQL per renderlo più potente; funzioni per operazioni matematiche, operazioni su stringa, elaborazione di data e ora e simili. Queste aggiunte rendono T-SQL conforme al test di completezza di Turing, un test che determina l'universalità di un linguaggio di elaborazione. SQL non è completo di Turing ed è molto limitato nell'ambito di ciò che può fare.

Un'altra differenza significativa tra T-SQL e SQL sono le modifiche apportate ai comandi DELETE e UPDATE che sono già disponibili in SQL. Con T-SQL, i comandi DELETE e UPDATE consentono entrambi l'inclusione di una clausola FROM che consente l'uso di JOINs. Questo semplifica il filtraggio dei record per individuare facilmente le voci che soddisfano determinati criteri a differenza di SQL, dove può essere un po 'più complicato.

La scelta tra T-SQL e SQL dipende interamente dall'utente. Tuttavia, l'utilizzo di T-SQL è ancora meglio quando si ha a che fare con installazioni di Microsoft SQL Server. Questo perché T-SQL proviene anche da Microsoft e l'utilizzo dei due insieme massimizza la compatibilità. L'SQL è preferito dalle persone che hanno più backend.

Riferimenti , Wikipedea, Punti Tutorial: www.differencebetween.com


4
IMO che è attualmente la risposta migliore (tuttavia, vale la pena leggere anche la risposta di manoj e il post sul blog).
salcoin,

1
T-SQL non è stato acquistato da Sybase insieme al codice database acquistato per creare la prima versione del server SQL? Almeno T-SQL funziona anche su Sybase, quindi penso che ci sia un po 'di "codice comune"
phil_w

In realtà, Microsoft e Sybase hanno sviluppato congiuntamente SQL Server per OS2. Pertanto, entrambe le società hanno collaborato allo sviluppo di T-SQL. Questo è il motivo per cui entrambi i database possono usare T-SQL anche se ci sono differenze significative tra le due varianti di T-SQL.
alaniane,

44
  • SQLuna lingua per parlare con il database. Ti permette di selezionare dati, mutare e creare oggetti di database (come tabelle, viste, ecc.), Modificare le impostazioni del database.
  • PL-SQL un linguaggio di programmazione procedurale (con SQL incorporato)
  • T-SQL estensioni (procedurali) per SQL utilizzate da SQL Server

Dovrebbe essere SPL (Stored Procedure Lang), PL è troppo generale (cioè, C).
Samis,

32

1. SQL o Structured Query Language sono stati sviluppati da IBM per il loro prodotto "System R".

Successivamente ANSI lo ha reso uno standard su cui si basano tutti i linguaggi di query e lo ha esteso per creare i propri semi per il linguaggio di query dei database. Il primo standard era SQL-86 e l'ultimo era SQL: 2011

2. T-SQL o Transact-SQL è stato sviluppato da Sybase e successivamente posseduto da Microsoft SQL Server.

3. PL / SQL o Procedural Language / SQL era Oracle Database, noto come "Software di relazione" quella volta.

Ho documentato questo nel mio post sul blog .


2
Questa risposta è più approfondita della risposta approvata e il post sul blog è un'ottima lettura.
salcoin,

7

Structured Query Language - SQL: è uno standard ANSI utilizzato da quasi tutti i fornitori di SGBD in tutto il mondo. Fondamentalmente, SQL è un linguaggio utilizzato per definire e manipolare i dati [DDL e DML].

PL / SQL è un linguaggio creato dall'universo Oracle. PL / SQL combina istruzioni procedurali di programmazione e consente la creazione di programmi che operano direttamente sullo scenario del database.

T-SQL è un modello Microsoft di allineamento dei modelli SQL, con alcune peculiarità. Quindi, sentiti libero di testare i tuoi limiti.


1

SQL è uno standard e ci sono molti fornitori di database come Microsoft, Oracle che implementano questo standard usando il proprio linguaggio proprietario.

Microsoft utilizza T-SQL per implementare lo standard SQL per interagire con i dati, mentre Oracle utilizza PL / SQL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.