Thủ tục là chương trình con có thể được tạo và lưu trong cơ sở dữ liệu dưới dạng các đối tượng cơ sở dữ liệu. Cũng giống như bạn có thể làm trong các ngôn ngữ khác, bạn cũng có thể tạo và bỏ các thủ tục trong SQL. Trong bài viết này, hãy cùng khám phá các thủ tục trong SQL với cú pháp và ví dụ.
Các chủ đề được thảo luận trong bài viết là:
- Thủ tục trong SQL là gì?
- Cú pháp thủ tục SQL
- Thủ tục mẫu trong SQL
- Ưu điểm của Thủ tục SQL
Thủ tục trong SQL là gì?
Một thủ tục trong SQL (thường được gọi là thủ tục được lưu trữ), là một đơn vị có thể sử dụng lại đóng gói logic nghiệp vụ cụ thể của ứng dụng. Thủ tục SQL là một nhóm các câu lệnh và logic SQL, được biên dịch và lưu trữ cùng nhau để thực hiện một tác vụ cụ thể.
Liệt kê dưới đây là các tính năng chính của thủ tục SQL:
- Dễ triển khai vì chúng sử dụng ngôn ngữ cấp cao, được đánh máy mạnh mẽ rất đơn giản
- Hỗ trợ ba loại tham số, đó là tham số đầu vào, đầu ra và đầu vào-đầu ra.
- Đáng tin cậy hơn các thủ tục bên ngoài tương đương.
- Các thủ tục SQL thúc đẩy khả năng tái sử dụng và khả năng bảo trì.
- Hỗ trợ mô hình xử lý lỗi và điều kiện đơn giản nhưng mạnh mẽ.
- Trả lại giá trị trạng thái cho một quy trình gọi hoặc lô để biểu thị thành công hay thất bại và lý do thất bại.
Bây giờ bạn đã biết thủ tục là gì và tại sao chúng cần thiết, hãy thảo luận về cú pháp và ví dụ của thủ tục trong SQL.
Cú pháp của thủ tục trong SQL
Phần sau minh họa cú pháp cơ bản của việc tạo một thủ tục trong SQL:
CREATE [ OR REPLACE] PROCEDURE procedure_name [ (parameter_name [IN | OUT | IN OUT] type [ ])] {IS | AS } BEGIN [declaration_section] executable_section //SQL statement used in the stored procedure END GO
Thuật ngữ cú pháp
Thông số
Tham số là một biến chứa giá trị của bất kỳ kiểu dữ liệu SQL hợp lệ nào mà qua đó chương trình con có thể trao đổi các giá trị với mã chính. Nói cách khác, các tham số được sử dụng để truyền các giá trị cho thủ tục. Có 3 loại tham số khác nhau, như sau:
- IN :Đây là Tham số mặc định, luôn nhận các giá trị từ chương trình đang gọi. Đây là một biến chỉ đọc bên trong chương trình con và giá trị của nó không thể thay đổi bên trong chương trình con.
- HẾT: Nó được sử dụng để lấy đầu ra từ các chương trình con.
- ĐẦU VÀO: Tham số này được sử dụng để cung cấp đầu vào và lấy đầu ra từ các chương trình con.
Các thuật ngữ khác
- tên-thủ tục chỉ định tên của thủ tục. Nó phải là duy nhất.
- Tùy chọn [HOẶC THAY THẾ] cho phép sửa đổi quy trình hiện có.
- LÀ | Mệnh đề AS, chúng thiết lập ngữ cảnh để thực thi thủ tục được lưu trữ. Sự khác biệt là, từ khóa ‘IS’ được sử dụng khi quy trình được lồng vào một số khối khác và nếu quy trình là độc lập thì ‘AS’ sẽ được sử dụng.
- Code_Block khai báo các câu lệnh thủ tục xử lý tất cả các quá trình trong thủ tục được lưu trữ. Nội dung của code_block phụ thuộc vào các quy tắc và ngôn ngữ thủ tục được sử dụng bởi cơ sở dữ liệu.
Thủ tục trong SQL:Ví dụ
Ví dụ1
Ví dụ sau tạo một thủ tục đơn giản hiển thị thông báo chào mừng trên màn hình khi được thực thi. Sau đó, thủ tục sẽ là:
CREATE OR REPLACE PROCEDURE welcome_msg (para1_name IN VARCHAR2) IS BEGIN dbms_output.put_line (‘Hello World! '|| para1_name); END; /
Thực hiện thủ tục đã lưu trữ. Một thủ tục độc lập có thể được gọi theo hai cách -
- Sử dụng EXECUTE từ khóa
- Gọi tên của thủ tục từ một khối SQL
Quy trình trên có thể được gọi bằng cách sử dụng từ khóa Execute như sau:
EXEC welcome_msg (‘Welcome to Edureka!’);
Đầu ra
Hello World! Welcome to Edureka
Thủ tục được thực hiện và thông báo được in ra dưới dạng “Hello World! Chào mừng đến với Edureka ”.
Ví dụ2
Giả sử bạn có một bảng với thông tin chi tiết về Emplyoee, chẳng hạn như EmployeId, Firstname, Lastname và DepartmentDetails.
Ví dụ này tạo một thủ tục SQL sẽ trả về tên nhân viên khi EmployeId được đưa ra làm tham số đầu vào cho thủ tục được lưu trữ. Sau đó, thủ tục sẽ là:
Create PROCEDURE GetStudentName ( @employeeID INT, --Input parameter , employeID of the employee @employeName VARCHAR(50) OUT --Output parameter, employeeName of employee AS BEGIN SELECT @employeName= Firstname+' '+Lastname FROM Employee_Table WHERE EmployeId=@employeID END
Các bước thực hiện:
- Khai báo @employeName là nvarchar (50)
- EXEC GetStudentName 01, đầu ra @employeName
- chọn @employeName
Quy trình trên khi nhập id nhân viên làm đầu vào trả về tên của nhân viên cụ thể đó. Giả sử nếu chúng ta có một tham số đầu ra thì trước tiên chúng ta cần khai báo biến để thu thập các giá trị đầu ra. Bây giờ chúng ta hãy kiểm tra những ưu điểm của thủ tục trong SQL.
Ưu điểm của thủ tục trong SQL
Mục đích chính của các thủ tục được lưu trữ trong SQL là để ẩn các truy vấn SQL trực tiếp khỏi mã và cải thiện hiệu suất của các hoạt động cơ sở dữ liệu như chọn, cập nhật và xóa dữ liệu. Các ưu điểm khác của thủ tục trong SQL là:
- Giảm lượng thông tin được gửi đến máy chủ cơ sở dữ liệu. Nó có thể trở thành một lợi ích quan trọng hơn khi băng thông của mạng ít hơn.
- Cho phép khả năng tái sử dụng mã
- Nâng cao tính bảo mật vì bạn có thể cấp quyền cho người dùng thực hiện thủ tục Đã lưu trữ thay vì cấp quyền trên các bảng được sử dụng trong thủ tục Đã lưu trữ.
- Hỗ trợ các lệnh gọi thủ tục lồng nhau tới các thủ tục SQL khác hoặc các thủ tục được triển khai bằng các ngôn ngữ khác.
Kết luận, các thủ tục trong SQL (các thủ tục được lưu trữ) không chỉ nâng cao khả năng sử dụng lại mã mà còn tăng hiệu suất của cơ sở dữ liệu. Thế nào? Bằng cách giảm lưu lượng của mạng bằng cách giảm lượng thông tin được gửi qua mạng. Với điều này, chúng ta đã đi đến phần cuối của bài viết này.
Nếu bạn muốn tìm hiểu thêm về MySQL và làm quen với cơ sở dữ liệu quan hệ nguồn mở này, hãy xem Đào tạo chứng chỉ MySQL DBA của chúng tôi đi kèm với đào tạo trực tiếp do người hướng dẫn 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 đạt được thành thạo về chủ đề này.
Bạn có câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của 'Thủ tục trong SQL; và chúng tôi sẽ liên hệ lại với bạn.