Hướng dẫn PL / SQL: Mọi thứ bạn cần biết về PL / SQL

Hướng dẫn PL / SQL bao gồm tất cả các giải thích chi tiết về tất cả các khái niệm cần thiết cần thiết để thành thạo lập trình PL / SQL với các ví dụ khác nhau

PL / SQL là một ngôn ngữ thủ tục khắc phục được những thiếu sót mà Structured Query Language . Nó là một phần mở rộng của SQL và chúng ta thậm chí có thể sử dụng các truy vấn SQL mà không gặp bất kỳ rắc rối nào trong bất kỳ ứng dụng hoặc chương trình PL / SQL nào. Trong hướng dẫn PL / SQL này, chúng ta sẽ đi qua các khái niệm cơ bản của PL / SQL một cách chi tiết. Các chủ đề sau đây được đề cập trong bài viết này.

PL / SQL là gì?

Nó là viết tắt của phần mở rộng ngôn ngữ thủ tục cho Structured Query Language . Oracle đã tạo PL / SQL mở rộng một số hạn chế của SQL để cung cấp giải pháp toàn diện hơn để xây dựng các ứng dụng quan trọng chạy trên oracle .





hướng dẫn logo-pl / sql - edureka

Đặc trưng

  • PL / SQL cung cấp chức năng của một ngôn ngữ thủ tục như ra quyết định, lặp lại, v.v.

  • Sử dụng một lệnh duy nhất, PL / SQL có thể thực hiện một số truy vấn.



  • Chúng tôi cũng có thể sử dụng lại các đơn vị PL / SQL như hàm, trình kích hoạt, thủ tục, v.v. được lưu trữ trong cơ sở dữ liệu sau khi tạo.

  • PL / SQL cũng có một khối xử lý ngoại lệ xử lý các ngoại lệ trong PL / SQL.

  • Kiểm tra lỗi mở rộng cũng có thể sử dụng PL / SQL



  • Các ứng dụng được viết bằng PL / SQL có thể di động đến phần cứng và hệ điều hành khác với điều kiện oracle phải hoạt động.

PL / SQL so với SQL

SQL PL / SQL
SQL là một truy vấn duy nhất được sử dụng để thực hiện các hoạt động DDL và DMLPL / SQL là một khối mã được sử dụng để xác định toàn bộ chương trình hoặc thủ tục / chức năng, v.v.
Nó không thực sự xác định mọi thứ cần phải được thực hiện như thế nào, mà là xác định những gì cần phải làmPL / SQL xác định cách mọi thứ cần được thực hiện
Nó thực hiện một câu lệnh duy nhấtNó thực hiện một khối câu lệnh cùng một lúc.
SQL chủ yếu được sử dụng để thao tác dữ liệuMặt khác, PL / SQL được sử dụng để tạo các ứng dụng
Nó không thể chứa mã PL / SQLVì nó là một phần mở rộng SQL, nó có thể chứa mã SQL trong đó

Cấu trúc khối trong PL / SQL

PL / SQL thường tổ chức mã thành các khối. Khối mã không có tên được gọi là khối ẩn danh. Nó được gọi là khối ẩn danh vì nó không được lưu trong cơ sở dữ liệu oracle. Chúng ta hãy xem một khối ẩn danh trong PL / SQL.

[DECLARE] câu lệnh khai báo [BEGIN] câu lệnh thực thi [EXCEPTION] câu lệnh ngoại lệ END /

Nhìn vào sơ đồ trên, chúng ta có thể thấy rằng cấu trúc khối được chia thành bốn phần, đó là phần khai báo, phần bắt đầu, phần ngoại lệ và phần kết thúc. Hãy để chúng tôi cố gắng hiểu cách cấu trúc khối hoạt động trong PL / SQL. Trong số tất cả các phần này, phần thực hiện là bắt buộc và phần còn lại là tùy chọn.

  • KHAI BÁO từ khóa được sử dụng cho phần khai báo được sử dụng để khai báo các kiểu dữ liệu và cấu trúc như biến, hàm, v.v.

  • BẮT ĐẦU từ khóa được sử dụng cho phần thực thi. Nó là bắt buộc và chứa tất cả các câu lệnh cần được thực thi. Khối này là nơi định nghĩa logic nghiệp vụ, chúng ta có thể sử dụng cả câu lệnh thủ tục hoặc SQL trong khối này.

  • Các NGOẠI LỆ từ khóa được sử dụng cho phần ngoại lệ. Nó chứa tất cả các câu lệnh ngoại lệ.

  • KẾT THÚC từ khóa đánh dấu phần cuối của khối và dấu gạch chéo ngược ‘/’ cho biết công cụ mà bạn đang sử dụng (Oracle Database Tool) để thực thi khối PL / SQL.

