Kiểu dữ liệu trong SQL



Kiểu dữ liệu trong SQL định nghĩa một kiểu giá trị mà một cột có thể chứa. Trong một bảng, mỗi cột cần có một tên và một kiểu dữ liệu. Kiểu dữ liệu thì khá đa dạng với các Database khác nhau. Ví dụ, MySQl hỗ trợ kiểu INT nhưng Oracle hỗ trợ kiểu NUMBER cho các giá trị nguyên.

Bạn sẽ sử dụng những kiểu dữ liệu này trong khi tạo các bảng của mình. Bạn sẽ chọn một kiểu dữ liệu cụ thể cho một 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 kiểu dữ liệu cho bạn sử dụng:

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

Kiểu dữ liệuTừTới
bigint-9,223,372,036,854,775,8089,223,372,036,854,775,807
int-2,147,483,6482,147,483,647
smallint-32,76832,767
tinyint0255
bit01
decimal-10^38 +110^38 -1
numeric-10^38 +110^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 trong SQL

Kiểu dữ liệuTừTới
float-1.79E + 3081.79E + 308
real-3.40E + 383.40E + 38

Kiểu dữ liệu Date và Time trong SQL

Kiểu dữ liệuTừTới
datetime
Jan 1, 1753Dec 31, 9999
smalldatetimeJan 1, 1900Jun 6, 2079
dateLưu giữ một date dạng June 30, 1991
timeLưu giữ một time dạng 12:30 P.M.

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

Kiểu dữ liệu Character String (kiểu chuỗi) trong SQL

Kiểu dữ liệuMiêu tả
charKhông chứa Unicode, độ dài tối đa là 8.000 ký tự (các ký tự không phải Unicode có độ dài cố định)
varcharKhông chứa Unicode, độ dài tối đa là 8.000 ký tự (dữ liệu không phải Unicode có độ dài có thể thay đổi)
varchar(max)Không chứa Unicode, độ dài tối đa là 231 ký tự, dữ liệu không phải Unicode có độ dài có thể thay đổi (chỉ với SQL Server 2005)
textKhông chứa Unicode, độ dài tối đa là 2.147.483.647 ký tự, dữ liệu không phải Unicode có độ dài có thể thay đổi

Kiểu dữ liệu Unicode Character String (kiểu chuỗi có chứa Unicode) trong SQL

Kiểu dữ liệuMiêu tả
ncharĐộ dài tối đa là 4.000 ký tự (Unicode có độ dài cố định)
nvarcharĐộ dài tối đa là 4.000 ký tự (Unicode có độ dài có thể thay đổi)
nvarchar(max)Độ dài tối đa là 231 ký tự, Unicode có độ dài có thể thay đổi (chỉ với SQL Server 2005)
ntextĐộ dài tối đa là 1.073.741.823 ký tự (Unicode có độ dài có thể thay đổi)

Kiểu dữ liệu Binary trong SQL

Kiểu dữ liệuMiêu tả
binaryĐộ dài tối đa là 8.000 byte (dữ liệu binary có độ dài cố định )
varbinaryĐộ dài tối đa là 8.000 byte (dữ liệu binary có độ dài có thể thay đổi)
varbinary(max)Độ dài tối đa là 231 byte, dữ liệu binary có độ dài có thể thay đổi (chỉ với SQL Server 2005)
imageĐộ dài tối đa là 2.147.483.647 byte (dữ liệu binary có độ dài có thể thay đổi)

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

Kiểu dữ liệuMiêu tả
sql_variantLưu giữ các giá trị của các kiểu dữ liệu đa dạng được hỗ trợ bởi SQL Serverv, ngoại trừ text, ntext, và timestamp
timestampLưu giữ một số duy nhất mà được cập nhật mỗi khi một hàng được cập nhật
uniqueidentifierLưu giữ một định danh chung (Globally Unique Identifier - GUID)
xmlLưu giữ dữ liệu XML. Bạn có thể lưu giữ xml trong một column hoặc một biến (chỉ với SQL Server 2005)
cursorTham chiếu tới một đối tượng con trỏ (Cursor)
tableLưu giữ một tập hợp kết quả để xử lý vào lần sau