INSERT – Thêm một hoặc nhiều dòng dữ liệu trong MySQL

Qua một loạt bài hướng dẫn về mysql, bây giờ chúng ta cùng nhau tìm hiểu câu lệnh truy vấn insert để thêm một hoặc nhiều dòng dữ liệu vào trong mysql nhé.

Chuẩn bị cho bài học

Để chuẩn bị cho bài học này, các bạn cần tạo ra cấu trúc bảng như sau :

Tạo database có tên : sinhviendemo.

Tạo 2 table  sinhvienlop có cấu trúc như sau :

INSERT - Thêm một hoặc nhiều dòng dữ liệu trong MySQL

Như vậy lệnh để tạo 2 bảng trên là như sau:

1.Tạo bảng lop

CREATE DATABASE IF NOT EXISTS sinhviendemo;
USE sinhviendemo;
 
CREATE TABLE IF NOT EXISTS lop(
    lopid INT(255) NOT NULL AUTO_INCREMENT,
    tenlop VARCHAR(255) NOT NULL,
    CONSTRAINT pk_sv PRIMARY KEY(lopid)

) ENGINE = InnoDB

2.Tạo bảng sinhvien, lưu ý bảng sinhvien có khóa ngoại là lopid để truy xuất dữ liệu liên quan với bảng lop có cột lopid là khóa chính.

CREATE DATABASE IF NOT EXISTS sinhviendemo;
USE sinhviendemo;
 
CREATE TABLE IF NOT EXISTS sinhvien(
    svid INT(255) NOT NULL AUTO_INCREMENT,
    hoten VARCHAR(255) NOT NULL,
    diachi VARCHAR(255),
    lopid INT(255),
    CONSTRAINT pk_sv PRIMARY KEY(svid),
    CONSTRAINT fk_sv FOREIGN KEY (lopid) REFERENCES lop(lopid)

) ENGINE = InnoDB

Sau khi tạo xong chúng ta cùng xem thành quả :

INSERT - Thêm một hoặc nhiều dòng dữ liệu trong MySQL

Như vậy chúng ta đã có những điều kiện cần để học bài hôm nay! Mình đi luôn vào vấn đề. Ở bảng lop, bây giờ mình muốn thêm vào dữ liệu cho bảng này. Ở đây chúng ta thêm vào table lop với 2 cột là lopid và tenlop.

Vậy muốn thêm dữ liệu (data) vào một bảng (table) nào đó, thì các bạn cần sử dụng câu truy vấn INSERT trong mysql.

Cấu trúc câu truy vấn INSERT – Thêm dữ liệu một dòng

Cấu trúc:

INSERT INTO
table(column1, column2,...,...,...)
VALUES(value1, value2, ... , ...,...)

Ý nghĩa: dùng để thêm dòng dữ liệu vào table.

Lưu ý :Mỗi cột ngăn cách nhau bởi dấu phẩy, tương tự như các giá trị values tương ứng cho các cột cũng ngăn cách bởi dấu phẩy.

Áp dụng: Bây giờ chúng ta cùng nhau thêm dữ liệu vào trong bảng lop.Câu truy vấn như sau :

INSERT INTO lop(tenlop) VALUES('K19DTU - TPMP1')

Ở đây vì lopid tự động tăng nên tôi không cần thêm vào cột này, với tenlop thì ví nó là một chuỗi nên cần đặt trong cặp dấu nhấy ‘string’. Với số thì cần hoặc không cần đều được.

// Tương tự như vậy chúng ta thêm vào dòng dữ liệu thứ 2:

INSERT INTO lop(tenlop) VALUES('K19DTU - TPMP2')

Sau khi thực hiện 2 câu lệnh truy vấn, các bạn vào lại phpmyadmin và kiểm tra xem chúng ta đã thêm vào được chưa bằng cách click vào table đã thêm dữ liệu.

INSERT - Thêm một hoặc nhiều dòng dữ liệu trong MySQLINSERT - Thêm một hoặc nhiều dòng dữ liệu trong MySQL

Nhưng nếu với trường hợp trên, các bạn có câu hỏi gì đặt ra không nhỉ? Với nhiều trang web trong thực tế đòi hỏi dữ liệu rất nhiều, như một trang vnexpres.vn chẳng hạn. Một ngày có rất nhiều tin thì giả sữ như trong bảng lop có 100 lớp tất nhiên các bạn phải sử dụng 100 lần câu truy vấn. Như vậy cũng được nhưng rất tốn thời gian, cứ mỗi lần truy vấn lại tốn thời gian cũng như quá thủ công và quá nhiều câu truy vấn, nên MySQL đã tạo ra câu truy vấn INSERT nhiều dòng.

Cấu trúc câu truy vấn INSERT – Thêm nhiều dòng dữ liệu

Cấu trúc:

INSERT INTO
table(column1, column2,...,...,...)
VALUES(value1, value2, ... , ...,...),(value1, value2, ... , ...,...),(value1, value2, ... , ...,...)

Ý nghĩa: dùng để thêm nhiều dòng dữ liệu vào table.

Lưu ý :Tương tự như thêm một dòng dữ liệu nhưng để thêm nhiều dòng bằng một câu lệnh truy vấn chúng ta thêm dấu phẩy , dữa các dấu ngoặc tròn.Ví dụ như (value1, value2, … , …,…),(value1, value2, … , …,…)

Áp dụng: Bây giờ chúng ta cùng nhau thêm nhiều dòng dữ liệu vào trong bảng lop.Câu truy vấn như sau :

INSERT INTO lop(tenlop) VALUES('K19DTU - TPMP3'),('K19DTU - TPMP4'),('K19DTU - TPMP5'),('K19DTU - TPMP6')

Như ví dụ trên, tôi đã thêm vào được 4 dòng tương ứng với 4 lớp vào table lop nhưng chỉ dùng duy nhất một câu lệnh truy vấn INSERT. Qua đó các bạn thấy tầm lợi ích khi dùng câu lệnh truy vấn thêm nhiều dòng.

Kiểm tra trong table lop khi truy vấn.

insert into thêm nhiều dòng dữ liệu
Sau khi thực hiện truy vấn nhiều dòng bằng lệnh truy vấn insert

Bây giờ chuyên sâu một tí nữa nhé : 

Giả sử như tôi muốn thêm vào table sinhvien, với trường hợp này vì ở bảng sinhvien có khóa ngoại nên việc chúng ta thêm vào dữ liệu không được để rỗng ở cột này, nếu các bạn để rỗng chắc chắn nó sẽ báo lỗi ngay lập tức.

Vậy cú pháp để thêm khi có khóa ngoại là như sau :

INSERT INTO sinhvien(hoten,diachi,lopid) VALUES('Tran Phu','Thua Thien Hue',1)

Kết Luận

Qua những ví dụ cụ thể trên, tôi tin rằng các bạn đã biết cách truy vấn thêm dữ liệu một hoặc nhiều dòng khi dùng lệnh truy vấn INSERT đúng không?  Đây là một lệnh truy vấn rất cơ bản nhưng rất quan trọng nên các bạn cần phải thuộc lòng như ăn cháo nhé ^^! ^_^

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x