ความแตกต่างระหว่าง SQL, PL-SQL และ T-SQL คืออะไร?


360

ความแตกต่างระหว่าง SQL, PL-SQL และ T-SQL คืออะไร?

ใครช่วยอธิบายความแตกต่างระหว่างสามสิ่งนี้และจัดทำสถานการณ์ที่แต่ละคนจะใช้อย่างเกี่ยวข้องกันได้บ้าง


1
ภาษาของแบบสอบถามที่ Microsoft SQL Server ใช้เป็นตัวแปรของภาษาโครงสร้างแบบสอบถามมาตรฐาน ANSI, SQL ตัวแปร SQL Server เรียกว่า Transact-SQL

SQL เป็นภาษาที่มุ่งเน้นข้อมูลสำหรับการเลือกและจัดการชุดข้อมูล PL / SQL เป็นภาษาขั้นตอนในการสร้างแอปพลิเคชัน

SQL เป็นภาษาคิวรีที่มีโครงสร้าง PL / SQL เป็นภาษาเชิงกระบวนการที่ขยายไปยัง sql ซึ่งถูกพัฒนาโดย oracle T-SQL ได้รับการพัฒนาโดย microsoft

คำตอบ:


379
  • SQL เป็นภาษาแบบสอบถามเพื่อใช้งานในชุด

    เป็นมาตรฐานที่มากหรือน้อยและถูกใช้โดยระบบการจัดการฐานข้อมูลเชิงสัมพันธ์เกือบทั้งหมด: SQL Server, Oracle, MySQL, PostgreSQL, DB2, Informix และอื่น ๆ

  • PL/SQL เป็นภาษาขั้นตอนที่เป็นกรรมสิทธิ์ซึ่งใช้โดย Oracle

  • PL/pgSQL เป็นภาษาขั้นตอนที่ใช้โดย PostgreSQL

  • TSQL เป็นภาษาขั้นตอนที่เป็นกรรมสิทธิ์ซึ่งใช้โดย Microsoft ใน SQL Server

ภาษาเชิงปฏิบัติได้รับการออกแบบมาเพื่อขยายความสามารถของ SQL ในขณะที่สามารถผสานเข้ากับ SQL ได้ดี มีการเพิ่มคุณสมบัติหลายอย่างเช่นตัวแปรโลคัลและการประมวลผลสตริง / ข้อมูล คุณสมบัติเหล่านี้ทำให้ภาษาทัวริงสมบูรณ์

พวกเขายังใช้เพื่อเขียนขั้นตอนการจัดเก็บ: ส่วนของรหัสที่อยู่บนเซิร์ฟเวอร์เพื่อจัดการกฎเกณฑ์ทางธุรกิจที่ซับซ้อนซึ่งยากหรือเป็นไปไม่ได้ในการจัดการด้วยการดำเนินการตามชุดที่บริสุทธิ์


14
TSQL ใช้โดย Sybase เช่นกัน อย่างน้อยใน Oracle, PL / SQL สามารถทำได้มากกว่าเพียงแค่จัดการ "กฎธุรกิจ" ขั้นตอน PL / SQL สามารถเข้าถึงเว็บไซต์ส่งอีเมลและอื่น ๆ
Erich Kitzmueller

3
PL / SQL ไม่ได้มีอยู่ในฐานข้อมูลเท่านั้นเช่น Oracle Forms มีการติดตั้ง PL / SQL ในฝั่งไคลเอ็นต์
Erich Kitzmueller

2
โปรดทราบว่าแต่ละฐานข้อมูลมีการใช้งาน SQL ของตัวเอง (T-SQL และ PL / SQL เป็นที่พบบ่อยกว่าสองแบบ) โดยทั่วไปจะใช้ SQL มาตรฐาน ANSII เมื่อมีการใช้แบ็กเอนด์จำนวนมาก แต่ไม่ใช่ฐานข้อมูลทั้งหมดที่ใช้คุณสมบัติ ANSII SQL ทั้งหมด และการใช้งานฐานข้อมูลเฉพาะของ SQl มักจะเป็นสิ่งที่ดีที่สุดสำหรับฐานข้อมูลนั้น - หลังจากพวกเขาต้องให้เหตุผลกับคุณในการใช้ฐานข้อมูลใช่ไหม?
HLGEM

2
การแก้ไข: SQL เป็นภาษาที่ใช้ในตารางที่ SQL เองให้คำจำกัดความ มาตรฐาน SQL หลีกเลี่ยงคำว่า 'ชุด' และ 'ความสัมพันธ์' และอนุพันธ์ ไม่ได้ตั้งค่าตาราง SQL
เมื่อ

1
แน่นอนว่ามันจะดีถ้ามีภาษาโพรซีเดอร์ sql ที่สามารถใช้ได้กับ oracle และ sql server
RayLoveless

113

SQL

SQL ถูกใช้เพื่อสื่อสารกับฐานข้อมูลเป็นภาษามาตรฐานสำหรับระบบการจัดการฐานข้อมูลเชิงสัมพันธ์

