Transact-SQL (T-SQL) — процедурне розширення мови SQL, створене компанією Microsoft (для Microsoft SQL Server) і Sybase (для Sybase ASE).
SQL був розширений наступними додатковими можливостями, такими як:
- Керуючі оператори,
- Локальні і глобальні змінні,
- Різні додаткові функції для обробки рядків, дат, математики, тощо,
- Підтримка аутентифікації Microsoft Windows.
Мова Transact-SQL є ключем до використання MS SQL Server. Всі застосунки, які взаємодіють з екземпляром MS SQL Server, незалежно від їхньої реалізації і інтерфейсу користувача, відправляють з сервера інструкції Transact-SQL.
Елементи синтаксису
Директиви сценарію
Директиви сценарію — це специфічні команди, які використовуються тільки в MS SQL. Ці команди допомагають серверу визначати правила роботи зі скриптом і транзакціями. Типові представники: GO — інформує програми SQL Server про закінчення пакета інструкцій Transact-SQL, EXEC (або EXECUTE) — виконує процедуру або скалярну функцію.
Коментарі
Коментарі використовуються для створення пояснень для блоків сценаріїв, а також для тимчасового відключення команд при налагодженні скрипту. Коментарі бувають як строковими так і блоковими:
--
— рядковий коментар виключає з виконання тільки один рядок, перед яким стоять два мінуси./* */
— блоковий коментар виключає з виконання цілий блок команд, укладений в зазначену конструкцію. Допускає вкладені коментарі.
Типи даних
Як і в мовах програмування, в SQL існують різні типи даних для зберігання змінних:
- Числа — для зберігання числових змінних (bit, int, tinyint, smallint, bigint, numeric, decimal, money, smallmoney, float, real).
- Дати — для зберігання дати та часу (datetime, smalldatetime, date, time, datetime2, datetimeoffset).
- Символи — для зберігання символьних даних (char, nchar, varchar, nvarchar).
- Двійкові — для зберігання бінарних даних (binary, varbinary).
- Більш об'ємні — типи даних для зберігання великих бінарних даних (text, ntext, image).
- Спеціальні — покажчики (cursor), 16-байтове шістнадцяткове число, яке використовується для GUID (uniqueidentifier), штамп зміни рядка (timestamp), версія рядки (rowversion), таблиці (table).
Примітка. Для використання російських символів (НЕ ASCII кодування) використовуються типи даних з приставкою «n» (nchar, nvarchar, ntext), які кодують символи двома байтами. Інакше кажучи, для роботи з Unicode використовуються типи даних з «n» (від слова national). Строкові константи з Unicode також записуються з «n» на початку.
Примітка. Для даних змінної довжини використовуються типи даних з приставкою «var». Типи даних без приставки «var» мають фіксовану довжину області пам'яті, невикористана частина якої заповнюється пробілами або нулями.
Ідентифікатори
Ідентифікатори — це спеціальні символи, які використовуються зі змінними для ідентифікування їх типу або для угруповання слів в змінну. Типи ідентифікаторів:
- @ — ідентифікатор локальної змінної (користувальницької).
- @@ — ідентифікатор глобальної змінної (вбудованої).
- # — ідентифікатор локальної таблиці або процедури.
- ## — ідентифікатор глобальної таблиці або процедури.
- [] — ідентифікатор угруповання слів в змінну (працюють як стандартні "").
Змінні
Змінні використовуються в сценаріях і для зберігання тимчасових даних. Щоб працювати зі змінною, її потрібно оголосити, при тому оголошення повинно бути здійснено в тій транзакції і пакеті інструкцій, в якій виконується команда, яка використовує цю змінну. Інакше кажучи, після завершення транзакції, а також після команди GO, змінна знищується.
Оператори
Оператори — це спеціальні команди, призначені для виконання простих операцій над змінними:
- Арифметичні оператори: «*» — помножити, «/» — ділити, «%» — залишок від ділення, «+» — скласти, «-» — відняти, «()» — дужки.
- Оператори порівняння: "=" — дорівнює, «>» — більше, «<» — менше, ">=" — більше або дорівнює, "<=" менше або дорівнює, «<>» ("! =") — не дорівнює, "between" між/в середині (замість ">=", "<=").
- Оператори з'єднання: «+» — з'єднання (конкатенація) рядків.
- Логічні оператори: «AND» — і, «OR» — або, «NOT» — ні.
- Оператори з множинами: «IN».
Системні функції
- Специфікація Transact-SQL значно розширює стандартні можливості SQL завдяки вбудованим функціям:
- Агрегатні функції — функції, які працюють з колекціями значень і видають одне значення. Типові представники: AVG — середнє значення колонки, SUM — сума колонки, MAX — максимальне значення колонки, COUNT — кількість елементів колонки.
- Скалярні функції — це функції, які повертають одне значення, працюючи зі скалярними даними або взагалі без вхідних даних. Типові представники: DATEDIFF — різниця між датами, ABS — модуль числа, DB_NAME — ім'я бази даних, USER_NAME — ім'я поточного користувача, LEFT — частина рядка зліва.
- Функції-покажчики — функції, які використовуються як посилання на інші дані. Типові представники: OPENXML — покажчик на джерело даних у вигляді XML-структури, OPENQUERY — покажчик на джерело даних у вигляді іншого запиту.
Примітка. Повний список функцій можна знайти в довідці до SQL сервера.
Примітка. До скалярним функцій можна також віднести і глобальні змінні, які в тексті сценарію викликаються подвійним равликом «@@».
Вирази
Вираз — це комбінація символів і операторів, яка отримує на вхід скалярну величину, а на виході дає іншу величину або виконує якусь дію. У Transact-SQL вирази поділяються на 3 типи: DDL, DCL і DML.
- DDL (Data Definition Language) — використовуються для створення об'єктів в базі даних. Основні представники даного класу: CREATE — створення об'єктів, ALTER — зміна об'єктів, DROP — видалення об'єктів.
- DCL (Data Control Language) — використовуються для призначення прав на об'єкти бази даних. Основні представники даного класу: GRANT — дозвіл на об'єкт, DENY — заборона на об'єкт, REVOKE — скасування дозволів і заборон на об'єкт.
- DML (Data Manipulation Language) — використовуються для запитів і зміни даних. Основні представники даного класу: SELECT — вибірка даних, INSERT — вставка даних, UPDATE — зміна даних, DELETE — видалення даних.
Управління виконанням сценарію
У Transact-SQL існують спеціальні команди, які дозволяють керувати потоком виконання сценарію, перериваючи його або направляючи в потрібну гілку.
- Блок угруповання — структура, яка об'єднує список виразів в один логічний блок (BEGIN … END).
- Блок умови — структура, яка перевіряє виконання певного умови (IF … ELSE).
- Блок циклу — структура, що організує повторення виконання логічного блоку (WHILE … BREAK … CONTINUE).
- Перехід — команда, яка виконує перехід потоку виконання сценарію на вказану мітку (GOTO).
- Очікування — команда, що затримує виконання сценарію (WAITFOR).
- Виклик помилки — команда, яка генерує помилку виконання сценарію (RAISERROR).
Література
- Майк Гандерлой, Джозеф Джорден, Дейвид Чанц. Часть II. Язык программирования Transact-SQL // Освоение Microsoft SQL Server 2005 = Mastering Microsoft SQL Server 2005. — М.: «Диалектика», 2007. — С. 139—280. — .
- Роберт Виейра. Глава 3. Основные сведения о языке T-SQL // Программирование баз данных MS SQL Server 2005 для профессионалов = Professional Microsoft SQL Server 2005 Programming. — М.: «Диалектика», 2007. — С. 86-129. — 1072 с. — ISBN 978-5-8459-1329-6.
- Виталий Бочкарёв. Просто о Transact-SQL (рус.) (25 января 2010). Архивировано из первоисточника на WebCite 15 февраля 2012 года.
- Microsoft Corporation. Курс MS-2071 «Создание запросов в Microsoft SQL Server 2000 с использованием Transact-SQL» (англ.) (13 октября 2004). Архивировано из первоисточника на WebCite 15 февраля 2012 года.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Transact SQL T SQL procedurne rozshirennya movi SQL stvorene kompaniyeyu Microsoft dlya Microsoft SQL Server i Sybase dlya Sybase ASE SQL buv rozshirenij nastupnimi dodatkovimi mozhlivostyami takimi yak Keruyuchi operatori Lokalni i globalni zminni Rizni dodatkovi funkciyi dlya obrobki ryadkiv dat matematiki tosho Pidtrimka autentifikaciyi Microsoft Windows Mova Transact SQL ye klyuchem do vikoristannya MS SQL Server Vsi zastosunki yaki vzayemodiyut z ekzemplyarom MS SQL Server nezalezhno vid yihnoyi realizaciyi i interfejsu koristuvacha vidpravlyayut z servera instrukciyi Transact SQL Elementi sintaksisuDirektivi scenariyu Direktivi scenariyu ce specifichni komandi yaki vikoristovuyutsya tilki v MS SQL Ci komandi dopomagayut serveru viznachati pravila roboti zi skriptom i tranzakciyami Tipovi predstavniki GO informuye programi SQL Server pro zakinchennya paketa instrukcij Transact SQL EXEC abo EXECUTE vikonuye proceduru abo skalyarnu funkciyu Komentari Dokladnishe Komentar programuvannya Komentari vikoristovuyutsya dlya stvorennya poyasnen dlya blokiv scenariyiv a takozh dlya timchasovogo vidklyuchennya komand pri nalagodzhenni skriptu Komentari buvayut yak strokovimi tak i blokovimi span class c1 span ryadkovij komentar viklyuchaye z vikonannya tilki odin ryadok pered yakim stoyat dva minusi span class cm span blokovij komentar viklyuchaye z vikonannya cilij blok komand ukladenij v zaznachenu konstrukciyu Dopuskaye vkladeni komentari Tipi danih Yak i v movah programuvannya v SQL isnuyut rizni tipi danih dlya zberigannya zminnih Chisla dlya zberigannya chislovih zminnih bit int tinyint smallint bigint numeric decimal money smallmoney float real Dati dlya zberigannya dati ta chasu datetime smalldatetime date time datetime2 datetimeoffset Simvoli dlya zberigannya simvolnih danih char nchar varchar nvarchar Dvijkovi dlya zberigannya binarnih danih binary varbinary Bilsh ob yemni tipi danih dlya zberigannya velikih binarnih danih text ntext image Specialni pokazhchiki cursor 16 bajtove shistnadcyatkove chislo yake vikoristovuyetsya dlya GUID uniqueidentifier shtamp zmini ryadka timestamp versiya ryadki rowversion tablici table Primitka Dlya vikoristannya rosijskih simvoliv NE ASCII koduvannya vikoristovuyutsya tipi danih z pristavkoyu n nchar nvarchar ntext yaki koduyut simvoli dvoma bajtami Inakshe kazhuchi dlya roboti z Unicode vikoristovuyutsya tipi danih z n vid slova national Strokovi konstanti z Unicode takozh zapisuyutsya z n na pochatku Primitka Dlya danih zminnoyi dovzhini vikoristovuyutsya tipi danih z pristavkoyu var Tipi danih bez pristavki var mayut fiksovanu dovzhinu oblasti pam yati nevikoristana chastina yakoyi zapovnyuyetsya probilami abo nulyami Identifikatori Identifikatori ce specialni simvoli yaki vikoristovuyutsya zi zminnimi dlya identifikuvannya yih tipu abo dlya ugrupovannya sliv v zminnu Tipi identifikatoriv identifikator lokalnoyi zminnoyi koristuvalnickoyi identifikator globalnoyi zminnoyi vbudovanoyi identifikator lokalnoyi tablici abo proceduri identifikator globalnoyi tablici abo proceduri identifikator ugrupovannya sliv v zminnu pracyuyut yak standartni Zminni Zminni vikoristovuyutsya v scenariyah i dlya zberigannya timchasovih danih Shob pracyuvati zi zminnoyu yiyi potribno ogolositi pri tomu ogoloshennya povinno buti zdijsneno v tij tranzakciyi i paketi instrukcij v yakij vikonuyetsya komanda yaka vikoristovuye cyu zminnu Inakshe kazhuchi pislya zavershennya tranzakciyi a takozh pislya komandi GO zminna znishuyetsya Operatori Operatori ce specialni komandi priznacheni dlya vikonannya prostih operacij nad zminnimi Arifmetichni operatori pomnozhiti diliti zalishok vid dilennya sklasti vidnyati duzhki Operatori porivnyannya dorivnyuye gt bilshe lt menshe gt bilshe abo dorivnyuye lt menshe abo dorivnyuye lt gt ne dorivnyuye between mizh v seredini zamist gt lt Operatori z yednannya z yednannya konkatenaciya ryadkiv Logichni operatori AND i OR abo NOT ni Operatori z mnozhinami IN Sistemni funkciyi Specifikaciya Transact SQL znachno rozshiryuye standartni mozhlivosti SQL zavdyaki vbudovanim funkciyam Agregatni funkciyi funkciyi yaki pracyuyut z kolekciyami znachen i vidayut odne znachennya Tipovi predstavniki AVG serednye znachennya kolonki SUM suma kolonki MAX maksimalne znachennya kolonki COUNT kilkist elementiv kolonki Skalyarni funkciyi ce funkciyi yaki povertayut odne znachennya pracyuyuchi zi skalyarnimi danimi abo vzagali bez vhidnih danih Tipovi predstavniki DATEDIFF riznicya mizh datami ABS modul chisla DB NAME im ya bazi danih USER NAME im ya potochnogo koristuvacha LEFT chastina ryadka zliva Funkciyi pokazhchiki funkciyi yaki vikoristovuyutsya yak posilannya na inshi dani Tipovi predstavniki OPENXML pokazhchik na dzherelo danih u viglyadi XML strukturi OPENQUERY pokazhchik na dzherelo danih u viglyadi inshogo zapitu Primitka Povnij spisok funkcij mozhna znajti v dovidci do SQL servera Primitka Do skalyarnim funkcij mozhna takozh vidnesti i globalni zminni yaki v teksti scenariyu viklikayutsya podvijnim ravlikom Virazi Viraz ce kombinaciya simvoliv i operatoriv yaka otrimuye na vhid skalyarnu velichinu a na vihodi daye inshu velichinu abo vikonuye yakus diyu U Transact SQL virazi podilyayutsya na 3 tipi DDL DCL i DML DDL Data Definition Language vikoristovuyutsya dlya stvorennya ob yektiv v bazi danih Osnovni predstavniki danogo klasu CREATE stvorennya ob yektiv ALTER zmina ob yektiv DROP vidalennya ob yektiv DCL Data Control Language vikoristovuyutsya dlya priznachennya prav na ob yekti bazi danih Osnovni predstavniki danogo klasu GRANT dozvil na ob yekt DENY zaborona na ob yekt REVOKE skasuvannya dozvoliv i zaboron na ob yekt DML Data Manipulation Language vikoristovuyutsya dlya zapitiv i zmini danih Osnovni predstavniki danogo klasu SELECT vibirka danih INSERT vstavka danih UPDATE zmina danih DELETE vidalennya danih Upravlinnya vikonannyam scenariyu U Transact SQL isnuyut specialni komandi yaki dozvolyayut keruvati potokom vikonannya scenariyu pererivayuchi jogo abo napravlyayuchi v potribnu gilku Blok ugrupovannya struktura yaka ob yednuye spisok viraziv v odin logichnij blok BEGIN END Blok umovi struktura yaka pereviryaye vikonannya pevnogo umovi IF ELSE Blok ciklu struktura sho organizuye povtorennya vikonannya logichnogo bloku WHILE BREAK CONTINUE Perehid komanda yaka vikonuye perehid potoku vikonannya scenariyu na vkazanu mitku GOTO Ochikuvannya komanda sho zatrimuye vikonannya scenariyu WAITFOR Viklik pomilki komanda yaka generuye pomilku vikonannya scenariyu RAISERROR LiteraturaMajk Ganderloj Dzhozef Dzhorden Dejvid Chanc Chast II Yazyk programmirovaniya Transact SQL Osvoenie Microsoft SQL Server 2005 Mastering Microsoft SQL Server 2005 M Dialektika 2007 S 139 280 ISBN 0 7821 4380 6 Robert Viejra Glava 3 Osnovnye svedeniya o yazyke T SQL Programmirovanie baz dannyh MS SQL Server 2005 dlya professionalov Professional Microsoft SQL Server 2005 Programming M Dialektika 2007 S 86 129 1072 s ISBN 978 5 8459 1329 6 Vitalij Bochkaryov Prosto o Transact SQL rus 25 yanvarya 2010 Arhivirovano iz pervoistochnika na WebCite 15 fevralya 2012 goda Microsoft Corporation Kurs MS 2071 Sozdanie zaprosov v Microsoft SQL Server 2000 s ispolzovaniem Transact SQL angl 13 oktyabrya 2004 Arhivirovano iz pervoistochnika na WebCite 15 fevralya 2012 goda