Bỏ qua đến nội dung
Bỏ qua điều hướng
Đăng nhập
MT.NET.VN

Viewbh Sequence Trong Sql2023 04 12 11 14 15

Tìm kiếm
Thuộc khóa học · baihoc_sub = 50

MS SQL ( Basic to Pro )

Bài 1 / 1 trong khóa học.

Xem khóa học
100%
Bài trướcĐây là bài đầu tiên Bài sauĐây là bài cuối cùng
MT LEARNING · LESSON

Sequence trong SQL

Sequence trong SQL

Sequence trong SQL

Sequence trong SQL



Một sequence trong SQL là một tập các số nguyên 1, 2, 3, ... được tạo theo thứ tự theo yêu cầu. Các sequence thường được sử dụng trong cơ sở dữ liệu vì nhiều ứng dụng đòi hỏi mỗi hàng trong một bảng chứa một giá trị duy nhất và sequence cung cấp một cách dễ dàng đáp ứng yêu cầu này.

Bài này mô tả cách sử dụng sequence trong MySQL.

Sử dụng cột AUTO_INCREMENT

Cách đơn giản nhất trong MySQL để sử dụng các sequence là định nghĩa một cột là AUTO_INCREMENT.

Ví dụ

Ví dụ sau đây tạo ra một bảng và sau đó nó sẽ chèn một vài hàng trong bảng này, nơi nó không phải yêu cầu phải đưa ra một bản ghi ID vì nó tự động tăng lên bởi MySQL.

Tạo bảo STUDENT:

 CREATE TABLE STUDENT (   id INT UNSIGNED NOT NULL AUTO_INCREMENT,   PRIMARY KEY (id),   name VARCHAR(30) NOT NULL,   age INT NOT NULL,   address VARCHAR(30) NOT NULL ); 
 Query OK, 0 rows affected (0.02 sec) 

Chèn dữ liệu vào bảng STUDENT:

 INSERT INTO STUDENT (id, name, age, address) VALUES   (NULL, 'Tam', 17, 'Ha Noi'); INSERT INTO STUDENT (id,name, age, address) VALUES   (NULL, 'Hai', 19, 'Ha Noi'); INSERT INTO STUDENT (id,name, age, address) VALUES   (NULL, 'Ba', 18, 'Ha Noi'); 

Hoặc có thể không cần insert id:

 INSERT INTO STUDENT (name, age, address) VALUES   ('Tam', 17, 'Ha Noi'); INSERT INTO STUDENT (id,name, age, address) VALUES   ('Hai', 19, 'Ha Noi'); INSERT INTO STUDENT (id,name, age, address) VALUES   ('Ba', 18, 'Ha Noi'); 
 Query OK, 3 rows affected (0.02 sec) Records: 3  Duplicates: 0  Warnings: 0 

Select dữ liệu từ bẳng STUDENT:

 SELECT * FROM STUDENT ORDER BY id; 
 +----+----------+---------+-----------+ | id | name     | age     | address   | +----+----------+---------+-----------+ |  1 | Tam      | 17      | Ha Noi    | |  2 | Hai      | 19      | Ha Noi    | |  3 | Ba       | 18      | Ha Noi    | +----+----------+---------+-----------+ 3 rows in set (0.00 sec) 


Đổi lại thứ tự hiện tại

Có thể có trường hợp bạn đã xóa nhiều bản ghi từ một bảng và bạn muốn sắp xếp lại tất cả các bản ghi. Điều này có thể được thực hiện bằng cách sử dụng một mẹo đơn giản, nhưng bạn nên cẩn thận để làm điều này và kiểm tra xem bảng của bạn có tham gia với một bảng khác hay không.

Nếu bạn xác định rằng resequencing một cột AUTO_INCREMENT là không thể tránh khỏi, cách để làm điều đó là để thả các cột từ bảng, sau đó thêm nó một lần nữa.

Ví dụ sau cho thấy làm thế nào để renumber các giá trị id trong bảng côn trùng sử dụng kỹ thuật này.

 ALTER TABLE STUDENT DROP id; ALTER TABLE STUDENT ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (id); 

Bắt đầu một sequence ở một giá trị đặc biệt

Theo mặc định, MySQL sẽ bắt đầu chuỗi từ 1, nhưng bạn cũng có thể chỉ định bất kỳ số nào khác tại thời điểm tạo bảng.

Khối mã sau đây có một ví dụ mà MySQL sẽ bắt đầu sequence từ 100.

 CREATE TABLE STUDENT (   id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100,   PRIMARY KEY (id),   name VARCHAR(30) NOT NULL,   age INT NOT NULL,   address VARCHAR(30) NOT NULL ); 

Ngoài ra, bạn có thể tạo bảng và sau đó đặt giá trị sequence ban đầu bằng ALTER TABLE.

 ALTER TABLE t AUTO_INCREMENT = 100; 
Bài tiếp theo: Xử lý duplicate trong SQL


ĐÁNH GIÁ NỘI DUNG 0.0/5 0 lượt đánh giá
Bạn thấy nội dung này thế nào?
Mỗi trình duyệt/tài khoản được chấm lại sau 24 giờ.
Báo bài lỗiGiúp MT.Net.VN phát hiện nội dung cần kiểm tra
Báo lỗi được ghi vào hệ thống để Admin kiểm tra. Không dùng chức năng này để gửi hỗ trợ cá nhân.

Bài học liên quan

Các bài khác có cùng khóa học cha theo baihoc_sub.

Bài học vừa xem

Lịch sử gần đây trên trình duyệt này.

Home Dịch vụ Khóa học CPanel