Xem Nhiều 11/2022 #️ Procedure, Function Và Package Trong Oracle Pl/Sql / 2023 # Top 20 Trend | Sansangdethanhcong.com

Xem Nhiều 11/2022 # Procedure, Function Và Package Trong Oracle Pl/Sql / 2023 # Top 20 Trend

Cập nhật thông tin chi tiết về Procedure, Function Và Package Trong Oracle Pl/Sql / 2023 mới nhất trên website Sansangdethanhcong.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất.

Thủ tục (Procedure) ▴

Một nhóm các lệnh thực hiện chức năng nào đó có thể được gom lại trong một thủ tục (procedure) nhằm làm tăng khả năng xử lý,khả năng sử dụng chung,tăng tính bảo mật và an toàn dữ liệu,tiện ích trong phát triển.

Thủ tục có thể được lưu giữ ngay trong database như một đối tượng của database, sẵn sàng cho việc tái sử dụng. Thủ tục lúc này được gọi là Store procedure. Với các Store procedure, ngay khi lưu giữ Store procedure, chúng đã được biên dịch thành dạng p-code vì thế có thể nâng cao khả năng thực hiện.

Thủ tục không trả về giá trị trực tiếp như hàm.

Các bước thực hiện một thủ tục:

Ví dụ tạo một thủ tục:

Đây là một ví dụ tạo một thủ tục đầu tiên trên PL/SQL Developer. ví dụ này sẽ là khuôn mẫu giúp bạn vừa lập trình vừa kiểm tra lỗi nếu có vấn đề xẩy ra.

Tạo một thủ tục (Procedure)

Biên dịch thủ tục này

Chạy thủ tục

Debug thủ tục bằng PL/SQL Developer để xem chương trình chạy thế nào.

Tạo mới một thủ tục (Procedure):

Nhập vào tên của thủ tục, các tham số sẽ được viết sau:

Thủ tục đã được PL/SQL Developer tạo ra. Tuy nhiên bạn cần sửa lại danh sách tham số, và viết code cho thủ tục này.

Sửa thủ tục của bạn như sau:

Nhấn vào biểu tượng Execute

hoặc F8 để biên dịch thủ tục. Trong trường hợp có lỗi code, PL/SQL Developer sẽ thông báo cho bạn.

Test thủ tục trên PL/SQL Developer ▴

Nhấn phải chuột vào thủ tục Get_Employee_Infos chọn Test:

Nhập tham số đầu vào, ví dụ:

Kết quả thực thi thủ tục:

Xem trên màn hình Console:

Test trường hợp khác với:

Debug thủ tục trên PL/SQL Developer ▴

Debug trên PL/SQL Developer cho phép bạn xem một thủ tục, hàm đã được chạy thế nào, theo từng lệnh. Giúp bạn dễ dàng tìm ra các vị trí phát sinh lỗi. Bạn có thể xem hướng dẫn tại:

Hàm (Function) ▴

Tương tự như thủ tục, hàm (function) cũng là nhóm các lệnh PL/SQL thực hiện chức năng nào đó. Khác với thủ tục, các hàm sẽ trả về một giá trị ngay tại lời gọi của nó. Hàm cũng có thể được lưu giữ ngay trên database dưới dạng Store procedure.

Với việc sử dụng hàm, trong một số trường hợp bạn có thể thấy được các lợi điểm như sau:

Cho phép thực hiện các thao tác phức tạp(các phép tìm kiếm, so sánh phứctạp) ngay trong mệnh đề của câu lệnh SQL mà nếu không sử dụng hàm bạn sẽ không thể nào thực hiện được

Tăng tính độc lập của dữ liệu do việc phân tích và xử lý dữ liệu được thực hiện ngay trên Server thay vì trả về dữ liệu trực tiếp cho ứng dụng dưới Client để chúng tiếp tục xử lý.

Tăng tính hiệu quả của câu lệnh truy vấn bằng việc gọi các hàm ngay trong câu lệnh SQL

Bạn có thể sử dụng hàm để thao tác trên các kiểu dữ liệu tự tạo. Cho phép thực hiện đồng thời các câu lệnh truy vấn

Một số hạn chế khi sử dụng hàm trong câu lệnh SQL

Chỉ các hàm do người dùng định nghĩa được lưu trên database mới có thể sử dụng được cho câu lệnh SQL.

Các hàm do người dùng định nghĩa chỉ được áp dụng cho điều kiện thực hiện trên các dòng dữ liệu (mệnh đề WHERE), không thể áp dụng cho các điều kiện thực hiện trên nhóm (mệnh đề GROUP).

