Kiểu dữ liệu của cột xác định giá trị mà cột có thể lưu trữ, ví dụ như: số nguyên, ký tự, số thực, ngày và giờ, nhị phân, v.v.
Mỗi cột trong bảng cơ sở dữ liệu đều bắt buộc phải có tên và chứa một kiểu dữ liệu cụ thể. Những người lập trình trên SQL phải lựa chọn kiểu dữ liệu cho cột sao cho phù hợp với mục đích lưu trữ.
1.Kiểu dữ liệu ký tự và chuỗi ký tự
Kiểu ký tự có thể lưu trữ các dữ liệu là các chữ như “abc…xyz” hay các số là ký tự như “0,1,2,3…7,8,9”. Bảng dưới đây liệt kê ra các kiểu dữ liệu ký tự và chuỗi ký tự kèm theo kích thước của từng kiểu dữ liệu.
Data type | Mô tả | Kích cỡ lớn nhất |
char(n) | Chuỗi ký tự có độ rộng cố định | 8,000 characters |
varchar(n) | Chuỗi ký tự có độ rộng thay đổi | 8,000 characters |
varchar(max) | Chuỗi ký tự có độ rộng thay đổi | 1,073,741,824 characters |
text | Chuỗi ký tự có độ rộng thay đổi | 2GB dữ liệu text |
nchar | Chuỗi Unicode có độ rộng cố định | 4,000 characters |
nvarchar | Chuỗi Unicode có độ rộng thay đổi | 4,000 characters |
nvarchar(max) | Chuỗi Unicode có độ rộng thay đổi | 536,870,912 characters |
ntext | Chuỗi Unicode có độ rộng thay đổi | 2GB dữ liệu text |
binary(n) | Chuỗi nhị phân chiều rộng cố định | 8,000 bytes |
varbinary | Chuỗi nhị phân chiều rộng thay đổi | 8,000 bytes |
varbinary(max) | Chuỗi nhị phân chiều rộng thay đổi | 2GB |
image | Chuỗi nhị phân chiều rộng thay đổi | 2GB |
2. Kiểu dữ liệu số
Kiểu số là kiểu chỉ được phép lưu trữ các con số. Các số có thể là các số nguyên, các số thực, các số nhị phân. Mỗi kiểu dữ liệu số khác nhau sẽ có độ dài giá trị khác nhau và kích thước khác nhau. Bảng dưới đây liệt kê ra một số kiểu dữ liệu số và độ dài của chúng.
Data type |
Mô tả |
Lưu trữ |
bit | Số nguyên có giá trị hoặc là 0 hoặc là 1 | |
tinyint | Số nguyên từ giá trị 0 đến 255 | 1 byte |
smallint | Số nguyên từ giá trị -32,768 đến 32,767 | 2 bytes |
int | Số nguyên từ giá trị -2,147,483,648 đến 2,147,483,647 | 4 bytes |
bigint | Số nguyên từ giá trị 9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807 | 8 bytes |
decimal(p,s) | Giá trị từ -10 ^ 38 +1 đến 10 ^ 38 –1.
Tham số p cho biết tổng chữ số tối đa có thể được lưu trữ (cả bên trái và bên phải của dấu thập phân) Tham số s cho biết số lượng chữ số tối đa được lưu trữ ở bên phải của dấu thập phân. |
5-17 bytes |
smallmoney | Dữ liệu tiền tệ từ -214.748.3648 đến 214.748.3647 | 4 bytes |
money | Dữ liệu tiền tệ từ -922.337.203.685.477.5808 đến 922.337.203.685.477.5807 | 8 bytes |
float(n) | Số thực có giá trị từ -1,79E + 308 đến 1,79E + 308
Tham số n cho biết trường nên sử dụng với kích thước 4 hay 8 byte. float (24) sẽ giữ trường 4 byte và float (53) giữ trường 8 byte. Giá trị mặc định của n là 53. |
4 hoặc 8 bytes |
real | Số thực có giá trị từ -3,40E + 38 đến 3,40E + 38 | 4 bytes |
3. Kiểu dữ liệu thời gian
Trong sql server hoàn toàn có thể lưu trữ lại được thời gian, để lưu trữ được thời gian cần phải sử dụng kiểu dữ liệu thời gian. Bảng dưới đây liệt kê một số kiểu dữ liệu thời gian và kích thước của các kiểu dữ liệu nhằm sử dụng kiểu thời gian một cách hợp lý.
Data type | Mô tả | Lưu trữ |
datetime | Từ ngày 1 tháng 1 năm 1753 đến ngày 31 tháng 12 năm 9999 với độ chính xác 3,33 mili giây | 8 bytes |
datetime2 | Từ ngày 1 tháng 1 năm 0001 đến ngày 31 tháng 12 năm 9999 với độ chính xác 100 nano giây | 6-8 bytes |
smalldatetime | Từ ngày 1 tháng 1 năm 1900 đến ngày 6 tháng 6 năm 2079 với độ chính xác 1 phút | 4 bytes |
date | Chỉ lưu trữ một ngày. Từ ngày 1 tháng 1 năm 0001 đến ngày 31 tháng 12 năm 9999 | 3 bytes |
time | Chỉ lưu trữ thời gian với độ chính xác 100 nano giây | 3-5 bytes |
datetimeoffset | Giống như datetime2 với việc bổ sung độ lệch múi giờ | 8-10 bytes |
timestamp | Lưu trữ một số duy nhất được cập nhật mỗi khi một hàng được tạo hoặc sửa đổi |
4. Một số kiểu dữ liệu khác
Ngoài 3 kiểu dữ liệu thường được sử dụng như kiểu ký tự, kiểu số, kiểu thời gian đã được nêu ở trên thì vẫn còn một số kiểu dữ liệu khác.
Data type |
Mô tả |
sql_variant | Lưu trữ lên đến 8.000 byte dữ liệu thuộc nhiều loại dữ liệu khác nhau, ngoại trừ văn bản, văn bản và dấu thời gian |
uniqueidentifier | Lưu trữ số nhận dạng duy nhất trên toàn cầu |
xml | Lưu trữ dữ liệu định dạng XML. Tối đa 2GB |
cursor | Lưu trữ một tham chiếu đến một con trỏ được sử dụng cho các hoạt động cơ sở dữ liệu |
table | Lưu trữ một tập hợp kết quả để xử lý sau |