Qual é a diferença entre SQL, PL-SQL e T-SQL?


360

Qual é a diferença entre SQL, PL-SQL e T-SQL?

Alguém pode explicar quais são as diferenças entre esses três e fornecer cenários em que cada um seria usado de forma relevante?


11
A linguagem de consulta que o Microsoft SQL Server usa é uma variante da linguagem de consulta estruturada ANSI padrão, SQL. A variante do SQL Server é chamada Transact-SQL.

SQL é uma linguagem orientada a dados para selecionar e manipular conjuntos de dados. PL / SQL é uma linguagem procedural para criar aplicações

Linguagem de consulta SQL é estruturado PL / SQL é uma linguagem procedural estendida para sql é desenvolvido pela Oracle T-SQL é desenvolvido pela Microsoft

Respostas:


379
  • SQL é uma linguagem de consulta para operar em conjuntos.

    É mais ou menos padronizado e usado por quase todos os sistemas de gerenciamento de banco de dados relacional: SQL Server, Oracle, MySQL, PostgreSQL, DB2, Informix, etc.

  • PL/SQL é uma linguagem processual proprietária usada pelo Oracle

  • PL/pgSQL é uma linguagem processual usada pelo PostgreSQL

  • TSQL é uma linguagem processual proprietária usada pela Microsoft no SQL Server.

As linguagens de procedimento são projetadas para estender as habilidades do SQL e ao mesmo tempo integrar-se bem ao SQL. Vários recursos, como variáveis ​​locais e processamento de string / dados, são adicionados. Esses recursos tornam o idioma Turing completo.

Eles também são usados ​​para escrever procedimentos armazenados: partes de código que residem no servidor para gerenciar regras de negócios complexas que são difíceis ou impossíveis de gerenciar com operações baseadas em conjunto.


14
TSQL também é usado pelo Sybase; pelo menos no Oracle, os procedimentos PL / SQL podem fazer muito mais do que apenas gerenciar "regras de negócios"; Procedimentos PL / SQL pode acessar sites, enviar e-mail etc.
Erich Kitzmueller

3
O PL / SQL não existe apenas no banco de dados, por exemplo, o Oracle Forms contém uma implementação do PL / SQL no lado do cliente.
Erich Kitzmueller

2
Observe que cada banco de dados possui sua própria implementação de SQL (T-SQL e PL / SQL são dois dos mais comuns), o SQL padrão ANSII é frequentemente usado quando vários back-end são usados, mas nem todos os bancos de dados também usam todos os recursos SQL do ANSII. E a implementação específica do banco de dados do SQl tende a ser a que apresenta melhor desempenho para esse banco de dados - afinal eles precisam fornecer um motivo para usar o banco de dados, certo?
HLGEM

2
Correção: SQL é uma linguagem para operar em tabelas para as quais o próprio SQL fornece a definição. O padrão SQL evita as palavras 'conjunto' e 'relação' e seus derivados. Tabelas SQL não são conjuntos.
onedaywhen

11
Seria bom ter uma linguagem processual sql que funcionasse no servidor oracle e sql.
RayLoveless

113

SQL

SQL é usado para se comunicar com um banco de dados, é a linguagem padrão para sistemas de gerenciamento de banco de dados relacional.

Em detalhes, a Structured Query Language é uma linguagem de programação para fins especiais projetada para gerenciar dados mantidos em um sistema de gerenciamento de banco de dados relacional (RDBMS) ou para processamento de fluxo em um sistema de gerenciamento de fluxo de dados relacional (RDSMS).

Originalmente baseado em álgebra relacional e cálculo relacional de tupla, o SQL consiste em uma linguagem de definição de dados e uma linguagem de manipulação de dados. O escopo do SQL inclui inserção, consulta, atualização e exclusão de dados, criação e modificação de esquema e controle de acesso a dados. Embora o SQL seja frequentemente descrito como, e em grande parte, uma linguagem declarativa (4GL), ele também inclui elementos procedimentais.

PL / SQL

PL / SQL é uma combinação de SQL junto com os recursos procedimentais das linguagens de programação. Foi desenvolvido pela Oracle Corporation

Especialidades de PL / SQL

  • linguagem de processamento de transações totalmente portátil e de alto desempenho.
  • fornece um ambiente de programação interno interpretado e independente do SO.
  • ser chamado diretamente da interface da linha de comandos SQL * Plus.
  • Também é possível fazer chamadas diretas de linguagem externa de programação para o banco de dados.
  • A sintaxe geral é baseada na linguagem de programação ADA e Pascal.
  • Além do Oracle, ele está disponível no banco de dados de memória TimesTen e no IBM DB2.

T-SQL

Abreviação de Transaction-SQL , uma forma estendida de SQL que adiciona variáveis ​​declaradas, controle de transações, tratamento de erros e exceções e processamento de linhas ao SQL

