Chúng ta có thể sử dụng vòng lặp while trong MySQL không?

Như chúng ta biết rằng MySQL cung cấp cho chúng ta các câu lệnh lặp cho phép chúng ta thực thi lặp đi lặp lại một khối mã SQL dựa trên một điều kiện. Lệnh lặp WHILE là một trong những loại lệnh lặp như vậy. Cú pháp của nó như sau -

WHILE expression DO
statements
END WHILE

Trên thực tế, vòng lặp WHILE kiểm tra biểu thức khi bắt đầu mỗi lần lặp. Nếu biểu thức đánh giá là đúng, MySQL sẽ thực thi các câu lệnh giữa WHILE và END WHILE cho đến khi biểu thức đánh giá là sai. Vòng lặp WHILE kiểm tra biểu thức trước khi thực thi câu lệnh, chính vì vậy nó còn được gọi là vòng lặp kiểm tra trước

Để chứng minh việc sử dụng vòng lặp WHILE với các thủ tục được lưu trữ, sau đây là một ví dụ:

mysql> Delimiter //
mysql> CREATE PROCEDURE While_Loop()
  -> BEGIN
-> DECLARE A INT;
-> DECLARE XYZ Varchar(50);
-> SET A = 1;
-> SET XYZ = '';
-> WHILE A <=10 DO
-> SET XYZ = CONCAT(XYZ,A,',');
-> SET A = A + 1;
-> END WHILE;
-> SELECT XYZ;
-> END //
Query OK, 0 rows affected (0.31 sec)

Bây giờ, chúng ta có thể thấy kết quả bên dưới khi gọi thủ tục này -

mysql> DELIMITER ;
mysql> call While_Loop();
+-----------------------+
| XYZ |
+-----------------------+
| 1,2,3,4,5,6,7,8,9,10, |
+-----------------------+
1 row in set (0.03 sec)

Chúng ta có thể sử dụng vòng lặp while trong MySQL không?


Chúng ta có thể sử dụng vòng lặp while trong MySQL không?

Các thủ tục được lưu trữ là các thủ tục con, đoạn câu lệnh SQL được lưu trữ trong danh mục SQL. Các thủ tục này chứa các tham số IN và OUT hoặc cả hai. Chúng có thể trả về tập kết quả trong trường hợp bạn sử dụng câu lệnh SELECT; . Bạn cũng có thể tạo các hàm trong MYSQL

Tương tự như các ngôn ngữ lập trình khác, MySQL cung cấp hỗ trợ cho các câu lệnh điều khiển luồng như IF, CASE, ITERATE, LEAVE LOOP, WHILE và REPEAT. Bạn có thể sử dụng các câu lệnh này trong các chương trình (thủ tục) được lưu trữ và RETURN trong các hàm được lưu trữ. Bạn có thể sử dụng một Câu lệnh điều khiển luồng với một câu lệnh khác

WHILE là một câu lệnh phức hợp của MySQL được sử dụng để thực thi lặp đi lặp lại một hoặc một tập hợp các câu lệnh miễn là điều kiện đã chỉ định là TRUE

cú pháp

Sau đây là cú pháp của câu lệnh WHILE là MySQL −

begin_label: WHILE search_condition DO
statement_list
END WHILE end_label

Trong đó, danh_sách_câu_lệnh là một hoặc một tập hợp các câu lệnh sẽ được lặp lại. begin_label và end_label là các nhãn tùy chọn của câu lệnh WHILE. Mỗi câu lệnh trong WHILE kết thúc bằng dấu chấm phẩy (hoặc, dấu phân cách hiện tại)

