PL-SQL ընդդեմ T-SQL
T-SQL (Transact SQL) Microsoft-ի կողմից մշակված SQL-ի ընդլայնումն է: T-SQL-ն օգտագործվում է Microsoft SQL Server-ում: PL/SQL (Procedural Language/Structured Query Language) նաև Oracle-ի կողմից մշակված SQL-ի ընթացակարգային ընդլայնում է: PL/SQL-ը ծրագրավորման հիմնական լեզու է, որը ներդրված է Oracle-ի տվյալների բազայում:
PL/SQL
PL/SQL-ը Oracle-ի կողմից մշակված SQL-ի ընթացակարգային ընդլայնում է: PL/SQL ծրագրերը կառուցված են բլոկներից, որը PL/SQL-ի հիմնական միավորն է: PL/SQL-ն ապահովում է փոփոխականների, օղակների (WHILE loops, FOR loops և Cursor FOR loops), պայմանական հայտարարությունների, բացառությունների և զանգվածների աջակցություն:PL/SQL ծրագիրը պարունակում է SQL հայտարարություններ: Այս SQL հայտարարությունները ներառում են SELECT, INSERT, UPDATE, DELETE և այլն: SQL հայտարարությունները, ինչպիսիք են CREATE, DROP կամ ALTER, չեն թույլատրվում PL/SQL ծրագրերում: PL/SQL ֆունկցիաները կարող են պարունակել PL/SQL հայտարարություններ և SQL հայտարարություններ, և այն վերադարձնում է արժեք: Մյուս կողմից, PL/SQL ընթացակարգերը չեն կարող պարունակել SQL հայտարարություններ և այն արժեք չի վերադարձնում: PL/SQL-ն աջակցում է նաև որոշ օբյեկտի վրա հիմնված ծրագրավորման հայեցակարգեր, ինչպիսիք են encapsulation, ֆունկցիայի գերբեռնվածությունը և տեղեկատվության թաքցումը: Բայց դա չի աջակցում ժառանգությանը: PL/SQL-ում փաթեթները կարող են օգտագործվել ֆունկցիաները, ընթացակարգերը, փոփոխականները և այլն խմբավորելու համար: Փաթեթները թույլ են տալիս վերօգտագործել կոդը: Oracle սերվերի վրա PL/SQL կոդը օգտագործելը կհանգեցնի կատարողականի բարելավմանը, քանի որ Oracle սերվերը նախապես հավաքում է PL/SQL կոդը նախքան այն իրականում կատարելը:
T-SQL
T-SQL-ը Microsoft-ի կողմից մշակված SQL-ի ընդլայնումն է: T-SQL-ն ընդլայնում է SQL-ը՝ ավելացնելով մի քանի առանձնահատկություններ, ինչպիսիք են ընթացակարգային ծրագրավորումը, տեղական փոփոխականները և լարային/տվյալների մշակման օժանդակ գործառույթները:Այս հատկանիշները դարձնում են T-SQL Turing-ը ամբողջական: Ցանկացած հավելված, որը պետք է հաղորդակցվի Microsoft SQL սերվերի հետ, պետք է ուղարկի T-SQL հայտարարություն Microsoft SQL Server-ին: T-SQL-ն ապահովում է հոսքի վերահսկման հնարավորություններ՝ օգտագործելով հետևյալ հիմնաբառերը՝ BEGIN և END, BREAK, CONTINUE, GOTO, IF and ELSE, RETURN, WAITFOR, and WHILE: Ավելին, T-SQL-ը թույլ է տալիս FROM կետ ավելացնել DELETE և UPDATE հայտարարություններին: FROM-ի այս դրույթը թույլ կտա միանալ DELETE և UPDATE հայտարարություններին: T-SQL-ը նաև թույլ է տալիս աղյուսակում բազմակի տողեր տեղադրել՝ օգտագործելով BULK INSERT հայտարարությունը: Սա մի քանի տողեր կմտցնի աղյուսակում՝ կարդալով տվյալներ պարունակող արտաքին ֆայլ: BULK INSERT-ի օգտագործումը բարելավում է կատարողականությունը, քան առանձին INSERT հայտարարությունների օգտագործումը յուրաքանչյուր տողի համար, որը պետք է զետեղվի:
Ո՞րն է տարբերությունը PL/SQL-ի և T-SQL-ի միջև:
PL/SQL-ը Oracle-ի կողմից տրամադրված SQL-ի ընթացակարգային ընդլայնումն է և այն օգտագործվում է Oracle տվյալների բազայի սերվերի հետ, մինչդեռ T-SQL-ը Microsoft-ի կողմից մշակված SQL-ի ընդլայնումն է և այն հիմնականում օգտագործվում է Microsoft SQL Server-ի հետ:PL/SQL և T-SQL տվյալների տեսակների միջև կան որոշ տարբերություններ: Օրինակ, T-SQL-ն ունի տվյալների երկու տեսակ՝ DATETIME և SMALL-DATETIME, մինչդեռ PL/SQL-ն ունի մեկ տվյալների տեսակ, որը կոչվում է DATE: Ավելին, PL/SQL-ում DECODE ֆունկցիայի ֆունկցիոնալությունը ստանալու համար CASE հայտարարությունը պետք է օգտագործվի T-SQL-ում: Բացի այդ, T-SQL-ում SELECT INTO դրույթի փոխարեն, PL/SQL-ում պետք է օգտագործվի INSERT INTO դրույթը: PL/SQL-ում կա MINUS օպերատոր, որը կարող է օգտագործվել SELECT հայտարարությունների հետ: T-SQL-ում նույն արդյունքները կարելի է ստանալ՝ օգտագործելով NOT EXISTS կետը SELECT հայտարարություններով: