¿Cuál es la diferencia entre SQL, PL-SQL y T-SQL?

360

¿Cuál es la diferencia entre SQL, PL-SQL y T-SQL?

¿Alguien puede explicar cuáles son las diferencias entre estos tres y proporcionar escenarios en los que cada uno se utilizaría de manera relevante?

Goober
fuente
1
El lenguaje de consulta que utiliza Microsoft SQL Server es una variante del lenguaje de consulta estructurado estándar ANSI, SQL. La variante de SQL Server se llama Transact-SQL.
SQL es un lenguaje orientado a datos para seleccionar y manipular conjuntos de datos. PL / SQL es un lenguaje de procedimiento para crear aplicaciones
SQL es el lenguaje de consulta estructurado PL / SQL es un lenguaje de procedimientos extendido a SQL que es desarrollado por Oracle T-SQL es desarrollado por Microsoft

Respuestas:

379
  • SQL es un lenguaje de consulta para operar en conjuntos.

    Está más o menos estandarizado y lo utilizan casi todos los sistemas de gestión de bases de datos relacionales: SQL Server, Oracle, MySQL, PostgreSQL, DB2, Informix, etc.

  • PL/SQL es un lenguaje de procedimiento propietario utilizado por Oracle

  • PL/pgSQL es un lenguaje de procedimiento utilizado por PostgreSQL

  • TSQL es un lenguaje de procedimiento propietario utilizado por Microsoft en SQL Server.

Los lenguajes de procedimiento están diseñados para ampliar las capacidades de SQL al tiempo que pueden integrarse bien con SQL. Se agregan varias características como variables locales y procesamiento de cadenas / datos. Estas características hacen que el lenguaje Turing sea completo.

También se utilizan para escribir procedimientos almacenados: fragmentos de código que residen en el servidor para administrar reglas comerciales complejas que son difíciles o imposibles de administrar con operaciones basadas en conjuntos puros.

Quassnoi
fuente
14
TSQL también es utilizado por Sybase; al menos en Oracle, los procedimientos PL / SQL pueden hacer mucho más que solo administrar "reglas comerciales"; Los procedimientos PL / SQL pueden acceder a sitios web, enviar correos electrónicos, etc.
Erich Kitzmueller
3
PL / SQL no existe únicamente en la base de datos, por ejemplo, Oracle Forms contiene una implementación del lado del cliente de PL / SQL.
Erich Kitzmueller
2
Tenga en cuenta que cada base de datos tiene su propia implementación de SQL (T-SQL y PL / SQL son dos de los más comunes), el SQL estándar ANSII a menudo se usa cuando se usan múltiples backends, pero no todas las bases de datos usan todas las características de ANSII SQL. Y la implementación específica de la base de datos de SQl tiende a ser la que funciona mejor para esa base de datos, después de todo, tienen que darle una razón para usar su base de datos, ¿verdad?
HLGEM
2
Corrección: SQL es un lenguaje para operar en tablas para las cuales el propio SQL proporciona la definición. El estándar SQL evita las palabras 'conjunto' y 'relación' y sus derivados. Las tablas SQL no son conjuntos.
cuando el
1
Seguro que sería bueno tener un lenguaje de procedimiento sql que funcionara en Oracle y el servidor sql.
RayLoveless
113

SQL

SQL se utiliza para comunicarse con una base de datos, es el lenguaje estándar para los sistemas de gestión de bases de datos relacionales.

En detalle, Structured Query Language es un lenguaje de programación de propósito especial diseñado para administrar datos almacenados en un sistema de administración de bases de datos relacionales (RDBMS), o para el procesamiento de flujo en un sistema de administración de flujos de datos relacionales (RDSMS).

Originalmente basado en álgebra relacional y cálculo relacional de tuplas, SQL consiste en un lenguaje de definición de datos y un lenguaje de manipulación de datos. El alcance de SQL incluye inserción de datos, consulta, actualización y eliminación, creación y modificación de esquemas y control de acceso a datos. Aunque SQL a menudo se describe como, y en gran medida es, un lenguaje declarativo (4GL), también incluye elementos de procedimiento.

PL / SQL

PL / SQL es una combinación de SQL junto con las características de procedimiento de los lenguajes de programación. Fue desarrollado por Oracle Corporation

Especialidades de PL / SQL

  • lenguaje de procesamiento de transacciones de alto rendimiento y completamente portátil.
  • proporciona un entorno de programación integrado e independiente del sistema operativo.
  • directamente desde la interfaz de línea de comandos SQL * Plus.
  • La llamada directa también se puede realizar desde un lenguaje de programación externo a la base de datos.
  • La sintaxis general se basa en el lenguaje de programación ADA y Pascal.
  • Además de Oracle, está disponible en la base de datos en memoria TimesTen e IBM DB2.

T-SQL

Abreviatura de Transaction-SQL , una forma extendida de SQL que agrega variables declaradas, control de transacciones, manejo de errores y excepciones y procesamiento de filas a SQL