O Structured Query Language ou SQL é uma linguagem de programação que se concentra no gerenciamento de bancos de dados relacionais. O SQL tem suas próprias limitações, o que levou a gigante do software Microsoft a construir sobre o SQL com suas próprias extensões para aprimorar a funcionalidade do SQL . A Microsoft adicionou código ao SQL e o chamou de Transact-SQL ou T-SQL. Lembre-se de que o T-SQL é proprietário e está sob o controle da Microsoft, enquanto o SQL, embora desenvolvido pela IBM, já é um formato aberto.

O T-SQL adiciona vários recursos que não estão disponíveis no SQL.

Isso inclui elementos de programação procedural e uma variável local para fornecer um controle mais flexível de como o aplicativo flui. Várias funções também foram adicionadas ao T-SQL para torná-lo mais poderoso; funções para operações matemáticas, operações de seqüência de caracteres, processamento de data e hora e similares. Essas adições fazem o T-SQL cumprir o teste de completude de Turing, um teste que determina a universalidade de uma linguagem de computação. O SQL não é Turing completo e é muito limitado no escopo do que ele pode fazer.

Outra diferença significativa entre T-SQL e SQL são as alterações feitas nos comandos DELETE e UPDATE que já estão disponíveis no SQL. Com o T-SQL, os comandos DELETE e UPDATE permitem a inclusão de uma cláusula FROM que permite o uso de JOINs. Isso simplifica a filtragem de registros para selecionar facilmente as entradas que correspondem a um determinado critério, ao contrário do SQL, onde pode ser um pouco mais complicado.

A escolha entre T-SQL e SQL depende do usuário. Ainda assim, o uso do T-SQL ainda é melhor quando você está lidando com instalações do Microsoft SQL Server. Isso ocorre porque o T-SQL também é da Microsoft e o uso dos dois juntos maximiza a compatibilidade. O SQL é preferido por pessoas que possuem vários back-ends.

Referências , Wikipedea, Pontos de Tutorial: www.differencebetween.com


4
A IMO atualmente é a melhor resposta (no entanto, a resposta de manoj e a postagem no blog também valem uma leitura).
salcoin

11
O T-SQL não foi comprado da Sybase junto com o código do banco de dados que eles compraram para criar a primeira versão do servidor SQL? Pelo menos T-SQL também funciona em Sybase então eu acho que há alguns 'código comum'
phil_w

Na verdade, a Microsoft e a Sybase desenvolveram em conjunto o SQL Server para OS2. Portanto, as duas empresas trabalharam juntas no desenvolvimento do T-SQL. É por isso que os dois bancos de dados podem usar o T-SQL, embora haja diferenças significativas entre as duas variantes do T-SQL.
Alaniane

44
  • SQLum idioma para conversar com o banco de dados. Permite selecionar dados, alterar e criar objetos de banco de dados (como tabelas, visualizações etc.), alterar as configurações do banco de dados.
  • PL-SQL uma linguagem de programação procedural (com SQL incorporado)
  • T-SQL extensões (procedurais) para SQL usadas pelo SQL Server

Deve ser SPL (Lang de procedimento armazenado), PL é muito geral (ou seja, C).
samis 14/06/16

32

1. SQL ou Structured Query Language foi desenvolvido pela IBM para seu produto "System R".

Posteriormente, o ANSI o tornou um padrão no qual todos os idiomas de consulta se baseiam e o estenderam para criar seus próprios processos de DataBase Query Language. O primeiro padrão foi o SQL-86 e o mais recente foi o SQL: 2011

2. O T-SQL ou Transact-SQL foi desenvolvido pela Sybase e posteriormente co-propriedade do Microsoft SQL Server.

3. PL / SQL ou Linguagem Procedural / SQL era o Banco de Dados Oracle , conhecido como "Software de Relação" naquela época.

Eu documentei isso na minha postagem no blog .


2
Essa resposta é mais completa que a aprovada e a postagem do blog é uma ótima leitura.
Salcoin

7

Linguagem de Consulta Estruturada - SQL: é um padrão ANSI usado por quase todos os fornecedores de SGBD em todo o mundo. Basicamente, SQL é uma linguagem usada para definir e manipular dados [DDL e DML].

PL / SQL é uma linguagem criada pelo universo Oracle. O PL / SQL combina instruções processuais de programação e permite a criação de programas que operam diretamente no cenário do banco de dados.

T-SQL é o produto da Microsoft alinhar padrões SQL, com algumas peculiaridades. Portanto, fique à vontade para testar seus limites.


1

O SQL é um padrão e existem muitos fornecedores de banco de dados, como Microsoft, Oracle, que implementam esse padrão usando sua própria linguagem proprietária.

A Microsoft usa o T-SQL para implementar o padrão SQL para interagir com os dados, enquanto o oracle usa PL / SQL.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.