MySQL WHILE LOOP cho phép chúng ta thực hiện lặp đi lặp lại một hoặc nhiều truy vấn Câu lệnh MySQL trừ khi một điều kiện được đáp ứng để trả về giá trị kết quả tương ứng. Nó cũng được biết đến là một vòng lặp có điều kiện kiểm tra trước trong số các câu lệnh MySQL ba vòng WHILE, LOOP và REPEAT vì ở đây điều kiện tìm kiếm được kiểm tra ban đầu trước khi thực thi câu lệnh mã. Vòng lặp WHILE khi được xử lý lặp lại sẽ thực thi các câu lệnh SQL dưới dạng tập kết quả miễn là biểu thức điều kiện là TRUE. Mỗi câu lệnh trong vòng lặp WHILE kết thúc bằng dấu chấm phẩy. Việc lặp lại vòng lặp xảy ra mỗi khi điều kiện được kiểm tra và kết quả phụ thuộc vào dòng mã. Nhưng nếu điều kiện vòng lặp WHILE của MySQL là SAI khi biểu thức đánh giá giữa các câu lệnh while và end while thì nó sẽ thoát khỏi vòng lặp

cú pháp

Cú pháp cơ bản của vòng lặp WHILE được biểu diễn như sau

Bắt đầu khóa học khoa học dữ liệu miễn phí của bạn

Hadoop, Khoa học dữ liệu, Thống kê và những thứ khác

Gói khoa học dữ liệu tất cả trong một(360+ khóa học, hơn 50 dự án)

Chúng ta có thể sử dụng vòng lặp while trong MySQL không?
Chúng ta có thể sử dụng vòng lặp while trong MySQL không?
Chúng ta có thể sử dụng vòng lặp while trong MySQL không?
Chúng ta có thể sử dụng vòng lặp while trong MySQL không?

Chúng ta có thể sử dụng vòng lặp while trong MySQL không?
Chúng ta có thể sử dụng vòng lặp while trong MySQL không?
Chúng ta có thể sử dụng vòng lặp while trong MySQL không?
Chúng ta có thể sử dụng vòng lặp while trong MySQL không?

Giá
Xem khóa học

360+ Khóa học trực tuyến. hơn 50 dự án. Hơn 1500 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 7 (84.689 xếp hạng)

[Label_to _begin:] WHILE SearchCondition DO
SQL statement(s)
END WHILE [Label_to_end]

Giải thích các thuật ngữ cú pháp trên

  • Sử dụng tên nhãn, chúng ta có thể cung cấp một nhãn tùy chọn cho vòng lặp WHILE khi bắt đầu hoặc kết thúc quá trình thực thi câu lệnh truy vấn MySQL
  • Điều kiện tìm kiếm được chỉ định ngay sau từ khóa WHILE
  • Sau đó, tiếp theo là các lần lặp lại, điều kiện được kiểm tra ngay từ đầu
  • Nếu nó đánh giá TRUE, thì vòng lặp WHILE sẽ di chuyển về phía trước để thực hiện các danh sách câu lệnh khác cho đến khi kết quả của điều kiện tìm kiếm tạo ra TRUE
  • Giữa các từ khóa DO và END WHILE Vòng lặp, một hoặc nhiều câu lệnh được chỉ định sẽ được thực thi
  • Nếu WHILE đánh giá FALSE thì vòng lặp kết thúc và kết thúc
  • Vòng lặp hoạt động trên các chương trình được lưu trữ và trả về

Sơ đồ

Chúng ta có thể hiểu rõ hơn về quy trình vòng lặp WHILE của MySQL với sự trợ giúp của sơ đồ. Sơ đồ minh họa này sẽ làm rõ các khái niệm của chúng ta về các đánh giá TRUE và FALSE trong vòng lặp WHILE và thực thi các câu lệnh SQL

Chúng ta có thể sử dụng vòng lặp while trong MySQL không?

Lưu đồ chỉ định cách sắp xếp thiết yếu của quy trình lặp vòng lặp WHILE trong MySQL