Đây là một ví dụ đơn giản để chỉ ra cách chúng ta có thể sử dụng mã PL / SQL.

BEGIN NULL END /

Bây giờ chúng ta đã biết cấu trúc khối hoạt động như thế nào trong PL / SQL, chúng ta hãy hiểu các khía cạnh khác nhau của PL / SQL như khai báo, đặt tên và gán giá trị cho các biến.

Biến PL / SQL

Biến trong PL / SQL về cơ bản là một tên thay đổi hoặc vị trí lưu trữ tạm thời hỗ trợ một kiểu dữ liệu cụ thể. Chúng ta hãy xem cách chúng ta có thể sử dụng các biến trong chương trình PL / SQL.

Quy tắc đặt tên biến

PL / SQL tuân theo các quy tắc đặt tên biến sau đây.

  • Biến không được nhiều hơn 31 ký tự

  • Tên của biến phải bắt đầu bằng ký tự ASCII. Vì PL / SQL có phân biệt chữ hoa chữ thường nên một ký tự hoa và một ký tự viết thường sẽ là các biến khác nhau.

  • Sau ký tự đầu tiên, phải có một ký tự đặc biệt ($, _) hoặc bất kỳ số nào.

Quy ước đặt tên

Sử dụng các quy ước đặt tên sau được liệt kê bên dưới để sử dụng các biến.

Tiếp đầu ngữ Loại dữ liệu
v_VARCHAR2
n_CON SỐ
t_BÀN
r_HÀNG
d_NGÀY
b_BOOLEAN

Tờ khai

Hãy cố gắng hiểu cách khai báo biến được thực hiện trong PL / SQL

Phần khai báo bao gồm tên biến theo sau là kiểu dữ liệu và được phân tách bằng dấu chấm phẩy. Sau đây là một ví dụ để chỉ ra cách bạn có thể khai báo một biến trong PL / SQL.

DECLARE v_name VARCHAR (25) n_age NUMBER (3) BẮT ĐẦU KẾT THÚC

Bạn cũng có thể thêm độ dài của kiểu dữ liệu như chúng ta đã làm trong ví dụ trên.

Mỏ neo

Về cơ bản, liên kết đề cập đến việc sử dụng từ khóa% TYPE để khai báo một biến có kiểu dữ liệu được liên kết với kiểu dữ liệu của cột của một cột cụ thể trong bảng.

Hãy xem một ví dụ để hiểu điều này. Giả sử chúng ta có một bảng EMPLOYEES, chúng ta có thể sử dụng các neo theo cách sau.

DECLARE v_name EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /

Chuyển nhượng

Việc gán biến khá dễ dàng, chúng ta có thể sử dụng toán tử gán để gán giá trị cho một biến. Ví dụ sau đây cho thấy cách chúng ta có thể gán giá trị cho một biến.

DECLARE v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /

Khởi tạo

Chúng ta cũng có thể khởi tạo một giá trị cho biến trong phần khai báo. Ví dụ sau đây cho thấy cách chúng ta có thể khởi tạo giá trị cho một biến.

DECLARE v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /

Bây giờ chúng ta biết cách chúng ta có thể làm việc với các biến, chúng ta hãy cố gắng hiểu cách chúng ta sẽ sử dụng các hàm trong PL / SQL.

Hàm trong PL / SQL

Một hàm trong PL / SQL về cơ bản là một khối được đặt tên trả về một giá trị. Nó còn được gọi là chương trình con hoặc chương trình con, cú pháp sau đây cho thấy cách chúng ta có thể sử dụng các hàm trong PL / SQL.

