Sự khác biệt giữa SQL, PL-SQL và T-SQL là gì?


360

Sự khác biệt giữa SQL, PL-SQL và T-SQL là gì?

Bất cứ ai cũng có thể giải thích sự khác biệt giữa ba điều này là gì, và cung cấp các kịch bản mà mỗi trường hợp sẽ được sử dụng phù hợp?


1
Ngôn ngữ truy vấn mà Microsoft SQL Server sử dụng là một biến thể của Ngôn ngữ truy vấn có cấu trúc tiêu chuẩn ANSI, SQL. Biến thể SQL Server được gọi là Transact-SQL.

SQL là ngôn ngữ hướng dữ liệu để chọn và thao tác các bộ dữ liệu. PL / SQL là ngôn ngữ thủ tục để tạo ứng dụng

SQL được cấu trúc ngôn ngữ truy vấn PL / SQL là ngôn ngữ thủ tục được mở rộng sang sql, nó được phát triển bởi oracle T-SQL được phát triển bởi microsoft

Câu trả lời:


379
  • SQL là một ngôn ngữ truy vấn để hoạt động trên bộ.

    Nó ít nhiều được tiêu chuẩn hóa và được sử dụng bởi hầu hết các hệ thống quản lý cơ sở dữ liệu quan hệ: SQL Server, Oracle, MySQL, PostgreQuery, DB2, Informix, v.v.

  • PL/SQL là một ngôn ngữ thủ tục độc quyền được sử dụng bởi Oracle

  • PL/pgSQL là một ngôn ngữ thủ tục được sử dụng bởi PostgreSQL

  • TSQL là ngôn ngữ thủ tục độc quyền được Microsoft sử dụng trong SQL Server.

Các ngôn ngữ thủ tục được thiết kế để mở rộng khả năng của SQL trong khi có thể tích hợp tốt với SQL. Một số tính năng như biến cục bộ và xử lý chuỗi / dữ liệu được thêm vào. Những tính năng này làm cho ngôn ngữ Turing-hoàn chỉnh.

Chúng cũng được sử dụng để viết các thủ tục được lưu trữ: các đoạn mã nằm trên máy chủ để quản lý các quy tắc kinh doanh phức tạp khó hoặc không thể quản lý bằng các hoạt động dựa trên tập hợp thuần túy.


14
TSQL cũng được Sybase sử dụng; ít nhất là trong Oracle, các thủ tục PL / SQL có thể làm được nhiều việc hơn là chỉ quản lý "quy tắc kinh doanh"; Các thủ tục PL / SQL có thể truy cập các trang web, gửi email, v.v.
Erich Kitzmueller

3
PL / SQL không chỉ tồn tại trong cơ sở dữ liệu, ví dụ: Oracle Forms chứa triển khai PL / SQL phía máy khách.
Erich Kitzmueller

2
Lưu ý mỗi cơ sở dữ liệu có triển khai SQL riêng (T-SQL và PL / SQL là hai trong số phổ biến hơn), SQL chuẩn ANSII thường được sử dụng khi sử dụng nhiều phụ trợ, nhưng không phải tất cả các cơ sở dữ liệu đều sử dụng tất cả các tính năng SQL của ANSII. Và việc triển khai cụ thể cơ sở dữ liệu của SQl có xu hướng là hoạt động tốt nhất cho cơ sở dữ liệu đó - sau tất cả những gì họ phải cung cấp cho bạn một lý do để sử dụng cơ sở dữ liệu của họ, phải không?
HLGEM

2
Sửa lỗi: SQL là ngôn ngữ để hoạt động trên các bảng mà chính SQL cung cấp định nghĩa. Tiêu chuẩn SQL tránh các từ 'set' và 'mối quan hệ' và các dẫn xuất của chúng. Các bảng SQL không được đặt.
onedaywhen

1
Chắc chắn sẽ rất tốt nếu có một ngôn ngữ thủ tục sql sẽ hoạt động trên máy chủ oracle và sql.
RayLovless

113

SQL

SQL được sử dụng để giao tiếp với cơ sở dữ liệu, nó là ngôn ngữ tiêu chuẩn cho các hệ thống quản lý cơ sở dữ liệu quan hệ.

