Blog

SQL | SEQUENCE – Dãy số tăng tự động

Last updated on May 17th, 2024 at 10:30 am

SEQUENCE là một tập hợp các số nguyên được tạo thứ tự theo yêu cầu. Các SEQUENCE thường được sử dụng trong cơ sở dữ liệu vì đáp ứng yêu cầu của nhiều ứng dụng là đòi hỏi 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

CREATE SEQUENCE sequence_name

START WITH initial_value

INCREMENT BY increment_value

MINVALUE minimum value

MAXVALUE maximum value

CYCLE|NOCYCLE ;

sequence_name: tên sequence.

initial_value: giá trị bắt đầu của sequence. minimum <= initial_value <= maximum

increment_value: khoảng giá trị mà mỗi lần SEQUENCE tăng, nó có thể là một số dương hoặc âm

minimum_value: Giá trị nhỏ nhất của sequence.

maximum_value: Giá trị lớn nhất của sequence.

cycle: Khi gía trị của SEQUENCE đạt đến giới hạn nó sẽ quay trở lại từ đầu

nocycle: Khi đạt gía trị lớn nhất thì nó sẽ ném ra exception

Ta sẽ có 1 ví dụ: tạo một SEQUENCE có thứ tự tăng dần, mỗi lần tăng lên 1 thì giá trị nhỏ nhất là 0 và lớn nhất là 100 và SEQUENCE sẽ tự động lặp lại ban đầu khi nó đạt đến giới hạn 100,

CREATE SEQUENCE sequence_1

start with 1

increment by 1

minvalue 0

maxvalue 100

cycle;

Một ví dụ khác tạo SEQUENCE giảm dần

CREATE SEQUENCE sequence_2

start with 100

increment by -1

minvalue 1

maxvalue 100

cycle;

Ví dụ tạo bảng Students sử dụng SEQUENCE được tạo ở trên.

CREATE TABLE students

(

ID number(10),

NAME char(20)

);

INSERT into students VALUES(sequence_1.nextval,’Ramesh’);

INSERT into students VALUES(sequence_1.nextval,’Suresh’);

Nếu SELECT bảng Students sẽ cho kết quả sau:

______________________

| ID | NAME |

————————

| 1 | Ramesh |

| 2 | Suresh |

Dãy số tự động tăng trong cơ sở dữ liệu MySQL

Sử dụng 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ụ: Tạo bảng và chèn một số hàng vào trong bảng này, không bắt buộc cung cấp ID vì nó được tự động đánh số bởi MySQL.

Tạo bảng NHANVIEN:

mysql> CREATE TABLE NHANVIEN

> (

> id INT UNSIGNED NOT NULL AUTO_INCREMENT,

> PRIMARY KEY (id),

> name VARCHAR(30) NOT NULL, # type of insect

> date DATE NOT NULL, # date collected

> origin VARCHAR(30) NOT NULL # where collected

);

Query OK, 0 rows affected (0.02 sec)

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

mysql> 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’);

  • Select dữ liệu từ bảng NHANVIEN:

mysql> SELECT * FROM NHANVIEN ORDER BY id;

+—-+————-+————+————+

| id | name | date | origin |

+—-+————-+————+————+

| 1 | hai | 1994-04-10 | dong nai |

| 2 | ha | 2012-09-10 | hai phong |

| 3 | tien | 1986-04-10 | ha noi |

+—-+————-+————+————+

3 rows in set (0.00 sec)

Thay đổi số thứ tự một SEQUENCE đang tồn tại

Sẽ có trường hợp bạn 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ác bản ghi. Để thực hiện điều này bạn chỉ cần sử dụng một mẹo đơn giản, nhưng nên cẩn thận và kiểm tra xem bảng của bạn có đang join với một bảng khác hay không.

Nếu đã quyết định đánh số lại một cột AUTO_INCREMENT thì bạn thực hiện bằng cách xóa cột này từ bảng, sau đó thêm lại. Ví dụ sau minh họa cách đánh số lại các giá trị id trong bảng NHANVIEN bởi sử dụng kỹ thuật này.

Ví dụ sau minh họa cách đánh số lại các giá 

mysql> ALTER TABLE NHANVIEN DROP id;

mysql> ALTER TABLE NHANVIEN

ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,

ADD PRIMARY KEY (id);

Bắt đầu SEQUENCE tại một giá trị cụ thể

Theo mặc định, SEQUENCE 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.

Ví dụ sau sẽ bắt đầu SEQUENCE từ 25:

mysql> 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ó thể tạo bảng và sau đó đặt giá trị khởi tạo cho SEQUENCE bằng lệnh ALTER TABLE.

mysql> ALTER TABLE t AUTO_INCREMENT = 25;

Lộ trình đào tạo trở thành Data Engineer tại INDA

