В чем разница между SQL, PL-SQL и T-SQL?


360

В чем разница между SQL, PL-SQL и T-SQL?

Может кто-нибудь объяснить, в чем различия между этими тремя, и предоставить сценарии, где каждый из них будет соответствующим образом использоваться?


1
Язык запросов, который использует Microsoft SQL Server, является вариантом стандартного языка структурированных запросов ANSI, SQL. Вариант SQL Server называется Transact-SQL.

SQL - это ориентированный на данные язык для выбора и обработки наборов данных. PL / SQL - это процедурный язык для создания приложений

SQL - это язык структурированных запросов. PL / SQL - это процедурный язык, расширенный до SQL. Он разработан Oracle. T-SQL разработан компанией Microsoft

Ответы:


379
  • SQL язык запросов для работы с множествами

    Он более или менее стандартизирован и используется практически во всех системах управления реляционными базами данных: SQL Server, Oracle, MySQL, PostgreSQL, DB2, Informix и т. Д.

  • PL/SQL является проприетарным процедурным языком, используемым Oracle

  • PL/pgSQL это процедурный язык, используемый PostgreSQL

  • TSQL является проприетарным процедурным языком, используемым Microsoft в SQL Server.

Процедурные языки предназначены для расширения возможностей SQL при хорошей интеграции с SQL. Добавлено несколько функций, таких как локальные переменные и обработка строк / данных. Эти особенности делают язык Тьюринга полным.

Они также используются для написания хранимых процедур: фрагментов кода, находящихся на сервере, для управления сложными бизнес-правилами, которыми трудно или невозможно управлять с помощью чисто операций на основе множеств.


14
TSQL также используется Sybase; по крайней мере в Oracle, PL / SQL-процедуры могут сделать гораздо больше, чем просто управлять «бизнес-правилами»; Процедуры PL / SQL могут получать доступ к веб-сайтам, отправлять электронную почту и т. Д.
Эрих Кицмюллер

3
PL / SQL не существует только в базе данных, например, Oracle Forms содержит реализацию PL / SQL на стороне клиента.
Эрих Кицмюллер

2
Обратите внимание, что каждая база данных имеет свою собственную реализацию SQL (T-SQL и PL / SQL являются двумя наиболее распространенными), стандарт SQL ANSII часто используется, когда используется несколько бэкэндов, но не все базы данных также используют все функции ANSII SQL. И специфичная для базы данных реализация SQl, как правило, лучше всего подходит для этой базы данных - ведь они должны дать вам повод использовать свою базу данных, верно?
HLGEM

2
Исправление: SQL - это язык для работы с таблицами, для которого сам SQL предоставляет определение. Стандарт SQL избегает слов «набор» и «отношение» и их производных. Таблицы SQL не являются множествами.
сегодня,

1
Конечно, было бы неплохо иметь процедурный язык SQL, который работал бы на Oracle и сервере SQL.
RayLoveless

113

SQL

SQL используется для связи с базой данных, это стандартный язык для систем управления реляционными базами данных.

Подробно Язык структурированных запросов - это специальный язык программирования, предназначенный для управления данными, хранящимися в системе управления реляционными базами данных (RDBMS), или для обработки потоков в системе управления реляционными данными (RDSMS).

Первоначально основанный на реляционной алгебре и кортежном кортежном исчислении, SQL состоит из языка определения данных и языка манипулирования данными. Область применения SQL включает в себя вставку данных, запрос, обновление и удаление, создание и изменение схемы и управление доступом к данным. Хотя SQL часто описывается как декларативный язык (и в значительной степени является декларативным), он также включает процедурные элементы.

PL / SQL

PL / SQL представляет собой комбинацию SQL наряду с процедурными особенностями языков программирования. Разработано корпорацией Oracle

Особенности PL / SQL

  • полностью переносимый, высокопроизводительный язык обработки транзакций.
  • обеспечивает встроенную интерпретируемую и независимую от ОС среду программирования.
  • напрямую вызываться из интерфейса командной строки SQL * Plus.
  • Прямой вызов также может быть сделан из вызовов внешнего языка программирования в базу данных.
  • Общий синтаксис основан на синтаксисе языков программирования ADA и Pascal.
  • Помимо Oracle, он доступен в оперативной базе данных TimesTen и в IBM DB2.

T-SQL

Сокращение от Transaction-SQL , расширенной формы SQL, которая добавляет объявленные переменные, управление транзакциями, обработку ошибок и исключений и обработку строк в SQL

