Hướng dẫn SQL

TRANG CHỦ SQL Giới thiệu SQL Cú pháp SQL Lựa chọn SQL SQL Chọn phân biệt SQL ở đâu SQL Và, Hoặc, Không Đặt hàng SQL theo Chèn SQL vào Giá trị rỗng trong SQL Cập nhật SQL SQL Delete SQL Select Top SQL Min và Max Số lượng SQL, Trung bình, Tổng SQL như Ký tự đại diện SQL SQL trong SQL giữa Bí danh SQL SQL tham gia Tham gia bên trong SQL SQL còn lại tham gia SQL Right Join Tham gia đầy đủ SQL SQL tự tham gia SQL Union Nhóm SQL bởi SQL có SQL tồn tại SQL Bất kỳ, Tất cả SQL chọn vào Chèn SQL vào vùng chọn Trường hợp SQL Hàm Null trong SQL Thủ tục lưu trữ SQL Nhận xét SQL Toán tử SQL

Cơ sở dữ liệu SQL

SQL Tạo cơ sở dữ liệu SQL Drop DB Cơ sở dữ liệu sao lưu SQL SQL Tạo bảng Bảng thả SQL Bảng thay thế SQL Các ràng buộc SQL SQL không rỗng SQL duy nhất Khóa chính SQL Khóa ngoại SQL Kiểm tra SQL SQL mặc định Chỉ mục SQL Tăng tự động SQL SQL Dates Chế độ xem SQL SQL Injection Lưu trữ SQL Các kiểu dữ liệu SQL

Tham chiếu SQL

Từ khóa SQL Các chức năng của MySQL Các chức năng của SQL Server Chức năng MS Access Tham khảo nhanh SQL

Ví dụ về SQL

Ví dụ về SQL Câu hỏi SQL Bài tập SQL Chứng chỉ SQL

Trường SQL AUTO INCREMENT


Trường AUTO INCREMENT

Tự động tăng cho phép một số duy nhất được tạo tự động khi một bản ghi mới được chèn vào bảng.

Thường thì đây là trường khóa chính mà chúng tôi muốn được tạo tự động mỗi khi một bản ghi mới được chèn vào.


Cú pháp cho MySQL

Câu lệnh SQL sau xác định cột "Personid" là trường khóa chính tự động tăng trong bảng "Người":

CREATE TABLE Persons (
    Personid int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (Personid)
);

MySQL sử dụng AUTO_INCREMENTtừ khóa để thực hiện tính năng tự động tăng.

Theo mặc định, giá trị bắt đầu cho AUTO_INCREMENTlà 1 và nó sẽ tăng lên 1 cho mỗi bản ghi mới.

Để cho phép AUTO_INCREMENTchuỗi bắt đầu bằng một giá trị khác, hãy sử dụng câu lệnh SQL sau:

ALTER TABLE Persons AUTO_INCREMENT=100;

Để chèn một bản ghi mới vào bảng "Người", chúng tôi sẽ KHÔNG phải chỉ định giá trị cho cột "Người" (một giá trị duy nhất sẽ được thêm tự động):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

Câu lệnh SQL ở trên sẽ chèn một bản ghi mới vào bảng "Người". Cột "Personid" sẽ được chỉ định một giá trị duy nhất. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen".


Cú pháp cho SQL Server

Câu lệnh SQL sau xác định cột "Personid" là trường khóa chính tự động tăng trong bảng "Người":

CREATE TABLE Persons (
    Personid int IDENTITY(1,1) PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

MS SQL Server sử dụng IDENTITYtừ khóa để thực hiện tính năng tự động tăng.

Trong ví dụ trên, giá trị bắt đầu cho IDENTITYlà 1 và nó sẽ tăng lên 1 cho mỗi bản ghi mới.

Mẹo: Để chỉ định rằng cột "Personid" phải bắt đầu ở giá trị 10 và tăng lên 5, hãy thay đổi nó thành IDENTITY(10,5).

Để chèn một bản ghi mới vào bảng "Người", chúng tôi sẽ KHÔNG phải chỉ định giá trị cho cột "Người" (một giá trị duy nhất sẽ được thêm tự động):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

Câu lệnh SQL ở trên sẽ chèn một bản ghi mới vào bảng "Người". Cột "Personid" sẽ được chỉ định một giá trị duy nhất. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen".



Cú pháp truy cập

Câu lệnh SQL sau xác định cột "Personid" là trường khóa chính tự động tăng trong bảng "Người":

CREATE TABLE Persons (
    Personid AUTOINCREMENT PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

MS Access sử dụng AUTOINCREMENTtừ khóa để thực hiện tính năng tự động tăng.

Theo mặc định, giá trị bắt đầu cho AUTOINCREMENTlà 1 và nó sẽ tăng lên 1 cho mỗi bản ghi mới.

Mẹo: Để chỉ định rằng cột "Personid" phải bắt đầu ở giá trị 10 và tăng lên 5, hãy thay đổi tự động tăng thành AUTOINCREMENT(10,5).

Để chèn một bản ghi mới vào bảng "Người", chúng tôi sẽ KHÔNG phải chỉ định giá trị cho cột "Người" (một giá trị duy nhất sẽ được thêm tự động):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

Câu lệnh SQL ở trên sẽ chèn một bản ghi mới vào bảng "Người". Cột "Personid" sẽ được chỉ định một giá trị duy nhất. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen".


Cú pháp cho Oracle

Trong Oracle, mã phức tạp hơn một chút.

Bạn sẽ phải tạo một trường tăng tự động với đối tượng chuỗi (đối tượng này tạo ra một chuỗi số).

Sử dụng CREATE SEQUENCEcú pháp sau:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;

Đoạn mã trên tạo một đối tượng trình tự được gọi là seq_woman, bắt đầu bằng 1 và sẽ tăng lên 1. Nó cũng sẽ lưu vào bộ đệm tối đa 10 giá trị cho hiệu suất. Tùy chọn bộ đệm chỉ định số lượng giá trị trình tự sẽ được lưu trữ trong bộ nhớ để truy cập nhanh hơn.

Để chèn một bản ghi mới vào bảng "Người", chúng ta sẽ phải sử dụng hàm tiếp theo (hàm này lấy giá trị tiếp theo từ chuỗi seq_ person):

INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');

Câu lệnh SQL ở trên sẽ chèn một bản ghi mới vào bảng "Người". Cột "Personid" sẽ được gán số tiếp theo từ chuỗi seq_ person. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen".