Kiểu dữ liệu trong SQL

Trong bài trước bạn đã biết những cú pháp SQL cơ bản rồi đúng không nào? Ở bài này chúng ta sẽ đi tìm hiểu về các kiểu dữ liệu trong SQL.

Giống như những ngôn ngữ khác, SQL cũng có những kiểu dữ liệu riêng. Kiểu dữ liệu của SQL (SQL Data Type) là thuộc tính xác định loại dữ liệu của bất kỳ đối tượng nào. Mỗi cột, mỗi biến, biểu thức đều có kiểu dữ liệu liên quan trong SQL. Bạn có thể sử dụng các kiểu dữ liệu này để tạo bảng hoặc chọn kiểu dữ liệu cho cột trong bảng dựa trên yêu cầu của mình.

SQL Server cung cấp 6 loại dữ liệu mà bạn có thể sử dụng như trong danh sách dưới đây:

Kiểu dữ liệu Exact Numeric (số chính xác, không sai số)

Kiểu dữ liệu Bắt đầu từ Đến
bigint -9,223,372,036,854,775,808 9,223,372,036,854,775,807
int -2,147,483,648 2,147,483,647
smallint -32,768 32,767
tinyint 0 255
bit 0 1
decimal -10^38 +1 10^38 -1
numeric -10^38 +1 10^38 -1
money -922,337,203,685,477.5808 +922,337,203,685,477.5807
smallmoney -214,748.3648 +214,748.3647

Kiểu dữ liệu Approximate Numeric (số xấp xỉ)

Kiểu dữ liệu Bắt đầu từ Đến
float -1.79E + 308 1.79E + 308
real -3.40E + 38 3.40E + 38

Kiểu dữ liệu ngày giờ trong SQL

Kiểu dữ liệu Bắt đầu từ Đến
datetime Jan 1, 1753 Dec 31, 9999
smalldatetime Jan 1, 1900 Jun 6, 2079
date Lưu một ngày dưới dạng June 30, 1991
time Lưu giữ một thời gian dưới dạng 12:30 P.M.

Ở đây, datetime có độ chính xác là 3.33 mili giây, smalldatetime có độ chính xác là một phút.

Kiểu dữ liệu chuỗi ký tự

Kiểu dữ liệu Mô tả
char Độ dài tối đa là 8000 ký tự. (Các ký tự không phải Unicode có độ dài được fix cố định)
varchar Độ dài tối đa là 8000 ký tự. (Dữ liệu không phải Unicode có độ dài tùy biến).
varchar(max) Độ dài tối đa là 231 ký tự, dữ liệu không phải Unicode có độ dài tùy biến (Chỉ với SQL Server 2005).
text Dữ liệu không phải Unicode có độ dài tùy biến với độ dài tối đa là 2.147.483.647 ký tự.

Kiểu dữ liệu chuỗi ký tự, chứa Unicode

Kiểu dữ liệu Mô tả
nchar Dài tối đa 4.000 ký tự. (Ký tự Unicode có độ dài cố định)
nvarchar Dài tối đa 4.000 ký tự. (Ký tự Unicode có độ dài tùy biến)
nvarchar(max) Dài tối đa 231characters (chỉ với SQL Server 2005). (Ký tự Unicode có độ dài tùy biến)
ntext Dài tối đa 1.073.741.823 ký tự. (Ký tự Unicode có độ dài tùy biến)

Kiểu dữ liệu nhị phân (binary)

Kiểu dữ liệu Mô tả
binary Độ dài tối đa 8.000 byte (Dữ liệu nhị phân có độ dài cố định)
varbinary Chiều dài tối đa 8.000 byte (Dữ liệu nhị phân có chiều dài biến đổi)
varbinary(max) Dài tối đa 231 byte (chỉ trên SQL Server 2005). (Dữ liệu nhị phân có chiều dài biến đổi)
image Dài tối đa 2.147.483.647 byte. (Dữ liệu nhị phân có chiều dài biến đổi)

Các kiểu dữ liệu SQL khác

Kiểu dữ liệu Mô tả
sql_variant Lưu trữ những kiểu dữ liệu khác nhau được SQL Server hỗ trợ, ngoại trừ text, ntext và timestamp.
timestamp Lưu trữ một số duy nhất trong cơ sở dữ liệu, được cập nhật mỗi khi hàng được cập nhật.
uniqueidentifier3 Lưu trữ định danh chung duy nhất (Globally Unique Identifier – GUID)
xml Lưu trữ dữ liệu XML, bạn có thể lưu xml trong cột hoặc biến (chỉ trên SQL Server 2005).
cursor Tham chiếu tới một đối tượng con trỏ.
table Lưu trữ một tập hợp kết quả để xử lý sau.

Trong bài tiếp theo chúng ta sẽ tìm hiểu về các toán tử trong SQL.