MySQL cung cấp một loạt các hàm phong phú để làm việc với dữ liệu. Dưới đây là danh sách chi tiết các nhóm hàm chính trong MySQL:

1. Hàm số học (Arithmetic Functions)

  • ABS(x): Trả về giá trị tuyệt đối của x.
  • CEILING(x) / CEIL(x): Trả về giá trị nguyên nhỏ nhất lớn hơn hoặc bằng x.
  • FLOOR(x): Trả về giá trị nguyên lớn nhất nhỏ hơn hoặc bằng x.
  • ROUND(x, d): Làm tròn x đến d chữ số thập phân.
  • SQRT(x): Tính căn bậc hai của x.
  • POWER(x, y) / POW(x, y): Tính x lũy thừa y.
  • MOD(x, y): Tính phần dư khi x chia cho y.

2. Hàm chuỗi (String Functions)

  • CONCAT(s1, s2, …): Kết hợp các chuỗi lại với nhau.
  • LENGTH(s): Trả về chiều dài của chuỗi s.
  • LOWER(s): Chuyển đổi chuỗi s thành chữ thường.
  • UPPER(s): Chuyển đổi chuỗi s thành chữ hoa.
  • SUBSTRING(s, pos, len): Trả về một phần của chuỗi s, bắt đầu từ vị trí pos và có độ dài len.
  • TRIM(s): Loại bỏ khoảng trắng ở đầu và cuối chuỗi s.
  • REPLACE(s, from_str, to_str): Thay thế tất cả các lần xuất hiện của from_str trong chuỗi s bằng to_str.

3. Hàm ngày và giờ (Date and Time Functions)

  • NOW(): Trả về ngày giờ hiện tại.
  • CURDATE() / CURRENT_DATE(): Trả về ngày hiện tại.
  • CURTIME() / CURRENT_TIME(): Trả về thời gian hiện tại.
  • DATE_FORMAT(date, format): Trả về ngày trong định dạng được chỉ định.
  • DATEDIFF(date1, date2): Trả về số ngày giữa hai ngày.
  • TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2): Trả về sự khác biệt giữa hai biểu thức datetime, tính theo đơn vị thời gian đã cho.

4. Hàm điều kiện (Conditional Functions)

  • IF(condition, true_value, false_value): Trả về true_value nếu condition là đúng, ngược lại trả về false_value.
  • IFNULL(expr1, expr2): Trả về expr1 nếu nó không phải là NULL, ngược lại trả về expr2.
  • CASE: Được sử dụng để tạo các mệnh đề điều kiện phức tạp.

5. Hàm tổng hợp (Aggregate Functions)

  • COUNT(expr): Đếm số lượng bản ghi.
  • SUM(expr): Tính tổng của expr.
  • AVG(expr): Tính giá trị trung bình của expr.
  • MIN(expr): Tìm giá trị nhỏ nhất của expr.
  • MAX(expr): Tìm giá trị lớn nhất của expr.

6. Hàm JSON (JSON Functions)

  • JSON_OBJECT(key, value, …): Tạo một đối tượng JSON.
  • JSON_ARRAY(value, …): Tạo một mảng JSON.
  • JSON_EXTRACT(json_doc, path): Trích xuất dữ liệu từ một tài liệu JSON dựa trên đường dẫn chỉ định.
  • JSON_UNQUOTE(json_val): Loại bỏ dấu ngoặc kép khỏi một giá trị JSON.

7. Hàm cửa sổ (Window Functions)

  • ROW_NUMBER(): Trả về số thứ tự của một hàng trong một phân vùng của bộ kết quả.
  • RANK(): Trả về xếp hạng của một hàng trong một phân vùng của bộ kết quả, với các hàng có giá trị bằng nhau được xếp hạng giống nhau.
  • DENSE_RANK(): Tương tự như RANK(), nhưng không có khoảng cách giữa các xếp hạng.

8. Hàm khác

  • COALESCE(expr1, expr2, …): Trả về giá trị không NULL đầu tiên trong danh sách.
  • NULLIF(expr1, expr2): Trả về NULL nếu expr1 bằng expr2, ngược lại trả về expr1.
  • GREATEST(value1, value2, …): Trả về giá trị lớn nhất trong danh sách.
  • LEAST(value1, value2, …): Trả về giá trị nhỏ nhất trong danh sách.

Danh sách trên chỉ là một phần nhỏ trong số các hàm mà MySQL hỗ trợ. Để biết thêm chi tiết về từng hàm và cú pháp sử dụng, bạn có thể tham khảo tài liệu chính thức của MySQL hoặc sử dụng lệnh HELP <function_name> trong MySQL.