Ví dụ về function SQL

Bài Tập Function SQL Có Lời Giải: Nâng Cao Kỹ Năng SQL

bởi

trong

Function trong SQL là một công cụ mạnh mẽ cho phép bạn đóng gói logic nghiệp vụ và tái sử dụng mã lệnh một cách hiệu quả. Việc thành thạo function sẽ giúp bạn viết code SQL tối ưu, dễ đọc và bảo trì hơn. Bài viết này cung cấp cho bạn những Bài Tập Function Sql Có Lời Giải chi tiết, từ cơ bản đến nâng cao, giúp bạn tự tin chinh phục SQL.

Function SQL Là Gì? Tại Sao Nên Sử Dụng Function?

Function trong SQL là một khối mã lệnh được đặt tên, thực hiện một tác vụ cụ thể và có thể được gọi từ các câu lệnh SQL khác. Function có thể nhận tham số đầu vào và trả về một giá trị hoặc một tập kết quả.

Sử dụng function mang lại nhiều lợi ích như:

  • Tái sử dụng mã lệnh: Viết một lần và sử dụng nhiều lần, giảm thiểu code trùng lặp.
  • Phân chia logic: Tách biệt các tác vụ phức tạp thành các function nhỏ hơn, dễ quản lý và bảo trì.
  • Nâng cao hiệu suất: Cải thiện tốc độ xử lý bằng cách lưu trữ kế hoạch truy vấn.

Ví dụ về function SQLVí dụ về function SQL

Phân Loại Function SQL

Có hai loại function chính trong SQL:

1. Scalar Function

Trả về một giá trị đơn lẻ cho mỗi lần gọi. Ví dụ:

CREATE FUNCTION TinhTong (@a INT, @b INT)
RETURNS INT
AS
BEGIN
  RETURN @a + @b;
END;

2. Table-Valued Function

Trả về một bảng dữ liệu. Ví dụ:

CREATE FUNCTION LayDanhSachSanPham (@loaiSP NVARCHAR(50))
RETURNS TABLE
AS
RETURN (
  SELECT * FROM SanPham WHERE Loai = @loaiSP
);

Bài Tập Function SQL Cơ Bản

Bài 1: Viết function tính diện tích hình tròn.

Lời giải:

CREATE FUNCTION DienTichHinhTron (@banKinh FLOAT)
RETURNS FLOAT
AS
BEGIN
  RETURN PI() * POWER(@banKinh, 2);
END;

Bài 2: Viết function kiểm tra số nguyên tố.

Lời giải:

CREATE FUNCTION KiemTraSoNguyenTo (@so INT)
RETURNS BIT
AS
BEGIN
  IF @so <= 1
    RETURN 0;
  ELSE IF @so <= 3
    RETURN 1;
  ELSE IF @so % 2 = 0 OR @so % 3 = 0
    RETURN 0;

  DECLARE @i INT = 5;
  WHILE @i * @i <= @so
  BEGIN
    IF @so % @i = 0 OR @so % (@i + 2) = 0
      RETURN 0;
    SET @i = @i + 6;
  END;

  RETURN 1;
END;

Cách sử dụng function trong câu lệnh SELECTCách sử dụng function trong câu lệnh SELECT

Bài Tập Function SQL Nâng Cao

Bài 3: Viết function tính tổng giá trị đơn hàng cho một khách hàng.

Lời giải:

CREATE FUNCTION TinhTongGiaTriDonHang (@maKH INT)
RETURNS DECIMAL(18,2)
AS
BEGIN
  DECLARE @tongGiaTri DECIMAL(18,2);
  SELECT @tongGiaTri = SUM(TongTien) 
  FROM DonHang WHERE MaKhachHang = @maKH;
  RETURN @tongGiaTri;
END;

Bài 4: Viết function trả về danh sách sản phẩm bán chạy nhất trong tháng.

Lời giải:

CREATE FUNCTION LayDanhSachSanPhamBanChay (@thang INT, @nam INT)
RETURNS TABLE
AS
RETURN (
  SELECT SP.MaSanPham, SP.TenSanPham, SUM(CTDH.SoLuong) AS TongSoLuongBan
  FROM SanPham SP
  JOIN ChiTietDonHang CTDH ON SP.MaSanPham = CTDH.MaSanPham
  JOIN DonHang DH ON CTDH.MaDonHang = DH.MaDonHang
  WHERE MONTH(DH.NgayDatHang) = @thang AND YEAR(DH.NgayDatHang) = @nam
  GROUP BY SP.MaSanPham, SP.TenSanPham
  ORDER BY TongSoLuongBan DESC
);

Kết Luận

Bài viết đã giới thiệu đến bạn các bài tập function SQL có lời giải chi tiết, giúp bạn nắm vững kiến thức từ cơ bản đến nâng cao. Việc thường xuyên luyện tập với các bài tập thực tế sẽ giúp bạn nâng cao kỹ năng SQL một cách hiệu quả.

Bạn cần hỗ trợ thêm về SQL hoặc các vấn đề kỹ thuật khác? Hãy liên hệ Số Điện Thoại: 02033846993, Email: [email protected] Hoặc đến địa chỉ: X2FW+GGM, Cái Lân, Bãi Cháy, Hạ Long, Quảng Ninh, Việt Nam. Chúng tôi có đội ngũ chăm sóc khách hàng 24/7.