MySQL - Chèn và Bỏ Qua: Hướng dẫn cho Người mới bắt đầu

Xin chào các nhà法师 cơ sở dữ liệu tương lai! Hôm nay, chúng ta sẽ lặn vào thế giới kỳ diệu của MySQL và khám phá một tuyệt chiêu nhỏ bé nhưng hữu ích叫做 "Chèn và Bỏ Qua". Đừng lo lắng nếu bạn mới bắt đầu lập trình; tôi sẽ hướng dẫn bạn từng bước, giống như tôi đã làm cho hàng trăm sinh viên trong những năm dạy học của mình. Vậy, hãy lấy饮料 yêu thích của bạn, thoải mái ngồi xuống, và cùng nhau bắt đầu cuộc phiêu lưu MySQL này nhé!

MySQL - Insert Ignore

MySQL Chèn và Bỏ Qua là gì?

Trước khi chúng ta nhảy vào phần sâu hơn, hãy bắt đầu từ những điều cơ bản. Hãy tưởng tượng bạn đang cố gắng thêm mới các bản ghi vào cơ sở dữ liệu của mình, nhưng bạn lo lắng về các bản ghi trùng lặp hoặc lỗi. Đó là lúc MySQL Chèn và Bỏ Qua đến để cứu giúp!

Câu lệnh Chèn và Bỏ Qua giống như một phiên bản nhẹ nhàng, tha thứ của câu lệnh INSERT thông thường. Nó nói với MySQL, "Hey, thử chèn dữ liệu này, nhưng nếu có vấn đề gì, chỉ cần bỏ qua và tiếp tục." Nó giống như có một người bạn không làm ầm ĩ khi kế hoạch thay đổi - siêu hữu ích và không có drama!

Cú pháp cơ bản

Hãy nhìn vào cú pháp cơ bản của câu lệnh Chèn và Bỏ Qua:

INSERT IGNORE INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Bây giờ, hãy phân tích này:

  • INSERT IGNORE: Đây là cụm từ ma thuật của chúng ta, nói với MySQL hãy bình thản với lỗi.
  • INTO table_name: Chỉ định bảng bạn đang thêm dữ liệu vào.
  • (column1, column2, ...): Danh sách các cột bạn đang chèn dữ liệu vào.
  • VALUES (value1, value2, ...): Dữ liệu thực tế bạn muốn chèn.

Thời gian Ví dụ!

Hãy tưởng tượng chúng ta có một bảng叫做 students với các cột id, name, và email. Dưới đây là cách chúng ta có thể sử dụng Chèn và Bỏ Qua:

INSERT IGNORE INTO students (id, name, email)
VALUES (1, 'Alice Wonder', '[email protected]');

Nếu đây là một học sinh mới, tuyệt vời! Dữ liệu sẽ được chèn vào. Nhưng nếu đã có một học sinh với ID 1, MySQL sẽ chỉ gật đầu và tiếp tục mà không ném ra lỗi. Nó giống như cố gắng thêm một tem vào laptop của bạn mà đã có tem đó rồi - không có vấn đề gì, nó chỉ không dính lại thôi.

Câu lệnh MySQL Chèn và Bỏ Qua: Khi nào nên sử dụng

Bây giờ chúng ta biết Chèn và Bỏ Qua làm gì, hãy nói về khi nào bạn có thể muốn sử dụng nó. Dưới đây là một số tình huống phổ biến:

  1. Nhập dữ liệu lớn: Khi bạn đang nhập một lượng lớn dữ liệu và không muốn dừng lại vì mỗi lỗi nhỏ.
  2. Cập nhật định kỳ: Nếu bạn thường xuyên cập nhật cơ sở dữ liệu với thông tin mới nhưng không muốn lo lắng về các bản ghi trùng lặp.
  3. Nội dung do người dùng tạo: Khi người dùng có thể vô tình gửi cùng một thứ hai lần (chúng ta đều đã nhấp đôi bằng mistake, phải không?).

Ví dụ thực tế

Hãy tưởng tượng bạn đang quản lý một cơ sở dữ liệu của một câu lạc bộ đọc sách. Thành viên có thể thêm sách, nhưng bạn không muốn có bản ghi trùng lặp. Dưới đây là cách bạn có thể sử dụng Chèn và Bỏ Qua:

INSERT IGNORE INTO books (isbn, title, author)
VALUES
('9780141439518', 'Pride and Prejudice', 'Jane Austen'),
('9780061120084', 'To Kill a Mockingbird', 'Harper Lee'),
('9780141439518', 'Pride and Prejudice', 'Jane Austen');

Trong trường hợp này, bản ghi thứ hai của "Pride and Prejudice" sẽ bị bỏ qua, giữ cho cơ sở dữ liệu của bạn sạch sẽ mà không có rối loạn.

MySQL INSERT IGNORE và Chế độ.Strict

