Máy tínhCơ sở dữ liệu

SQL được lưu trữ thủ tục: tạo và sử dụng

thủ tục lưu trữ SQL là thực thi mô-đun phần mềm có thể được lưu trữ trong cơ sở dữ liệu trong các hình thức của các đối tượng khác nhau. Nói cách khác, nó là một đối tượng có chứa SQL tuyên bố. Các thủ tục lưu trữ có thể được thực hiện trong ứng dụng client để có được một hiệu suất tốt. Bên cạnh đó, cơ sở vật chất như vậy thường được gọi từ các kịch bản khác hoặc thậm chí từ bất kỳ phần khác.

sự giới thiệu

Nhiều người tin rằng họ cũng tương tự như thủ tục của nhiều ngôn ngữ lập trình cấp cao (tương ứng, ngoại trừ MS SQL). Có lẽ điều này là đúng. Họ có các thông số tương tự, họ có thể đưa ra một giá trị tương tự. Hơn nữa, trong một số trường hợp, họ tiếp xúc. Ví dụ, chúng được kết hợp với cơ sở dữ liệu của DDL và các dữ liệu DML, cũng như chức năng sử dụng (tên mã - UDF).

thủ tục lưu trữ SQL thực sự có một loạt các lợi thế mà phân biệt chúng trong quá trình đó. An toàn, năng suất lập trình biến - tất cả điều này thu hút người dùng làm việc với cơ sở dữ liệu, ngày càng nhiều. Đỉnh cao của sự nổi tiếng đến thủ tục trong những năm 2005-2010, khi tôi nhận được chương trình từ "Microsoft" dưới cái tên «SQL Server Management Studio». Với sự giúp đỡ của mình, làm việc với cơ sở dữ liệu đã trở nên dễ dàng hơn nhiều, thực tế hơn và thuận tiện hơn. Năm này qua năm khác, điều này có phương pháp truyền thông tin trở nên phổ biến trong môi trường lập trình. Hôm nay, MS SQL Server là chương trình hoàn toàn bình thường, mà cho người dùng để "giao tiếp" với cơ sở dữ liệu, đứng ngang hàng với "Excel".

Khi bạn gọi thủ tục, người ta ngay lập tức xử lý bởi máy chủ mà không cần quá trình không cần thiết và người dùng can thiệp. Sau đó bạn có thể thực hiện bất kỳ hành động với các thông tin: xóa, thực hiện, thay đổi. Trong tất cả điều này là trong DDL-nhà điều hành, người đơn thương độc mã thực hiện hành động phức tạp trên các đối tượng. Và nó tất cả xảy ra rất nhanh chóng, và máy chủ không thực sự nạp. Đây tốc độ và năng suất cho phép bạn nhanh chóng chuyển một lượng lớn thông tin từ người dùng đến máy chủ và ngược lại.

Để thực hiện công việc này với các thông tin, có một số công nghệ ngôn ngữ lập trình. Chúng bao gồm, ví dụ, PL / SQL từ hệ thống quản lý cơ sở dữ liệu Oracle, psql trong Interbase và Firebird hệ thống, cũng như cổ điển "maykrosoftovskih» Transact-SQL. Tất cả đều được thiết kế để tạo và chạy các thủ tục lưu trữ, cho phép bạn sử dụng các thuật toán của riêng bạn trong các căn cứ xử lý lớn. Nó là cần thiết và đảm bảo rằng những người thực hiện quản lý các thông tin đó, có thể bảo vệ tất cả các đối tượng từ các bên thứ ba không được phép và, do đó, việc tạo ra, sửa đổi hoặc xóa dữ liệu nhất định.

năng suất

Những đối tượng cơ sở dữ liệu có thể được lập trình theo những cách khác nhau. Điều này cho phép người dùng lựa chọn loại quá trình đó sẽ là thích hợp nhất, giúp tiết kiệm thời gian và năng lượng. Bên cạnh đó, các thủ tục riêng của mình được xử lý, như vậy tránh được thời gian khổng lồ chi cho giao tiếp giữa máy chủ và người sử dụng. Các mô-đun có thể được lập trình lại và thay đổi đi đúng hướng trong hoàn toàn bất cứ lúc nào. Đặc biệt đáng chú ý là tốc độ mà sự ra mắt của thủ tục lưu trữ SQL xảy ra: quá trình này là khác nhanh hơn tương tự như nó, làm cho nó thuận tiện và linh hoạt.

sự an toàn

