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

Какво е T-SQL?

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

Ето пример за прост T-SQL израз:

CREATE DATABASE Movies;

Това е толкова просто, колкото може да получи един пример за T-SQL. Това създава нова база данни, наречена Movies .

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

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

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

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

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

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

Пример за вградена функция

Ето още един основен пример, този път с помощта на една от вградените функции на T-SQL:

SELECT GETDATE();

Резултат:

2018-05-06 23:30:37.003

В този случай използваме GETDATE() на T-SQL функция за връщане на текущата дата и час. Това се използва заедно с SELECT израз, който е често срещан SQL израз за връщане на данни.

Можем също да използваме тази функция като аргумент за друга функция. Ето един пример:

SELECT FORMAT(GETDATE(), 'MMM');

Резултат:

May

В този случай използваме T-SQL FORMAT() функция за извличане само на месечната част от датата и представянето й в определен формат. Можете да видите повече примери за дата/час в Как да форматирате датата и часа в SQL Server.

История на T-SQL

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

След това T-SQL продължи да се поддържа от продукти за бази данни, пуснати от двете компании, но всяка компания развива своите продукти за бази данни в своя собствена посока. Следователно има някои разлики между Sybase T-SQL и Microsoft T-SQL.

T-SQL и GUI инструменти

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 база данни (въпреки че има някои изключения).

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

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

CREATE DATABASE Movies;
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. Salesforce SOQL от Java

  2. Профилиране на база данни в IRI Workbench

  3. SQL CASE:Познайте и избягвайте 3 по-малко известни неприятности

  4. Проблемът за Хелоуин – част 4

  5. Salesforce SOQL от Microsoft Office