VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test

SQL cơ bản

SQL là gì? SQL - RDBMS là gì? SQL - Các hệ quản trị CSDL SQL - Cú pháp SQL - Kiểu dữ liệu SQL - Toán tử SQL - Biểu thức SQL - Create Database SQL - Drop Database SQL - Select Database SQL - Create Table SQL - Drop Table SQL - Câu lệnh Insert SQL - Câu lệnh Select SQL - Mệnh đề Where SQL - Toán tử AND & OR SQL - Câu lệnh Update SQL - Câu lệnh Delete SQL - Mệnh đề Like SQL - Mệnh đề Top SQL - Mệnh đề Order By SQL - Mệnh đề Group By SQL - Từ khóa Distinct

SQL nâng cao

SQL - Các ràng buộc SQL - Mệnh đề JOIN SQL - INNER JOIN SQL - RIGHT JOIN SQL - LEFT JOIN SQL - FULL JOIN SQL - SELF JOIN SQL - Mệnh đề UNION SQL - Giá trị NULL SQL - Sử dụng Alias SQL - Sử dụng Index SQL - Lệnh Alter SQL - Lệnh Truncate Table SQL - Sử dụng View SQL - Mệnh đề Having SQL - Transaction SQL - Ký tự đại diện SQL - Các hàm xử lý Date SQL - Bảng tạm thời SQL - Clone Table SQL - Sub Querie SQL - Sequence SQL - Xử lý Duplicate
1 / 3
❮ ❯

Sequence trong SQL


Sub query trong SQL
Xử lý duplicate 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.

Nội dung chính

  • Sử dụng cột AUTO_INCREMENT
    • Ví dụ
  • Đổi lại thứ tự hiện tại
  • Bắt đầu một sequence ở một giá trị đặc biệt

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

Sub query trong SQL
Xử lý duplicate trong SQL

Recent Updates

Xử lý duplicate trong SQLWeb SQL Database trong HTML5Lệnh DELETE MySQL trong PythonLệnh UPDATE MySQL trong PythonLệnh SELECT MySQL trong PythonLệnh INSERT MySQL trong PythonTạo bảng MySQL trong PythonTạo new database MySQL trong PythonKết nối Python với MySQLCài đặt môi trường MySQL cho PythonVí dụ Hibernate 3 XML Mapping - SQLServer 2017Ví dụ Hibernate 4 Annotation Mapping - MySQLSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml