Bài viết này chứa INSERT
cơ bản của SQL câu lệnh mà người mới bắt đầu có thể sử dụng để chèn dữ liệu vào bảng cơ sở dữ liệu của họ.
Cú pháp cơ bản
Cú pháp cơ bản để chèn dữ liệu trong SQL như sau:
INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);
Ở đâu:
-
TableName
là tên của bảng bạn muốn chèn dữ liệu vào -
Column1
, v.v. là tên của các cột bạn muốn chèn dữ liệu vào -
Value1
, v.v. là các giá trị mà bạn đang chèn vào các cột đó. Thứ tự của các giá trị này phải khớp với thứ tự mà bạn đã liệt kê các cột (tức làValue1
đi vàoColumn1
, v.v.).
Bạn có thể bỏ qua tên cột nếu bạn đang chèn giá trị vào tất cả các cột. Trong trường hợp đó, bạn có thể sử dụng cú pháp sau:
INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);
Lưu ý rằng một số DBMS sử dụng cú pháp phức tạp hơn cú pháp này (tức là chúng cung cấp nhiều tùy chọn hơn), nhưng đây thường là cú pháp cơ bản cần thiết để chèn dữ liệu vào bảng.
Chèn vào tất cả các cột
Dưới đây là một ví dụ cơ bản chèn dữ liệu vào tất cả các cột trong bảng:
INSERT INTO PetTypes
VALUES( 1, 'Bird' );
Trong trường hợp này, có hai cột trong PetTypes
và chúng tôi đang chèn các giá trị vào cả hai cột, do đó, chúng tôi không cần chỉ định tên cột.
Câu lệnh trên cũng giống như khi thực hiện điều này:
INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );
Chúng tôi có thể kiểm tra dữ liệu của mình bằng cách chạy SELECT
tuyên bố.
SELECT * FROM PetTypes;
Kết quả:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | +-------------+-----------+
Chèn vào một số cột
Dưới đây là một ví dụ cơ bản chèn dữ liệu chỉ vào một số cột trong bảng:
INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );
Bảng này thực sự có bốn cột, nhưng chúng tôi chỉ chèn dữ liệu vào ba trong số các cột đó. Chúng ta có thể thấy điều đó khi chạy SELECT
câu lệnh đối với bảng sau khi chèn dữ liệu.
SELECT * FROM Users;
Kết quả:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | +----------+-------------+------------+-----------------------------+
Cách Chèn Giá trị theo Thứ tự Sai
Phương pháp danh sách cột cho phép bạn chèn dữ liệu không theo cùng một thứ tự:
INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );
Trong ví dụ này, tôi đã sắp xếp lại thứ tự của các cột và giá trị tương ứng của chúng. May mắn thay, danh sách cột cung cấp cho DBMS hướng dẫn về nơi mỗi giá trị nên được chèn vào.
Vì vậy, bây giờ, nếu chúng tôi chọn dữ liệu của mình, chúng tôi sẽ thấy rằng nó đã được chèn vào các cột chính xác.
SELECT * FROM Users;
Kết quả:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | | 2 | Bart | Pitt | 2020-11-21 05:30:07.4456867 | +----------+-------------+------------+-----------------------------+
Chèn kết quả của một truy vấn
Cũng có thể chèn tập hợp kết quả của truy vấn vào bảng. Có một số cách tiếp cận bạn có thể thực hiện với điều này.
- Sử dụng
INSERT INTO... SELECT
tuyên bố. Trong trường hợp này, trước tiên bạn cần tạo bảng trước khi chèn tập hợp kết quả truy vấn vào đó. - Sử dụng CREATE TABLE… AS SELECT Statement. Phương pháp này tự động tạo một bảng mới dựa trên tập hợp kết quả của truy vấn, sau đó chèn các kết quả đó vào bảng. Mặc dù phương pháp này tuân theo tiêu chuẩn SQL, nhưng nó không được hỗ trợ bởi tất cả các DBMS.
- Sử dụng
SELECT INTO
tuyên bố. Điều này tương tự như tùy chọn trước đó. Nó tự động tạo một bảng mới dựa trên tập hợp kết quả của truy vấn, sau đó chèn các kết quả đó vào bảng. Nếu phương pháp trước đó (CREATE TABLE ... AS SELECT
) không được DBMS của bạn hỗ trợ, hãy thử phương pháp này.