Đây là loại xử lý thông tin khác từ các quá trình tương tự ở chỗ nó cung cấp bảo mật nâng cao. Đây được đảm bảo bởi một thực tế rằng những người dùng khác từ thủ tục truy cập có thể được loại bỏ hoàn toàn. Điều này sẽ cho phép các quản trị viên để thực hiện các hoạt động với họ một cách độc lập, mà không sợ bị chặn hoặc truy cập trái phép vào cơ sở dữ liệu.

truyền dữ liệu

Truyền thông giữa một thủ tục lưu trữ SQL và các ứng dụng của khách hàng là sử dụng các thông số và giá trị trả lại. Sau đó là không cần thiết để truyền dữ liệu đến một thủ tục lưu trữ, nhưng thông tin (chủ yếu là theo yêu cầu của người sử dụng), và xử lý cho SQL. thủ tục một lần lưu đã hoàn thành công việc của mình, nó sẽ gửi các gói dữ liệu trở lại (nhưng, một lần nữa, nếu muốn) cho các ứng dụng gọi bằng nhiều phương pháp mà có thể được thực hiện như một lời kêu gọi một thủ tục lưu trữ SQL và trở lại, ví dụ:

- truyền dữ liệu qua kiểu tham số đầu ra;

- truyền dữ liệu thông qua câu lệnh return;

- Truyền dữ liệu thông qua lựa chọn tàu sân bay.

Và bây giờ nhìn vào cách xử lý này có vẻ bên nhau.

1. Tạo EXEC-lưu trữ trong các thủ tục SQL

Bạn có thể tạo một thủ tục trong MS SQL (Managment Studio). Sau khi thủ tục được tạo ra, nó được liệt kê trên một nút cơ sở dữ liệu có thể lập trình, trong đó các thủ tục được thực hiện bởi các nhà điều hành của tạo vật. Để thực hiện các thủ tục lưu trữ SQL sử dụng EXEC-process có chứa tên đối tượng.

Khi tạo tên đến thủ tục đầu tiên, và sau đó thực hiện một hoặc nhiều tham số được gán cho ông. Các thông số có thể tùy chọn. Sau khi tham số (s), tức là cơ thể của thủ tục, được viết, nó là cần thiết để thực hiện một số hoạt động cần thiết.

Thực tế là cơ thể có thể có các biến địa phương, nằm trong nó, và các biến này là địa phương và liên quan đến các thủ tục. Nói cách khác, họ có thể được coi là chỉ trong phạm vi trị liệu toàn thân Microsoft SQL Server. thủ tục được lưu trữ trong trường hợp này được coi là địa phương.

Vì vậy, để tạo ra một quá trình, chúng ta cần một tên thủ tục và ít nhất một tham số như một cơ quan thủ tục. Xin lưu ý rằng một lựa chọn tuyệt vời trong trường hợp này là việc tạo ra và thực hiện các thủ tục với một tên lược đồ trong phân loại.

Thân thủ tục có thể có bất kỳ loại nhà khai thác SQL, ví dụ như việc tạo một bảng, chèn một hoặc nhiều hàng của bảng, thiết lập các loại cơ sở dữ liệu và nhân vật, và vân vân. Tuy nhiên, cơ thể thủ tục hạn chế một số hoạt động trong đó. Một số hạn chế quan trọng nhất được liệt kê dưới đây:

- cơ thể không tạo ra bất kỳ thủ tục lưu trữ khác;

- cơ thể không phải tạo ra một ấn tượng sai lầm về đối tượng;

- cơ thể không tạo ra bất kỳ gây nên.

2. Thiết lập các biến trong cơ thể của thủ tục

Bạn có thể làm cho các biến địa phương để các thủ tục của cơ thể, và sau đó họ sẽ có trong một cơ thể phẫu thuật. Thực tiễn tốt là để tạo ra một biến vào đầu của cơ thể thủ tục lưu trữ. Nhưng bạn cũng có thể thiết lập các biến bất cứ nơi nào trong cơ thể của đối tượng.

Đôi khi bạn có thể nhận thấy rằng một số biến được đặt trong cùng một hàng, và mỗi biến cách nhau bởi dấu phẩy. Cũng lưu ý rằng các biến được bắt đầu bằng @. Trong cơ thể của thủ tục, bạn có thể đặt một biến mà bạn muốn. Ví dụ, một biến @ NAME1 có thể được công bố vào cuối của cơ thể phẫu thuật. Để gán giá trị cho một biến khai báo sử dụng một tập hợp các dữ liệu cá nhân. Ngược lại với tình hình khi có nhiều hơn một biến khai báo trong cùng hàng, chỉ có một tập hợp các dữ liệu cá nhân được sử dụng trong tình huống này.