Bây giờ, hãy nói về điều gì đó nâng cao hơn: chế độ STRICT. Nó giống như một thư viện viên nghiêm ngặt trong thế giới MySQL, đảm bảo mọi thứ đều chính xác.

Chế độ STRICT là gì?

Chế độ STRICT trong MySQL là về việc nghiêm ngặt với dữ liệu của bạn. Khi nó được bật, MySQL ít tha thứ hơn với dữ liệu không hợp lệ hoặc bị thiếu. Nhưng điều tuyệt vời là: Chèn và Bỏ Qua vẫn có thể làm phép thuật của nó ngay cả trong chế độ STRICT!

Behavior của Chèn và Bỏ Qua trong Chế độ STRICT

Khi bạn sử dụng Chèn và Bỏ Qua trong chế độ STRICT, đây là những gì xảy ra:

  1. Truncate dữ liệu: Nếu dữ liệu của bạn quá dài cho một cột, nó sẽ bị cắt giảm để phù hợp.
  2. Ngày không hợp lệ: Thay vì từ chối chúng, MySQL sẽ đặt chúng thành '0000-00-00'.
  3. NULL trong cột NOT NULL: MySQL sẽ sử dụng giá trị mặc định cho cột đó.

Hãy xem điều này trong hành động:

-- Giả sử chế độ STRICT đang bật
INSERT IGNORE INTO students (id, name, birth_date)
VALUES
(2, 'Bob', '2023-02-30'),  -- Ngày không hợp lệ
(3, 'Charlie', NULL),      -- NULL trong một cột NOT NULL
(4, 'David', '1990-01-01');

Trong ví dụ này, ngày sinh của Bob sẽ trở thành '0000-00-00', Charlie có thể nhận được ngày mặc định (nếu được đặt), và mục của David sẽ ổn.

Truy vấn Chèn và Bỏ Qua bằng một Chương trình Khách

Bây giờ, hãy chuyển sang phần thực tế. Làm thế nào bạn thực sự chạy các truy vấn này? Bạn thường sử dụng một chương trình khách MySQL. Các chương trình khách phổ biến nhất là:

Chương trình Khách Mô tả
MySQL Command Line Client Giao diện dựa trên văn bản, đi kèm với MySQL
MySQL Workbench Giao diện đồ họa, tuyệt vời cho người mới bắt đầu
phpMyAdmin Giao diện web, thường được sử dụng với hosting web

Sử dụng MySQL Command Line Client

Nếu bạn cảm thấy dũng cảm và muốn cảm thấy như một ninja cơ sở dữ liệu thực sự, bạn có thể sử dụng dòng lệnh. Dưới đây là cách:

  1. Mở terminal hoặc command prompt.
  2. Kết nối với MySQL: mysql -u username -p
  3. Nhập mật khẩu khi được yêu cầu.
  4. Chọn cơ sở dữ liệu của bạn: USE your_database_name;
  5. Chạy truy vấn Chèn và Bỏ Qua của bạn:
INSERT IGNORE INTO readers (id, name, favorite_genre)
VALUES (1, 'Emma', 'Mystery'), (2, 'Oliver', 'Sci-Fi');

Sử dụng MySQL Workbench

Đối với những người thích một cách tiếp cận trực quan hơn (tôi biết tôi đôi khi làm vậy!), MySQL Workbench là tuyệt vời:

  1. Mở MySQL Workbench và kết nối với máy chủ của bạn.
  2. Chọn cơ sở dữ liệu của bạn từ danh sách schema.
  3. Nhấp vào tab "SQL Editor".
  4. Gõ truy vấn Chèn và Bỏ Qua của bạn.
  5. Nhấp vào biểu tượng chớp để thực thi.

Nó giống như vẽ với dữ liệu - sáng tạo và trực quan!

Kết luận

Và thế là bạn đã có nó, mọi người! Chúng ta đã cùng nhau hành trình qua thế giới của MySQL Chèn và Bỏ Qua, từ cú pháp cơ bản đến hành vi trong chế độ STRICT, và thậm chí là cách chạy nó trong các môi trường khác nhau. Nhớ rằng Chèn và Bỏ Qua giống như người bạn dễ tính giúp mọi thứ chạy mượt mà mà không có drama - siêu hữu ích trong những tình huống đúng!

Khi bạn tiếp tục cuộc phiêu lưu MySQL của mình, đừng sợ thử nghiệm. Cách tốt nhất để học là làm. Và biết đâu? Bạn có thể trở thành chuyên gia Chèn và Bỏ Qua trong nhóm lập trình của mình!

Tiếp tục truy vấn, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ với nó. Cuối cùng, cơ sở dữ liệu chỉ là nhữngToybox kỹ thuật số lớn cho người lớn. Chúc bạn vui vẻ lập trình!

Credits: Image by storyset