Giới thiệu
Kiểu dữ liệu là một khía cạnh thiết yếu của bất kỳ hệ thống cơ sở dữ liệu nào, vì chúng xác định loại thông tin có thể được lưu trữ trong một cột của bảng. Các loại dữ liệu khác nhau có các thuộc tính khác nhau, chẳng hạn như phạm vi giá trị, định dạng, toán tử và các hàm có thể áp dụng cho chúng. Việc chọn loại dữ liệu phù hợp cho từng cột là điều quan trọng để đảm bảo tính chính xác, hiệu quả và tính toàn vẹn của dữ liệu.
Trong bài viết này, chúng ta sẽ khám phá một số kiểu dữ liệu phổ biến được sử dụng trong các hệ thống cơ sở dữ liệu khác nhau, chẳng hạn như kiểu dữ liệu số, ký tự, ngày và giờ và kiểu dữ liệu boolean. Chúng ta cũng sẽ thảo luận về một số hàm có thể được sử dụng để thao tác, chuyển đổi hoặc xác thực các loại dữ liệu khác nhau. Cuối cùng, mình sẽ cung cấp một số ví dụ về cách sử dụng các kiểu dữ liệu và hàm trong truy vấn SQL.
Kiểu dữ liệu số
Các kiểu dữ liệu số được sử dụng để lưu trữ các số, chẳng hạn như số nguyên, số thập phân hoặc phân số. Các kiểu dữ liệu số có thể được phân loại thêm thành các kiểu dữ liệu số nguyên, floating-point và fixed-point, tùy thuộc vào độ chính xác và tỷ lệ của các số.
Kiểu dữ liệu số nguyên được sử dụng để lưu trữ các số nguyên, chẳng hạn như 1, 2, 3, v.v.. Kiểu dữ liệu số nguyên có thể có các kích cỡ khác nhau, chẳng hạn như tinyint, smallint, int, bigint, v.v., tùy thuộc vào hệ thống cơ sở dữ liệu và phạm vi của những giá trị cần thiết. Ví dụ: trong SQL Server, kiểu dữ liệu tinyint có thể lưu trữ các giá trị từ 0 đến 255, trong khi kiểu dữ liệu bigint có thể lưu trữ các giá trị từ -2^63 đến 2^63-1.
Kiểu dữ liệu Floating-point được dùng để lưu trữ các số có phần phân số, chẳng hạn như 1.23, 3.14, v.v. Các kiểu dữ liệu Floating-point cũng có thể có các kích thước khác nhau, chẳng hạn như float, real, double, v.v., tùy thuộc vào cơ sở dữ liệu hệ thống và độ chính xác của các con số. Ví dụ: trong MySQL, kiểu dữ liệu float có thể lưu trữ các giá trị từ -3.402823466E+38 đến -1.175494351E-38, 0 và 1.175494351E-38 đến 3.402823466E+38, với độ chính xác là 7 chữ số.
Kiểu dữ liệu Fixed-point được sử dụng để lưu trữ các số có số vị trí thập phân cố định, chẳng hạn như 1.23, 3.14, v.v.. Kiểu dữ liệu Fixed-point thường được sử dụng cho dữ liệu tiền tệ hoặc tài chính vì chúng có thể tránh được các lỗi làm tròn có thể xảy ra với các kiểu dữ liệu dấu phẩy động. Các kiểu dữ liệu điểm cố định có thể có các tên khác nhau như thập phân, số, tiền, v.v. tùy thuộc vào hệ thống cơ sở dữ liệu cũng như độ chính xác và tỷ lệ của các số. Ví dụ: trong PostgreSQL, kiểu dữ liệu số có thể lưu trữ các giá trị từ -10^131 đến 10^131, với độ chính xác lên tới 1000 chữ số và thang tỷ lệ lên tới 16383 chữ số.
Một số hàm phổ biến có thể được sử dụng với kiểu dữ liệu số là:
- Các toán tử số học như +, -, *, /, %, v.v. để thực hiện các phép tính cơ bản trên các giá trị số.
- Các hàm tổng hợp, chẳng hạn như SUM, AVG, MIN, MAX, COUNT, v.v., để thực hiện các phép tính trên một tập hợp các giá trị số.
- Các hàm toán học, chẳng hạn như ABS, CEIL, FLOOR, ROUND, SQRT, POW, LOG, v.v., để thực hiện các phép toán khác nhau trên các giá trị số.
- Các hàm chuyển đổi như CAST, CONVERT, TO_NUMBER, v.v. để chuyển đổi các giá trị số sang các kiểu hoặc định dạng dữ liệu khác.
Kiểu dữ liệu ký tự
Kiểu dữ liệu ký tự được sử dụng để lưu trữ văn bản, chẳng hạn như chữ cái, từ, câu, v.v. Kiểu dữ liệu ký tự có thể được phân loại thêm thành loại dữ liệu có độ dài cố định và độ dài thay đổi, tùy thuộc vào kích thước của văn bản.
Các kiểu dữ liệu ký tự có độ dài cố định được sử dụng để lưu trữ văn bản có kích thước không đổi và được xác định trước, chẳng hạn như char, nchar, v.v.. Các kiểu dữ liệu ký tự có độ dài cố định có thể lưu trữ văn bản với tối đa một số ký tự nhất định và mọi khoảng trắng thừa sẽ được đệm với khoảng trống. Ví dụ: trong Oracle, kiểu dữ liệu char có thể lưu trữ văn bản tối đa 2000 byte và kiểu dữ liệu nchar có thể lưu trữ văn bản tối đa 2000 ký tự.
Các kiểu dữ liệu ký tự có độ dài thay đổi được sử dụng để lưu trữ văn bản có kích thước thay đổi và linh hoạt, chẳng hạn như varchar, nvarchar, văn bản, v.v. Các kiểu dữ liệu ký tự có độ dài thay đổi có thể lưu trữ văn bản với số lượng ký tự tối đa nhất định và bất kỳ ký tự bổ sung nào không gian không được sử dụng. Ví dụ: trong SQL Server, kiểu dữ liệu varchar có thể lưu trữ văn bản tối đa 8000 byte và kiểu dữ liệu nvarchar có thể lưu trữ văn bản tối đa 4000 ký tự.
Một số hàm phổ biến có thể được sử dụng với kiểu dữ liệu ký tự là:
- Toán tử ghép, chẳng hạn như ||, +, v.v., để nối hai hoặc nhiều giá trị văn bản lại với nhau.
- Các hàm chuỗi, chẳng hạn như LENGTH, SUBSTRING, TRIM, UPPER, LOWER, REPLACE, v.v., để thao tác hoặc trích xuất các phần của giá trị văn bản.
- Các hàm khớp mẫu, chẳng hạn như LIKE, REGEXP, v.v., để tìm kiếm các giá trị văn bản khớp với một mẫu hoặc biểu thức nhất định.
- Các hàm chuyển đổi như CAST, CONVERT, TO_CHAR, v.v. để chuyển đổi giá trị văn bản sang các kiểu hoặc định dạng dữ liệu khác.
Các kiểu dữ liệu ngày và giờ
Kiểu dữ liệu ngày và giờ (DATE & TIME) được dùng để lưu trữ các giá trị đại diện cho ngày, giờ hoặc cả hai, chẳng hạn như 2021-01-02, 08:09:41, v.v.. Kiểu dữ liệu ngày và giờ có thể có các tên khác nhau, chẳng hạn như ngày, giờ , datetime, timestamp, v.v., tùy thuộc vào hệ thống cơ sở dữ liệu và mức độ chi tiết cần thiết. Ví dụ: trong SQLite, kiểu dữ liệu ngày có thể lưu trữ các giá trị ở định dạng YYYY-MM-DD và kiểu dữ liệu thời gian có thể lưu trữ các giá trị ở định dạng HH:MM:SS.
Một số hàm phổ biến có thể được sử dụng với kiểu dữ liệu ngày và giờ là:
- Các hàm ngày và giờ, chẳng hạn như CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, v.v., để lấy ngày, giờ hiện tại hoặc cả hai.
- Số học ngày và giờ, chẳng hạn như +, -, v.v., để cộng hoặc trừ các khoảng ngày, giờ, phút, giây, v.v., đến hoặc từ các giá trị ngày và giờ.
- Các hàm trích xuất ngày và giờ, chẳng hạn như YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, v.v., để trích xuất các phần của giá trị ngày và giờ.
- Các hàm định dạng ngày và giờ như TO_DATE, TO_TIME, TO_CHAR, v.v. để chuyển đổi giá trị ngày và giờ sang các định dạng hoặc kiểu dữ liệu khác.
Các kiểu dữ liệu Boolean
Các kiểu dữ liệu Boolean được sử dụng để lưu trữ các giá trị biểu thị trạng thái logic hoặc nhị phân, chẳng hạn như đúng hoặc sai, có hoặc không, v.v. Các kiểu dữ liệu Boolean có thể có các tên khác nhau, chẳng hạn như boolean, bit, v.v., tùy thuộc vào hệ thống cơ sở dữ liệu và sự biểu diễn của các giá trị. Ví dụ: trong MySQL, kiểu dữ liệu boolean là từ đồng nghĩa với kiểu dữ liệu tinyint và có thể lưu trữ các giá trị 0 (sai) hoặc 1 (đúng).
Một số hàm phổ biến có thể được sử dụng với kiểu dữ liệu boolean là:
- Các toán tử logic, chẳng hạn như AND, OR, NOT, v.v., để kết hợp hoặc phủ định các giá trị boolean.
- Các toán tử so sánh như =, <>, >, <, v.v. để so sánh các giá trị của các kiểu dữ liệu khác nhau và trả về các giá trị boolean.
- Các hàm có điều kiện, chẳng hạn như IF, CASE, COALESCE, v.v., để trả về các giá trị khác nhau dựa trên các điều kiện boolean.
Phần kết luận
Tóm lại, các kiểu dữ liệu là một khía cạnh quan trọng của bất kỳ hệ thống cơ sở dữ liệu nào, vì chúng xác định loại thông tin có thể được lưu trữ trong một cột của bảng. Các loại dữ liệu khác nhau có các thuộc tính khác nhau, chẳng hạn như phạm vi giá trị, định dạng, toán tử và các hàm có thể áp dụng cho chúng. Việc chọn loại dữ liệu phù hợp cho từng cột là điều quan trọng để đảm bảo tính chính xác, hiệu quả và tính toàn vẹn của dữ liệu.
Trong bài viết này, chúng ta đã khám phá một số kiểu dữ liệu phổ biến được sử dụng trong các hệ thống cơ sở dữ liệu khác nhau, chẳng hạn như kiểu dữ liệu số, ký tự, ngày và giờ và kiểu dữ liệu boolean. Chúng ta cũng đã thảo luận về một số hàm có thể được sử dụng để thao tác, chuyển đổi hoặc xác thực các loại dữ liệu khác nhau. Cuối cùng, chúng tôi đã cung cấp một số ví dụ về cách sử dụng các kiểu dữ liệu và hàm trong truy vấn SQL.