Яка різниця між 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 розроблений оракула T-SQL розроблена корпорацією Майкрософт

Відповіді:


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 є двома найбільш поширеними), стандарт ANSII стандартний SQL часто використовується, коли використовується декілька програмних серверів, але не всі бази даних використовують також усі функції ANSII SQL. А реалізація SQl, характерна для бази даних, має тенденцію до найкращої роботи в цій базі даних - адже вони повинні дати вам підстави використовувати їхню базу даних, правда?
HLGEM

2
Виправлення: SQL - це мова для роботи над таблицями, для яких SQL дає визначення. Стандарт SQL уникає слів "set" і "ratio" та їх похідних. Таблиці SQL не є наборами.
одного дня, коли

1
Звичайно, було б добре мати процедурну мову sql, яка б працювала на сервері Oracle та sql.
RayLoveless

113

SQL

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

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

Спочатку на основі реляційної алгебри та кортежного реляційного числення SQL складається з мови визначення даних та мови маніпулювання даними. Область SQL включає введення даних, запит, оновлення та видалення, створення та модифікацію схеми та контроль доступу до даних. Хоча SQL часто описується як декларативна мова (4GL), і вона значною мірою є декларативною мовою, вона також включає процедурні елементи.

PL / SQL

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

Спеціальність PL / SQL

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

T-SQL

Короткий варіант для Transaction-SQL , розширена форма SQL, яка додає оголошені змінні, контроль транзакцій, помилки та винятки та обробку рядків у SQL

Структурована мова запитів або SQL - мова програмування, яка фокусується на управлінні реляційними базами даних. У SQL є свої обмеження, які спонукали програмного гіганта Майкрософт побудувати поверх 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 віддають перевагу людям, які мають декілька програм.

Посилання , Wikipedea, Підручники: 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.
alaniane

44
  • SQLмова для розмови з базою даних. Це дозволяє вибирати дані, мутувати та створювати об’єкти бази даних (наприклад, таблиці, представлення тощо), змінювати налаштування бази даних.
  • PL-SQL процедурна мова програмування (із вбудованим SQL)
  • T-SQL (процедурні) розширення для SQL, використовувані SQL Server

Повинна бути SPL (Stong Lang зберігання процедур), PL занадто загальний (тобто, C).
Саміс

32

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

Пізніше ANSI зробив це як Стандарт, на якому ґрунтуються всі мови запитів, і розширив це для створення власних наборів мови запитів DataBase. Перший стандарт був SQL-86, а останній - SQL: 2011

2. T-SQL або Transact-SQL був розроблений Sybase і згодом співвласником Microsoft SQL Server.

3. PL / SQL або Процедурна мова / SQL - це база даних Oracle , відома як "Програмне забезпечення для відношення".

Я це задокументував у своїй публікації в блозі .


2
Ця відповідь більш ретельна, ніж схвалена відповідь, і повідомлення в блозі - це чудове прочитання.
salcoin

7

Мова структурованих запитів - SQL: стандарт ANSI, який використовується майже всіма постачальниками SGBD у всьому світі. В основному, SQL - це мова, яка використовується для визначення та маніпулювання даними [DDL та DML].

PL / SQL - це мова, створена Всесвітом Oracle. PL / SQL поєднує процедурні інструкції з програмування та дозволяє створювати програми, що працюють безпосередньо за сценарієм баз даних.

T-SQL - це вирівнювання продукту Microsoft моделей SQL з деякими особливостями. Тож сміливо перевіряйте свої межі.


1

SQL - це стандарт, і є багато постачальників баз даних, таких як Microsoft, Oracle, які реалізують цей стандарт, використовуючи власну мову власності.

Microsoft використовує T-SQL для впровадження стандарту SQL для взаємодії з даними, тоді як Oracle використовує PL / SQL.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.