Cụ thể, Ngôn ngữ truy vấn có cấu trúc là ngôn ngữ lập trình có mục đích đặc biệt được thiết kế để quản lý dữ liệu được giữ trong hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) hoặc để xử lý luồng trong hệ thống quản lý luồng dữ liệu quan hệ (RDSMS).

Ban đầu dựa trên đại số quan hệ và tính toán quan hệ tuple, SQL bao gồm ngôn ngữ định nghĩa dữ liệu và ngôn ngữ thao tác dữ liệu. Phạm vi của SQL bao gồm chèn dữ liệu, truy vấn, cập nhật và xóa, tạo và sửa đổi lược đồ và kiểm soát truy cập dữ liệu. Mặc dù SQL thường được mô tả là, và ở một mức độ lớn là ngôn ngữ khai báo (4GL), nó cũng bao gồm các yếu tố thủ tục.

PL / SQL

PL / SQL là sự kết hợp của SQL cùng với các tính năng thủ tục của ngôn ngữ lập trình. Nó được phát triển bởi Tập đoàn Oracle

Đặc sản của PL / SQL

  • hoàn toàn di động, ngôn ngữ xử lý giao dịch hiệu suất cao.
  • cung cấp một môi trường lập trình độc lập và hệ điều hành tích hợp sẵn.
  • được gọi trực tiếp từ giao diện SQL * Plus dòng lệnh.
  • Cuộc gọi trực tiếp cũng có thể được thực hiện từ các cuộc gọi ngôn ngữ lập trình bên ngoài đến cơ sở dữ liệu.
  • cú pháp chung dựa trên ngôn ngữ lập trình ADA và Pascal.
  • Ngoài Oracle, nó có sẵn trong cơ sở dữ liệu trong bộ nhớ TimesTen và IBM DB2.

T-SQL

Viết tắt của Giao dịch-SQL , một dạng SQL mở rộng có thêm các biến được khai báo, kiểm soát giao dịch, lỗi và xử lý ngoại lệ và xử lý hàng cho SQL

Ngôn ngữ truy vấn có cấu trúc hoặc SQL là ngôn ngữ lập trình tập trung vào việc quản lý cơ sở dữ liệu quan hệ. SQL có những hạn chế riêng đã thúc đẩy gã khổng lồ phần mềm Microsoft xây dựng trên SQL với các phần mở rộng của riêng chúng để tăng cường chức năng của SQL . Microsoft đã thêm mã vào SQL và gọi nó là Transact-SQL hoặc T-SQL. Hãy nhớ rằng T-SQL là độc quyền và nằm dưới sự kiểm soát của Microsoft trong khi SQL, mặc dù được phát triển bởi IBM, đã là một định dạng mở.

T-SQL thêm một số tính năng không có sẵn trong SQL.

Điều này bao gồm các yếu tố lập trình thủ tục và một biến cục bộ để cung cấp khả năng kiểm soát linh hoạt hơn về cách ứng dụng chảy. Một số hàm cũng đã được thêm vào T-SQL để làm cho nó mạnh hơn; các chức năng cho các hoạt động toán học, hoạt động chuỗi, xử lý ngày và thời gian, và tương tự. Những bổ sung này làm cho T-SQL tuân thủ bài kiểm tra tính đầy đủ của Turing, một bài kiểm tra xác định tính phổ biến của ngôn ngữ điện toán. SQL không hoàn thành Turing và rất hạn chế trong phạm vi những gì nó có thể làm.

Một sự khác biệt đáng kể khác giữa T-SQL và SQL là những thay đổi được thực hiện đối với các lệnh XÓA và CẬP NHẬT đã có sẵn trong SQL. Với T-SQL, cả hai lệnh XÓA và CẬP NHẬT đều cho phép bao gồm mệnh đề TỪ cho phép sử dụng THAM GIA. Điều này đơn giản hóa việc lọc các bản ghi để dễ dàng chọn ra các mục phù hợp với một tiêu chí nhất định không giống như SQL, nơi nó có thể phức tạp hơn một chút.

