Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Giới thiệu về SQL động gốc trong cơ sở dữ liệu Oracle

SQL động gốc

Trước khi bắt đầu học SQL động Native, một nền tảng ngắn là rất quan trọng. Oracle đã tặng một món quà giữa mùa hè vào tháng 5 năm 1994 cho tất cả các nhà phát triển bằng cách giới thiệu khái niệm SQL động trong phiên bản Cơ sở dữ liệu 7.1 (còn gọi là Oracle 7.1). Với điều này, nó cho phép các nhà phát triển viết SQL động thông qua gói “DBMS_SQL”.

Nhưng dần dần thư viện DBMS_SQL bắt đầu mất đi sức hấp dẫn của nó. Do cú pháp "Không quá dễ dàng", "Hiệu suất chậm chạp" và "Loại không được hỗ trợ do người dùng xác định". Tất cả những thiếu sót này đã làm nảy sinh nhu cầu về một thứ khác. Điều này có thể giúp các nhà phát triển viết một đoạn mã được tối ưu hóa tốt mà không gây căng thẳng quá mức cho tâm trí của họ.

Oracle đã mất thời gian, gần năm năm. Cuối cùng, nó đã phát hành một phiên bản cải tiến của Dynamic SQL với sự ra mắt của Oracle Database 8i hay chính xác là Oracle Database phiên bản 8.1.5 vào tháng 2 năm 1999. Do tính chất ổn định của nó, phiên bản cải tiến của Dynamic SQL đã trở thành một phần gốc của PL / Ngôn ngữ SQL và có tên là “Native Dynamic SQL” mà ngày nay nó được biết đến nhiều hơn. Đó là phần giới thiệu ngắn gọn về nguồn gốc của SQL động nguyên bản trong Cơ sở dữ liệu Oracle.

Để hiểu SQL động nguyên bản, trước tiên chúng ta cần hiểu SQL tĩnh trong Cơ sở dữ liệu Oracle là gì?

SQL tĩnh là gì?

Như tên cho thấy bất kỳ câu lệnh SQL nào không thay đổi trong thời gian chạy được gọi là câu lệnh SQL tĩnh.

Ưu điểm của câu lệnh SQL tĩnh là chúng ta đã biết liệu tất cả các đối tượng phụ thuộc mà chúng ta đang viết câu lệnh có hiện diện hay không. Một ưu điểm khác của câu lệnh SQL tĩnh là chúng tôi mã hóa chúng vào ứng dụng của mình. Do đó, chúng tôi có thể điều chỉnh chúng để có hiệu suất tối ưu.

Bây giờ chúng ta đã tìm hiểu SQL tĩnh là gì, hãy xem SQL động là gì?

SQL động nguyên bản là gì?

Một lần nữa như tên cho thấy, bất kỳ câu lệnh SQL nào được tạo trong thời gian chạy được gọi là SQL động . Những tuyên bố này được xây dựng một cách nhanh chóng. Do đó chúng không thể được mã hóa cứng vào ứng dụng. Điều này lại làm tăng tính linh hoạt của chúng.

Mặt khác, SQL tĩnh cho phép bạn thực thi chỉ các câu lệnh DML bên trong khối PL / SQL của bạn. Mặt khác, SQL động cho phép bạn thực thi các câu lệnh DDL và cả bên trong khối PL / SQL của bạn. Do đó, bằng cách sử dụng Dynamic SQL, bạn có thể tạo một bảng hoặc bỏ một chỉ mục hoặc cắt bớt bảng của mình ngay bên trong khối PL / SQL của bạn. Đây là một lợi thế của SQL động gốc so với SQL tĩnh.

Native Dynamic PL / SQL là gì?

Tương tự như SQL động, quá trình xây dựng mã PL / SQL trong thời gian chạy được gọi là PL / SQL động.

Bây giờ chúng ta hãy xem xét các lợi ích của SQL động nguyên bản so với gói DBMS_SQL trong Cơ sở dữ liệu Oracle.

