Với lượng dữ liệu khổng lồ được tạo mỗi ngày, điều quan trọng là phải truy xuất dữ liệu dựa trên một số điều kiện. Trong bài viết này về câu lệnh CASE trong MySQL, tôi sẽ thảo luận về cách sử dụng câu lệnh này, để truy xuất dữ liệu trên một điều kiện duy nhất hoặc nhiều điều kiện.
Các chủ đề sau sẽ được đề cập trong bài viết này:
- Giới thiệu về SQL
- Mục đích của SQL là gì?
- CASE trong MySQL
- Cú pháp của CASE trong MySQL
- Ví dụ về CASE trong MySQL
SQL là gì?
SQL là ngôn ngữ dành riêng cho miền được sử dụng rộng rãi trong lập trình. Nó được thiết kế để quản lý dữ liệu có trong hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) hoặc để xử lý luồng trong hệ thống quản lý luồng dữ liệu quan hệ. Tôi nói chung, SQL là một ngôn ngữ chuẩn giúp lưu trữ, thao tác và truy xuất dữ liệu trong cơ sở dữ liệu.
Mục đích của SQL là gì?
SQL về cơ bản được sử dụng để giao tiếp với cơ sở dữ liệu. Theo ANSI (Viện Tiêu chuẩn Quốc gia Hoa Kỳ), nó được coi là ngôn ngữ tiêu chuẩn cho các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Chúng tôi sử dụng các câu lệnh SQL để thực hiện các tác vụ như cập nhật, chèn, xóa hoặc truy xuất dữ liệu từ cơ sở dữ liệu.
Câu lệnh CASE trong MySQL là gì?
Câu lệnh CASE trong MySQL là một cách xử lý logic if / else. Nó là một loại câu lệnh điều khiển tạo thành ô ngôn ngữ lập trình khi chúng điều khiển việc thực thi các bộ câu lệnh khác.
Câu lệnh CASE đi qua các điều kiện khác nhau và trả về các giá trị khi và khi điều kiện đầu tiên được đáp ứng (giống như câu lệnh IF-THEN-ELSE trong các ngôn ngữ cấp thấp). Khi một điều kiện là đúng, nó sẽ ngừng truyền và trả về kết quả. Nếu không có điều kiện nào là đúng, nó trả về giá trị trong mệnh đề ELSE.
Nếu không có mệnh đề ELSE và không có điều kiện nào là đúng, nó chỉ trả về NULL.
Cú pháp của câu lệnh CASE trong MySQL
Cú pháp cơ bản:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionx THEN resultx ELSE result END;
Có thể có hai cách để đạt được câu lệnh CASE-Switch:
- Lấy một biến có tên là case_value và khớp nó với một số statement_list.
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END;
- Xem xét điều kiện tìm kiếm thay vì bình đẳng biến và thực thi câu lệnh_danh sách cho phù hợp.
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END;
Ví dụ về câu lệnh CASE trong MySQL
Hãy xem xét một bảng:STUDENT
Bảng sinh viên
Mã số sinh viên | Tên | Cục | Giới tính |
001 | Akash | CS | M |
002 | Bikram | Mech | M |
003 | Chandan | CS | M |
004 | Deepak | CS | M |
005 | Elicia | EC | F |
006 | Fernandes | Mech | F |
Ví dụ: Hãy xem xét một tình huống, trong đó bạn phải sửa đổi tên bộ phận thành dạng đầy đủ của chúng. Nếu tên nợ là CS, nó nên được chuyển đổi thành Khoa học máy tính; Tương tự như vậy, Mech phải được chuyển đổi thành Mechanical.and EC thành Electronic and Communication.
Truy vấn mẫu
CASE department_name WHEN 'CS' THEN UPDATE Student SET department='Computer Science'; WHEN 'EC' THEN UPDATE Student SET department='Electronics and Communication'; ELSE UPDATE Student SET department=’Mechanical'; END;
Đầu ra:
Các tên bộ phận tương ứng được đổi tên như sau:
Mã số sinh viên | Tên | Cục | Giới tính |
001 | Akash | Khoa học Máy tính | M |
002 | Bikram | Cơ khí | M |
003 | Chandan | Khoa học Máy tính | M |
004 | Deepak | Khoa học Máy tính | M |
005 | Elicia | Điện tử và Truyền thông | F |
006 | Fernandes | Cơ khí | F |
Ví dụ: Hãy xem xét một tình huống, trong đó bạn phải chọn tất cả các trường tương ứng với bảng Sinh viên. Vì các giá trị được viết trong trường Giới tính là các giá trị ký tự đơn (M / F), chúng ta hãy viết truy vấn để thay đổi M thành Nam và F thành Nữ.
Truy vấn Mẫu
SELECT Student ID, Name, Department, CASE Gender WHEN'M' THEN 'Male' WHEN'F' THEN 'Female' END FROM Student;
Đầu ra:
Mã số sinh viên | Tên | Cục | Giới tính |
001 | Akash | Khoa học Máy tính | Nam |
002 | Bikram | Cơ khí | Nam |
003 | Chandan | Khoa học Máy tính | Nam |
004 | Deepak | Khoa học Máy tính | Nam |
005 | Elicia | Điện tử và Truyền thông | Nữ |
006 | Fernandes | Cơ khí | Nữ |
Chuyển đổi CASE trong SQL- Sắp xếp Tùy chỉnh
Truy vấn Mẫu
CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS SELECT StudentID, Name, Gender, Department FROM Student ORDER BY CASE WHEN @ColToSort='Department' THEN Department WHEN @ColToSort='Name' THEN Name WHEN @ColToSort='Gender' THEN Gender ElSE StudentID END;
Đầu ra:
Kết quả đầu ra được sắp xếp theo trường được cung cấp.
Thủ tục trên (hàm) lấy một biến kiểu dữ liệu varchar làm đối số và trên cơ sở đó, sắp xếp các bộ giá trị trong bảng Student. Hơn nữa, chúng ta cũng có thể sử dụng câu lệnh CASE để so sánh các điều kiện.
Ví dụ: Hãy xem xét một bảng có tên CONTACTS chứa contactID và một websiteID. Theo các chi tiết này, người dùng có thể điều hướng qua các liên kết sau:‘TechOnTheNet.com’ hoặc ‘CheckYourMath.com’.
Truy vấn Mẫu
SELECT CASE WHEN contact_id < 1000 THEN 'TechOnTheNet.com' WHEN website_id = 2 THEN 'CheckYourMath.com' END FROM contacts;
Hiện tại, phải rõ ràng rằng trong khi viết các câu lệnh Case trong MySQL, một yếu tố quan trọng nhất là "sắp xếp chúng theo đúng cách". Chỉ cần nhớ rằng các điều kiện được đánh giá theo thứ tự do bạn liệt kê. Khi bất kỳ điều kiện nào trở thành đúng, câu lệnh CASE sẽ trả về kết quả và không đánh giá các điều kiện nữa. Vì vậy, hãy cẩn thận khi chọn thứ tự mà bạn liệt kê các điều kiện của mình.
Nếu bạn muốn tìm hiểu thêm về MySQL và làm quen với cơ sở dữ liệu quan hệ nguồn mở này, hãy xem Khóa đào tạo chứng chỉ MySQL DBA của chúng tôi, đi kèm với khóa đào tạo trực tiếp do người hướng dẫn và thực- trải nghiệm dự án cuộc sống. Khóa đào tạo này sẽ giúp bạn hiểu sâu về MySQL và giúp bạn thành thạo chủ đề này.
Bạn có câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của “Câu lệnh CASE trong MySQL” này và chúng tôi sẽ liên hệ lại với bạn.