Tham số sử dụng trong hàm chỉ có thể là loại IN, không chấp nhận giá trị OUT hay giá trị IN OUT.

Kiểu dữ liệu trả về của các hàm phải là kiểu dữ liệu DATE, NUMBER, NUMBER. Không cho phép hàm trả về kiểu dữ liệu như BOOLEAN, RECORD, TABLE. Kiểu dữ liệu trả về này phải tương thích với các kiểu dữ liệu bên trong Oracle Server .

Cú pháp tạo Hàm.

Ví dụ tạo một hàm.

Các hàm không có tham số OUT, có thể tham gia vào câu lệnh SQL, ví dụ:

Kết quả chạy câu lệnh SQL trên:

Package ▴

Package là một tập hợp các kiểu dữ liệu, biến lưu giữ giá trị và các thủ tục,hàm có cùng một mối liên hệ với nhau, được gộp chung lại. Đặc điểm nổi bật nhất của package là khi một phần tử trong package được gọi thì toàn bộ nội dung của package sẽ được nạp vào trong hệ thống. Do đó, việc gọi tới các phần tử khác trong package sau này sẽ không phải mất thời gian nạp vào hệ thống nữa. Từ đó, nâng cao tốc độ thực hiện lệnh của toàn bộ hàm, thủ tục có trong package.

Một package được cấu trúc làm hai phần. Phần mô tả (specification) định nghĩa các giao tiếp có thể có của package với bên ngoài. Phần thân (body) là các cài đặt cho các giao tiếp có trong phần mô tả ở trên.

Trong cấu trúc của package bao gồm 05 thành phần:

Public variable (biến công cộng): là biến mà các ứng dụng bên ngoài có thể tham chiếu tới được.

Public procedure (thủ tục công cộng): bao gồm các hàm, thủ tục của package có thể triệugọi từ các ứngdụngbên ngoài.

Private procedure (thủ tục riêng phần): là các hàm, thủ tục có trong package và chỉ có thể được triệu gọi bởi các hàm hay thủ tục khác trong package mà thôi.

Global variable (biến tổng thể): là biến được khai báo dùng trong toàn bộ package, ứng dụng bên ngoài tham chiếu được tới biến này .

Private variable (biến riêng phần): là biến được khai báo trong một hàm, thủ tục thuộc package.Nó chỉ có thể được tham chiếu đến trong bản thân hàm hay thủ tục đó.

Tạo package trên PL/SQL Developer ▴

PL/SQL Developer giúp bạn tạo nhanh package spec & package body.

Package đã được PL/SQL Developer tạo ra, với các gợi ý viết package được tự động sinh ra. Bạn có thể xóa hết chúng đi.

Bạn có thể xóa hết các code tự tạo ra tự động bởi PL/SQL Developer để có một package rỗng:

Create Or Replace Package Pkg_Emp Is

Function Get_First_Name(p_Emp_Id Employee.Emp_Id%Type)

Return Employee.First_Name%Type;

Function Get_Dept_Name(p_Emp_Id Employee.Emp_Id%Type)

Return Department.Name%Type;

Sql:function Và Store Procedure (Hàm/Thủ Tục) Trong Sql / 2023

2. Function và Store Procedure (hàm/thủ tục)

2.1. Function và Store Procedure là gì

Là đoạn chương trình kịch bản (programming scripts) với các câu lệnh SQL nhúng (embedded SQL) được lưu dưới dạng đã được biên dịch và thi hành thực tiếp bởi MySQL server.

SP cho phép lưu trữ các logic ứng dụng trên CSDL.

2.2. Cú pháp

Tạo hàm/thủ tục

CREATE FUNCTION name ([parameterlist]) RETURNS datatype [options] sqlcode

CREATE PROCEDURE name ([parameterlist]) [options] sqlcode

Ví dụ:

DELIMITER $$

CREATE PROCEDURE count_people_with_age(IN age_in INT, OUT quantity INT)

BEGIN

SELECT *

FROM people

SELECT FOUND_ROWS() INTO quantity;

END

DELIMITER $$: Giải phóng để cho phép sử dụng ‘;’ trong thủ tục

Gán giá trị cho biến

Sử dụng SET hoặc SELECT INTO.

Gọi thủ tục:

Call count_people_with_age (18,@people_count);

Select @ people _count;

Hiện thị thông tin

SHOW FUNCTION STATUS;

SHOW PROCEDURE STATUS;

SHOW FUNCTION STATUS LIKE ‘repeat%’;

SHOW PROCEDURE STATUS LIKE ‘film%’;

SHOW CREATE PROCEDURE ‘name‘;

