sql >> Database teknologi >  >> RDS >> Database

Hvad er T-SQL?

Transact-SQL, ofte forkortet til T-SQL eller endda TSQL, er Microsofts og Sybases proprietære udvidelse til SQL. Transact-SQL udvider SQL-standarden til at inkludere ekstra funktioner, der ikke er inkluderet i SQL-standarden.

Her er et eksempel på en simpel T-SQL-sætning:

CREATE DATABASE Movies;

Dette er så simpelt som et T-SQL-eksempel kunne blive. Dette opretter en ny database kaldet Movies .

T-SQL giver dog mulighed for at inkludere andre muligheder i denne erklæring, såsom hvor databasefilerne skal være placeret, størrelsen på disse filer, hvad deres maksimale størrelse skal være og mere.

T-SQL-funktioner

Nogle af funktionerne i T-SQL inkluderer:

  • Procedurel programmering
  • Lokale variabler
  • Forskellige støttefunktioner til strengbehandling, datobehandling, matematik osv.
  • Ændringer af DELETE og UPDATE udsagn. De tillader især, at der tilføjes en FROM-klausul, som gør det muligt at inkludere joins.
  • T-SQL har en BULK INSERT sætning, der giver dig mulighed for at importere en datafil til en databasetabel eller visning i et brugerspecificeret format.

En af de vigtigste fordele ved ovenstående udvidelser er, at du har meget mere programmerbarhed, når du bruger T-SQL vs SQL. Lagrede procedurer giver dig for eksempel mulighed for at inkorporere programmeringslogik i din database. Du kan overføre en eller flere parametre til en lagret procedure, og den lagrede procedure vil returnere et output, der varierer afhængigt af parametrenes værdier.

T-SQL indeholder også et stort antal indbyggede funktioner, samt understøtter brugerdefinerede funktioner.

Et eksempel på en indbygget funktion

Her er et andet grundlæggende eksempel, denne gang ved at bruge en af ​​T-SQL's indbyggede funktioner:

SELECT GETDATE();

Resultat:

2018-05-06 23:30:37.003

I dette tilfælde bruger vi T-SQL's GETDATE() funktion for at returnere den aktuelle dato og tid. Dette bruges sammen med SELECT sætning, som er en almindelig SQL-sætning til at returnere data.

Vi kan også bruge den funktion som et argument for en anden funktion. Her er et eksempel:

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

Resultat:

May

I dette tilfælde bruger vi T-SQL FORMAT() funktion til kun at udtrække månedsdelen af ​​datoen og præsentere den i et bestemt format. Du kan se flere eksempler på dato/klokkeslæt under Sådan formateres dato og klokkeslæt i SQL Server.

T-SQL's historie

Selvom Transact-SQL (og SQL Server) oftest er kendt som en Microsoft-ting, er det faktisk resultatet af et partnerskab mellem Microsoft og Sybase, der startede i 1987. Dette partnerskab blev opløst i 1994.

Efter dette fortsatte T-SQL med at blive understøttet af databaseprodukter udgivet af begge virksomheder, men hvert firma udviklede deres databaseprodukter i sin egen retning. Derfor er der nogle forskelle mellem Sybase T-SQL og Microsoft T-SQL.

T-SQL og GUI-værktøjer

Transact-SQL er central for SQL Server. De fleste operationer i SQL Server udføres ved hjælp af T-SQL. Dette er sandt, selvom du bruger et GUI-værktøj (såsom SSMS eller DBeaver), og du faktisk ikke laver nogen programmering. Hver gang du bruger et program til at interagere med SQL Server, bruger programmet T-SQL bag kulisserne til at udføre den angivne opgave.

Men SQL Server er ikke det eneste databasestyringssystem, der understøtter Transact-SQL. Microsoft Azure SQL Database understøtter også T-SQL. De fleste T-SQL-funktioner, som applikationer bruger, understøttes fuldt ud i både Microsoft SQL Server og Azure SQL Database (selvom der er nogle undtagelser).

Om GO-kommandoen

Enhver, der har brugt T-SQL, vil sandsynligvis være bekendt med GO kommando. Dette søgeord er ofte placeret i slutningen af ​​en batch af udsagn. For eksempel kunne det første eksempel ovenfor også skrives sådan:

CREATE DATABASE Movies;
GO

Men GO kommandoen er faktisk ikke en del af Transact-SQL. Faktisk er GO kommandoen kan ikke engang optage den samme linje som en Transact-SQL-sætning.

GO er en af ​​de kommandoer, der genkendes af sqlcmd og osql hjælpeprogrammer samt SQL Server Management Studio Code Editor for at lette læsbarheden og udførelsen af ​​batches og scripts. GO kommandoen signalerer slutningen af ​​en batch af Transact-SQL-sætninger til SQL Server-værktøjerne.

SQL Server-værktøjer fortolker GO som et signal om, at de skal sende den aktuelle batch af Transact-SQL-sætninger til en forekomst af SQL Server. Den aktuelle batch af udsagn er sammensat af alle udsagn, der er indtastet siden sidste GO , eller siden starten af ​​ad hoc-sessionen eller scriptet, hvis dette er den første GO .

Andre proprietære SQL-udvidelser

Transact-SQL er ikke den eneste udvidelse til SQL-standarden. Forskellige databasesystemer har deres egne udvidelser. Oracle bruger f.eks. et proprietært proceduresprog kaldet PL/SQL, og PostgreSQL bruger et proceduresprog kaldet PL/pgSQL.

Selvom proprietære SQL-udvidelser har deres fordele (såsom udvidet funktionalitet), har de deres ulemper. En stor ulempe er, at de kan gøre tingene vanskelige, hvis du nogensinde har brug for at portere en database fra et system til et andet. For eksempel, hvis din organisation pludselig beslutter, at den skal bruge Oracle i stedet for SQL Server, skal du muligvis gennemgå al SQL Server-koden og omskrive den til Oracle. Dette kræver også, at du kommer op på syntaksen for begge systemer.


  1. PostgreSQL Multi-Cloud Cluster Deployment

  2. Sådan fungerer funktionen QUOTENAME() i SQL Server (T-SQL)

  3. Sådan gendannes Sqlite-database efter backup af Android

  4. Hvordan kan fremmednøglebegrænsninger midlertidigt deaktiveres ved hjælp af T-SQL?