Jaka jest różnica między SQL, PL-SQL i T-SQL?

360

Jaka jest różnica między SQL, PL-SQL i T-SQL?

Czy ktoś może wyjaśnić różnice między tymi trzema i podać scenariusze, w których każdy byłby odpowiednio wykorzystany?

Fistaszek
źródło
1
Język zapytań używany przez Microsoft SQL Server jest odmianą standardowego języka zapytań strukturalnych ANSI, SQL. Wersja SQL Server nosi nazwę Transact-SQL.
SQL to język zorientowany na dane do wybierania i manipulowania zestawami danych. PL / SQL jest językiem proceduralnym do tworzenia aplikacji
SQL jest strukturalnym językiem zapytań PL / SQL jest językiem proceduralnym rozszerzonym do sql, jest rozwijany przez oracle T-SQL jest rozwijany przez microsoft

Odpowiedzi:

379
  • SQL to język zapytań do działania na zestawach.

    Jest mniej lub bardziej znormalizowany i używany przez prawie wszystkie systemy zarządzania relacyjnymi bazami danych: SQL Server, Oracle, MySQL, PostgreSQL, DB2, Informix itp.

  • PL/SQL jest zastrzeżonym językiem proceduralnym używanym przez Oracle

  • PL/pgSQL jest językiem proceduralnym używanym przez PostgreSQL

  • TSQL jest zastrzeżonym językiem proceduralnym używanym przez Microsoft w SQL Server.

Języki proceduralne zostały zaprojektowane w celu rozszerzenia możliwości SQL przy jednoczesnej dobrej integracji z SQL. Dodano kilka funkcji, takich jak zmienne lokalne i przetwarzanie ciągów / danych. Te cechy sprawiają, że język Turinga jest kompletny.

Służą również do zapisywania procedur przechowywanych: fragmentów kodu znajdujących się na serwerze w celu zarządzania złożonymi regułami biznesowymi, które są trudne lub niemożliwe do zarządzania za pomocą operacji opartych wyłącznie na zestawie.

Quassnoi
źródło
14
TSQL jest również używany przez Sybase; przynajmniej w Oracle procedury PL / SQL mogą zrobić znacznie więcej niż tylko zarządzanie „regułami biznesowymi”; Procedury PL / SQL mogą uzyskiwać dostęp do stron internetowych, wysyłać wiadomości e-mail itp.
Erich Kitzmueller,
3
PL / SQL nie istnieje wyłącznie w bazie danych, np. Oracle Forms zawiera implementację PL / SQL po stronie klienta.
Erich Kitzmueller,
2
Zauważ, że każda baza danych ma własną implementację SQL (T-SQL i PL / SQL są dwiema bardziej powszechnymi), standardowy SQL ANSII jest często używany, gdy używanych jest wiele backendów, ale nie wszystkie bazy danych używają wszystkich funkcji SQL ANSII. A implementacja SQl specyficzna dla bazy danych wydaje się być tą, która działa najlepiej dla tej bazy danych - w końcu muszą dać ci powód do korzystania z ich bazy danych, prawda?
HLGEM,
2
Korekta: SQL jest językiem do działania na tabelach, dla których sam SQL zapewnia definicję. Standard SQL unika słów „zestaw” i „relacja” oraz ich pochodnych. Tabele SQL nie są zestawami.
poniedziałek
1
Na pewno byłoby miło mieć język proceduralny SQL, który działałby na serwerach Oracle i SQL.
RayLoveless,
113

SQL

SQL służy do komunikacji z bazą danych, jest to standardowy język dla systemów zarządzania relacyjnymi bazami danych.

W szczególności Structured Query Language to specjalny język programowania przeznaczony do zarządzania danymi przechowywanymi w systemie zarządzania relacyjnymi bazami danych (RDBMS) lub przetwarzania strumieniowego w systemie zarządzania relacyjnymi strumieniami danych (RDSMS).

Pierwotnie oparty na relacyjnej algebrze i rachunku relacyjnym krotki, SQL składa się z języka definicji danych i języka manipulacji danymi. Zakres SQL obejmuje wstawianie danych, zapytanie, aktualizację i usuwanie, tworzenie i modyfikację schematu oraz kontrolę dostępu do danych. Chociaż SQL jest często opisywany jako język deklaratywny (4GL) i w dużej mierze jest nim, zawiera on także elementy proceduralne.

PL / SQL

PL / SQL to połączenie SQL wraz z proceduralnymi funkcjami języków programowania. Został opracowany przez Oracle Corporation

Specjalizacje z PL / SQL

  • całkowicie przenośny, wydajny język przetwarzania transakcji.
  • zapewnia wbudowane interpretowane i niezależne środowisko programistyczne.
  • wywoływane bezpośrednio z wiersza poleceń interfejsu SQL * Plus.
  • Bezpośrednie połączenie można również wykonać z zewnętrznych wywołań języka programowania do bazy danych.
  • ogólna składnia oparta jest na języku programowania ADA i Pascal.
  • Oprócz Oracle jest on dostępny w bazie danych TimesTen w pamięci i IBM DB2.

T-SQL

Skrót od Transaction-SQL , rozszerzonej formy SQL, która dodaje do SQL deklarowane zmienne, kontrolę transakcji, obsługę błędów i wyjątków oraz przetwarzanie wierszy