Một số cấu trúc điều khiển dùng trong Hàm, thủ tục

[ ELSE commands;]

REPEAT commands;

UNTIL condition

END REPEAT [ loopname];

CASE expression

WHEN value1 THEN commands;

[WHEN value2 THEN commands;]

[ELSE commands;]

END CASE;

[loopname:]

WHILE condition DO commands;

END WHILE [loopname];

2.3. Con trỏ (cursor) trong hàm/thủ tục

MySQL hỗ trợ con trỏ trong hàm/thủ tục, trigger

Con trỏ được sử dụng để duyệt các dòng kết quả trả lại bởi truy vấn, và xử lý từng dòng riêng lẻ

Cú pháp Con trỏ:

DECLARE cursor_name CURSOR FOR SELECT_statement;

OPEN cursor_name;

Lấy ra từng dòng và chuyển tới dòng kết quả tiếp theo sử dụng lệnh FETCH

FETCH cursor_name INTO variable list;

CLOSE cursor_name;

2.4. Xử lý lỗi thông qua Handlers

Luôn có khả năng hàm/thủ tục gặp lỗi trong khi thi hành các lệnh SQL. MySQL cung cấp kỹ thuật xử lý lỗi thông qua handler

Một handler cần định nghĩa sau khai báo các biến, con trỏ và điều kiện, nhưng trước các lệnh SQL

Cú pháp Handler: DECLARE type HANDLER FORcondition1, condition2, condition3, … statement;

condition(s): Các điều kiện mà handler sẽ được gọi : Not found, SqlException,..

statement: Câu lệnh sẽ thi hành khi có điều kiện xảy ra

2.5. Ưu nhược điểm

Ưu điểm

Giảm dư thừa mã chương trình: Các đoạn mã tương tự trong các ứng dụng như thêm, cập nhật có thể lưu ở phía CSDL

Bảo trì: Nếu có sự thay đổi trong CSDL, mã lệnh cần thay đổi có thể xác định trong các SP

An ninh CSDL tốt hơn: Trong các ứng dụng an ninh cao, với hàm/thủ tục có thể kiểm soát truy cập dữ liệu và đưa ra các qui định an ninh tập trung

Nhược điểm

Thiếu tính khả chuyển (Lack of Portability)

SP khó chuyển từ một DBMS sang một DBMS khác. Yêu cầu lập trình và kiểm thử lại đáng kể

Sử dụng hàm/thủ tục nhiều có thể gây quá tải MySQL server

Lập trình SP không phong phú như các nền tảng phát triển khác như Java hay PHP

Lưu ý: Các phiên bản tương lai của MySQL có thể cung cấp các giao diện cho phép tạo các hàm/thủ tục sử dụng các ngôn ngữ bên ngoài, ví dụ Java

Higher Order Function Trong Javascript Là Gì? / 2023

Thế nào là Higher Order Function trong Javascript?

Function chấp nhận đầu vào và/hoặc đầu ra là một function được gọi là higher order function.

Thay vì string, number, boolean, nó sử dụng function khác để làm in/out, nên vì thế ở cấp độ cao hơn như việc vận hành function.

Với function trong Javascript, bạn có thể:

Lưu chúng như biến

Sử dụng như array

Assign các thuộc tính như một object

Cho vào các giá trị argument

Return từ một function khác

Bạn có thể hình dung việc truyền vào function và đầu ra cũng là function giống như một function bình thường bạn vẫn làm. Hãy cứ nghĩ thế trước đã để bắt đầu.

Hàm sử dụng với dữ liệu

Như các bạn đã thấy, đây là 5 first-class trong mọi ngôn ngữ lập trình. Tại sao? Vì bạn có thể làm việc với chúng như 5 chức năng mình nhắc đến ở phía trên.

Function cũng là data

Giờ ta sẽ quan tâm tới phần kế tiếp, khi làm việc và coi hàm cũng tương tự như data.

Function là biến đầu vào

Như ví dụ ở trên, largeThan5 thực chất chỉ là một function, nhưng lại đóng vai trò là một parameter vào function filter().

Vòng lặp của filter sẽ chạy qua lần lượt các item và sử dụng function largeThan5 (return true/false) để xem và lọc ra các item phù hợp.

Function trả lại

Hãy thử ví dụ đơn giản nhất:

Function ở trên yêu cầu hai biến, nhưng không yêu cầu cả hai đều cho vào cùng một lúc. Hãy tưởng tượng nó như một người bảo vệ, khi bạn chìa ra chỉ một tấm vé thì vẫn được cho qua cổng nhưng lại gặp cánh cổng thứ hai yêu cầu chìa nốt tấm vé thứ hai thì mới thực thi.

