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ệu | Từ | Tới |
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 trong SQL
Kiểu dữ liệu | Từ | Tới |
float | -1.79E + 308 | 1.79E + 308 |
real | -3.40E + 38 | 3.40E + 38 |
Kiểu dữ liệu Date và Time trong SQL
Kiểu dữ liệu | Từ | Tới |
datetime
| Jan 1, 1753 | Dec 31, 9999 |
smalldatetime | Jan 1, 1900 | Jun 6, 2079 |
date | Lưu giữ một date dạng June 30, 1991 |
time | Lư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ệu | Miêu tả |
char | Khô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) |
varchar | Khô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) |
text | Khô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ệu | Miê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ệu | Miê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ệu | Miêu tả |
sql_variant | Lư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 |
timestamp | Lư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 |
uniqueidentifier | Lưu giữ một định danh chung (Globally Unique Identifier - GUID) |
xml | Lư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) |
cursor | Tham chiếu tới một đối tượng con trỏ (Cursor) |
table | Lưu giữ một tập hợp kết quả để xử lý vào lần sau |