Bạn đã từng nghe đến khái niệm "SEQUENCE" trong SQL chưa? Đó là một tập hợp các số nguyên được tạo thứ tự theo yêu cầu. SEQUENCE thường được sử dụng trong cơ sở dữ liệu vì nó đáp ứng yêu cầu của nhiều ứng dụng, đặc biệt là trong việc đảm bảo mỗi hàng trong một bảng chứa một giá trị duy nhất, tương tự như khóa chính.
Cách tạo Sequence trong SQL
Để tạo một SEQUENCE trong SQL, bạn cần sử dụng các câu lệnh sau:
CREATE SEQUENCE sequence_name
START WITH initial_value
INCREMENT BY increment_value
MINVALUE minimum_value
MAXVALUE maximum_value
CYCLE|NOCYCLE;
Trong đó:
sequence_name
là tên của SEQUENCE.initial_value
là giá trị ban đầu của SEQUENCE. Giá trị này phải thỏa mãn điều kiện: minimum <= initial_value <= maximum.increment_value
là khoảng giá trị mà SEQUENCE tăng lên mỗi lần. Nó có thể là một số dương hoặc âm.minimum_value
là giá trị nhỏ nhất của SEQUENCE.maximum_value
là giá trị lớn nhất của SEQUENCE.CYCLE
cho phép SEQUENCE quay trở lại từ đầu khi giá trị của nó đạt đến giới hạn.NOCYCLE
nếu giá trị của SEQUENCE đạt đến giới hạn, nó sẽ ném ra một exception.
Dưới đây là một ví dụ cụ thể:
CREATE SEQUENCE sequence_1
start with 1
increment by 1
minvalue 0
maxvalue 100
cycle;
Bạn cũng có thể tạo một SEQUENCE giảm dần:
CREATE SEQUENCE sequence_2
start with 100
increment by -1
minvalue 1
maxvalue 100
cycle;
Sử dụng AUTO_INCREMENT
Cách đơn giản nhất trong MySQL để sử dụng SEQUENCE là định nghĩa một cột là AUTO_INCREMENT. Điều này sẽ tự động đánh số cho các hàng trong bảng.
Ví dụ, để tạo bảng NHANVIEN và chèn một số hàng vào bảng này, bạn không cần phải cung cấp giá trị cho cột ID vì nó sẽ được tự động đánh số bởi MySQL.
CREATE TABLE NHANVIEN
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name VARCHAR(30) NOT NULL,
date DATE NOT NULL,
origin VARCHAR(30) NOT NULL
);
Sau đó, bạn có thể chèn dữ liệu vào bảng:
INSERT INTO NHANVIEN (id,name,date,origin)
VALUES (NULL,'hai','1994-04-10','dong nai'),
(NULL,'ha','2012-09-10','hai phong'),
(NULL,'tien','1986-04-10','ha noi');
Để lấy dữ liệu từ bảng NHANVIEN, bạn có thể sử dụng câu lệnh SELECT:
SELECT * FROM NHANVIEN ORDER BY id;
Thay đổi số thứ tự của một SEQUENCE đang tồn tại
Đôi khi, bạn có thể phải xóa nhiều bản ghi từ một bảng và muốn sắp xếp lại thứ tự của các bản ghi. Để thực hiện việc này, bạn có thể sử dụng một mẹo đơn giản nhưng cần cẩn thận và kiểm tra xem bảng của bạn có đang kết hợp với một bảng khác hay không.
Để tái đánh số một cột AUTO_INCREMENT đã tồn tại, bạn chỉ cần xóa cột này từ bảng và thêm lại nó. Dưới đây là một ví dụ minh họa:
ALTER TABLE NHANVIEN DROP id;
ALTER TABLE NHANVIEN
ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id);
Bắt đầu SEQUENCE từ một giá trị cụ thể
Mặc định, SEQUENCE bắt đầu từ 1, nhưng bạn cũng có thể chỉ định một số khác tại thời điểm tạo bảng.
Ví dụ sau sẽ bắt đầu SEQUENCE từ 25:
CREATE TABLE NHANVIEN
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT = 25,
PRIMARY KEY (id),
ten VARCHAR(30) NOT NULL,
ngaysinh DATE NOT NULL,
quequan VARCHAR(30) NOT NULL
);
Ngoài ra, bạn cũng có thể tạo bảng trước và sau đó đặt giá trị khởi tạo cho SEQUENCE bằng lệnh ALTER TABLE:
ALTER TABLE t AUTO_INCREMENT = 25;
Khóa học Data Engineer tại INDA cung cấp một lộ trình học tập bài bản và chuyên nghiệp cho những ai muốn trở thành một kỹ sư dữ liệu. Tại INDA, bạn sẽ được đào tạo từ kiến thức cơ bản cho đến nâng cao bởi các giảng viên và trợ giảng giàu kinh nghiệm.
Lộ trình đào tạo trở thành Data Engineer tại INDA bao gồm:
- Kiến thức về ngôn ngữ truy vấn SQL và công cụ SQL Server.
- Hiểu và thành thạo ETL và Data Warehouse.
- Biết cách biểu diễn trực quan hóa dữ liệu với Power BI.
- Kiến thức về Data Lake/Big Data.
Không thể phủ nhận rằng Data Engineer đang trở thành một xu hướng nghề nghiệp trong thời đại mới, khi công nghệ thông tin phát triển không ngừng và nhu cầu tuyển dụng các kỹ sư dữ liệu của doanh nghiệp ngày càng tăng cao. Với chia sẻ về nghề Data Engineer này, INDA hy vọng sẽ giúp bạn có cái nhìn tổng quan về công việc cũng như định hướng của mình.
Nguồn: Internet