Người dùng thường đặt câu hỏi: "Làm thế nào để gán nhiều giá trị trong một tuyên bố duy nhất trong cơ thể của thủ tục 'Vâng?. Câu hỏi thú vị, nhưng điều này là dễ dàng hơn nhiều hơn bạn nghĩ. Câu trả lời: với sự giúp đỡ của các cặp như «Chọn Var = giá trị". Bạn có thể sử dụng các cặp, cách nhau bằng dấu phẩy.

3. Tạo một thủ tục lưu trữ SQL

Trong một loạt các ví dụ về người cho thấy việc tạo ra một thủ tục lưu trữ đơn giản và thực hiện nó. Tuy nhiên, các thủ tục có thể mất các thông số như vậy mà quá trình gọi điện thoại nó sẽ có giá trị gần nó (nhưng không phải luôn luôn). Nếu chúng phù hợp, sau đó bắt đầu các quá trình tương ứng trong cơ thể. Ví dụ, nếu bạn tạo một thủ tục sẽ đưa thành phố và khu vực từ người gọi và trả lại dữ liệu về bao nhiêu tác giả đề cập đến các thành phố tương ứng và khu vực. Thủ tục sẽ truy vấn một bảng cơ sở dữ liệu của các tác giả, ví dụ, quán nhậu, để thực hiện các tác giả tính toán này. Để có được những cơ sở dữ liệu, ví dụ, Google tải xuống các tập lệnh SQL với trang SQL2005.

Trong ví dụ trước, các thủ tục có hai tham số, mà trong tiếng Anh sẽ được gọi là có điều kiện @State và @City. Các kiểu dữ liệu tương ứng với các loại quy định trong ứng dụng. Thân thủ tục có các biến nội @TotalAuthors (tất cả các tác giả), và biến này được dùng để hiển thị số của họ. Tiếp đến một yêu cầu lựa chọn phần đó tất cả các tính. Cuối cùng, giá trị tính toán sẽ được hiển thị trong cửa sổ đầu ra sử dụng câu lệnh in.

Làm thế nào để thực hiện một thủ tục lưu trữ SQL

Có hai cách để thực hiện các thủ tục. Cách đầu tiên được thể hiện bằng cách thông qua các thông số như một danh sách bằng dấu phẩy được thực hiện sau tên thủ tục. Giả sử chúng ta có hai giá trị (như trong ví dụ trước). Những giá trị này được thu thập bằng các biến và thủ tục @State @City. Trong phương pháp này, các thông số quan trọng của trật tự truyền. Phương pháp này được gọi là chuỗi truyền các đối số. Trong phương pháp thứ hai, các thông số đã được phân công trực tiếp, trong trường hợp thứ tự không quan trọng. Phương pháp thứ hai này được gọi là việc truyền các đối số được đặt tên.

Thủ tục có thể hơi chệch khỏi tiêu biểu. Dầu sao đi nữa, như trong ví dụ trước, nhưng các thông số được chuyển sang đây mà thôi. Đó là @City tham số được lưu trữ đầu tiên, và @State lưu trữ bên cạnh giá trị mặc định. Cài đặt mặc định thường được phân bổ riêng biệt. thủ tục lưu trữ SQL là các thông số đơn giản. Trong trường hợp này, với điều kiện tùy chọn "các UT 'thay thế giá trị mặc định của" CA ". Trong phương án thứ hai trôi qua chỉ có một giá trị tham số cho @City, và mặc định tùy chọn @State để "CA". lập trình viên giàu kinh nghiệm được thông báo rằng tất cả các biến mặc định được nằm gần cuối danh sách tham số. Nếu không, việc thực hiện là không thể, sau đó bạn phải làm việc với việc chuyển giao tên lập luận rằng lâu hơn và phức tạp.

4. Thủ tục lưu trữ SQL Server: cách trở về

Có ba cách chính để gửi dữ liệu được lưu trữ trong thủ tục gọi. Chúng được liệt kê dưới đây:

- giá trị trả về thủ tục lưu trữ;

- Thông số đầu ra được lưu trữ thủ tục;

- Chọn một trong các thủ tục lưu trữ.

4.1 giá trị trở lại của thủ tục lưu trữ SQL

Trong thủ tục này, các thủ tục đặt giá trị của biến cục bộ và trả lại nó. Thủ tục cũng có thể trực tiếp trả về một giá trị không đổi. Trong ví dụ sau, chúng tôi đã tạo một thủ tục trả về tổng số các nhà tài trợ. Nếu chúng ta so sánh điều này với các thao tác trên, bạn có thể thấy rằng giá trị của in được thay thế bằng ngược lại.

