ORACLE COMMON
ORACLE LOOP/CONDITION
ORACLE ADVANCED
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Tìm hiểu Sequence trong Oracle

Trong bài này chúng ta sẽ tìm hiểu một đối tượng thường được dùng để tạo ra các số tăng dần hoặc giảm dần trong Oracle, đó là Sequence. Mỗi một Sequence được tạo ra sẽ được lưu trữ trên hệ thống cho đến khi bạn thực hiện một thao tác xóa.

1. Sequence trong Oracle là gì?

Sequence là đối tượng đặc biệt trong Oracle, nó có nhiều thuộc tính giúp quản lý và tạo ra các số tăng dần hoặc giảm dần, được lưu trữ vĩnh viễn và global trong database, trừ khi bạn xóa nó.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cấu trúc của Sequence như sau:

CREATE SEQUENCE emp_sequence
      INCREMENT BY 1
      START WITH 1
      MAXVALUE 30
      NOCYCLE;

Trong đó:

  • INCREMENT BY 1: Là bước nhảy mỗi lần là 1 đơn vị, bạn có thể đổi thành 2 hay 3 đơn vị tùy thích.
  • START WITH 1: Là giá trị ban đầu, bạn có thể đổi 1 thành một số bất kì
  • MAXVALUE 30: Là giá trị tối đa, nếu bạn muốn không giới hạn thì đổi thành NOMAXVALUE.
  • NOCYCLE: Cấu hình không thể tạo ra thêm giá trị sau khi đạt tới mức tối đa hoặc tối thiểu. Nếu bạn muốn vẫn tạo thì đổi thành CYCLE.

Ngoài ra vẫn còn rất nhiều tham số khác và bạn có thể tham khảo tại đây.

2. Tạo sequence trong Oracle

Giả sử mình chạy câu lệnh sau để tạo sequence.

CREATE SEQUENCE my_sequence
  INCREMENT BY 10
  MINVALUE 10
  MAXVALUE 30
  CYCLE;

Ý nghĩa của nó như sau: Tạo ra sequence có tên là my_sequence, bước nhảy là 10, giá trị bắt đầu là 10, giá trị tối đa là 30, có thể lặp lại từ đầu nếu vượt quá giá trị tối đa.

Ta thử thực hành một vài lệnh xem có đúng không nhé.

SELECT my_sequence.NEXTVAL FROM dual;
# Kết quả: 10

SELECT my_sequence.NEXTVAL FROM dual;
# Kết quả: 20

SELECT my_sequence.NEXTVAL FROM dual;
# Kết quả: 30

SELECT my_sequence.NEXTVAL FROM dual;
# Kết quả: 10

SELECT my_sequence.NEXTVAL FROM dual;
# Kết quả: 20

Mỗi khi ta gọi tới my_sequence.NEXTVAL thì giá trị của nó sẽ được tăng lên. Theo mặc định thì sequence hoạt động global nên bạn có thể gọi nó ở bất kì ở đâu trong câu lệnh SQL.

3. Sửa sequence trong Oracle

Bạn hoàn toàn có thể sửa sequence bằng câu lệnh ALTER SEQUENCE và đằng sau đó là những thông cần tin thay đổi, nếu thuộc tính nào bạn không liệt kê tức là nó sẽ giữ giá trị cũ như lúc khơi tạo. Hãy xem ví dụ minh họa dưới đây.

ALTER SEQUENCE my_sequence
  INCREMENT BY 1
  MINVALUE 1
  MAXVALUE 1000000
  NOCYCLE;

Bạn cần phải kiểm tra kỹ sequence có đang sử dụng ở đâu không, nếu có thì những thay đổi này có ảnh hưởng gì không nhé, khi nào chắc chắn mọi thứ ổn thì hãy thực hiện.

4. Xóa sequence trong Oracle

Cũng giống như các đối tượng khác, bạn có thể xóa sequence bằng cách sử dụng lênh DROP SEQUENCE.