TẠO [HOẶC THAY THẾ] FUNCTION tên_hàm [(tham số_1 [IN] [OUT] kiểu_dữ liệu, tham số_2 [IN] [OUT] kiểu_dữ liệu, tham số_N [IN] [OUT] kiểu_dữ_liệu] RETURN return_data_type LÀ BEGIN câu lệnh trả về return_data_type EXCEPTION END /

Trước hết, bạn phải chỉ định tên hàm sau từ khóa. Tên hàm phải bắt đầu bằng động từ. Một hàm có thể không có, một hoặc nhiều tham số mà chúng tôi chỉ định trong tham số. Chúng ta phải chỉ định kiểu dữ liệu của từng tham số một cách rõ ràng, và sau đó đi đến chế độ có thể là một trong hai điều sau.

  • TRONG - Tham số IN là tham số chỉ đọc.

  • NGOÀI - Nó là một tham số chỉ ghi

  • VÀO - Tham số IN OUT vừa là tham số đọc-ghi.

Đây là một ví dụ đơn giản để chỉ ra cách chúng ta sử dụng các hàm trong PL / SQL.

TẠO HOẶC THAY THẾ CHỨC NĂNG try_parse (iv_number TRONG VARCHAR2) SỐ TRẢ LẠI ĐƯỢC BẮT ĐẦU QUAY LẠI thành_number (iv_number) NGOẠI TRỪ KHI những người khác QUAY LẠI NULL KẾT THÚC

Gọi một hàm

Chúng ta hãy thử gọi hàm mà chúng ta đã thực hiện trong một khối ẩn danh trong ví dụ sau.

ĐẶT SERVEROUTPUT TRÊN KÍCH THƯỚC 1000000 KHAI BÁO n_x số n_y số n_z số BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x) DBMS_OUTPUT_LINE (n_x) DBMS_OUT n_y) DBMS_OUTPUT.PUT_LINE (n_z) HẾT /

Chúng ta cũng có thể gọi hàm trong một câu lệnh SELECT. Bây giờ chúng ta đã biết cách sử dụng các hàm trong PL / SQL, hãy thử hiểu cách chúng ta làm việc với các thủ tục trong PL / SQL.

Thủ tục PL / SQL

Một thủ tục về cơ bản là một khối thực hiện một nhiệm vụ cụ thể. Sử dụng một thủ tục, chúng ta có thể bao bọc hoặc đóng gói logic nghiệp vụ phức tạp và sử dụng lại chúng trong cả lớp ứng dụng và cơ sở dữ liệu.

Chúng ta hãy xem một ví dụ đơn giản để hiểu cách hoạt động của thủ tục trong PL / SQL

TẠO HOẶC THAY THẾ THỦ TỤC điều chỉnh_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) LÀ BẮT ĐẦU - cập nhật lương của nhân viên CẬP NHẬT nhân viên SET lương = lương + lương * in_percent / 100 WHERE worker_id = in_employee_id END

Trong ví dụ trên, chúng ta có hai tham số, thủ tục điều chỉnh lương theo tỷ lệ phần trăm cho trước và từ khóa UPDATE cập nhật giá trị trong thông tin lương.

Tiêu đề thủ tục

Phần trước từ khóa IS được gọi là tiêu đề thủ tục. Sau đây là một vài gợi ý mà người ta phải quen thuộc khi làm việc với các thủ tục.

  • lược đồ - Nó là tên tùy chọn của lược đồ mà thủ tục thuộc về.

  • Tên - Tên của thủ tục phải bắt đầu bằng một động từ.

  • thông số - Đây là danh sách các tham số tùy chọn.

  • AUTHID - Nó xác định liệu thủ tục sẽ thực thi với đặc quyền của người dùng hiện tại hay chủ sở hữu ban đầu của thủ tục.

Cơ quan thủ tục

Mọi thứ xuất hiện sau từ khóa IS được gọi là thân thủ tục. Chúng ta có các câu lệnh khai báo, ngoại lệ và thực thi trong phần thân thủ tục. Không giống như hàm, từ khóa RETURN trong một thủ tục được sử dụng để tạm dừng quá trình thực thi và trả lại quyền điều khiển cho người gọi.

Gọi một thủ tục

Hãy để chúng tôi xem cách chúng tôi có thể gọi một thủ tục trong PL / SQL.

EXEC procedure_name (param1, param2 & hellipparamN)

Chúng ta có thể gọi các thủ tục không có tham số chỉ bằng cách sử dụng từ khóa EXEC và tên thủ tục. Bây giờ chúng ta biết cách chúng ta có thể làm việc với các thủ tục, chúng ta hãy thử hiểu cách các khối lồng nhau được sử dụng trong PL / SQL.

Khối lồng nhau

Một khối lồng nhau không là gì ngoài sự kết hợp của một hoặc nhiều khối PL / SQL để kiểm soát tốt hơn việc thực thi và xử lý đặc biệt cho chương trình.

Đây là một ví dụ đơn giản về một khối lồng nhau.

ĐẶT SERVEROUTPUT TRÊN KÍCH THƯỚC 1000000 NHÂN VIÊN. của nhân viên '|| n_emp_id ||' là '|| v_name) NGOẠI LỆ KHI no_data_found THÌ DBMS_OUTPUT.PUT_LINE (' Nhân viên '|| n_emp_id ||' không tìm thấy ') END END /