Bây giờ chúng ta hãy xem làm thế nào để thực hiện các thủ tục và hiển thị giá trị, trả lại nó. thủ tục thực hiện cần thiết để thiết lập và in ấn biến, được thực hiện sau khi quá trình này. Chú ý rằng thay vì in các nhà điều hành có thể sử dụng Select-nhà điều hành, ví dụ, Chọn @RetValue, và OutputValue.

4.2 Thủ tục Output Parameter SQL lưu trữ

Giá trị phản ứng có thể được sử dụng để trả về một biến duy nhất mà chúng ta đã thấy trong ví dụ trước. Sử dụng Output cho phép các thủ tục để gửi một hay nhiều biến vào bên mời. tham số đầu ra được ký hiệu là thời gian từ khóa này «đầu ra» khi tạo thủ tục. Nếu tham số được xác định là một tham số đầu ra, đối tượng thủ tục phải gán cho nó một giá trị. Thủ tục lưu trữ SQL, ví dụ trong số đó có thể được nhìn thấy dưới đây, trong trường hợp này trở về các thông tin chính thức.

Trong ví dụ này, sẽ có hai ngày nghỉ cuối tuần và tên: @TotalAuthors và @TotalNoContract. Họ được quy định trong danh sách tham số. Các biến này được gán các giá trị trong cơ thể phẫu thuật. Khi chúng tôi sử dụng các thông số đầu ra, người gọi có thể nhìn thấy giá trị thiết lập trong cơ thể phẫu thuật.

Ngoài ra, trong trường hợp trước, hai biến được khai báo để xem các giá trị đã được cài đặt thủ tục lưu trữ, MS SQL Server như là một tham số đầu ra. Sau đó, các thủ tục được thực hiện bằng cách áp dụng các giá trị bình thường «CA» tham số. Các thông số sau đây là đầu ra và, do đó, đã tuyên bố các biến được truyền theo phương thức quy định. Xin lưu ý rằng khi một từ khóa đầu ra biến cũng quy định ở đây. Sau khi thủ tục hoàn tất thành công, giá trị trả về bằng cách sử dụng các thông số đầu ra được hiển thị trên cửa sổ tin nhắn.

4.3 Lựa chọn một SQL được lưu trữ thủ tục

Kỹ thuật này được sử dụng để trả về một tập trong bảng dưới hình thức giá trị dữ liệu (RecordSet) để gọi một thủ tục lưu trữ. Trong ví dụ này, SQL được lưu trữ thủ tục với các thông số yêu cầu @AuthID bảng "tác giả" bằng cách lọc các hồ sơ được trả về bởi tham số @AuthId này. Chọn nhà điều hành sẽ quyết định những gì cần được trả lại cho gọi một thủ tục lưu trữ. Khi một thủ tục lưu trữ AUTHID truyền lại. Như một thủ tục luôn trả về chỉ có một hồ sơ hoặc không có gì cả. Tuy nhiên, các thủ tục lưu trữ không có bất kỳ hạn chế về sự trở lại của nhiều hơn một entry. Thường ví dụ có thể được tìm thấy trong đó các dữ liệu trở lại lựa chọn sử dụng các thông số với các biến tính được thực hiện bằng cách cung cấp một đa số trong tổng giá trị.

Tóm lại

Một thủ tục lưu trữ là một chương trình khá nghiêm trọng, trả lại hoặc chuyển nhượng, cũng như thiết lập các biến cần thiết do các ứng dụng client. Kể từ khi thủ tục lưu trữ được thực hiện trên máy chủ riêng của mình, trao đổi dữ liệu với số lượng lớn giữa máy chủ và các ứng dụng của khách hàng (đối với một số tính toán) có thể tránh được. Điều này làm cho nó có thể để giảm tải trên máy chủ SQL, trong đó, tất nhiên, là bàn tay của chủ sở hữu của họ. Một trong những phân loài được lưu trữ thủ tục T SQL, nhưng nghiên cứu của họ là cần thiết để những người tham gia trong việc tạo ra một cơ sở dữ liệu ấn tượng. Ngoài ra còn có một lượng lớn, thậm chí số tiền rất lớn của những sắc thái mà có thể hữu ích trong việc nghiên cứu các thủ tục lưu trữ, tuy nhiên, nhu cầu này đối với những người đang có kế hoạch để làm lập trình chặt chẽ, bao gồm cả chuyên nghiệp.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 vi.delachieve.com. Theme powered by WordPress.