Điều này khả thi vì Javascript cho phép function return lại giá trị, như string, số, true/false.

Bạn có thể thêm cả hai biến a,b như sau:

console.log(add(3)(6))

Hoặc lần lượt như sau:

Giờ hãy thử:

Kết quả hiện ra sẽ là một function, đúng không nào? Điều này giúp ta hiểu được cách function hoạt động và trả về, dù chưa đủ parameter.

Sử dụng khả năng tái sử dụng cao của Higher Order Function

Một khi nắm được lợi thế của việc function đóng vai trò như data, ta có thể phát triển lên nhiều trong lối tư duy.

const users = [ { name: 'Kevin', experienceYears: 6 }, { name: 'Jenifer', experienceYears: 4 }, { name: 'Duck', experienceYears: 1 }, ]

Ta có bài toán: tách những ai có số năm kinh nghiệm lớn hơn 2 ra thành một tập hợp mới.

Bạn thấy không? Mọi thứ dường như đơn giản và dễ hiểu hơn dù răng cách thực hiện vẫn ra một kết quả.

Kết luận

Higher order function sẽ giúp bạn sử dụng function và chia nhỏ function cho những tác vụ cần thiết giúp khả năng tái sử dụng và phát triển mở rộng của hệ thống được nâng cao.

Bài viết có dựa trên lược dịch từ freecodecamp.

Sự Khác Biệt Cơ Bản Sql Và Nosql / 2023

1. SQL là gì?

SQL chính là viết tắt của Structured Query language, là ngôn ngữ chuẩn để xử lý Cơ sở dữ liệu quan hệ. Một cơ sở dữ liệu quan hệ xác định các mối quan hệ dưới dạng các bảng.

Lập trình SQL có thể được sử dụng hiệu quả để chèn, tìm kiếm, cập nhật, xóa các bản ghi cơ sở dữ liệu.

Điều đó không có nghĩa là SQL không thể làm được gì ngoài việc đó. Nó có thể làm rất nhiều thứ bao gồm, nhưng không giới hạn, tối ưu hóa và duy trì cơ sở dữ liệu.

Các cơ sở dữ liệu quan hệ như Cơ sở dữ liệu MySQL, Oracle, MS SQL Server, Sybase,… sử dụng SQL.

2. NoSQL là gì?

NoSQL là một DMS không quan hệ, không yêu cầu một lược đồ cố định, tránh các phép nối, và dễ dàng mở rộng. Cơ sở dữ liệu NoSQL được sử dụng cho các kho dữ liệu phân tán với nhu cầu lưu trữ dữ liệu khổng lồ. NoSQL được sử dụng cho dữ liệu lớn và các ứng dụng web thời gian thực. Ví dụ như các công ty như Twitter, Facebook, Google thu thập hàng terabyte dữ liệu người dùng mỗi ngày.

Cơ sở dữ liệu NoSQL là viết tắt của “Không chỉ SQL” hoặc “Không phải SQL”. Mặc dù một thuật ngữ tốt hơn sẽ NoREL NoSQL bắt gặp. Carl Strozz giới thiệu khái niệm NoSQL vào năm 1998.

RDBMS truyền thống sử dụng cú pháp SQL để lưu trữ và truy xuất dữ liệu để có thêm thông tin chi tiết. Thay vào đó, một hệ thống cơ sở dữ liệu NoSQL bao gồm một loạt các công nghệ cơ sở dữ liệu có thể lưu trữ dữ liệu có cấu trúc, bán cấu trúc, không có cấu trúc và đa hình.

3. Điểm khác biệt chính

Ngôn ngữ

Cơ sở dữ liệu SQL xác định và thao tác dữ liệu dựa trên ngôn ngữ truy vấn có cấu trúc (SQL). Nhìn từ một phía ngôn ngữ này là vô cùng mạnh mẽ. SQL là một trong những tùy chọn linh hoạt và được sử dụng rộng rãi nhất hiện có, làm cho nó trở thành lựa chọn an toàn đặc biệt cho các truy vấn phức tạp lớn. Nhưng từ phía khác nó có thể bị hạn chế. SQL yêu cầu bạn sử dụng các lược đồ được xác định trước để xác định cấu trúc dữ liệu của bạn trước khi bạn làm việc với nó. Ngoài ra tất cả dữ liệu của bạn phải theo cùng một cấu trúc. Điều này có thể yêu cầu chuẩn bị trước đáng kể, điều đó có nghĩa là một sự thay đổi trong cấu trúc sẽ vừa khó khăn vừa gây khó chịu cho toàn bộ hệ thống của bạn.

