hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • MySQL
FUNCTION Trong MySQL – Định Nghĩa Hàm Tùy Chỉnh Trả Về Giá Trị

FUNCTION Trong MySQL – Định Nghĩa Hàm Tùy Chỉnh Trả Về Giá Trị

  • 08-07-2025
  • Toanngo92
  • 0 Comments

Trong bài viết này, chúng ta sẽ tìm hiểu về FUNCTION trong MySQL – một thành phần quan trọng bên cạnh Stored Procedure. FUNCTION giúp bạn định nghĩa một hàm có thể tái sử dụng, trả về giá trị, và có thể được sử dụng trực tiếp trong câu lệnh SQL như một biểu thức.

Mục lục

  • ✅ 1. FUNCTION là gì?
  • ✅ 2. Khi nào nên dùng FUNCTION?
  • ✅ 3. Cú pháp tạo FUNCTION
  • ✅ 4. Ví dụ cơ bản: Hàm tính bình phương
    • Gọi trong SELECT:
  • ✅ 5. Hàm phân loại tuổi
  • ✅ 6. So sánh FUNCTION và PROCEDURE
  • ✅ 7. Xem và xóa FUNCTION
    • Xem danh sách:
    • Xem chi tiết:
    • Xóa hàm:
  • ✅ 8. Lưu ý khi dùng FUNCTION
  • 📘 Kết Luận

✅ 1. FUNCTION là gì?

  • FUNCTION trong MySQL là hàm do người dùng tự định nghĩa, nhận đầu vào và trả về một giá trị duy nhất.
  • Khác với Stored Procedure (có thể trả về nhiều dữ liệu), FUNCTION chỉ dùng trong biểu thức và trả về một giá trị đơn.

✅ 2. Khi nào nên dùng FUNCTION?

Dùng FUNCTION khi…Lý do
Cần tái sử dụng logic tính toán đơn lẻTránh viết lại nhiều lần
Cần gọi trong SELECT, WHERE, ORDER BY, v.v.Hàm có thể dùng như biểu thức SQL
Cần xử lý cột dữ liệu độngVí dụ: định dạng, phân loại, chuyển đổi dữ liệu…

✅ 3. Cú pháp tạo FUNCTION

DELIMITER $$

CREATE FUNCTION ten_ham (tham_so KIEU)
RETURNS kieu_tra_ve
DETERMINISTIC
BEGIN
    -- khai báo biến nếu cần
    -- logic tính toán
    RETURN gia_tri;
END$$

DELIMITER ;

DETERMINISTIC: khai báo hàm luôn trả cùng kết quả nếu đầu vào giống nhau (giúp MySQL tối ưu).


✅ 4. Ví dụ cơ bản: Hàm tính bình phương

DELIMITER $$

CREATE FUNCTION BinhPhuong(n INT)
RETURNS INT
DETERMINISTIC
BEGIN
    RETURN n * n;
END$$

DELIMITER ;

Gọi trong SELECT:

SELECT BinhPhuong(5);  -- kết quả: 25

Hoặc áp dụng trên bảng:

SELECT name, age, BinhPhuong(age) AS tuoi_binh_phuong
FROM Students;

✅ 5. Hàm phân loại tuổi

DELIMITER $$

CREATE FUNCTION XepLoaiTuoi(tuoi INT)
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
    DECLARE loai VARCHAR(20);
    IF tuoi < 18 THEN
        SET loai = 'Trẻ em';
    ELSEIF tuoi <= 60 THEN
        SET loai = 'Người lớn';
    ELSE
        SET loai = 'Người già';
    END IF;
    RETURN loai;
END$$

DELIMITER ;
SELECT name, age, XepLoaiTuoi(age) AS do_tuoi
FROM Students;

✅ 6. So sánh FUNCTION và PROCEDURE

Tiêu chíFUNCTIONPROCEDURE
Trả về giá trị✅ Có (RETURN)❌ Không, dùng OUT hoặc SELECT
Dùng trong câu lệnh SELECT✅ Có thể dùng như biểu thức❌ Không thể gọi trong SELECT
Gọi bằng CALL❌ Không dùng CALL✅ Dùng CALL
Ứng dụngTính toán đơn giản, xử lý 1 dòngThao tác nhiều dòng, nhiều bảng

✅ 7. Xem và xóa FUNCTION

Xem danh sách:

SHOW FUNCTION STATUS WHERE Db = 'ten_database';

Xem chi tiết:

SHOW CREATE FUNCTION BinhPhuong;

Xóa hàm:

DROP FUNCTION IF EXISTS BinhPhuong;

✅ 8. Lưu ý khi dùng FUNCTION

Lưu ýGiải thích
✅ Chỉ trả về một giá trị đơnKhông thể trả về nhiều dòng như SELECT *
❌ Không được thay đổi dữ liệu trực tiếpKhông dùng INSERT, UPDATE, DELETE trong hàm
✅ Có thể gọi trong SELECT, WHERENhưng không thể gọi trong CALL
❌ Không hỗ trợ thao tác phức tạpNếu cần thao tác nhiều, hãy dùng Stored Procedure

📘 Kết Luận

  • FUNCTION rất hữu ích khi bạn cần xử lý logic đơn giản, có đầu vào và đầu ra rõ ràng.
  • Nó giúp bạn viết SQL gọn gàng, dễ tái sử dụng và chuẩn hóa logic tính toán.
  • Kết hợp cùng VIEW, TRIGGER, INDEX, JOIN sẽ giúp bạn xây dựng hệ thống dữ liệu mạnh mẽ và hiệu quả.

Bài viết liên quan:

TCL Trong MySQL – Quản Lý Giao Dịch Với COMMIT, ROLLBACK, SAVEPOINT
TRIGGER Trong MySQL – Kích Hoạt Tự Động Khi Dữ Liệu Thay Đổi
Giao Dịch (Transaction) Trong MySQL — START TRANSACTION, COMMIT, ROLLBACK
Stored Procedure Trong MySQL — thủ tục lưu trữ
Tăng Tốc Truy Vấn Dữ Liệu Với INDEX Trong MySQL
VIEW Trong MySQL — Bảng Ảo Từ Truy Vấn
Điều Kiện Trong Truy Vấn Với CASE WHEN và Wildcard, REGEXP trong MySQL
Truy Vấn Con (SUBQUERY) và Biểu Thức Bảng Chung (CTE) Trong MySQL
Kết Hợp Dữ Liệu Từ Nhiều Bảng Với JOIN Trong MySQL
Hàm Tổng Hợp và Nhóm Dữ Liệu Trong MySQL: GROUP BY, HAVING
Truy Vấn Dữ Liệu Với SELECT Trong MySQL
Các Lệnh DML Cơ Bản Trong MySQL: INSERT, UPDATE, DELETE

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Truy Vấn Dữ Liệu Với SELECT Trong MySQL

Các Lệnh DML Cơ Bản Trong MySQL: INSERT, UPDATE, DELETE

TCL Trong MySQL – Quản Lý Giao Dịch Với COMMIT, ROLLBACK, SAVEPOINT

DCL Trong MySQL – Quản Lý Quyền Truy Cập Với GRANT và REVOKE

FUNCTION Trong MySQL – Định Nghĩa Hàm Tùy Chỉnh Trả Về Giá Trị

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×