ในรายละเอียดStructured Query Languageเป็นภาษาการเขียนโปรแกรมวัตถุประสงค์พิเศษที่ออกแบบมาสำหรับการจัดการข้อมูลที่จัดขึ้นในระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) หรือสำหรับการประมวลผลสตรีมในระบบการจัดการสตรีมข้อมูลเชิงสัมพันธ์ (RDSMS)

เริ่มแรกจากพีชคณิตเชิงสัมพันธ์และแคลคูลัสเชิงสัมพันธ์ tuple, SQL ประกอบด้วยภาษานิยามข้อมูลและภาษาการจัดการข้อมูล ขอบเขตของ SQL มีการแทรกข้อมูลแบบสอบถามอัปเดตและลบการสร้างและปรับเปลี่ยนสกีมาและการควบคุมการเข้าถึงข้อมูล แม้ว่า SQL นั้นมักจะอธิบายว่าและในระดับที่ดีคือภาษาที่ประกาศ (4GL) แต่ก็ยังรวมถึงองค์ประกอบของขั้นตอน

PL / SQL

PL / SQL คือการรวมกันของ SQL พร้อมกับคุณสมบัติขั้นตอนของภาษาการเขียนโปรแกรม ได้รับการพัฒนาโดย Oracle Corporation

ความเชี่ยวชาญของ PL / SQL

  • ภาษาการประมวลผลธุรกรรมที่มีประสิทธิภาพสูงพกพาได้อย่างสมบูรณ์
  • จัดเตรียมสภาพแวดล้อมการโปรแกรมมิงที่ตีความแล้วและ OS อิสระ
  • ถูกเรียกโดยตรงจากอินเตอร์เฟสบรรทัดคำสั่ง SQL * Plus
  • การโทรโดยตรงสามารถทำได้จากการเรียกภาษาโปรแกรมภายนอกไปยังฐานข้อมูล
  • ไวยากรณ์ทั่วไปขึ้นอยู่กับภาษาการเขียนโปรแกรม ADA และ Pascal
  • นอกเหนือจาก Oracle แล้วยังมีอยู่ในฐานข้อมูลในหน่วยความจำของ TimesTen และ IBM DB2

T-SQL

ย่อมาจาก Transaction-SQL เป็น SQLแบบขยายที่เพิ่มตัวแปรที่ประกาศการควบคุมการทำธุรกรรมข้อผิดพลาดและการจัดการข้อยกเว้นและการประมวลผลแถวไปยัง SQL

Structured Query Language หรือ SQL เป็นภาษาโปรแกรมที่เน้นการจัดการฐานข้อมูลเชิงสัมพันธ์ SQL มีข้อ จำกัด ของตัวเองซึ่งกระตุ้นซอฟต์แวร์ยักษ์ใหญ่ไมโครซอฟท์ที่จะสร้างอยู่ด้านบนของ SQL ที่มีนามสกุลของตัวเองเพื่อเพิ่มประสิทธิภาพการทำงานของของ SQL Microsoft เพิ่มรหัสลงใน SQL และเรียกมันว่า Transact-SQL หรือ T-SQL โปรดทราบว่า T-SQL เป็นกรรมสิทธิ์และอยู่ภายใต้การควบคุมของ Microsoft ในขณะที่ SQL ซึ่งพัฒนาโดย IBM นั้นเป็นรูปแบบเปิดอยู่แล้ว

T-SQL เพิ่มจำนวนของคุณสมบัติที่ไม่สามารถใช้ได้ใน SQL

ซึ่งรวมถึงองค์ประกอบการโปรแกรมเชิงโพรซีเดอร์และตัวแปรโลคัลเพื่อให้การควบคุมมีความยืดหยุ่นมากขึ้นว่า มีการเพิ่มจำนวนฟังก์ชั่นใน T-SQL เพื่อให้มีประสิทธิภาพมากขึ้น ฟังก์ชั่นสำหรับการดำเนินการทางคณิตศาสตร์การดำเนินงานสตริงการประมวลผลวันที่และเวลาและไม่ชอบ ส่วนเพิ่มเติมเหล่านี้ทำให้ T-SQL สอดคล้องกับการทดสอบทัวริงครบถ้วนซึ่งเป็นการทดสอบที่กำหนดความเป็นสากลของภาษาคอมพิวเตอร์ SQL ไม่ทัวริงสมบูรณ์และมีข้อ จำกัด ในขอบเขตของสิ่งที่สามารถทำได้

ความแตกต่างที่สำคัญอื่นระหว่าง T-SQL และ SQL คือการเปลี่ยนแปลงที่ทำกับคำสั่ง DELETE และ UPDATE ที่มีอยู่แล้วใน SQL ด้วย T-SQL คำสั่ง DELETE และ UPDATE ทั้งคู่อนุญาตให้รวมส่วนคำสั่ง FROM ซึ่งอนุญาตให้ใช้ JOIN ได้ สิ่งนี้ช่วยให้การกรองระเบียนง่ายขึ้นเพื่อเลือกรายการที่ตรงกับเกณฑ์บางอย่างที่แตกต่างจาก SQL ซึ่งอาจซับซ้อนกว่าเล็กน้อย