WHILE LOOP hoạt động như thế nào trong MySQL?

  • Từ sơ đồ tượng trưng trực quan ở trên, thuật toán vòng lặp WHILE trong MySQL được thể hiện dưới dạng khái niệm thiết kế đơn giản và cũng có ý nghĩa
  • Đầu tiên, quá trình thực thi vòng lặp WHILE được bắt đầu, với mỗi lần lặp lại, điều kiện xác định được đánh giá, sau đó dựa trên kết quả của điều kiện WHILE, câu lệnh SQL được xác định. Khi vòng lặp WHILE cho kết quả TRUE thì các câu lệnh luồng mã sẽ được thực thi
  • Thứ hai, nếu việc thực thi vòng lặp WHILE có xu hướng tạo ra bất kỳ kết quả SAI nào theo điều kiện tìm kiếm thì luồng mã sẽ bị rút lại và vòng lặp WHILE dừng xử lý tiếp theo. Và giả sử, nếu có bất kỳ câu lệnh SQL nào nằm ngoài vòng lặp WHILE thì nó sẽ hoàn thành

Ví dụ để triển khai WHILE LOOP trong MySQL

Hãy để chúng tôi thảo luận về một số ví dụ về câu lệnh MySQL vòng lặp WHILE để thực thi mã truy vấn SQL như sau

  • Ví dụ: chúng tôi đang xem xét một bảng có tên là Calendar_Data để lưu trữ các giá trị của vòng lặp WHILE và thực hiện các câu lệnh tương ứng. Bây giờ chúng ta hãy viết truy vấn SQL để tạo bảng MySQL sẽ lưu trữ ngày và các thông tin dẫn xuất khác như năm, tháng, ngày và quý. Đây là câu lệnh SQL CREATE

Mã số

CREATE TABLE Calendar_Data (CID INT AUTO_INCREMENT, CDate DATE UNIQUE, CDay TINYINT NOT NULL, CMonth
TINYINT NOT NULL, CQuarter TINYINT NOT NULL, CYear INT
NOT NULL, PRIMARY KEY(CID));

  • Sau này, chúng ta cần tạo một thủ tục lưu sẵn mới trong bảng Calendar_Data để nhập giá trị ngày. Truy vấn MySQL cho điều này ở bên dưới

Mã số

DELIMITER $$
CREATE PROCEDURE EntryCalendar(cdt DATE)
BEGIN
INSERT INTO Calendar_Data(CDate, CDay, CMonth, CQuarter, CYear) VALUES(cdt, EXTRACT(DAY FROM cdt), EXTRACT(MONTH FROM cdt), EXTRACT(QUARTER FROM cdt),
EXTRACT(YEAR FROM cdt));
END$$
DELIMITER;
DELIMITER $$

  • Bây giờ một lần nữa, ở bước thứ ba, chúng ta sẽ tạo lại một thủ tục được lưu trữ mới, tôi. e. LoadCalendar_Data() chịu trách nhiệm tải một số ngày vào Calendar_Data được khởi tạo theo ngày bắt đầu

Mã số

CREATE PROCEDURE LoadCalendar_Data(startDate DATE, day INT)
BEGIN
DECLARE counter INT DEFAULT 1;
DECLARE cdt DATE DEFAULT startDate;
WHILE counter <= day DO
CALL EntryCalendar(cdt);
SET counter = counter + 1;
SET cdt = DATE_ADD(cdt,INTERVAL 1 day);
END WHILE;
END$$
DELIMITER;

Ở đây, thủ tục được lưu trữ LoadCalendar_Data bao gồm và chấp nhận hai tham số trong hàm

  • startData với kiểu dữ liệu DATE trong MySQL biểu thị ngày bắt đầu được chèn vào bảng Calendar_Data
  • tham số day trong thủ tục tải số ngày bắt đầu từ startDate vào bảng

Trong thủ tục tải này

  • Trước khi vòng lặp WHILE bắt đầu, trước tiên chúng ta khai báo biến counter và cdtto giữ các giá trị trực tiếp. Theo mặc định, các giá trị của biến counter và cdt là 1 và cũng tương ứng với startDate
  • Bây giờ với sự trợ giúp của Vòng lặp WHILE của MySQL, chúng tôi sẽ phát hiện xem giá trị biến bộ đếm có bằng hoặc nhỏ hơn giá trị tham số ngày khi thực thi hay không