Lựa chọn giữa T-SQL và SQL là tùy thuộc vào người dùng. Tuy nhiên, sử dụng T-SQL vẫn tốt hơn khi bạn xử lý các cài đặt Microsoft SQL Server. Điều này là do T-SQL cũng đến từ Microsoft và sử dụng cả hai cùng tối đa hóa khả năng tương thích. SQL được ưa thích bởi những người có nhiều phụ trợ.

Tài liệu tham khảo , Wikipedea, Điểm hướng dẫn: www.differenceb between.com


4
IMO hiện đang là câu trả lời tốt nhất (tuy nhiên, câu trả lời và bài đăng trên blog của manoj cũng đáng để đọc).
salcoin

1
Không phải T-SQL đã mua từ Sybase cùng với mã cơ sở dữ liệu mà họ đã mua để tạo phiên bản máy chủ SQL đầu tiên? Ít nhất T-SQL cũng hoạt động trên Sybase vì vậy tôi nghĩ rằng có một số 'mã chung'
phil_w

Trên thực tế, Microsoft và Sybase đã cùng phát triển SQL Server cho OS2. Vì vậy, cả hai công ty đã cùng nhau phát triển T-SQL. Đó là lý do tại sao cả hai cơ sở dữ liệu đều có thể sử dụng T-SQL mặc dù có sự khác biệt đáng kể giữa hai biến thể của T-SQL.
alaniane

44
  • SQLmột ngôn ngữ để nói chuyện với cơ sở dữ liệu. Nó cho phép bạn chọn dữ liệu, thay đổi và tạo các đối tượng cơ sở dữ liệu (như bảng, dạng xem, v.v.), thay đổi cài đặt cơ sở dữ liệu.
  • PL-SQL một ngôn ngữ lập trình thủ tục (với SQL nhúng)
  • T-SQL phần mở rộng (thủ tục) cho SQL được sử dụng bởi SQL Server

Nên là SPL (Thủ tục lưu trữ Lang), PL quá chung chung (nghĩa là C).
samis

32

1. SQL hoặc Ngôn ngữ truy vấn có cấu trúc được IBM phát triển cho sản phẩm "System R" của họ.

Sau này ANSI đã biến nó thành một Tiêu chuẩn mà tất cả các Ngôn ngữ truy vấn đều dựa trên và đã mở rộng điều này để tạo ra các ngôn ngữ truy vấn DataBase của riêng họ. Tiêu chuẩn đầu tiên là SQL-86 và mới nhất là SQL: 2011

2. T-SQL hoặc Transact-SQL được phát triển bởi Sybase và sau đó được đồng sở hữu bởi Microsoft SQL Server.

3. PL / SQL hoặc Ngôn ngữ thủ tục / SQL là Cơ sở dữ liệu Oracle , được gọi là "Phần mềm quan hệ" thời điểm đó.

Tôi đã ghi lại điều này trong bài viết trên blog của mình .


2
Câu trả lời này kỹ lưỡng hơn câu trả lời đã được phê duyệt và bài đăng trên blog là một bài đọc tuyệt vời.
salcoin

7

Ngôn ngữ truy vấn có cấu trúc - SQL: là một tiêu chuẩn ANSI được sử dụng bởi hầu hết các nhà cung cấp của SGBD trên toàn thế giới. Về cơ bản, SQL là ngôn ngữ được sử dụng để xác định và thao tác dữ liệu [DDL và DML].

PL / SQL là ngôn ngữ được tạo bởi vũ trụ Oracle. PL / SQL kết hợp các hướng dẫn thủ tục lập trình và cho phép tạo ra các chương trình hoạt động trực tiếp trên kịch bản cơ sở dữ liệu.

T-SQL là sản phẩm của Microsoft sắp xếp các mẫu SQL, với một số đặc thù. Vì vậy, hãy thoải mái kiểm tra giới hạn của bạn.


1

SQL là một tiêu chuẩn và có nhiều nhà cung cấp cơ sở dữ liệu như Microsoft, Oracle thực hiện tiêu chuẩn này bằng ngôn ngữ độc quyền của riêng họ.

Microsoft sử dụng T-SQL để triển khai tiêu chuẩn SQL để tương tác với dữ liệu trong khi oracle sử dụng PL / SQL.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.