Khối PL / SQL bên ngoài trong ví dụ trên được gọi là khối cha hoặc khối bao quanh, khối bên trong, mặt khác, được gọi là khối con hoặc khối được bao bọc.

Không phải là một ý tưởng hay khi sử dụng các biến có cùng tên trong cả hai khối vì trong quá trình thực thi, biến khối con sẽ ghi đè lên biến khối mẹ. Điều này xảy ra vì PL / SQL ưu tiên đầu tiên cho biến bên trong khối của chính nó.

Nhãn khối

Chúng tôi có thể khắc phục vấn đề này với nhãn khối giúp chúng tôi tạo tham chiếu đến các biến bên trong khối bằng cách sử dụng nhãn.

Đây là một ví dụ đơn giản để chỉ ra cách chúng ta có thể sử dụng nhãn khối.

 <>DECLARE ... BEGIN ... END

Sử dụng nhãn khối giúp cải thiện khả năng đọc của mã, kiểm soát tốt hơn và tạo tham chiếu đến các khối. Bây giờ chúng ta đã biết cách chúng ta có thể làm việc với các khối lồng nhau, chúng ta hãy thử tìm hiểu cách thức hoạt động của IF STATEMENT trong PL / SQL.

Câu lệnh IF

PL / SQL có ba THỐNG KÊ NẾU

  • NẾU-THEN - Đây là câu lệnh IF đơn giản nhất nếu điều kiện đúng thì các câu lệnh sẽ thực hiện, nếu điều kiện sai thì nó không thực hiện được gì.

  • IF-THEN-ELSE - Trong điều này, mệnh đề ELSE được thêm vào cho một chuỗi các câu lệnh thay thế.

  • IF-THEN-ELSEIF - Nó cho phép chúng tôi thực hiện nhiều điều kiện thử nghiệm theo một trình tự.

Cú pháp IF-THEN

IF điều kiện THEN serial_of_statements END IF

Cú pháp IF-THEN-ELSE

IF điều kiện THEN sequence_of_if_statements ELSE serial_of_else_statements HẾT IF

Cú pháp IF-THEN-ELSEIF

IF điều kiện1 THEN trình tự_của_ câu hỏi

Bây giờ chúng ta đã hoàn thành với TRẠNG THÁI NẾU, chúng ta hãy xem xét câu lệnh CASE trong PL / SQL.

Tuyên bố CASE

Về cơ bản, câu lệnh CASE giúp thực hiện một chuỗi câu lệnh dựa trên một bộ chọn. Trong trường hợp này, một bộ chọn có thể là bất cứ thứ gì, nó có thể là một biến, hàm hoặc một biểu thức đơn giản. Đây là một ví dụ đơn giản để hiển thị cú pháp của câu lệnh CASE trong PL / SQL.

