2008-10-07 34 views
8

Trong máy chủ sql hiện nó tạo sự khác biệt nếu tôi xác định một cột VARCHAR có chiều dài 32 hoặc 128?Kích thước của cột VARCHAR

+3

Bạn có hỏi: liệu nó có tạo sự khác biệt nếu độ dài của cột là POWER OF TWO không? (32/64/128/256/etc) Câu trả lời cho câu hỏi này rất khác. – Portman

Trả lời

3

Sẽ không có sự khác biệt đáng chú ý vì chương trình phụ trợ sẽ chỉ lưu trữ lượng dữ liệu bạn chèn vào cột đó. Nó không được độn thành kích thước đầy đủ của trường như nó là với một cột char.

Chỉnh sửa: Để biết thêm thông tin, điều này link sẽ hữu ích.

3

Không được. Nó chỉ xác định chiều dài tối đa nó có thể chứa, chiều dài sử dụng thực tế phụ thuộc vào dữ liệu được chèn vào.

11

A varchar là trường ký tự biến. Điều này có nghĩa là nó có thể giữ dữ liệu văn bản đến một độ dài nhất định. Một varchar (32) chỉ có thể chứa 32 ký tự, trong khi một varchar (128) có thể chứa 128 ký tự. Nếu tôi cố gắng nhập "12345" vào trường varchar (3); đây là dữ liệu sẽ được lưu trữ:

"123"

"45" sẽ bị "cắt ngắn" (bị mất).

Chúng rất hữu ích trong trường hợp bạn biết rằng một trường nhất định sẽ chỉ là (hoặc chỉ nên là) một độ dài nhất định ở mức tối đa. Ví dụ: mã zip hoặc viết tắt của tiểu bang. Trong thực tế, chúng thường được sử dụng cho hầu hết tất cả các loại dữ liệu văn bản (như tên/địa chỉ/vân vân) - nhưng trong những trường hợp này, bạn phải cẩn thận rằng số bạn cung cấp là tối đa sane cho loại dữ liệu sẽ điền cột đó.

Tuy nhiên, bạn cũng phải cẩn thận khi sử dụng chúng để chỉ cho phép người dùng nhập số ký tự tối đa mà trường sẽ hỗ trợ. Nếu không, nó có thể cho vay lẫn lộn khi nó cắt bớt đầu vào của người dùng.

+3

Đó không phải là bò đực. Ngoài tên và địa chỉ, tôi đã gặp phải nhiều trường varchar được phân loại theo phân loại với bài tiết. – csj

Các vấn đề liên quan