Cách sử dụng của INSERT trong MySQL, Cách thêm mới dữ liệu vào DATABASE.

31/07/2023 - lượt xem
Chia sẻ
 
Rate this post

Trong bài viết này, chúng ta sẽ học được cách sử dụng câu lệnh MySQL INSERT để chèn một hoặc nhiều bản ghi vào một bảng.

Giới thiệu về câu lệnh MySQL INSERT

Câu lệnh INSERT cho phép bạn chèn một hoặc nhiều hàng vào một bảng. Dưới đây là một cách viết của câu lệnh INSERT:

INSERT INTO table(c1,c2,...)
VALUES (v1,v2,...);

Trong cú pháp này,

  • Đầu tiên, chỉ định tên bảng và danh sách các cột được phân tách bằng dấu phẩy bên trong dấu ngoặc đơn sau mệnh đề INSERT INTO.
  • Sau đó, đặt danh sách các giá trị của các cột tương ứng được phân tách bằng dấu phẩy bên trong dấu ngoặc đơn theo sau từ khóa VALUES.

Số cột và giá trị phải giống nhau. Ngoài ra, vị trí của các cột phải tương ứng với vị trí của các giá trị của chúng.

Để chèn nhiều hàng vào một bảng bằng một câu lệnh INSERT, bạn sử dụng cú pháp sau:

INSERT INTO table(c1,c2,...)
VALUES 
   (v11,v12,...),
   (v21,v22,...),
    ...
   (vnn,vn2,...);

Trong cú pháp này, các hàng được phân tách bằng dấu phẩy trong mệnh đề VALUES.

Ví dụ về MySQL INSERT

Chúng ta sẽ tạo một bảng mới có tên tasks để thực hành câu lệnh INSERT.

CREATE TABLE IF NOT EXISTS tasks (
    task_id INT AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    start_date DATE,
    due_date DATE,
    priority TINYINT NOT NULL DEFAULT 3,
    description TEXT,
    PRIMARY KEY (task_id)
);

1) MySQL INSERT – ví dụ đơn giản về INSERT

Câu lệnh sau đây chèn một hàng mới vào bảng tasks:

INSERT INTO tasks(title,priority)
VALUES('Learn MySQL INSERT Statement',1);

MySQL trả về thông báo sau:

1 row(s) affected

Điều đó có nghĩa là một hàng đã được chèn vào bảng tasks thành công.

Truy vấn này trả về dữ liệu từ bảng tasks:

SELECT * FROM tasks;

kết quả:

Trong ví dụ này, chúng tôi đã chỉ định các giá trị cho cột title và priority. Đối với các cột khác, MySQL sử dụng các giá trị mặc định.

Cột task_id là một AUTO_INCREMENT cột. Điều đó có nghĩa là MySQL tạo ra một số nguyên tuần tự bất cứ khi nào một hàng được chèn vào bảng.

Các cột start_datedue_date, và sử dụng làm giá trị mặc định, do đó, MySQL sử dụng để chèn vào các cột này nếu bạn không chỉ định giá trị của chúng trong câu lệnh.descriptionNULLNULLINSERT

2) MySQL INSERT – Ví dụ về chèn hàng bằng giá trị mặc định

Nếu bạn muốn chèn một giá trị mặc định vào một cột, bạn có hai cách:

  • Bỏ qua cả tên cột và giá trị trong câu lệnh INSERT.
  • Chỉ định tên cột trong mệnh đề INSERT INTO và sử dụng từ khóa DEFAULT trong mệnh đề VALUES.

Ví dụ sau minh họa cách thứ hai:

INSERT INTO tasks(title,priority)
VALUES('Understanding DEFAULT keyword in INSERT statement',DEFAULT);

Trong ví dụ này, chúng tôi đã chỉ định cột priority và từ khóa DEFAULT.

Vì giá trị mặc định cho cột priority là 3 như được khai báo trong định nghĩa bảng:

priority TINYINT NOT NULL DEFAULT 3

MySQL sử dụng số 3 để chèn vào cột priority.

Câu lệnh sau trả về nội dung của bảng tasks sau khi Insert thêm dữ liệu:

SELECT * FROM tasks;

3) MySQL INSERT – Ví dụ chèn ngày tháng vào bảng

Để chèn một giá trị ngày bằng chữ vào một cột, bạn sử dụng định dạng sau:

'YYYY-MM-DD'

Ở định dạng này:

  • YYYY đại diện cho một năm có bốn chữ số, ví dụ: 2018.
  • MM đại diện cho một tháng có hai chữ số, ví dụ: 01, 02 và 12.
  • DD đại diện cho một ngày có hai chữ số, ví dụ: 01, 02, 30.

Câu lệnh sau đây chèn một hàng mới vào bảng tasks với các giá trị ngày bắt đầu và ngày hết hạn:

INSERT INTO tasks(title, start_date, due_date)
VALUES('Insert date into table','2018-01-09','2018-09-15');

Hình ảnh sau đây cho thấy nội dung của bảng tasks sau khi được insert nội dung:

Có thể sử dụng các biểu thức trong mệnh đề VALUES. Ví dụ: câu lệnh sau đây thêm một nhiệm vụ mới bằng cách sử dụng ngày hiện tại cho các cột ngày bắt đầu và ngày đến hạn:

INSERT INTO tasks(title,start_date,due_date)
VALUES('Use current date for the task',CURRENT_DATE(),CURRENT_DATE())

Trong ví dụ này, chúng tôi đã sử dụng hàm CURRENT_DATE() này làm giá trị cho các cột start_date và due_date. Lưu ý rằng hàm CURRENT_DATE() là hàm ngày trả về ngày của hệ thống hiện tại.

Đây là nội dung của bảng tasks sau khi chèn thêm dữ liệu:

4) MySQL INSERT – Ví dụ về chèn nhiều hàng

Câu lệnh sau đây chèn ba hàng vào bảng tasks:

INSERT INTO tasks(title, priority)
VALUES
	('My first task', 1),
	('It is the second task',2),
	('This is the third task of the week',3);

Trong ví dụ này, mỗi dữ liệu hàng được chỉ định dưới dạng danh sách các giá trị trong mệnh đề VALUES.

MySQL trả về thông báo sau:

3 row(s) affected Records: 3  Duplicates: 0  Warnings: 0

Điều đó có nghĩa là ba hàng đã được chèn thành công mà không có hàng trùng lặp hoặc cảnh báo nào.

SELECT * FROM tasks;

Bảng tasks có các dữ liệu sau:

Tổng kết

Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh MySQL INSERT để thêm một hoặc nhiều hàng vào một bảng.

Các bạn có thể tham khảo: https://www.mysqltutorial.org/mysql-insert-statement.aspx

Các bài viết liên quan:

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm