Transzaktálj SQL-t

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. december 24-én felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .

A Transact-SQL ( T-SQL ) az SQL nyelv eljárási kiterjesztése, amelyet a Microsoft ( Microsoft SQL Serverhez ) és a Sybase ( Sybase ASE -hez ) hozott létre.

Az SQL további funkciókkal bővült, mint például:

A Transact-SQL nyelv az MS SQL Server használatának kulcsa. Minden alkalmazás, amely együttműködik az MS SQL Server egy példányával, függetlenül azok megvalósításától és felhasználói felületétől, Transact-SQL utasításokat küld a kiszolgálónak.

Szintaxis elemek

Script irányelvek

A Script direktívák speciális parancsok, amelyeket csak az MS SQL használ. Ezek a parancsok segítenek a kiszolgálónak meghatározni a parancsfájllal és a tranzakciókkal kapcsolatos szabályokat. Tipikus képviselők: GO - tájékoztatja az SQL Server programokat a Transact-SQL utasítások kötegének végéről, EXEC (vagy EXECUTE) - végrehajt egy eljárást vagy skaláris függvényt.

Megjegyzések

A megjegyzések magyarázatot adnak a szkriptblokkokhoz, valamint ideiglenesen letiltják a parancsokat a szkript hibakeresése során. A megjegyzések lehetnek soron belüli vagy blokkolt megjegyzések:

-- - egy sor megjegyzés csak egy sort zár ki a végrehajtásból, amelyet két mínusz előz meg.

/* */ — a blokk megjegyzés kizárja a végrehajtásból a megadott konstrukcióba zárt parancsok teljes blokkját. Lehetővé teszi a beágyazott megjegyzéseket.

Adattípusok

A programozási nyelvekhez hasonlóan az SQL is különböző adattípusokkal rendelkezik a változók tárolására:

Jegyzet. Az orosz karakterek (nem ASCII-kódolások) használatához az „n” előtagú adattípusokat (nchar, nvarchar, ntext) használjuk, amelyek két bájtban kódolják a karaktereket. Más szavakkal, a Unicode használatához az „n” betűs adattípusokat (a nemzeti szóból) használjuk. A Unicode karakterlánc-konstansok is „n”-nel vannak írva az elején.

Jegyzet. A változó hosszúságú adatokhoz a „var” előtagú adattípusok használatosak. A „var” előtag nélküli adattípusok fix hosszúságú memóriaterülettel rendelkeznek, amelynek fel nem használt része szóközökkel vagy nullákkal van kitöltve.

Azonosítók

Az azonosítók olyan speciális karakterek, amelyeket a változókkal együtt használnak a típusuk azonosítására vagy a szavak változóba csoportosítására. Azonosító típusok:

Változók

A változókat szkriptekben és ideiglenes adatok tárolására használják. Ahhoz, hogy egy változóval dolgozhassunk, deklarálni kell, és a deklarációt meg kell tenni abban a tranzakció- és utasításcsomagban, amelyben az ezt a változót használó parancs végrehajtásra kerül. Más szóval, a tranzakció befejezése után, valamint a GO parancs után a változó megsemmisül.

A változó deklarálását a DECLARE parancs hajtja végre, a változó értékét a SET vagy a SELECT parancs adja meg:

Tesztadatbázis HASZNÁLATA -- Változók deklarálása DECLARE @EmpID int , @EmpName varchar ( 40 ) -- Állítsa be az @EmpID változó értékét BEÁLLÍTÁS @EmpID = 1 -- Állítsa be az @EmpName változó értékét SELECT @EmpName = Felhasználónév FROM Felhasználók WHERE UserID = @EmpID -- Az @EmpName változó kinyomtatása a lekérdezés eredményében SELECT @EmpName AS [ alkalmazott neve ] MEGY

Jegyzet. Ez a példa a szavak tokenbe csoportosítását használja – az [Employee Name] konstrukciót egyetlen tokenként kezeli a rendszer, mivel a szavak szögletes zárójelben vannak.

Operátorok

Az operátorok speciális parancsok, amelyek egyszerű műveletek végrehajtására szolgálnak változókkal:

  • Aritmetikai operátorok: "*" - szorzás, "/" - osztás, "%" - osztás maradéka, "+" - összeadás, "-" - kivonás, "()" - zárójel.
  • Összehasonlító operátorok: „=” – egyenlő, „>” – nagyobb, „<” – kisebb, „>=” – nagyobb vagy egyenlő, „ <=” kisebb vagy egyenlő, „<>” („!=”) – nem egyenlő, között (">=", "<=" helyett).
  • Kapcsolódási operátorok: "+" - karakterláncok összekapcsolása (összefűzése).
  • Logikai operátorok: "AND" - és, "OR" - vagy, "NOT" - nem.
  • Operátorok beállítása: "IN".

Rendszerfunkciók