DROP SEQUENCE my_seq_1;
DROP SEQUENCE my_seq_2;
DROP SEQUENCE my_schema.my_seq_3;

Ở ví dụ thứ 3 là bạn đã chỉ rõ sequence thuộc schema nào.

Một ứng dụng thường dùng của sequence trong thực tế đó là thiết lập ID tăng tự động.

Trên là những cách dùng cơ bản của sequence, nếu bạn muốn tìm hiểu chi tiết hơn thì hãy lên trang chủ của Oracle để đọc phần tài liệu hướng dẫn của nó nhé.

Cùng chuyên mục:

Hàm Hàm ASCII trong Oracle

Hàm Hàm ASCII trong Oracle

Cách sử dụng hàm Hàm ASCII trong 150

Hàm Hàm ASCIISTR trong Oracle

Hàm Hàm ASCIISTR trong Oracle

Cách sử dụng hàm Hàm ASCIISTR trong 150

Hàm Hàm CHR trong Oracle

Hàm Hàm CHR trong Oracle

Cách sử dụng hàm Hàm CHR trong 150

Hàm Hàm COMPOSE trong Oracle

Hàm Hàm COMPOSE trong Oracle

Cách sử dụng hàm Hàm COMPOSE trong 150

Hàm Hàm CONCAT trong Oracle

Hàm Hàm CONCAT trong Oracle

Cách sử dụng hàm Hàm CONCAT trong 150

Hàm Hàm CONVERT trong Oracle

Hàm Hàm CONVERT trong Oracle

Cách sử dụng hàm Hàm CONVERT trong 150

Hàm Hàm DECOMPOSE trong Oracle

Hàm Hàm DECOMPOSE trong Oracle

Cách sử dụng hàm Hàm DECOMPOSE trong 150

Hàm Hàm DUM trong Oracle

Hàm Hàm DUM trong Oracle

Cách sử dụng hàm Hàm DUM trong 150

Hàm Hàm INITCAP trong Oracle

Hàm Hàm INITCAP trong Oracle

Cách sử dụng hàm Hàm INITCAP trong 150

Hàm Hàm INSTR trong Oracle

Hàm Hàm INSTR trong Oracle

Cách sử dụng hàm Hàm INSTR trong 150

Hàm Hàm INSTR2 trong Oracle

Hàm Hàm INSTR2 trong Oracle

Cách sử dụng hàm Hàm INSTR2 trong 150

Hàm Hàm INSTR4 trong Oracle

Hàm Hàm INSTR4 trong Oracle

Cách sử dụng hàm Hàm INSTR4 trong 150

Hàm Hàm INSTRB trong Oracle

Hàm Hàm INSTRB trong Oracle

Cách sử dụng hàm Hàm INSTRB trong 150

Hàm Hàm INSTRC trong Oracle

Hàm Hàm INSTRC trong Oracle

Cách sử dụng hàm Hàm INSTRC trong 150

Hàm Hàm LENGTH trong Oracle

Hàm Hàm LENGTH trong Oracle

Cách sử dụng hàm Hàm LENGTH trong 150

Hàm Hàm LENGTH2 trong Oracle

Hàm Hàm LENGTH2 trong Oracle

Cách sử dụng hàm Hàm LENGTH2 trong 150

Hàm Hàm LOWER trong Oracle

Hàm Hàm LOWER trong Oracle

Cách sử dụng hàm Hàm LOWER trong 150

Hàm Hàm LPAD trong Oracle

Hàm Hàm LPAD trong Oracle

Cách sử dụng hàm Hàm LPAD trong 150

Hàm Hàm LTRIM trong Oracle

Hàm Hàm LTRIM trong Oracle

Cách sử dụng hàm Hàm LTRIM trong 150

Hàm Hàm NCHR trong Oracle

Hàm Hàm NCHR trong Oracle

Cách sử dụng hàm Hàm NCHR trong 150

Top