Khóa học Data Engineer tại INDA cung cấp một lộ trình bài bản, chuyên nghiệp cho bất cứ ai có mong muốn trở thành một kỹ sư dữ liệu. Các kiến thức tại INDA được đào tạo từ kiến thức cơ bản tới nâng cao bởi các giảng viên, trợ giảng dày dặn 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 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 được rằng Data Engineer dường như đang trở thành xu hướng nghề trong thời đại mới, khi mà CNTT 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 là rất lớn. Với chút chia sẻ về nghề kỹ sư dữ liệu, INDA hi vọng sẽ giúp bạn có cái nhìn tổng quát về công việc cũng như định hướng của mình.

Nguồn: Internet

Leave a Reply

Your email address will not be published. Required fields are marked *

Data Pola Mahjong Ways Terhadap Frekuensi Scatter yang Bisa Jadi Acuan Dinamika Tempo Permainan Terhadap Probabilitas Dan Pengambilan Keputusan Mengenal Pola Olympus Gate Tanpa Banyak Teori Efektivitas Keputusan Bermain Berdasarkan Jejak Statistik Pola Setiap Sesi Adaptasi Strategi Pemain Menghadapi Pergeseran Ritma Perilaku Elemen Digital Dinamika Distribusi Simbol Mengukur Potensi Siklus Pola Putaran Yang Makin Menarik Evaluasi Pergeseran Algoritma RNG Membentuk Peluang Putaran Persentase Teoritis Kajian Perilaku Kompetitif Pemain yang Membuat Putaran Berulang Membentuk Momentum Transisi Panduan Pemula Masuk Dunia Kasino Online Terbaru Setelah Update Pendekatan Statistik dalam Sesi Bermain Kasino Online Merespons Perubahan Formasi Reel Analisis Kemunculan Multiplier Sweet Bonanza Melalui Pendekatan Ritme Dinamis Starlight Princess Sajikan Scatter Ketika Fenomena Pola yang Sering Berubah-ubah Formasi Black Scatter Fitur Mahjong Wins 3 Mengukur Potensi Kemenangan Besar Pengelolaan Ritme Reel Membuka Peluang Strategis Dalam Meningkatkan Efektivitas Keputusan Pemain Menilai Efektivitas Kasino Online Terhadap Responsivitas Fitur Putaran Otomatis Mahjong Ways Evolusi Visual Integrasi Animasi Tradisional ke Distribusi Winrate Stabil Mengenal Pola Kartu Baccarat Kasino Online Tanpa Banyak Teori Analisis Pengaruh Ritme Pola Gates Of Olympus Terhadap Peluang Turunnya Multiplier Mengukur Efektivitas RNG Mahjong Wins Dalam Membaca Pergeseran Algoritma Cai Shen Wins Yang Menawarkan Hujan Koin Beri Dampak Terhadap Tingkat Retensi Pengguna Dinamika Pergeseran Simbol Starlight Princess Saat Tempo Mulai Dipercepat Secara Berkala Mengenal Black Scatter Mahjong Wins 3 Tanpa Pola Ribet Panduan Visual Membaca Pergerakan Formasi Mahjong Ways Tanpa Harus Bergantung Pada Teori Rumit Pemetaan Pola Dinamis dalam Membaca Perubahan Struktur Interaksi Digital Strategi Mengelola Momentum Taruhan Menggunakan Fitur Putaran Otomatis Yang Lebih Stabil Black Scatter RTP Yang Menawarkan Hasil Optimal Serta Peluang Jangka Panjang Distribusi Probabilitas Perkembangan Teknologi Bawa Baccarat ke Algoritma Sistem Otomatis Evaluasi Efektivitas Interaksi Digital Kemunculan Black Scatter Secara Beruntun Mengenal Pola Gold Scatter Starlight Princess Tanpa Banyak Teori Transformasi Mekanisme Sistem Dalam Stabilitas Persentase Peluang Kemenangan Pemain bujangjp slotsensa slot88 slot4d slot4d slot4d sv388 slot88 suhubet demo slot slot 4d demo slot https://fabritec.pe/asesor.php suhubet bujangjp https://kibf.pk/ slotsensa buku303 slot4d sbobet slot gacor slot gacor slot gacor totogacor slot thailand https://www.jms.ac.in/admission-procedure/ slot gacor slot luar negeri slot gacor 4d totogacor slotsensa slot gacor slot gacor slotsensa https://adibintanpermata.com/ slot dana slot dana https://united-mgroup.com/ https://cliffcrestinn.com/ slot resmi demo slot slot thailand slot thailand https://www.mikehanrahan.com/ totogacor totogacor demo slot slot 4d totogacor totogacor demo slot totogacor slot thailand totogacor bujangjp situs gacor 4D situs gacor Situs Gacor 4D Thailand Situs Gacor 4D SLOT4D slot gacor