A Transact-SQL specifikáció beépített funkciókkal nagymértékben kibővíti az SQL szabványos szolgáltatásait:

  • Az aggregált függvények olyan függvények, amelyek értékgyűjteményeken működnek, és egyetlen értéket állítanak elő. Tipikus képviselői: AVG - az oszlop átlagos értéke, SUM - az oszlop összege, MAX - az oszlop maximális értéke, MIN - az oszlop minimális értéke, COUNT - az oszlopelemek száma.
  • A skalárfüggvények olyan függvények, amelyek egyetlen értéket adnak vissza, skaláris adatokkal működnek, vagy egyáltalán nincs bemenet. Tipikus képviselők: DATEDIFF - a dátumok közötti különbség, ABS - számmodul, DB_NAME - adatbázis neve, USER_NAME - aktuális felhasználónév, BAL - a karakterlánc egy része a bal oldalon.
  • A mutatófüggvények olyan függvények, amelyek más adatokra való hivatkozásként szolgálnak. Tipikus képviselői: OPENXML - mutató az adatforrásra XML struktúra formájában, OPENQUERY - mutató az adatforrásra egy másik lekérdezés formájában.

Jegyzet. A funkciók teljes listája az SQL Server súgójában található.

Jegyzet. A skaláris függvények globális változókat is tartalmaznak, amelyeket a "@@" dupla kutya hív meg a szkript szövegében.

Példa:

Tesztadatbázis HASZNÁLATA -- Aggregált függvény használata az átlagfizetés kiszámításához _ SELECT AVG ( BaseSalary ) AS [ Átlag fizetés ] A pozíciókból MEGY -- Skaláris függvény használata az adatbázis nevének lekérésére _ SELECT DB_NAME () AS [ Adatbázis neve ] MEGY -- Skaláris függvény használata az aktuális felhasználó nevének lekérésére DECLARE @MyUser char ( 30 ) SET @MyUser = USER_NAME () SELECT 'Az aktuális felhasználó adatbázis-felhasználóneve: ' + @MyUser MEGY -- Mutató funkció használata adatok lekéréséhez egy másik szerverről _ _ SELECT * FROM OPENQUERY ( OracleSvr , 'SELECT név, azonosító FROM tulajdonos.titles' ) MEGY

Kifejezések

A kifejezés szimbólumok és operátorok kombinációja, amely bemenetként skaláris értéket vesz fel, és egy másik értéket ad vissza, vagy valamilyen műveletet hajt végre kimenetként. A Transact-SQL-ben 3 típusú kifejezés létezik: DDL, DCL és DML.

  • DDL (Data Definition Language) – objektumok létrehozására szolgál az adatbázisban. Ennek az osztálynak a fő képviselői: CREATE - objektumok létrehozása, ALTER - objektumok megváltoztatása, DROP - objektumok törlése.
  • DCL (Data Control Language) – adatbázis-objektumokhoz való jogok hozzárendelésére szolgál. Ennek az osztálynak a fő képviselői: GRANT - engedély egy objektumhoz, DENY - objektum tiltása, REVOKE - engedélyek és tiltások visszavonása egy objektumra.
  • DML (Data Manipulation Language) – adatok lekérdezésére és módosítására szolgál. Ennek az osztálynak a fő képviselői: SELECT - adatkiválasztás, INSERT - adatbeillesztés, UPDATE - adatmódosítás, DELETE - adattörlés.

Példa:

Tesztadatbázis HASZNÁLATA -- DDL használata CREATE TABLE TempUsers ( UserID int , UserName nvarchar ( 40 ), DepartmentID int ) MEGY -- DCL használata KIVÁLASZTÁS ELLENŐRZÉSE A felhasználókat nyilvánossá _ MEGY -- DML használata SELECT UserID , UserName + ' ' + UserSurname AS [ User Full Name ] FROM Users MEGY -- DDL használata DROP TABLE TempUsers MEGY

Parancsfájl-végrehajtás vezérlése

A Transact-SQL-ben vannak speciális parancsok, amelyek lehetővé teszik a szkript végrehajtásának vezérlését úgy, hogy megszakítják vagy a megfelelő ágra irányítják át.

  • A csoportosító blokk egy olyan struktúra, amely a kifejezések listáját egyetlen logikai blokkban egyesíti (BEGIN ... END).
  • A feltételblokk egy olyan struktúra, amely ellenőrzi, hogy egy bizonyos feltétel teljesül-e (IF ... ELSE).
  • Ciklusblokk - egy logikai blokk (WHILE ... BREAK ... CONTINUE) végrehajtásának megismétlését szervező struktúra.
  • Az ugrás egy parancs, amely végrehajtja a parancsfájl-végrehajtási szál átmenetét a megadott címkére (GOTO).
  • A késleltetés egy parancs, amely késlelteti a szkript végrehajtását (WAITFOR).
  • A Hiba emelése egy parancsfájl-végrehajtási hibát (RAISERROR) generáló parancs.

Lásd még

  • PL/SQL

Jegyzetek

  1. Adattípusok a T-SQL-ben . info-comp.ru. Letöltve: 2018. október 12. Az eredetiből archiválva : 2018. október 13..

Irodalom