+974 votes
,post bởi (2.6k điểm)

Định nghĩa về các kiểu dữ liệu nhị phân trong SQL Server

1 Answer

+140 votes
,post bởi (2.6k điểm)

Microsoft SQL Server hỗ trợ bảy danh mục dữ liệu riêng biệt. Trong số này,  các chuỗi nhị phân  cho phép dữ liệu được mã hóa được biểu diễn dưới dạng các đối tượng nhị phân.

Các hệ thống cơ sở dữ liệu khác, bao gồm Oracle, cũng hỗ trợ các kiểu dữ liệu nhị phân.

Các đường kết nối, hình minh họa

 KTSDESIGN / THƯ VIỆN ẢNH KHOA HỌC / Getty Images

Các kiểu dữ liệu trong danh mục chuỗi nhị phân bao gồm:

  • Các biến bit lưu trữ một bit duy nhất với giá trị 0, 1 hoặc NULL .
  • Biến nhị phân (n) lưu trữ n byte dữ liệu nhị phân có kích thước cố định. Các trường này có thể lưu trữ tối đa 8.000 byte.
  • Biến Varbinary (n) lưu trữ dữ liệu nhị phân có độ dài thay đổi khoảng n byte. Chúng có thể lưu trữ tối đa 8.000 byte .
  • Biến Varbinary (tối đa) lưu trữ dữ liệu nhị phân có độ dài thay đổi khoảng n byte. Chúng có thể lưu trữ tối đa 2 GB và thực sự lưu trữ độ dài của dữ liệu cộng thêm hai byte.
  • Biến hình ảnh lưu trữ tới 2 GB dữ liệu và thường được sử dụng để lưu trữ bất kỳ loại tệp dữ liệu nào (không chỉ hình ảnh).

Loại  hình ảnh  được lên lịch để không dùng nữa trong bản phát hành SQL Server trong tương lai. Các kỹ sư của Microsoft khuyên bạn nên sử dụng varbinary (max)  thay vì các  loại hình ảnh để phát triển trong tương lai.

Sử dụng thích hợp

Sử dụng các cột bit khi bạn cần lưu trữ các loại dữ liệu có hoặc không được biểu thị bằng số 0 và số một. Sử dụng cột nhị phân khi kích thước của các cột tương đối đồng đều. Sử dụng cột varbinary  khi kích thước cột dự kiến ​​vượt quá 8K hoặc có thể có sự thay đổi đáng kể về kích thước trên mỗi bản ghi.

Chuyển đổi

T-SQL — biến thể của SQL được sử dụng trong Microsoft SQL Server — dữ liệu đệm phải khi bạn chuyển đổi từ bất kỳ kiểu chuỗi nào sang kiểu nhị phân hoặc varbinary . Bất kỳ chuyển đổi kiểu nào khác sang kiểu nhị phân đều tạo ra một dấu đệm bên trái. Khoảng đệm này được thực hiện thông qua việc sử dụng các số 0 thập lục phân.i. 

...