MySQL cho vòng lặp INSERT

Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh vòng lặp WHILE của MySQL để thực thi một hoặc nhiều câu lệnh lặp đi lặp lại miễn là một điều kiện là đúng

Giới thiệu về câu lệnh vòng lặp MySQL WHILE

Vòng lặp WHILE là một câu lệnh vòng lặp thực thi một khối mã lặp đi lặp lại miễn là một điều kiện là đúng

Đây là cú pháp cơ bản của câu lệnh WHILE

[begin_label:] WHILE search_condition DO statement_list END WHILE [end_label]

Code language: SQL [Structured Query Language] [sql]

Trong cú pháp này

Đầu tiên, chỉ định điều kiện tìm kiếm sau từ khóa WHILE

WHILE kiểm tra

CREATE TABLE calendars[ id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY[id] ];

Code language: SQL [Structured Query Language] [sql]
1 ở đầu mỗi lần lặp

Nếu

CREATE TABLE calendars[ id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY[id] ];

Code language: SQL [Structured Query Language] [sql]
1 đánh giá thành

CREATE TABLE calendars[ id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY[id] ];

Code language: SQL [Structured Query Language] [sql]
3, thì WHILE thực hiện

CREATE TABLE calendars[ id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY[id] ];

Code language: SQL [Structured Query Language] [sql]
5 miễn là

CREATE TABLE calendars[ id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY[id] ];

Code language: SQL [Structured Query Language] [sql]
1 là

CREATE TABLE calendars[ id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY[id] ];

Code language: SQL [Structured Query Language] [sql]
3

Vòng lặp WHILE được gọi là vòng lặp kiểm tra trước vì nó kiểm tra

CREATE TABLE calendars[ id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY[id] ];

Code language: SQL [Structured Query Language] [sql]
1 trước khi

CREATE TABLE calendars[ id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY[id] ];

Code language: SQL [Structured Query Language] [sql]
5 thực thi

Thứ hai, chỉ định một hoặc nhiều câu lệnh sẽ thực thi giữa các từ khóa

DELIMITER $$ CREATE PROCEDURE InsertCalendar[dt DATE] BEGIN INSERT INTO calendars[ fulldate, day, month, quarter, year ] VALUES[ dt, EXTRACT[DAY FROM dt], EXTRACT[MONTH FROM dt], EXTRACT[QUARTER FROM dt], EXTRACT[YEAR FROM dt] ]; END$$ DELIMITER ;

Code language: SQL [Structured Query Language] [sql]
1 và

DELIMITER $$ CREATE PROCEDURE InsertCalendar[dt DATE] BEGIN INSERT INTO calendars[ fulldate, day, month, quarter, year ] VALUES[ dt, EXTRACT[DAY FROM dt], EXTRACT[MONTH FROM dt], EXTRACT[QUARTER FROM dt], EXTRACT[YEAR FROM dt] ]; END$$ DELIMITER ;

Code language: SQL [Structured Query Language] [sql]
2

Thứ ba, chỉ định các nhãn tùy chọn cho câu lệnh WHILE ở đầu và cuối cấu trúc vòng lặp

Lưu đồ sau đây minh họa câu lệnh vòng lặp MySQL WHILE

Ví dụ về câu lệnh vòng lặp MySQL WHILE

Đầu tiên, tạo một bảng có tên_______9_______6 lưu trữ ngày và thông tin ngày bắt nguồn như ngày, tháng, quý và năm

CREATE TABLE calendars[ id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY[id] ];

Code language: SQL [Structured Query Language] [sql]

Thứ hai, tạo một thủ tục được lưu trữ mới để chèn một ngày vào bảng

DELIMITER $$ CREATE PROCEDURE InsertCalendar[dt DATE] BEGIN INSERT INTO calendars[ fulldate, day, month, quarter, year ] VALUES[ dt, EXTRACT[DAY FROM dt], EXTRACT[MONTH FROM dt], EXTRACT[QUARTER FROM dt], EXTRACT[YEAR FROM dt] ]; END$$ DELIMITER ;

Code language: SQL [Structured Query Language] [sql]
6

DELIMITER $$ CREATE PROCEDURE InsertCalendar[dt DATE] BEGIN INSERT INTO calendars[ fulldate, day, month, quarter, year ] VALUES[ dt, EXTRACT[DAY FROM dt], EXTRACT[MONTH FROM dt], EXTRACT[QUARTER FROM dt], EXTRACT[YEAR FROM dt] ]; END$$ DELIMITER ;

Code language: SQL [Structured Query Language] [sql]

Thứ ba, tạo một thủ tục được lưu trữ mới

DELIMITER $$ CREATE PROCEDURE InsertCalendar[dt DATE] BEGIN INSERT INTO calendars[ fulldate, day, month, quarter, year ] VALUES[ dt, EXTRACT[DAY FROM dt], EXTRACT[MONTH FROM dt], EXTRACT[QUARTER FROM dt], EXTRACT[YEAR FROM dt] ]; END$$ DELIMITER ;

Code language: SQL [Structured Query Language] [sql]
8 tải một số ngày bắt đầu từ ngày bắt đầu vào bảng

DELIMITER $$ CREATE PROCEDURE InsertCalendar[dt DATE] BEGIN INSERT INTO calendars[ fulldate, day, month, quarter, year ] VALUES[ dt, EXTRACT[DAY FROM dt], EXTRACT[MONTH FROM dt], EXTRACT[QUARTER FROM dt], EXTRACT[YEAR FROM dt] ]; END$$ DELIMITER ;

Code language: SQL [Structured Query Language] [sql]
6

DELIMITER $$ CREATE PROCEDURE LoadCalendars[ startDate DATE, day INT ] BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter

Chủ Đề