การเลือกระหว่าง T-SQL และ SQL นั้นขึ้นอยู่กับผู้ใช้ ยังใช้ T-SQL ยังคงดีขึ้นเมื่อคุณจัดการกับการติดตั้ง Microsoft SQL Server นี่เป็นเพราะ T-SQL มาจาก Microsoft ด้วยและการใช้ทั้งสองเข้าด้วยกันช่วยเพิ่มความเข้ากันได้สูงสุด SQL เป็นที่ต้องการของผู้ที่มีแบ็กเอนด์หลาย ๆ

การอ้างอิง , Wikipedea, คะแนนการสอน: www.differencebetween.com


4
IMO ที่ปัจจุบันเป็นคำตอบที่ดีที่สุด (อย่างไรก็ตามคำตอบของ manoj และบล็อกโพสต์ก็มีค่าสำหรับการอ่านเช่นกัน)
salcoin

1
T-SQL ไม่ได้ซื้อจาก Sybase พร้อมกับรหัสฐานข้อมูลที่ซื้อมาเพื่อสร้างเซิร์ฟเวอร์ SQL เวอร์ชันแรกใช่หรือไม่ อย่างน้อย T-SQL ก็ใช้งานได้กับ Sybase ดังนั้นฉันคิดว่ามี 'รหัสทั่วไป' บางส่วน
phil_w

จริงๆแล้ว Microsoft และ Sybase ได้พัฒนา SQL Server ร่วมกันสำหรับ OS2 ดังนั้นทั้งสอง บริษัท จึงทำงานร่วมกันเพื่อพัฒนา T-SQL นั่นคือเหตุผลที่ฐานข้อมูลทั้งสองสามารถใช้ T-SQL แม้ว่าจะมีความแตกต่างอย่างมีนัยสำคัญระหว่าง T-SQL ทั้งสองรุ่น
alaniane

44
  • SQLภาษาสำหรับการพูดคุยกับฐานข้อมูล มันช่วยให้คุณเลือกข้อมูลเปลี่ยนแปลงและสร้างวัตถุฐานข้อมูล (เช่นตารางมุมมอง ฯลฯ ) เปลี่ยนการตั้งค่าฐานข้อมูล
  • PL-SQL ภาษาโปรแกรมขั้นตอน (พร้อม SQL แบบฝัง)
  • T-SQL ส่วนขยาย (กระบวนงาน) สำหรับ SQL ที่ใช้โดย SQL Server

ควรเป็น SPL (Stored Procedure Lang), PL นั้นกว้างเกินไป (เช่น C)
samis

32

1. SQLหรือ Structured Query Language ได้รับการพัฒนาโดย IBM สำหรับผลิตภัณฑ์ "System R"

ภายหลังANSIทำให้มันเป็นมาตรฐานที่ทุกภาษาแบบสอบถามจะขึ้นอยู่กับและได้ขยายสิ่งนี้เพื่อสร้างชุดภาษาแบบสอบถาม DataBase ของพวกเขาเอง มาตรฐานแรกคือSQL-86และล่าสุดเป็นSQL: 2011

2. T-SQLหรือ Transact-SQL ได้รับการพัฒนาโดยSybaseและต่อมาเป็นเจ้าของร่วมโดยMicrosoft SQL Server

3. PL / SQLหรือภาษาเชิงปฏิบัติ / SQL คือฐานข้อมูลOracleหรือที่เรียกว่า "Relation Software" ในขณะนั้น

ฉันได้รับการบันทึกไว้ในของฉันโพสต์บล็อก


2
คำตอบนี้มีความละเอียดมากกว่าคำตอบที่ได้รับการอนุมัติและการโพสต์ในบล็อกเป็นการอ่านที่ยอดเยี่ยม
salcoin

7

Structured Query Language - SQL: เป็นมาตรฐาน ANSI ที่ใช้โดยผู้ขายของ SGBD เกือบทั่วโลก โดยทั่วไป SQL เป็นภาษาที่ใช้เพื่อกำหนดและจัดการข้อมูล [DDL และ DML]

PL / SQL เป็นภาษาที่สร้างขึ้นโดย Oracle universe PL / SQL รวมคำแนะนำการเขียนโปรแกรมขั้นตอนและอนุญาตให้สร้างโปรแกรมที่ทำงานโดยตรงกับสถานการณ์ฐานข้อมูล

T-SQL เป็นผลิตภัณฑ์ Microsoft จัดรูปแบบ SQL พร้อมกับคุณสมบัติบางอย่าง ดังนั้นอย่าลังเลที่จะทดสอบขีด จำกัด ของคุณ


1

SQL เป็นมาตรฐานและมีผู้จำหน่ายฐานข้อมูลจำนวนมากเช่น Microsoft, Oracle ที่ใช้มาตรฐานนี้โดยใช้ภาษาที่เป็นกรรมสิทธิ์ของตนเอง

Microsoft ใช้ T-SQL เพื่อใช้มาตรฐาน SQL เพื่อโต้ตอบกับข้อมูลในขณะที่ oracle ใช้ PL / SQL

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.