El lenguaje de consulta estructurado o SQL es un lenguaje de programación que se centra en la gestión de bases de datos relacionales. SQL tiene sus propias limitaciones que impulsaron al gigante del software Microsoft a construir sobre SQL con sus propias extensiones para mejorar la funcionalidad de SQL . Microsoft agregó código a SQL y lo llamó Transact-SQL o T-SQL. Tenga en cuenta que T-SQL es propietario y está bajo el control de Microsoft, mientras que SQL, aunque desarrollado por IBM, ya es un formato abierto.

T-SQL agrega una serie de características que no están disponibles en SQL.

Esto incluye elementos de programación de procedimientos y una variable local para proporcionar un control más flexible de cómo fluye la aplicación. También se agregaron varias funciones a T-SQL para hacerlo más potente; funciones para operaciones matemáticas, operaciones de cadena, procesamiento de fecha y hora, y similares. Estas adiciones hacen que T-SQL cumpla con la prueba de integridad de Turing, una prueba que determina la universalidad de un lenguaje informático. SQL no está completo y está muy limitado en el alcance de lo que puede hacer.

Otra diferencia significativa entre T-SQL y SQL son los cambios realizados en los comandos DELETE y UPDATE que ya están disponibles en SQL. Con T-SQL, los comandos DELETE y UPDATE permiten la inclusión de una cláusula FROM que permite el uso de JOIN. Esto simplifica el filtrado de registros para seleccionar fácilmente las entradas que coinciden con ciertos criterios a diferencia de SQL, donde puede ser un poco más complicado.

La elección entre T-SQL y SQL depende del usuario. Aún así, usar T-SQL es aún mejor cuando se trata de instalaciones de Microsoft SQL Server. Esto se debe a que T-SQL también es de Microsoft, y el uso de los dos juntos maximiza la compatibilidad. SQL es preferido por personas que tienen múltiples backends.

Referencias , Wikipedea, Puntos Tutoriales: www.differencebetween.com

Arunprasanth KV
fuente
44
OMI que actualmente es la mejor respuesta (sin embargo, la respuesta de manoj y la publicación de blog también merecen una lectura).
salcoin 12/12/2015
1
¿No se compró T-SQL de Sybase junto con el código de la base de datos que compraron para hacer la primera versión del servidor SQL? Al menos T-SQL también funciona en Sybase, así que creo que hay algún 'código común'
phil_w
En realidad, Microsoft y Sybase desarrollaron conjuntamente SQL Server para OS2. Entonces, ambas compañías trabajaron conjuntamente en el desarrollo de T-SQL. Es por eso que ambas bases de datos pueden usar T-SQL, aunque existen diferencias significativas entre las dos variantes de T-SQL.
alaniane
44
  • SQLUn lenguaje para hablar con la base de datos. Le permite seleccionar datos, mutar y crear objetos de base de datos (como tablas, vistas, etc.), cambiar la configuración de la base de datos.
  • PL-SQL un lenguaje de programación procesal (con SQL incorporado)
  • T-SQL Extensiones (de procedimiento) para SQL utilizadas por SQL Server
diederikh
fuente
Debe ser SPL (procedimiento almacenado Lang), PL es demasiado general (es decir, C).
samis
32

1. SQL o lenguaje de consulta estructurado fue desarrollado por IBM para su producto "System R".

Más tarde, ANSI lo convirtió en un Estándar en el que se basan todos los Lenguajes de Consulta y lo ha ampliado para crear sus propios trajes de Lenguaje de Consulta DataBase. El primer estándar fue SQL-86 y el último fue SQL: 2011

2. T-SQL o Transact-SQL fue desarrollado por Sybase y posteriormente propiedad de Microsoft SQL Server.

3. PL / SQL o lenguaje de procedimiento / SQL era la base de datos Oracle , conocida como "software de relación" en ese momento.

He documentado esto en mi blog .

Manoj Pandey
fuente
2
Esta respuesta es más exhaustiva que la respuesta aprobada, y la publicación del blog es una gran lectura.
salcoin 12/12/2015
7

Lenguaje de consulta estructurado - SQL: es un estándar ANSI utilizado por casi todos los proveedores de SGBD en todo el mundo. Básicamente, SQL es un lenguaje utilizado para definir y manipular datos [DDL y DML].

PL / SQL es un lenguaje creado por Oracle universe. PL / SQL combina instrucciones de procedimiento de programación y permite la creación de programas que operan directamente en el escenario de la base de datos.

T-SQL es un producto de Microsoft para alinear patrones SQL, con algunas peculiaridades. Entonces, siéntase libre de probar sus límites.

Jayron Soares
fuente
1

SQL es un estándar y hay muchos proveedores de bases de datos como Microsoft, Oracle que implementan este estándar utilizando su propio lenguaje propietario.

Microsoft usa T-SQL para implementar el estándar SQL para interactuar con los datos, mientras que Oracle usa PL / SQL.

Viku
fuente