Một cơ sở dữ liệu NoSQL có lược đồ động cho dữ liệu phi cấu trúc. Dữ liệu được lưu trữ theo nhiều cách có nghĩa là nó có thể được định hướng theo tài liệu, hướng theo cột, dựa trên biểu đồ hoặc được tổ chức dưới dạng lưu trữ Key-Value. Tính linh hoạt này có nghĩa là các tài liệu có thể được tạo mà không cần xác định cấu trúc trước. Ngoài ra mỗi tài liệu có thể có cấu trúc độc đáo của riêng mình.

Khả năng mở rộng Trong hầu hết các tình huống, cơ sở dữ liệu SQL có thể mở rộng theo chiều dọc. Điều này có nghĩa là bạn có thể tăng tải trên một máy chủ bằng cách tăng những thứ như RAM, CPU hoặc SSD. Nhưng mặt khác, cơ sở dữ liệu NoSQL có thể mở rộng theo chiều ngang. Điều này có nghĩa là bạn xử lý nhiều lưu lượng hơn bằng cách lưu trữ hoặc thêm nhiều máy chủ hơn trong cơ sở dữ liệu NoSQL của bạn.

Cấu trúc

Cơ sở dữ liệu SQL dựa trên bảng, mặt khác, cơ sở dữ liệu NoSQL là cặp giá trị – khóa, cơ sở dữ liệu đồ thị hoặc cửa hàng cột. Điều này làm cho cơ sở dữ liệu SQL quan hệ trở thành một lựa chọn tốt hơn cho các ứng dụng yêu cầu giao dịch nhiều hàng như hệ thống kế toán hoặc cho các hệ thống cũ được xây dựng cho cấu trúc quan hệ.

Hỗ trợ SQL được sự hổ trợ tốt từ các nhà cung cấp. Nhưng với NoSQL thì bạn phải tự xây dựng và học hỏi cộng đồng người sử dụng trên thế giới. Hoặc là bạn sẽ mất nhiều thời gian để có thể làm chủ được nó.

Các SQL phổ biến là: PostgreSQL, MySQL, Oracle và Microsoft SQL Server.

Các NoSQL phổ biến là: Redis, RavenDB Cassandra, MongoDB, BigTable, HBase, Neo4j và CouchDB

4. Khi nào sử dụng SQL?

SQL là ngôn ngữ đơn giản nhất được sử dụng để giao tiếp với RDBMS

Tạo trang tổng quan tùy chỉnh

Nó cho phép bạn lưu trữ và lấy dữ liệu từ cơ sở dữ liệu một cách nhanh chóng

Được ưu tiên khi bạn muốn sử dụng các phép nối và thực hiện các truy vấn phức tạp

5. Khi nào sử dụng NoSQL?

Khi không cần hỗ trợ ACID

Khi mô hình RDBMS truyền thống không đủ

Dữ liệu cần lược đồ linh hoạt

Các ràng buộc và logic xác thực không bắt buộc phải được thực hiện trong cơ sở dữ liệu

Ghi nhật ký dữ liệu từ các nguồn được phân phối

Nó nên được sử dụng để lưu trữ dữ liệu tạm thời như giỏ mua hàng, danh sách mong muốn và dữ liệu phiên

6. Tổng kết

NoSQL DB (mongo) Vs RDBMS DB (mysql) Stackoverflow Questions

Ngôn ngữ truy vấn có cấu trúc (SQL) được phát âm là “S-Q-L” hoặc là “See-Quel” là ngôn ngữ chuẩn

NoSQL là một DMS không quan hệ, không yêu cầu một lược đồ cố định, tránh tham gia và dễ dàng mở rộng

Cơ sở dữ liệu SQL chủ yếu được gọi là RDBMS hoặc Cơ sở dữ liệu quan hệ

Cơ sở dữ liệu SQL là cơ sở dữ liệu dựa trên bảng

Cơ sở dữ liệu NoSQL có thể dựa trên tài liệu, cặp khóa-giá trị, cơ sở dữ liệu biểu đồ

SQL nên được sử dụng để giao tiếp với RDBMS

NOSQL nên được sử dụng khi mô hình RDBMS truyền thống không đủ

Như vậy, thông qua bài viết này, mình đã giới thiệu đến các bạn sự khác nhau cơ bản giữa SQL và NoSQL. Đồng thời là hoàn cảnh sử dụng chúng sao cho phù hợp, hiệu quả nhất. Cảm ơn các bạn đã đọc!

Bạn đang xem bài viết Procedure, Function Và Package Trong Oracle Pl/Sql / 2023 trên website Sansangdethanhcong.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!