В чем разница между 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.