Database
 sql >> база данни >  >> RDS >> Database

T-SQL срещу SQL

Ето кратък преглед на разликата между SQL и T-SQL (Transact-SQL). Не толкова разликите като такъв, но по-скоро обяснение на T-SQL и къде се намира по отношение на SQL.

Ако сте правили някаква разработка или администриране на база данни, вероятно сте запознати с SQL. SQL, което означава Structured Query Language, е стандартен език за заявки за работа с бази данни. Повечето от основните системи за управление на релационни бази данни като MySQL, Oracle, SQL Server, PostgreSQL и т.н. поддържат SQL по един или друг начин.

Въпреки това, докато стандартът SQL предоставя ясни спецификации, той също така позволява на доставчиците на бази данни да добавят свои собствени разширения. Това позволява на доставчиците да предоставят допълнителни функции и функционалност за своите клиенти, които може да не се предлагат от техните конкуренти.

Тук идва T-SQL.

Какво е Transact-SQL?

Transact-SQL, често съкратен на T-SQL или дори TSQL, е собствено разширение на Microsoft и Sybase към SQL. Transact-SQL разширява стандарта SQL, за да включва допълнителни функции, които не са включени в стандарта SQL.

Въпреки че Transact-SQL (и SQL Server) е най-често известен като нещо на Microsoft, той всъщност е резултат от партньорство между Microsoft и Sybase, което започна през 1987 г. Това партньорство беше прекратено през 1994 г. След това T-SQL продължи да бъде поддържан от продукти за бази данни, пуснати от двете компании, но всяка компания развива своите продукти за бази данни в собствена посока. Следователно има някои разлики между Sybase T-SQL и Microsoft T-SQL.

Transact-SQL е централен за SQL Server. Повечето операции в SQL Server се извършват с T-SQL. Това е вярно, дори ако използвате GUI инструмент (като SSMS или DBeaver) и всъщност не правите никакво програмиране. Всеки път, когато използвате приложение за взаимодействие със SQL Server, приложението използва T-SQL зад кулисите, за да изпълни посочената задача.

Но SQL Server не е единствената система за управление на база данни, която поддържа Transact-SQL. Базата данни на Microsoft Azure SQL също поддържа T-SQL. Повечето T-SQL функции, използвани от приложенията, се поддържат напълно както в Microsoft SQL Server, така и в Azure SQL база данни (въпреки че има някои изключения).

Функции на T-SQL

Някои от характеристиките на T-SQL включват:

  • Процедурно програмиране
  • Локални променливи
  • Различни поддържащи функции за обработка на низове, обработка на дати, математика и т.н.
  • Промени в DELETE и UPDATE изявления. По-специално, те позволяват добавяне на клауза FROM, която позволява включването на съединения.
  • T-SQL има BULK INSERT изявление, което ви позволява да импортирате файл с данни в таблица на база данни или преглед в зададен от потребителя формат.

Едно от основните предимства на горните разширения е, че имате много повече програмируемост, когато използвате T-SQL срещу SQL. Съхранените процедури например ви позволяват да включите програмна логика във вашата база данни. Можете да предадете един или повече параметри на съхранена процедура и съхранената процедура ще върне изход, който варира в зависимост от стойностите на параметрите.

Относно командата GO

Всеки, който е използвал T-SQL, вероятно ще е запознат с GO команда. Тази ключова дума често се поставя в края на пакет от изявления.

Въпреки това, GO командата всъщност не е част от Transact-SQL. Всъщност GO командата не може дори да заема същия ред като Transact-SQL оператор.

GO е една от командите, които се разпознават от sqlcmd и osql помощни програми, както и SQL Server Management Studio Code Editor за улесняване на четимостта и изпълнението на пакети и скриптове. GO командата сигнализира за края на партида Transact-SQL изрази на помощните програми на SQL Server.

Помощните програми на SQL Server интерпретират GO като сигнал, че те трябва да изпратят текущата партида Transact-SQL оператори на екземпляр на SQL Server. Текущата партида отчети се състои от всички въведени отчети след последния GO , или от началото на ad hoc сесията или скрипта, ако това е първият GO .

Други собствени SQL разширения

Transact-SQL не е единственото разширение на SQL стандарта. Различните системи за бази данни имат свои собствени разширения. Например Oracle използва собствен процедурен език, наречен PL/SQL, а PostgreSQL използва процедурен език, наречен PL/pgSQL.

Въпреки че патентованите SQL разширения имат своите предимства (като разширена функционалност), те имат своите недостатъци. Един основен недостатък е, че те могат да затруднят нещата, ако някога се наложи да пренесете база данни от една система в друга. Например, ако вашата организация изведнъж реши, че ще използва Oracle вместо SQL Server, може да се наложи да преминете през целия код на SQL Server и да го пренапишете за Oracle. Това също изисква от вас да се запознаете със синтаксиса на двете системи.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-популярни групи за Analytics, Big Data, Data Mining, Hadoop, NoSQL, Data Science

  2. Видове SQL команди

  3. Как да създадете една таблица от друга таблица в SQL

  4. Съпоставяне на предлагането с търсенето — Решения, част 3

  5. Отстраняване на проблеми с производителността на процесора на VMware