Các kiểu dữ liệu trong SQL Server
Trong hướng dẫn này, bạn sẽ tìm hiểu về các kiểu dữ liệu trong SQL Server bao gồm số, chuỗi ký tự, chuỗi nhị phân, ngày & giờ và các kiểu dữ liệu khác.
Tổng quan các kiểu dữ liệu trong SQL Server
Trong SQL Server, cột, biến và tham số giữ một giá trị được liên kết với một kiểu hoặc còn được gọi là kiểu dữ liệu. Kiểu dữ liệu là một thuộc tính chỉ định kiểu dữ liệu mà các đối tượng này có thể lưu trữ. Nó có thể là một số nguyên, chuỗi ký tự, tiền tệ, ngày và giờ, v.v.
SQL Server cung cấp danh sách các kiểu dữ liệu định nghĩa tất cả các kiểu dữ liệu mà bạn có thể sử dụng, ví dụ: khai báo một cột hoặc khai báo một biến.
Hình ảnh sau đây minh họa hệ thống kiểu dữ liệu SQL Server:
Lưu ý rằng SQL Server sẽ loại bỏ các kiểu dữ liệu ntext , văn bản và hình ảnh trong phiên bản tương lai của nó. Do đó, bạn nên tránh sử dụng các kiểu dữ liệu này và thay vào đó hãy sử dụng các kiểu dữ liệu nvarchar (max) , varchar (max) và varbinary (max) .
Kiểu dữ liệu số nguyên
Kiểu dữ liệu số lưu trữ các số như số nguyên, số thập phân hoặc số tiền.
- Bit lưu trữ một trong ba giá trị 0, 1 và NULL
- Các kiểu dữ liệu int, bigint, smallint và tinyint lưu trữ dữ liệu số nguyên.
- Kiểu dữ liệu decimal và numeric lưu trữ các số có độ chính xác và tỷ lệ cố định. Lưu ý rằng decimal và numeric là các synonym.
- Kiểu dữ liệu money và smallmoney lưu trữ các giá trị tiền tệ.
Bảng sau minh họa các đặc điểm của kiểu dữ liệu số chính xác:
Kiểu dữ liệu | Giới hạn dưới | Giới hạn trên | Bộ nhớ |
---|---|---|---|
bigint | −2^63 (−9,223,372, 036,854,775,808) | 2^63−1 (−9,223,372, 036,854,775,807) | 8 bytes |
int | −2^31 (−2,147, 483,648) | 2^31−1 (−2,147, 483,647) | 4 bytes |
smallint | −2^15 (−32,767) | 2^15 (−32,768) | 2 bytes |
tinyint | 0 | 255 | 1 byte |
bit | 0 | 1 | 1 byte/8bit column |
decimal | −10^38+1 | 10^381−1 | 5 to 17 bytes |
numeric | −10^38+1 | 10^381−1 | 5 to 17 bytes |
money | −922,337, 203, 685,477.5808 | +922,337, 203, 685,477.5807 | 8 bytes |
smallmoney | −214,478.3648 | +214,478.3647 | 4 bytes |
Kiểu dữ liệu số thực
Kiểu dữ liệu số thực lưu trữ dữ liệu số dấu phẩy động. Chúng thường được sử dụng trong các tính toán khoa học.
Kiểu dữ liệu | Giới hạn dưới | Giới hạn trên | Bộ nhớ | Độ chính xác |
---|---|---|---|---|
float(n) | −1.79E+308 | 1.79E+308 | Depends on the value of n | 7 Digit |
real | −3.40E+38 | 3.40E+38 | 4 bytes | 15 Digit |
Kiểu dữ liệu Ngày & Giờ
Các kiểu dữ liệu ngày và giờ lưu trữ dữ liệu ngày và dữ liệu giờ cũng như độ lệch ngày giờ.
Kiểu dữ liệu | Kích thước lưu trữ | Sự chính xác | Giới hạn dưới | Giới hạn trên |
---|---|---|---|---|
datetime | 8 bytes | Được làm tròn đến .000, .003, .007 | 1753-01-01 | 9999-12-31 |
smalldatetime | 4 bytes, cố định | 1 minute | 1900-01-01 | 2079-06-06 |
date | 3 bytes, cố định | 1 day | 0001-01-01 | 9999-12-31 |
time | 5 bytes | 100 nanoseconds | 00:00:00.0000000 | 23:59:59.9999999 |
datetimeoffset | 10 bytes | 100 nanoseconds | 0001-01-01 | 9999-12-31 |
datetime2 | 6 bytes | 100 nanoseconds | 0001-01-01 | 9999-12-31 |
Nếu bạn phát triển một ứng dụng mới, bạn nên sử dụng các kiểu dữ liệu time, date, datetime2 và datetimeoffset. Vì những kiểu này phù hợp với Chuẩn SQL và dễ di chuyển hơn. Ngoài ra time, datetime2 và datetimeoffset có độ chính xác giây nhiều hơn và datetimeoffset hỗ trợ múi giờ.
Kiểu dữ liệu chuỗi ký tự
Kiểu dữ liệu chuỗi ký tự cho phép bạn lưu trữ dữ liệu có độ dài cố định (char) hoặc độ dài thay đổi (varchar). Kiểu dữ liệu văn bản có thể lưu trữ dữ liệu không phải Unicode trong trang mã của máy chủ.
Kiểu dữ liệu | Giới hạn dưới | Giới hạn trên | Memory |
---|---|---|---|
char | 0 chars | 8000 chars | n bytes |
varchar | 0 chars | 8000 chars | n bytes + 2 bytes |
varchar (max) | 0 chars | 2^31 chars | n bytes + 2 bytes |
text | 0 chars | 2,147,483,647 chars | n bytes + 4 bytes |
Kiểu dữ liệu chuỗi ký tự Unicode
Kiểu dữ liệu chuỗi ký tự Unicode lưu trữ dữ liệu ký tự Unicode có độ dài cố định (nchar) hoặc độ dài thay đổi (nvarchar).
Kiểu dữ liệu | Giới hạn dưới | Giới hạn trên | Bộ nhớ |
---|---|---|---|
nchar | 0 ký tự | 4000 ký tự | 2 lần n bytes |
nvarchar | 0 ký tự | 4000 ký tự | 2 lần n bytes + 2 bytes |
ntext | 0 ký tự | 1,073,741,823 char | 2 lần độ dài chuỗi |
Kiểu dữ liệu chuỗi nhị phân
Các kiểu dữ liệu nhị phân lưu trữ dữ liệu nhị phân có độ dài cố định và thay đổi.
Kiểu dữ liệu | Giới hạn dưới | Giới hạn trên | Bộ nhớ |
---|---|---|---|
binary | 0 bytes | 8000 bytes | n bytes |
varbinary | 0 bytes | 8000 bytes | Độ dài thực tế của dữ liệu đã nhập + 2 bytes |
image | 0 bytes | 2,147,483,647 bytes |
Các kiểu dữ liệu khác
Kiểu dữ liệu | Mô tả |
---|---|
cursor | cho các biến hoặc tham số OUTPUT của stored procedure có chứa tham chiếu đến con trỏ |
rowversion | hiển thị các số nhị phân duy nhất, được tạo tự động trong cơ sở dữ liệu. |
hierarchyid | đại diện cho một vị trí cây trong một hệ thống phân cấp cây |
uniqueidentifier | 16-byte GUID |
sql_variant | lưu trữ các giá trị của các kiểu dữ liệu khác |
XML | lưu trữ dữ liệu XML trong một cột hoặc một biến kiểu XML |
Spatial Geometry type | biểu diễn dữ liệu trong một hệ tọa độ phẳng. |
Spatial Geography type | lưu trữ dữ liệu hình elip (hình tròn), chẳng hạn như tọa độ kinh độ và vĩ độ GPS. |
table | lưu trữ tập hợp kết quả tạm thời để xử lý sau |
Trong hướng dẫn này, bạn đã học tổng quan ngắn gọn về các kiểu dữ liệu trong SQL Server. Chúng ta sẽ xem xét chi tiết từng kiểu dữ liệu trong các bài hướng dẫn tiếp theo.