PL-SQL vs 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 гогцоо, FOR гогцоо, курсор FOR гогцоо), нөхцөлт хэллэг, үл хамаарах зүйл, массивыг дэмждэг. PL/SQL програм нь SQL хэллэгүүдийг агуулдаг. Эдгээр SQL хэллэгүүд нь SELECT, INSERT, UPDATE, DELETE гэх мэтийг агуулна. CREATE, DROP, ALTER гэх мэт SQL хэллэгийг PL/SQL программд зөвшөөрдөггүй. PL/SQL функцууд нь PL/SQL мэдэгдлүүд болон SQL мэдэгдлүүдийг агуулж болох бөгөөд энэ нь утгыг буцаана. Нөгөө талаас PL/SQL процедурууд нь SQL хэллэгийг агуулж болохгүй бөгөөд энэ нь утгыг буцаадаггүй. PL/SQL нь мөн инкапсуляция, функцийг хэт ачаалах, мэдээлэл нуух зэрэг объект хандалтат програмчлалын ойлголтуудыг дэмждэг. Гэхдээ энэ нь өв залгамжлалыг дэмждэггүй. 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 сервер рүү илгээх шаардлагатай. T-SQL нь дараах түлхүүр үгсийг ашиглан урсгалын хяналтын чадамжийг өгдөг: BEGIN and END, BREAK, CONTINUE, GOTO, IF болон ELSE, RETURN, WAITFOR, WHILE. Цаашилбал, T-SQL нь DELETE болон UPDATE мэдэгдэлд FROM заалтыг нэмэх боломжийг олгодог. Энэ 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 функцийг ашиглахын тулд T-SQL-д CASE хэллэгийг ашиглах шаардлагатай. Мөн T-SQL-д SELECT INTO хэллэгийн оронд PL/SQL-д INSERT INTO хэллэгийг ашиглах ёстой. PL/SQL-д SELECT хэллэгт ашиглаж болох MINUS оператор байдаг. T-SQL дээр SELECT мэдэгдлүүдтэй NOT EXISTS заалтыг ашиглан ижил үр дүнг авч болно.