Giới thiệu
Kiểu dữ liệu là chủ đề quan trọng trong hệ thống quản lý cơ sở dữ liệu (DBMS). Dữ liệu định nghĩa kiểu dữ liệu. Có một số kiểu dữ liệu như chuỗi string, image, number,... Dữ liệu được phân thành nhiều loại để duy trì đúng cách.
Data
Data là đơn vị nhỏ nhất của thông tin. Trong hệ thống quản lý cơ sở dữ liệu, thông tin hoặc bảng ghi được nhóm lại từ một số dữ liệu đơn vị có liên quan. Trong context data được gọi là field(trường). Mỗi trường có kiểu dữ liệu riêng phụ thuộc vào dữ liệu.
Kiểu Data
Data có kiểu dữ liệu dựa trên hành vi. SQL Server cung cấp tập hợp các kiểu dữ liệu. Chúng được phân loại thành sáu loại khác nhau.
Kiểu dữ liệu nhóm
Numerics chính xác
bigint :
Min value: -2^63 = -9223372036854775808
Max value: 2^63-1 = 9223372036854775807
Size: 8 bytes
int:
Min value: -2^31 = -2147483648
Max value: 2^31-1 = 2147483647
Size: 4 bytes
smallint
Min value: -2^15 = – 32768
Max value: 2^15-1 = 32767
Size: 2 bytes
tinyint
Min value: 0
Max value: 255
Size: 1 byte
bit
Min value: 0
Max value: 1
Size: 1 Byte đến 2 bytes
decimal
Min value: -10^38 + 1
Max value: 10^38 – 1
Size: Precision 1-9 = 5 bytes, precision 10-19 = 9 bytes, precision 20-28 = 13 bytes, precision 29-38 = 17 bytes
Money
Min value: -2^63/10000 = – 922337203685477.5808
Max value: -2^63 – 1/10000 = 922337203685477.5807
Size: 8 bytes
smallmoney
Min value: -2^31/10000 = -214748.3648
Max value: 2^31-1/10000 = 214748.3647
Size: 4 bytes
numeric / decimal
Min value: - 10^38 +1
Max value: 10^38 – 1
Size: Precision 1 – 9 = 5 bytes, precision 10 –19 = 9 bytes, precision 20 – 28 = 13 bytes and precision 29 –38 = 17 bytes.
Numerics xấp xỉ
float
Range: – 3.40E + 38 to -1.18E – 38, 0 and 1.18E – 38 to 3.40E + 38
Size: 4 bytes
real
Range: – 1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308
Size: Precision 1 – 24 = 7 bytes, precision 25 –53 = 15 bytes
Thời gian
datetime
Min value: 1753-01-01 00:00:00.000
Max value: 9999-12-31 23:59:59.997
Size:8 bytes
smalldatetime
Min value: -2^31/10000 = -214748.3648
Max value: 2^31-1/10000 = 214748.3647
Size: 4 bytes
date
Min value: 0001-01-01
Max value: 9999-12-31
Size: 3 bytes
time
Min value: 00:00:00.0000000
Max value: 23:59:59.9999999
Size: 3 bytes
datetime2
Min value: 0001-01-01 00:00:00.0000000
Max value: 9999-12-31 23:59:59.9999999
Size: Precision 1-2 = 6 bytes, precision 3-4 = 7 bytes and precision 5-7 = 8 bytes
datetimeoffset
Min value: 0001-01-01 00:00:00.0000000 -14:00
Max value: 9999-12-31 23:59:59.9999999 +14:00
Size: Precision 1-2 = 8 bytes precision 3-4 = 9 bytes precision 5-7 = 10 bytes
Chuỗi Ký tự
char
Min value: 0 char
Max value: 8000 chars
Size: Defined width
varchar
Min value: 0 char
Max value: 8000 chars
Size: 2 bytes + number of chars
varchar(MAX)
Min value: 0 char
Max value: 2^31 = 2147483648 chars
Size: 2 bytes + number of chars
text
Min value: 0 char
Max value: 2,147,483,647 chars
Size: 4 bytes + number of chars
Chuỗi ký tự Unicode
nchar
Min value: 0 char
Max value: 4000 chars
Size Defined width x 2
nvarchar
Min value: 0 char
Max value: 4000 chars
Size: Defined width x 2
nvarchar(MAX)
Min value: 0 char
Max value: 2^30 = 1073741824 chars
Size: 4 bytes + number of chars
ntext
Min value: 0 char
Max value: 1,073,741,823 chars
Chuỗi nhị phân
binary
Min value: 0 byte
Max value: 8000 bytes
Size: n bytes (where n is in the range of 0–8000)
varbinary
Min value: 0 byte
Max value: 8000 bytes
Size: n +2 bytes (where n is in the range of 0–8000)
varbinary(MAX)
Min value: 0 byte
Max value: 2^31 = 2147483648 bytes
Size: n + 2 bytes (where n is in the range of 0–8000)
Image
Min value: 0 byte
Max value: 2,147,483,647 bytes
Size: 0 to 2,147,483,647 bytes
Các kiểu dữ liệu khác
sql_variant: Có thể lưu trữ bất kỳ loại dữ liệu khác như sql_variant, text, ntext, image, và timestamp.
Size: Lên đến 8,000 bytes
cursor: Lưu trữ tham chiếu đến con trỏ.
timestamp: timestamp là loại dữ liệu tự động tạo ra nhị phân duy nhất trong cơ sở dữ liệu.
Size: 8 bytes
uniqueidentifier: Lưu trữ khóa toàn cục duy nhất unique identifier.
Size: 2 bytes
xml: Lưu trữ tài liệu định dạng XML
Size: 0 to 2GB
Kết luận
Hầu hết các ứng dụng cần đến cơ sở dữ liệu. Hơn nữa, nếu bạn muốn trở thành nhà thiết kế cơ sở dữ liệu tốt, bạn cần phải biết tất cả các kiểu dữ liệu và giá trị min và max.