Nếu kết quả là có, thì

  • Thủ tục được lưu trữ được gọi là i. e. EntryCalendar, để nhập các giá trị hàng trong Calendar_Datatable
  • Một lần nữa, vòng lặp lặp lại và bộ đếm được tăng lên một và cdt cũng được tăng lên một ngày bởi hàm DATE_ADD() trong MySQL

Vòng lặp WHILE lặp lại điều kiện bộ đếm trừ khi giá trị biến bộ đếm giống với giá trị tham số ngày và lần lượt chèn các giá trị ngày vào các cột trong Calendar_Datatable

Ví dụ

Cuối cùng, chúng ta sẽ sử dụng câu lệnh truy vấn sau để gọi thủ tục được lưu trữ LoadCalendar_Data() chứa các bản ghi giá trị hàng trong 15 ngày vào bảng Calendar_Data bắt đầu từ ngày 1 tháng 1 năm 2020

Mã số

________số 8

Sử dụng từ khóa SELECT, chúng ta có thể xem các bản ghi Calendar_Data bằng cách sử dụng vòng lặp WHILE và các chương trình được lưu trữ

SELECT * FROM Calendar_Data;

đầu ra

Chúng ta có thể sử dụng vòng lặp while trong MySQL không?

Phần kết luận

Vòng lặp WHILE trong MySQL hoạt động để thực thi một khối câu lệnh trong khi điều kiện tìm kiếm hoặc nói điều kiện vòng lặp WHILE vẫn TRUE. Khi phần mã có điều kiện đã nêu, vòng lặp tiếp tục thực hiện phần SQL. Ngược lại, vòng lặp kết thúc nếu không có điều kiện WHILE nào xảy ra. Vòng lặp WHILE là cấu trúc chương trình được lưu trữ trong MySQL, triển khai hoạt động nhanh

Bài viết được đề xuất

Đây là hướng dẫn về MySQL WHILE LOOP. Ở đây chúng tôi thảo luận về phần giới thiệu về MySQL WHILE LOOP với hoạt động của vòng lặp và các ví dụ tương ứng. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm –

Làm thế nào để viết vòng lặp while trong MySQL?

Giới thiệu về câu lệnh vòng lặp WHILE của MySQL . Đầu tiên, chỉ định điều kiện tìm kiếm sau từ khóa WHILE . WHILE kiểm tra điều kiện tìm kiếm ở đầu mỗi lần lặp. Nếu điều_kiện_tìm_kiếm là TRUE , WHILE sẽ thực thi danh_sách_câu_lệnh miễn là điều_kiện tìm kiếm là TRUE.

Làm cách nào để sử dụng vòng lặp trong truy vấn MySQL SELECT?

Câu lệnh MySQL LOOP có thể được sử dụng để chạy đi chạy lại một khối mã hoặc tập hợp các câu lệnh, tùy thuộc vào điều kiện. tên nhãn. Đó là một nhãn tùy chọn ở đầu và cuối. các câu lệnh. Chúng có thể có một hoặc nhiều câu lệnh, mỗi câu lệnh kết thúc bằng dấu chấm phẩy (;) và được thực hiện bởi LOOP

Vòng lặp while tốt hơn con trỏ?

Điều luôn gây nhầm lẫn là cái nào tốt hơn; . Mọi điểm nhấn của vòng lặp sẽ được thực thi bên trong bộ nhớ hệ thống và tiêu thụ tài sản máy chủ cần thiết. While SQL While loop is quicker than a cursor, reason found that cursor is defined by DECLARE CURSOR. Every emphasis of the loop will be executed inside system memory and consuming required server assets.

Vòng lặp nào nhanh hơn trong SQL Server?

Theo thứ tự hiệu suất, nó sẽ là. 1. Con trỏ Tua nhanh (hầu hết các con trỏ có thể là FF), 2. Trong khi vòng lặp, 3. SP đệ quy