SQL có nhiều hàm tích hợp để thực hiện tính toán dữ liệu. SQL cung cấp các hàm dựng sẵn để thực hiện các hoạt động. Một số hàm hữu ích của SQL là thực hiện các phép tính toán học, nối chuỗi và chuỗi con, v.v.
Các bài viết liên quan:
Các hàm SQL được chia thành hai phần:
- Chức năng tổng hợp
- Hàm vô hướng
Giới thiệu về hàm trong SQL
Hàm trong SQL (Structured Query Language) là các khối mã được sử dụng để thực hiện các tác vụ tính toán, xử lý dữ liệu và trả về kết quả dựa trên các đầu vào được cung cấp. Hàm giúp tăng tính linh hoạt, tái sử dụng mã và đơn giản hóa việc thực hiện các phép tính phức tạp trong cơ sở dữ liệu.
SQL cung cấp nhiều loại hàm khác nhau để xử lý các loại dữ liệu và tác vụ khác nhau. Dưới đây là một số loại hàm thông dụng trong SQL:
- Hàm số (Scalar function): Hàm số thực hiện trên một giá trị đầu vào và trả về một giá trị duy nhất. Ví dụ, hàm số có thể làm việc với các toán tử số học, chuỗi, ngày tháng và logic để thực hiện tính toán phức tạp.
- Hàm tổng hợp (Aggregate function): Hàm tổng hợp tính toán giá trị tổng hợp từ một tập dữ liệu. Ví dụ, hàm SUM, AVG, MAX, MIN và COUNT là các hàm tổng hợp thường được sử dụng để tính toán tổng, trung bình, giá trị lớn nhất, giá trị nhỏ nhất và số lượng bản ghi trong một tập dữ liệu.
- Hàm chuỗi (String function): Hàm chuỗi thực hiện các thao tác xử lý trên chuỗi ký tự. Các hàm này bao gồm CONCAT (kết hợp chuỗi), LENGTH (độ dài chuỗi), SUBSTRING (cắt chuỗi), UPPER/LOWER (chuyển đổi thành chữ hoa/chữ thường) và nhiều hàm khác.
- Hàm ngày tháng (Date function): Hàm ngày tháng được sử dụng để thực hiện các phép toán và xử lý liên quan đến ngày tháng. Các hàm này bao gồm DATE, YEAR, MONTH, DAY, NOW, và nhiều hàm khác để trích xuất và xử lý thông tin ngày tháng.
- Hàm logic (Logical function): Hàm logic được sử dụng để thực hiện các phép toán logic và kiểm tra trong SQL. Các hàm IF, CASE, COALESCE, và nhiều hàm khác được sử dụng để xác định điều kiện, kiểm tra giá trị NULL và đưa ra quyết định dựa trên giá trị đầu vào.
Hàm trong SQL có thể được sử dụng trong các câu lệnh SELECT, WHERE, GROUP BY, HAVING và ORDER BY để thực hiện các tính toán, xử lý dữ liệu và điều kiện lọc dữ liệu trong cơ sở dữ liệu. Chúng tạo ra khả năng mở rộng và linh hoạt trong việc truy vấn và xử lý dữ liệu.
Các hàm tổng hợp trong SQL
Hàm AVG
AVG () trả về giá trị trung bình của cơ sở dữ liệu sau khi tính toán các giá trị trong cột số.
Cú pháp:
Sử dụng hàm AVG ()
Hãy xem xét bảng Emp sau:
SQL sau đây tính toán mức lương trung bình của nhân viên.
Kết quả:
Hàm COUNT ()
Count trả về số hàng có trong cơ sở dữ liệu và nó dựa trên điều kiện hoặc không có điều kiện.
Cú pháp cơ bản của nó là,
Sử dụng hàm COUNT ()
Hãy xem xét bảng Emp sau:
Truy vấn SQL để đếm số hàng thỏa mãn điều kiện.
Đầu ra:
Ví dụ về COUNT (riêng biệt)
Hãy xem xét bảng Emp sau:
Truy vấn SQL là:
Đầu ra:
Hàm FIRST ()
Hàm trả về giá trị đầu tiên của cột được chỉ định.
Cú pháp:
Sử dụng hàm FIRST ()
Hãy xem xét bảng Emp sau:
Truy vấn SQL sẽ là:
Đầu ra:
Hàm LAST ()
Hàm LAST trả về giá trị cuối cùng của cột đã chọn.
Cú pháp của hàm LAST là:
Sử dụng hàm LAST ()
Hãy xem xét bảng Emp sau:
Truy vấn SQL là:
Đầu ra:
Hàm MAX ()
Hàm MAX () trả về giá trị lớn nhất từ cột đã chọn của bảng.
Cú pháp:
Hãy xem xét bảng Emp sau:
Truy vấn SQL sau tìm nạp mức lương tối đa.
Đầu ra:
Hàm MIN ()
Hàm MIN trả về giá trị nhỏ nhất của cột đã chọn.
Cú pháp của hàm MIN:
Sử dụng hàm MIN ()
Hãy xem xét bảng Emp bên dưới:
Truy vấn SQL để tìm mức lương tối thiểu:
Đầu ra:
Hàm SUM ()
Hàm SUM () trả về tổng số các cột được chỉ định.
Cú pháp cho SUM:
Xem bảng Emp sau
Tổng số tiền lương là:
Đầu ra:
Hàm vô hướng
Các hàm vô hướng trả về một giá trị duy nhất từ một giá trị đầu vào. Một số hàm Scalar được đưa ra dưới đây:
Hàm UCASE ()
UCASE () chuyển đổi giá trị của cột chuỗi thành các ký tự chữ hoa (Capital).
Cú pháp
Sử dụng hàm UCASE ()
Hãy xem xét bảng Emp bên dưới:
Truy vấn SQL của UCASE:
Kết quả:
Hàm LCASE ()
Hàm LCASE () được sử dụng để chuyển đổi giá trị của các cột chuỗi thành Chữ thường.
Cú pháp cho LCASE:
Sử dụng hàm LCASE ()
Hãy xem xét bảng Emp sau
Truy vấn SQL để chuyển đổi giá trị chuỗi thành Chữ thường:
Đầu ra:
Hàm MID ()
Hàm MID () được sử dụng để trích xuất các chuỗi con từ các giá trị cột trong bảng.
Cú pháp cho hàm MID là:
Sử dụng hàm MID ()
Hãy xem xét bảng Emp sau:
Truy vấn SQL sau trả về chuỗi con bắt đầu từ ký tự thứ hai.
Đầu ra:
Hàm ROUND ()
Hàm ROUND () được sử dụng để làm tròn một trường số thành một số của số nguyên gần nhất. Nó được sử dụng cho dấu thập phân.
Cú pháp:
Sử dụng hàm ROUND ()
Hãy xem xét bảng Emp sau:
Truy vấn SQL sau làm tròn số tiền của cột lương.
Đầu ra:
Hàm số (Scalar function) trong SQL
Dưới đây là một số hàm số phổ biến trong SQL cùng với ví dụ minh họa:
- Hàm ABS: Trả về giá trị tuyệt đối của một số.
Ví dụ: SELECT ABS(-5) AS AbsoluteValue;Kết quả: AbsoluteValue = 5
- Hàm ROUND: Làm tròn một số đến số chữ số thập phân cụ thể.
Ví dụ: SELECT ROUND(3.14159, 2) AS RoundedNumber;Kết quả: RoundedNumber = 3.14
- Hàm UPPER/LOWER: Chuyển đổi một chuỗi thành chữ hoa hoặc chữ thường.
Ví dụ: SELECT UPPER(‘hello’) AS UppercaseString, LOWER(‘WORLD’) AS LowercaseString;Kết quả: UppercaseString = ‘HELLO’, LowercaseString = ‘world’
- Hàm CONCAT: Kết hợp hai hoặc nhiều chuỗi thành một chuỗi duy nhất.
Ví dụ: SELECT CONCAT(‘Hello’, ‘ ‘, ‘World’) AS ConcatenatedString;Kết quả: ConcatenatedString = ‘Hello World’
- Hàm DATE: Trả về ngày hiện tại.
Ví dụ: SELECT DATE() AS CurrentDate;Kết quả: CurrentDate = ‘2023-06-13’ (nếu ngày hiện tại là 13/06/2023)
- Hàm CASE: Thực hiện kiểm tra điều kiện và trả về giá trị tương ứng.
Ví dụ: SELECT CASE WHEN age >= 18 THEN ‘Adult’ WHEN age < 18 THEN ‘Minor’ ELSE ‘Unknown’ END AS AgeGroup FROM users;Kết quả: AgeGroup = ‘Adult’ hoặc ‘Minor’ tùy thuộc vào giá trị của cột “age” trong bảng “users”.
- Hàm CAST/CONVERT: Chuyển đổi giá trị dữ liệu từ một kiểu dữ liệu sang kiểu dữ liệu khác.
Ví dụ: SELECT CAST(‘2023-06-13’ AS DATE) AS ConvertedDate;Kết quả: ConvertedDate = ‘2023-06-13’
Đây chỉ là một số ví dụ cơ bản về hàm số trong SQL. Cú pháp và chức năng của từng hàm có thể khác nhau tùy vào hệ quản trị cơ sở dữ liệu mà bạn đang sử dụng. Hãy tham khảo tài liệu hướng dẫn hoặc tìm hiểu thêm về các hàm cụ thể để sử dụng chúng một cách chính xác trong công việc của bạn.
Hàm chuỗi trong SQL
Hàm chuỗi (String function) trong SQL là các hàm được sử dụng để thực hiện các phép toán và xử lý dữ liệu trên chuỗi ký tự. Chúng giúp thực hiện các thao tác như kết hợp chuỗi, trích xuất phần của chuỗi, đổi chữ hoa/chữ thường, xóa khoảng trắng và thay thế chuỗi. Dưới đây là một số hàm chuỗi phổ biến trong SQL:
- Hàm CONCAT: Kết hợp hai hoặc nhiều chuỗi thành một chuỗi duy nhất.
Ví dụ: SELECT CONCAT(‘Hello’, ‘ ‘, ‘World’) AS ConcatenatedString;Kết quả: ConcatenatedString = ‘Hello World’
- Hàm SUBSTRING: Trích xuất một phần của chuỗi dựa trên vị trí và độ dài cho trước.
Ví dụ: SELECT SUBSTRING(‘Hello World’, 7, 5) AS SubstringResult;Kết quả: SubstringResult = ‘World’
- Hàm LENGTH: Trả về độ dài của một chuỗi.
Ví dụ: SELECT LENGTH(‘Hello’) AS StringLength;Kết quả: StringLength = 5
- Hàm UPPER/LOWER: Chuyển đổi một chuỗi thành chữ hoa hoặc chữ thường.
Ví dụ: SELECT UPPER(‘hello’) AS UppercaseString, LOWER(‘WORLD’) AS LowercaseString;Kết quả: UppercaseString = ‘HELLO’, LowercaseString = ‘world’
- Hàm TRIM: Loại bỏ khoảng trắng thừa từ đầu và cuối chuỗi.
Ví dụ: SELECT TRIM(‘ Hello World ‘) AS TrimmedString;Kết quả: TrimmedString = ‘Hello World’
- Hàm REPLACE: Thay thế một chuỗi con trong chuỗi bằng một chuỗi khác.
Ví dụ: SELECT REPLACE(‘Hello World’, ‘World’, ‘Universe’) AS ReplacedString;Kết quả: ReplacedString = ‘Hello Universe’
Đây là một số ví dụ cơ bản về hàm chuỗi trong SQL. Tuy nhiên, SQL cung cấp nhiều hàm chuỗi khác nhau, và mỗi hệ quản trị cơ sở dữ liệu có thể có các hàm đặc thù riêng. Hãy tham khảo tài liệu hướng dẫn hoặc tìm hiểu thêm về hàm chuỗi cụ thể được hỗ trợ trong hệ thống của bạn để sử dụng chúng một cách chính xác và hiệu quả.
Hàm ngày tháng (Date function)
Hàm ngày tháng (Date function) trong SQL là các hàm được sử dụng để thao tác và xử lý dữ liệu ngày tháng trong cơ sở dữ liệu. Chúng cho phép trích xuất thông tin ngày, tháng, năm, tính toán khoảng thời gian và thực hiện các phép toán liên quan đến ngày tháng. Dưới đây là một số hàm ngày tháng phổ biến trong SQL:
- Hàm DATE: Trả về ngày hiện tại.
Ví dụ: SELECT DATE() AS CurrentDate;Kết quả: CurrentDate = ‘2023-06-13’ (nếu ngày hiện tại là 13/06/2023)
- Hàm YEAR: Trích xuất năm từ một giá trị ngày tháng.
Ví dụ: SELECT YEAR(‘2023-06-13’) AS ExtractedYear;Kết quả: ExtractedYear = 2023
- Hàm MONTH: Trích xuất tháng từ một giá trị ngày tháng.
Ví dụ: SELECT MONTH(‘2023-06-13’) AS ExtractedMonth;Kết quả: ExtractedMonth = 6
- Hàm DAY: Trích xuất ngày từ một giá trị ngày tháng.
Ví dụ: SELECT DAY(‘2023-06-13’) AS ExtractedDay;Kết quả: ExtractedDay = 13
- Hàm DATEADD: Thêm một khoảng thời gian (ngày, tháng, năm) vào một giá trị ngày tháng.
Ví dụ: SELECT DATEADD(MONTH, 3, ‘2023-06-13’) AS NewDate;Kết quả: NewDate = ‘2023-09-13’ (ngày 13/09/2023 sau khi thêm 3 tháng)
- Hàm DATEDIFF: Tính toán khoảng thời gian (ngày, tháng, năm) giữa hai giá trị ngày tháng.
Ví dụ: SELECT DATEDIFF(YEAR, ‘1990-01-01’, ‘2023-06-13’) AS YearDifference;Kết quả: YearDifference = 33 (khoảng cách là 33 năm)
Đây là một số ví dụ cơ bản về hàm ngày tháng trong SQL. Cú pháp và chức năng của từng hàm có thể khác nhau tùy vào hệ quản trị cơ sở dữ liệu mà bạn đang sử dụng. Hãy tham khảo tài liệu hướng dẫn hoặc tìm hiểu thêm về các hàm cụ thể để sử dụng chúng một cách chính xác và phù hợp với yêu cầu của bạn.
Hàm logic (Logical function)
Hàm logic (Logical function) trong SQL là các hàm được sử dụng để thực hiện các phép kiểm tra logic và trả về giá trị Boolean (TRUE hoặc FALSE) dựa trên điều kiện đã định. Chúng giúp thực hiện các phép so sánh, kiểm tra sự tồn tại, xác định giá trị NULL và thực hiện các phép logic. Dưới đây là một số hàm logic phổ biến trong SQL:
- Hàm IF: Kiểm tra một điều kiện và trả về giá trị tương ứng nếu điều kiện đúng và giá trị mặc định nếu điều kiện sai.
Ví dụ: SELECT IF(5 > 3, ‘True’, ‘False’) AS Result;Kết quả: Result = ‘True’
- Hàm CASE: Thực hiện kiểm tra điều kiện và trả về giá trị tương ứng dựa trên các trường hợp đã định.
Ví dụ: SELECT CASE WHEN grade >= 90 THEN ‘A’ WHEN grade >= 80 THEN ‘B’ WHEN grade >= 70 THEN ‘C’ ELSE ‘F’ END AS GradeLetter FROM students;Kết quả: GradeLetter = ‘A’, ‘B’, ‘C’ hoặc ‘F’ tùy thuộc vào giá trị của cột “grade” trong bảng “students”.
- Hàm COALESCE: Trả về giá trị đầu tiên không phải là NULL từ danh sách các giá trị.
Ví dụ: SELECT COALESCE(NULL, ‘Value1’, ‘Value2’) AS Result;Kết quả: Result = ‘Value1’
- Hàm IS NULL: Kiểm tra xem giá trị có phải là NULL hay không.
Ví dụ: SELECT column_name FROM table_name WHERE column_name IS NULL;Kết quả: Trả về các giá trị trong cột “column_name” mà là NULL.
- Hàm AND/OR/NOT: Thực hiện các phép logic AND (và), OR (hoặc) và NOT (phủ định) để kết hợp các điều kiện.
Ví dụ: SELECT * FROM table_name WHERE condition1 AND condition2;Kết quả: Trả về các hàng trong “table_name” thỏa mãn cả hai điều kiện condition1 và condition2.
Đây là một số ví dụ cơ bản về hàm logic trong SQL. Cú pháp và chức năng của từng hàm có thể khác nhau tùy vào hệ quản trị cơ sở dữ liệu mà bạn đang sử dụng. Hãy tham khảo tài liệu hướng dẫn hoặc tìm hiểu thêm về các hàm cụ thể để sử dụng chúng một cách chính xác và phù hợp với yêu cầu của bạn.
Lợi ích của việc sử dụng hàm trong SQL
Việc sử dụng hàm trong SQL (Structured Query Language) mang lại nhiều lợi ích quan trọng cho việc thao tác và xử lý dữ liệu trong cơ sở dữ liệu. Dưới đây là một số lợi ích chính của việc sử dụng hàm trong SQL:
- Tái sử dụng mã: Hàm cho phép bạn viết và đóng gói một đoạn mã logic hoặc tính toán phức tạp thành một đơn vị độc lập. Bằng cách sử dụng hàm, bạn có thể tái sử dụng mã này ở nhiều vị trí khác nhau trong câu lệnh SQL, tránh việc viết lại mã và tăng tính DRY (Don’t Repeat Yourself).
- Đơn giản hóa mã SQL: Hàm giúp đơn giản hóa mã SQL bằng cách thay thế các phép tính phức tạp và công thức thành một lời gọi hàm đơn giản. Điều này giúp mã SQL trở nên dễ đọc, dễ hiểu và dễ bảo trì hơn.
- Tăng tính linh hoạt: Hàm cung cấp một loạt các chức năng và tính năng mở rộng để thực hiện các phép tính phức tạp trong SQL. Bạn có thể sử dụng các hàm số, hàm chuỗi, hàm ngày tháng, hàm logic và nhiều hàm khác để thực hiện các tác vụ phù hợp với yêu cầu của bạn. Điều này tăng tính linh hoạt và khả năng mở rộng của các câu lệnh SQL.
- Tăng hiệu suất và tối ưu hóa: Bằng cách sử dụng hàm, bạn có thể tối ưu hóa các câu lệnh SQL để thực hiện tính toán phức tạp trên cơ sở dữ liệu. Hàm cung cấp các phép toán và tính năng tối ưu hóa tích hợp, giúp giảm thời gian xử lý và tối ưu hóa hiệu suất của các truy vấn SQL.
- Mở rộng khả năng truy vấn: Hàm mở rộng khả năng truy vấn của SQL bằng cách cung cấp các chức năng phức tạp như phân tích dữ liệu, tổng hợp, trích xuất và chuyển đổi dữ liệu. Bạn có thể sử dụng hàm để thực hiện các thao tác phức tạp trên dữ liệu như tìm kiếm, lọc, sắp xếp và nhóm.
- Khả năng tuỳ chỉnh: Hàm cho phép bạn tạo ra các hàm tuỳ chỉnh dựa trên yêu cầu cụ thể của dự án. Bạn có thể tạo ra các hàm tùy chỉnh để thực hiện các tính toán đặc biệt, xử lý chuỗi ký tự, phân tích dữ liệu và nhiều nhiệm vụ khác theo ý muốn.
Tóm lại, việc sử dụng hàm trong SQL mang lại nhiều lợi ích như tái sử dụng mã, đơn giản hóa mã SQL, tăng tính linh hoạt, tối ưu hóa hiệu suất, mở rộng khả năng truy vấn và khả năng tuỳ chỉnh. Điều này giúp tăng tính hiệu quả và khả năng mở rộng của các hệ thống cơ sở dữ liệu SQL.
Lưu ý khi sử dụng hàm trong SQL
Khi sử dụng hàm trong SQL, dưới đây là một số lưu ý quan trọng để bạn cân nhắc:
- Đọc tài liệu hướng dẫn: Trước khi sử dụng một hàm cụ thể, hãy đọc tài liệu hướng dẫn của hệ quản trị cơ sở dữ liệu (DBMS) để hiểu cú pháp, tham số và cách sử dụng chính xác của hàm đó. Mỗi DBMS có thể có cú pháp và hành vi khác nhau cho các hàm.
- Hiểu về hiệu suất: Một số hàm có thể tốn nhiều tài nguyên hơn hoặc làm giảm hiệu suất của câu lệnh SQL. Đặc biệt là các hàm thực hiện trên một tập dữ liệu lớn. Hãy hiểu và đánh giá tác động của hàm đến hiệu suất và tối ưu hóa câu lệnh SQL khi cần thiết.
- Xử lý lỗi: Hãy kiểm tra và xử lý các trường hợp đặc biệt hoặc lỗi có thể xảy ra khi sử dụng hàm. Ví dụ, hàm có thể trả về giá trị NULL, phát sinh ngoại lệ hoặc không thực hiện đúng như mong đợi trong một số tình huống.
- Tối ưu hóa sử dụng: Khi sử dụng hàm, hãy đảm bảo rằng bạn sử dụng chúng theo cách tối ưu nhất. Điều này bao gồm việc chọn đúng loại hàm, sử dụng tham số phù hợp và lựa chọn cách gọi hàm sao cho tối ưu về hiệu suất và tài nguyên.
- Kiểm tra tính tương thích: Nếu bạn đang sử dụng nhiều DBMS hoặc đang thực hiện việc di chuyển dữ liệu giữa các hệ thống, hãy đảm bảo rằng các hàm bạn sử dụng tương thích và có cùng cú pháp và hành vi trên các nền tảng khác nhau.
- Bảo mật dữ liệu: Khi sử dụng hàm, hãy đảm bảo rằng bạn xử lý các vấn đề bảo mật dữ liệu như xác thực và phân quyền. Hạn chế quyền truy cập và đảm bảo rằng hàm không tiết lộ thông tin nhạy cảm hoặc gây nguy hiểm cho hệ thống.
- Kiểm tra và kiểm soát lỗi: Hãy kiểm tra và kiểm soát lỗi khi sử dụng hàm. Sử dụng các công cụ và kỹ thuật phù hợp để gỡ lỗi và giám sát hoạt động của hàm trong quá trình thực thi.
Nhớ rằng lưu ý này là một phần quan trọng trong việc sử dụng hàm trong SQL, và nó cần được áp dụng phù hợp với yêu cầu và môi trường cụ thể của bạn.