Đôi khi bạn có thể cần tạo chuỗi trong MySQL. Vì MySQL không có chức năng tích hợp để tạo chuỗi, bạn cần tạo nó thông qua truy vấn SQL. Dưới đây là cách tạo trình tự trong MySQL bằng cách sử dụng truy vấn trình tự MySQL.
Cách tạo trình tự trong MySQL
Dưới đây là các bước để tạo chuỗi trong MySQL. Có nhiều cách khác nhau để tạo chuỗi trong MySQL.
Tạo trình tự bằng AUTO_INCREMENT
Bạn có thể chỉ cần lưu trữ chuỗi MySQL của mình trong một cột bằng cách sử dụng thuộc tính AUTO_INCREMENT trong quá trình tạo bảng. Giả sử bạn muốn tạo bảng đơn hàng (id, order_date, số lượng) và lưu trữ chuỗi trong id cột.
mysql> create table orders(id int AUTO_INCREMENT PRIMARY KEY, order_date date, amount int); mysql> insert into orders(order_date, amount) values('2020-08-01', 250), ('2020-08-02',125), ('2020-08-03',300); mysql> select * from orders; +----+------------+--------+ | id | order_date | amount | +----+------------+--------+ | 1 | 2020-08-01 | 250 | | 2 | 2020-08-02 | 125 | | 3 | 2020-08-03 | 300 | +----+------------+--------+
Trong bảng trên, chúng tôi xác định id làm khóa chính của chúng tôi và bao gồm tùy chọn AUTO_INCREMENT để tự động tăng và lưu trữ các giá trị khóa chính trong đó.
Xin lưu ý, MySQL cho phép bạn chỉ có một cột AUTO_INCREMENT trên mỗi bảng và cột đó cũng là khóa chính.
Trong truy vấn INSERT ở trên, chúng tôi chỉ cung cấp các giá trị cho order_date và số lượng nhưng không phải là id nhưng MySQL tự động tạo chuỗi cho nó.
Phần thưởng đọc:Cách so sánh hai bảng trong MySQL
Tạo trình tự mà không cần sử dụng AUTO_INCREMENT
Giả sử bạn muốn tạo một cột trình tự khác mà không sử dụng AUTO_INCREMENT. Trong trường hợp đó, bạn sẽ cần sử dụng câu lệnh UPDATE để tính toán toán học và điền vào cột trình tự này.
Ví dụ:hãy để chúng tôi thêm một chuỗi vào bảng phía trên để lưu trữ một chuỗi mới.
mysql> alter table orders add column sequence int;
Phần thưởng đọc:Cách sao chép bảng trong MySQL
Tiếp theo, chúng ta sử dụng câu lệnh UPDATE để tạo chuỗi trong MySQL. Chúng tôi sẽ tạo một chuỗi hai lần id giá trị cột
mysql> update orders set sequence=2*id; mysql> select * from orders; +----+------------+--------+----------+ | id | order_date | amount | sequence | +----+------------+--------+----------+ | 1 | 2020-08-01 | 250 | 2 | | 2 | 2020-08-02 | 125 | 4 | | 3 | 2020-08-03 | 300 | 6 | +----+------------+--------+----------+
Phần thưởng đọc:Cách nhận dữ liệu một tháng trước trong MySQL
Chúng ta cũng có thể tạo một chuỗi phi tuyến tính bằng cách cập nhật công thức được sử dụng trong câu lệnh UPDATE. Đây là truy vấn SQL để tạo chuỗi các giá trị Hình vuông (y x y) của id cột
mysql> update orders set sequence=id*id; mysql> select * from orders; +----+------------+--------+----------+ | id | order_date | amount | sequence | +----+------------+--------+----------+ | 1 | 2020-08-01 | 250 | 1 | | 2 | 2020-08-02 | 125 | 4 | | 3 | 2020-08-03 | 300 | 9 | +----+------------+--------+----------+
Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!