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.
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ố lưu trữ các số như số nguyên, số thập phân hoặc số tiền.
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 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 |
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ự 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 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 |
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 |
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.
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Trong hướng dẫn này, bạn sẽ tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID() để tạo giá trị GUID.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATETIMEOFFSET trong SQL Server để thao tác datetime với múi giờ.
Trong hướng dẫn này, bạn sẽ học cách lưu trữ thời gian trong ngày trong cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu TIME trong SQL Server.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATE trong SQL Server để lưu trữ dữ liệu ngày tháng trong một bảng.