Structured Query Language lub SQL to język programowania, który koncentruje się na zarządzaniu relacyjnymi bazami danych. SQL ma swoje własne ograniczenia, które skłoniły giganta programistycznego Microsoft do budowania na bazie SQL własnych rozszerzeń w celu zwiększenia funkcjonalności SQL . Microsoft dodał kod do SQL i nazwał go Transact-SQL lub T-SQL. Należy pamiętać, że T-SQL jest zastrzeżony i znajduje się pod kontrolą Microsoft, podczas gdy SQL, chociaż opracowany przez IBM, jest już formatem otwartym.

T-SQL dodaje szereg funkcji, które nie są dostępne w SQL.

Obejmuje to elementy programowania proceduralnego i zmienną lokalną, aby zapewnić bardziej elastyczną kontrolę przepływu aplikacji. Wiele funkcji zostało również dodanych do T-SQL, aby był bardziej wydajny; funkcje do operacji matematycznych, operacji na łańcuchach, przetwarzania daty i godziny itp. Te dodatki sprawiają, że T-SQL jest zgodny z testem kompletności Turinga, testem określającym uniwersalność języka komputerowego. SQL nie jest kompletny i jest bardzo ograniczony w zakresie tego, co potrafi.

Kolejną znaczącą różnicą między T-SQL i SQL są zmiany wprowadzone w poleceniach DELETE i UPDATE, które są już dostępne w SQL. W przypadku T-SQL zarówno DELETE, jak i UPDATE pozwalają na włączenie klauzuli FROM, która pozwala na użycie JOIN. Upraszcza to filtrowanie rekordów, aby łatwo wybrać wpisy spełniające określone kryteria, w przeciwieństwie do SQL, gdzie może to być nieco bardziej skomplikowane.

Wybór między T-SQL i SQL zależy od użytkownika. Mimo to używanie T-SQL jest jeszcze lepsze, gdy masz do czynienia z instalacjami Microsoft SQL Server. Wynika to z faktu, że T-SQL jest również od Microsoft, a użycie tych dwóch razem maksymalizuje kompatybilność. SQL jest preferowany przez osoby, które mają wiele backendów.

Odnośniki , Wikipedea, Punkty samouczka: www.differencebetween.com

Arunprasanth KV
źródło
4
IMO, która jest obecnie najlepszą odpowiedzią (jednak warto przeczytać odpowiedź manoj i post na blogu).
salcoin,
1
Czy T-SQL nie został zakupiony od Sybase wraz z kodem bazy danych, który kupili, aby stworzyć pierwszą wersję serwera SQL? Przynajmniej T-SQL działa również na Sybase, więc sądzę, że istnieje jakiś „wspólny kod”
phil_w
W rzeczywistości Microsoft i Sybase wspólnie opracowały SQL Server dla OS2. Tak więc obie firmy pracowały wspólnie nad opracowaniem T-SQL. Dlatego obie bazy danych mogą korzystać z T-SQL, chociaż istnieją znaczne różnice między dwoma wariantami T-SQL.
alaniane
44
  • SQLjęzyk do rozmowy z bazą danych. Pozwala wybierać dane, mutować i tworzyć obiekty bazy danych (takie jak tabele, widoki itp.), Zmieniać ustawienia bazy danych.
  • PL-SQL proceduralny język programowania (z wbudowanym SQL)
  • T-SQL (proceduralne) rozszerzenia dla SQL używane przez SQL Server
Dieterikh
źródło
Powinien to być SPL (Stored Procedura Lang), PL jest zbyt ogólne (tj. C).
samis
32

1. SQL lub język zapytań strukturalnych został opracowany przez IBM dla ich produktu „System R”.

Później ANSI uczyniło go standardem, na którym opierają się wszystkie języki zapytań, i rozszerzyło to, aby stworzyć własne garnitury języka zapytań DataBase. Pierwszym standardem był SQL-86, a najnowszy to SQL: 2011

2. T-SQL lub Transact-SQL został opracowany przez Sybase, a później współwłasność przez Microsoft SQL Server.

3. PL / SQL lub Procedural Language / SQL to baza danych Oracle , znana wówczas jako „oprogramowanie relacyjne”.

Udokumentowałem to w moim blogu .

Manoj Pandey
źródło
2
Ta odpowiedź jest dokładniejsza niż odpowiedź zatwierdzona, a post na blogu jest świetną lekturą.
salcoin,
7

Structured Query Language - SQL: to standard ANSI używany przez prawie wszystkich dostawców SGBD na całym świecie. Zasadniczo SQL jest językiem używanym do definiowania danych i manipulowania nimi [DDL i DML].

PL / SQL to język stworzony przez wszechświat Oracle. PL / SQL łączą programowe instrukcje proceduralne i umożliwiają tworzenie programów, które działają bezpośrednio w scenariuszu baz danych.

T-SQL to produkt Microsoft dopasowujący wzorce SQL z pewnymi osobliwościami. Tak więc zachęcamy do przetestowania swoich limitów.

Jayron Soares
źródło
1

SQL jest standardem i istnieje wielu dostawców baz danych, takich jak Microsoft, Oracle, którzy wdrażają ten standard przy użyciu własnego, zastrzeżonego języka.

Microsoft używa T-SQL do implementacji standardu SQL do interakcji z danymi, podczas gdy oracle używa PL / SQL.

Viku
źródło