[<>] TRƯỜNG HỢP [TRUE | selector] WHEN biểu thức1 THEN trình tự_của_ câu hỏi1 KHI biểu thức2 THEN trình tự_của_câu2 ... KHI biểu thứcN THEN trình tự_câu_lệnhN [ELSE chuỗi_ngữ_ngữ

Trong cú pháp trên, sau từ khóa CASE sẽ xuất hiện bộ chọn. PL / SQL sẽ đánh giá bộ chọn chỉ một lần để xác định câu lệnh nào cần được thực thi.

Tiếp theo là bộ chọn là từ khóa WHEN. Nếu biểu thức thỏa mãn bộ chọn thì câu lệnh tương ứng sau từ khóa THEN sẽ được thực thi.

Bây giờ chúng ta đã biết cách sử dụng câu lệnh CASE, chúng ta hãy cố gắng hiểu cách chúng ta sẽ sử dụng các câu lệnh lặp trong PL / SQL.

Tuyên bố vòng lặp

Câu lệnh lặp trong PL / SQL là một câu lệnh lặp cho phép bạn thực hiện một chuỗi câu lệnh nhiều lần. Đây là một ví dụ đơn giản để hiển thị cú pháp của một câu lệnh lặp trong PL / SQL.

LOOP sequence_of_statements END LOOP

Phải có ít nhất một câu lệnh thực thi ở giữa từ khóa LOOP và END LOOP.

Vòng lặp với Tuyên bố EXIT

Câu lệnh EXIT và EXIT when cho phép bạn thoát khỏi vòng lặp. Câu lệnh EXIT WHEN kết thúc vòng lặp có điều kiện trong khi EXIT kết thúc việc thực thi một cách vô điều kiện.

LOOP ... EXIT KHI tình trạng kết thúc LOOP

Nhãn vòng lặp

Nhãn vòng lặp được sử dụng để xác định tên của biến bộ đếm vòng lặp khi được sử dụng trong một vòng lặp lồng nhau. Sau đây là cú pháp của nhãn vòng lặp.

 <>Nhãn LOOP sequence_of_statements END LOOP

Bây giờ chúng ta đã biết cách chúng ta có thể sử dụng các câu lệnh vòng lặp, chúng ta hãy xem qua các câu lệnh vòng lặp while để hiểu rõ hơn.

Tuyên bố Vòng lặp Trong khi

Chúng ta có thể sử dụng câu lệnh lặp WHILE khi số lần thực thi không được xác định cho đến khi quá trình thực thi bắt đầu. Cú pháp sau được sử dụng cho câu lệnh lặp WHILE trong PL / SQL.

WHILE điều kiện LOOP chuỗi_của_statements END LOOP

Điều kiện trong cú pháp là giá trị boolean hoặc biểu thức được đánh giá là TRUE, FALSE hoặc NULL. Nếu điều kiện là TRUE, các câu lệnh sẽ được thực hiện, nếu nó là FALSE, việc thực thi sẽ dừng lại và điều khiển chuyển sang câu lệnh thực thi tiếp theo.

Bây giờ chúng ta đã biết cách sử dụng câu lệnh vòng lặp WHILE, hãy cùng xem qua câu lệnh vòng lặp FOR.

Đối với Tuyên bố Vòng lặp

Câu lệnh vòng lặp FOR trong PL / SQL cho phép chúng ta thực hiện một chuỗi các câu lệnh trong một số lần xác định. Sau đây là cú pháp để sử dụng câu lệnh vòng lặp FOR trong PL / SQL

FOR loop_counter IN [REVERSE] low_bound .. high_bound LOOP chuỗi_của_statements END LOOP

PL / SQL tự động tạo loop_counter biến cục bộ với kiểu dữ liệu INTEGER cho vòng lặp để bạn không phải khai báo nó một cách rõ ràng. Giới hạn dưới..higherbound là phạm vi mà vòng lặp lặp lại. Ngoài ra, bạn phải có ít nhất một câu lệnh thực thi giữa các từ khóa LOOP và END LOOP.

Bây giờ chúng ta đã biết cách sử dụng các câu lệnh lặp trong PL / SQL, chúng ta hãy xem cách xử lý đặc biệt trong PL / SQL.

Xử lý đặc biệt

Trong PL / SQL, bất kỳ loại lỗi nào cũng được coi là một ngoại lệ. Một ngoại lệ có thể được coi là một điều kiện đặc biệt có thể thay đổi hoặc thay đổi luồng thực thi. Trong PL / SQL, có hai loại ngoại lệ.

  • Hệ thống ngoại lệ - Nó được nâng lên bởi PL / SQL run-time khi nó phát hiện ra lỗi.

  • Ngoại lệ do người lập trình xác định - Các ngoại lệ này được lập trình viên xác định trong một ứng dụng cụ thể.

Xác định một ngoại lệ

Một ngoại lệ trong PL / SQL phải được khai báo trước khi nó có thể được đưa ra. Chúng ta có thể xác định ngoại lệ bằng từ khóa EXCEPTION giống như chúng ta đã làm trong ví dụ bên dưới.

EXCEPTION_NAME EXCEPTION

Để nêu ra một ngoại lệ, chúng tôi sử dụng từ khóa RAISE.

RAISE EXCEPTION_NAME

Vì vậy, đó là tất cả về PL / SQL, tôi hy vọng bài viết này sẽ giúp bạn bổ sung giá trị kiến ​​thức của bạn. Để biết thêm thông tin về SQL hoặc Cơ sở dữ liệu, bạn có thể tham khảo danh sách đọc toàn diện của chúng tôi tại đây: .

lỗi chính là gì

Nếu bạn muốn được đào tạo có cấu trúc về MySQL, hãy xem đi kèm với đào tạo trực tiếp do người hướng dẫn và trải nghiệm dự án thực tế. Khóa đào tạo này sẽ giúp bạn hiểu sâu về MySQL và giúp bạn thành thạo chủ đề này.

Có một câu hỏi cho chúng tôi? Hãy đề cập đến nó trong phần bình luận của ” Hướng dẫn PL / SQL ”Và tôi sẽ liên lạc lại với bạn.