Lợi ích của SQL động gốc

  • Mã dễ sử dụng: So với gói DBMS_SQL, SQL động nguyên bản dễ sử dụng hơn nhiều. Điều này chủ yếu là do nó được kết hợp trong chính SQL. Nó tương đương với việc sử dụng SQL tĩnh trong mã PL / SQL. Ngoài ra, mã SQL động nguyên bản nhỏ gọn và dễ đọc hơn gói DBMS_SQL. Sau này yêu cầu số lượng lớn mã do các quy trình tuần tự nghiêm ngặt. Nó làm cho nó phức tạp hơn.
  • Cải thiện Hiệu suất của Mã: Có một hỗ trợ tích hợp cho SQL động nguyên bản trong trình thông dịch PL / SQL. Do đó, các chương trình sử dụng nó hiệu quả hơn những chương trình sử dụng gói DBMS_SQL. Về cơ bản, SQL động nguyên bản kết hợp các bước liên quan đến chuẩn bị, ràng buộc và thực thi vào một hoạt động. Điều này làm giảm chi phí gọi thủ tục và sao chép dữ liệu, do đó, cải thiện hiệu suất.
  • Hỗ trợ cho các loại do người dùng xác định: Không giống như gói DBMS_SQL, SQL động nguyên bản hỗ trợ tất cả các loại kiểu do người dùng xác định. Ví dụ:các đối tượng do người dùng xác định, REF và bộ sưu tập.
  • Hỗ trợ Tìm nạp vào Hồ sơ: Các hàng là kết quả của một truy vấn có thể được tìm nạp trực tiếp vào các bản ghi PL / SQL bằng cách sử dụng SQL động nguyên bản. Điều này là không thể với gói DBMS_SQL.

Các chức năng của SQL động trong Cơ sở dữ liệu Oracle là gì?

  1. Thứ nhất, DDL &DML động với việc sử dụng bất kỳ biến liên kết nào.
  2. Thứ hai, DQL động và
  3. Thứ ba, DML động sử dụng danh sách các biến ràng buộc đã biết

Đây là ba chức năng mà Dynamic SQL thêm vào lập trình PL / SQL của bạn.

Vậy làm cách nào để sử dụng SQL động trong Cơ sở dữ liệu Oracle?

Hai phương pháp phổ biến nhất của việc sử dụng SQL động và PL / SQL trong Cơ sở dữ liệu Oracle là:

  1. Thực hiện câu lệnh ngay lập tức và
  2. Khối Open-For, Fetch &Close.

Thực thi Câu lệnh ngay lập tức được sử dụng khi truy vấn trả về dữ liệu hàng đơn. Trong trường hợp truy vấn trả về dữ liệu nhiều hàng thì bạn có thể nhờ đến sự trợ giúp của Open-For, Fetch và close block. Chúng ta sẽ tìm hiểu chi tiết về Thực thi ngay lập tức và Mở cho, tìm nạp và đóng khối trong các hướng dẫn sắp tới.

Có bất kỳ cách nào khác để sử dụng SQL động trong Cơ sở dữ liệu Oracle không?

Ngoài các phương pháp được sử dụng phổ biến nhất đã đề cập ở trên, các cách khác để sử dụng SQL động hoặc PL / SQL là

  • Với Tìm nạp hàng loạt
  • Thứ hai với Thực thi hàng loạt ngay lập tức
  • Cùng với FORALL hàng loạt và
  • Cuối cùng với tuyên bố Thu thập hàng loạt vào trong

Chúng ta đã học tất cả các lệnh và câu lệnh trên trong loạt bài trước về xử lý dữ liệu hàng loạt.

Nếu bạn thích học qua video hướng dẫn thì hãy tiếp tục xem.

Đó là phần giới thiệu chi tiết về SQL động nguyên bản trong Cơ sở dữ liệu Oracle. Hy vọng bạn thích đọc. Đảm bảo Chia sẻ liên kết của blog này với bạn bè của bạn trên phương tiện truyền thông xã hội của bạn. Ngoài ra, hãy nhớ đăng ký kênh YouTube để theo dõi loạt bài này và tìm hiểu những điều mới mẻ và thú vị.

Cảm ơn và chúc một ngày tốt lành!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa biến ràng buộc và biến thay thế (mà tôi nhập bằng cách sử dụng &&) là gì?

  2. sự khác biệt giữa mệnh đề ON và mệnh đề sử dụng trong sql

  3. Đệ quy trên truy vấn cơ sở dữ liệu để nhận kết quả phân cấp bằng Hibernate - Java

  4. Tạo người dùng với tất cả các đặc quyền trong Oracle

  5. Làm cách nào để kiểm tra xem một cột có tồn tại hay không trước khi thêm nó vào bảng hiện có trong PL / SQL?