Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tạo trình tự trong MySQL

Đô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 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!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tôi có thể lặp qua tất cả các hàng của bảng? (MySQL)

  2. Làm việc với các cột TIMESTAMP của MySQL trong SQL Server

  3. Làm cách nào để xóa tất cả các bảng MySQL khỏi dòng lệnh mà không có quyền cơ sở dữ liệu DROP?

  4. MySQL Trigger chỉ sau khi cập nhật nếu hàng đã thay đổi

  5. một cách tiếp cận tốt hơn so với việc lưu trữ mật khẩu mysql ở dạng văn bản thuần túy trong tệp cấu hình?