Язык структурированных запросов или SQL - это язык программирования, ориентированный на управление реляционными базами данных. У SQL есть свои ограничения, которые подтолкнули гиганта программного обеспечения Microsoft к созданию поверх SQL своих собственных расширений для расширения функциональности SQL . Microsoft добавила код в SQL и назвала его Transact-SQL или T-SQL. Имейте в виду, что T-SQL является частной собственностью и находится под контролем Microsoft, в то время как SQL, хотя и разработанный IBM, уже является открытым форматом.

T-SQL добавляет ряд функций, которые недоступны в SQL.

Это включает в себя процедурные элементы программирования и локальную переменную для обеспечения более гибкого управления потоком приложения. Ряд функций был добавлен в T-SQL, чтобы сделать его более мощным; функции для математических операций, строковых операций, обработки даты и времени и тому подобное. Эти дополнения заставляют T-SQL соответствовать критерию полноты по Тьюрингу, который определяет универсальность вычислительного языка. SQL не является полным по Тьюрингу и очень ограничен в возможностях.

Другое существенное различие между T-SQL и SQL - это изменения, внесенные в команды DELETE и UPDATE, которые уже доступны в SQL. В T-SQL команды DELETE и UPDATE позволяют включить предложение FROM, которое позволяет использовать JOIN. Это упрощает фильтрацию записей, позволяя легко выбирать записи, которые соответствуют определенным критериям, в отличие от SQL, где это может быть немного сложнее.

Выбор между T-SQL и SQL остается за пользователем. Тем не менее, использование T-SQL все еще лучше, когда вы имеете дело с установками Microsoft SQL Server. Это связано с тем, что T-SQL также принадлежит Microsoft, и совместное использование этих двух компонентов обеспечивает максимальную совместимость. SQL предпочитают люди с несколькими бэкэндами.

Ссылки , Википедия, Учебное пособие: www.differencebetween.com


4
IMO, который в настоящее время является лучшим ответом (однако, ответ manoj и сообщение в блоге тоже стоит прочитать).
Salcoin

1
Разве T-SQL не покупался у Sybase вместе с кодом базы данных, который они купили для создания первой версии SQL-сервера? По крайней мере, T-SQL также работает на Sybase, поэтому я думаю, что есть некоторый «общий код»
phil_w

На самом деле Microsoft и Sybase совместно разработали SQL Server для OS2. Итак, обе компании совместно работали над разработкой T-SQL. Вот почему обе базы данных могут использовать T-SQL, хотя между двумя вариантами T-SQL существуют значительные различия.
Аланиан

44
  • SQLязык для общения с базой данных. Он позволяет выбирать данные, изменять и создавать объекты базы данных (например, таблицы, представления и т. Д.), Изменять настройки базы данных.
  • PL-SQL процедурный язык программирования (со встроенным SQL)
  • T-SQL (процедурные) расширения для SQL, используемые SQL Server

Должно быть SPL (хранимая процедура Lang), PL слишком общий (т. Е. C).
Самис

32

1. SQL или язык структурированных запросов был разработан IBM для их продукта "System R".

Позднее ANSI сделала его стандартом, на котором основаны все языки запросов, и расширило его для создания своих собственных языков языка запросов баз данных. Первым стандартом был SQL-86, а последним был SQL: 2011

2. T-SQL или Transact-SQL был разработан Sybase, а затем стал совладельцем Microsoft SQL Server.

3. PL / SQL или процедурный язык / SQL был базой данных Oracle , известной в то время как «Программное обеспечение для отношений».

Я задокументировал это в своем блоге .


2
Этот ответ является более тщательным, чем одобренный ответ, и сообщение в блоге - отличное чтение.
Salcoin 12.12.15

7

Язык структурированных запросов - SQL: стандарт ANSI, используемый практически всеми поставщиками SGBD по всему миру. По сути, SQL - это язык, используемый для определения данных и управления ими [DDL и DML].

PL / SQL - это язык, созданный Oracle Universe. PL / SQL объединяет процедурные инструкции по программированию и позволяет создавать программы, работающие непосредственно по сценарию базы данных.

T-SQL - это шаблоны SQL для выравнивания продуктов Microsoft с некоторыми особенностями. Так что не стесняйтесь проверять свои пределы.


1

SQL является стандартом, и есть много поставщиков баз данных, таких как Microsoft, Oracle, которые реализуют этот стандарт, используя свой собственный язык.

Microsoft использует T-SQL для реализации стандарта SQL для взаимодействия с данными, тогда как Oracle использует PL / SQL.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.