Độ dài tối đa Varchar MySQL

Kiểu dữ liệu Varchar được sử dụng trong MySQL để lưu trữ các ký tự hoặc chuỗi có thể chứa bất kỳ bảng chữ cái, số nguyên hoặc ký hiệu đặc biệt nào. Có một số thông tin chuyên sâu mà bạn nên biết khi sử dụng kiểu dữ liệu varchar để bạn có thể sử dụng biến này và xác định chúng một cách chính xác, thích hợp và tối ưu, điều này cũng sẽ được chứng minh bằng cả những hạn chế và ràng buộc của cơ sở dữ liệu MySQL . Trong bài viết này, chúng ta sẽ tìm hiểu về kiểu dữ liệu varchar và cách giá trị này được lưu trữ, thao tác và sử dụng

Lưu trữ kiểu dữ liệu VARCHAR của MySQL

Độ dài tối đa của cột đã nhập dữ liệu varchar có thể là 65535. Kiểu dữ liệu này giúp chúng ta lưu trữ các giá trị chuỗi trong cơ sở dữ liệu. Bên cạnh độ dài do chúng tôi xác định để lưu trữ kiểu dữ liệu varchar, MySQL chiếm thêm 1 hoặc 2 byte không gian để lưu trữ giá trị tiền tố liên quan đến cột đó. Không gian sẽ được yêu cầu bởi giá trị tiền tố phụ thuộc vào độ dài do chúng tôi khai báo cho cột varchar đó. Nếu độ dài của cột được khai báo nhỏ hơn 255 byte thì sẽ mất 1 byte dữ liệu để lưu giá trị tiền tố. Tương tự, nếu cột varchar được khai báo yêu cầu nhiều hơn 255 byte dữ liệu thì sẽ cần 2 byte dung lượng để lưu trữ giá trị tiền tố

Bắt đầu khóa học khoa học dữ liệu miễn phí của bạn

Hadoop, Khoa học dữ liệu, Thống kê và những thứ khác

Có một quy tắc nữa mà chúng ta cần tuân theo khi sử dụng các cột varchar trong bảng của mình. Quy tắc này chỉ định rằng kích thước hàng tối đa trong bảng phải được giới hạn ở 65535. Đó là lý do tại sao chúng ta cần chỉ định kích thước của các cột có tính đến việc tổng kích thước của tất cả các cột không được vượt quá 65535

Thí dụ

Trước tiên chúng ta hãy kiểm tra chéo quy tắc mà chúng ta đã chỉ định trước đó về kích thước hàng. Chúng tôi sẽ cố gắng tạo một bảng có tên educba_varchar sẽ chứa ba cột, mỗi cột có độ dài là 21843. Điều này có nghĩa là mỗi cột sẽ cần thêm 2 byte để lưu trữ giá trị tiền tố. Do đó, tổng chiều dài tập thể của các cột sẽ tạo nên kích thước hàng sẽ là 21843 + 2 + 21843 + 2 + 21843 + 2 = 65535. Đó là giới hạn kích thước hàng tối đa. Hãy để chúng tôi kiểm tra đầu ra của câu lệnh truy vấn sẽ được sử dụng để tạo bảng này -

CREATE TABLE IF NOT EXISTS educba_varchar (
column1 VARCHAR(21843) NOT NULL,
column2 VARCHAR(21843) NOT NULL,
column3 VARCHAR(21843) NOT NULL
) CHARACTER SET 'latin1' COLLATE LATIN1_DANISH_CI;

Việc thực hiện truy vấn này cho kết quả sau -

Gói khoa học dữ liệu tất cả trong một(360+ khóa học, hơn 50 dự án)

Độ dài tối đa Varchar MySQL
Độ dài tối đa Varchar MySQL
Độ dài tối đa Varchar MySQL
Độ dài tối đa Varchar MySQL

Độ dài tối đa Varchar MySQL
Độ dài tối đa Varchar MySQL
Độ dài tối đa Varchar MySQL
Độ dài tối đa Varchar MySQL

Giá bán
Xem các khóa học

Hơn 360 khóa học trực tuyến. hơn 50 dự án. Hơn 1500 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập trọn đời
4. 7 (86.060 xếp hạng)

Độ dài tối đa Varchar MySQL

Vì vậy, chúng ta có thể quan sát rằng bảng của chúng ta được tạo thành công. Bây giờ, chúng tôi sẽ cố gắng tăng độ dài của một trong các cột chỉ bằng một byte. Điều này sẽ dẫn đến tổng kích thước hàng của bảng là 21844 + 2 + 21843 + 2 + 21843 + 2 = 65536, lớn hơn giới hạn của MySQL. Chúng ta hãy quan sát kết quả bằng cách thực hiện câu lệnh truy vấn sau –

CREATE TABLE IF NOT EXISTS educba_varchar2 (
column1 VARCHAR(21844) NOT NULL,
column2 VARCHAR(21843) NOT NULL,
column3 VARCHAR(21843) NOT NULL
) CHARACTER SET 'latin1' COLLATE LATIN1_DANISH_CI;

cung cấp đầu ra sau -

Độ dài tối đa Varchar MySQL

Chúng tôi có thể quan sát thấy rằng khi giới hạn của kích thước hàng vượt quá 65535, chúng tôi gặp lỗi cho biết Kích thước hàng quá lớn. Kích thước hàng tối đa cho loại bảng đã sử dụng, không tính BLOB, là 65535. Điều này bao gồm chi phí lưu trữ, kiểm tra hướng dẫn. Bạn phải thay đổi một số cột thành TEXT hoặc BLOB

  • Chèn giá trị vào cột varchar

Hãy để chúng tôi tạo một bảng có tên educba_writers bằng cách sử dụng câu lệnh sau –

CREATE TABLE IF NOT EXISTS educba_writers (
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
firstName VARCHAR(10) NOT NULL
) CHARACTER SET 'latin1' COLLATE LATIN1_DANISH_CI;

Bây giờ chúng ta sẽ chèn các giá trị vào bảng như sau

INSERT INTO educba_writers(firstName)
VALUES('Payal');

cung cấp đầu ra sau -

Độ dài tối đa Varchar MySQL

Chúng ta hãy thử chèn bản ghi bằng cách sử dụng câu lệnh truy vấn sau đây sẽ chứa tên với 10 ký tự trong đó –

INSERT INTO educba_writers(firstName)
VALUES('Vyankatesh');

cung cấp đầu ra sau -

Độ dài tối đa Varchar MySQL

Bây giờ, chúng tôi sẽ cố gắng chèn tên có độ dài lớn hơn 10 bằng truy vấn sau –

INSERT INTO educba_writers(firstName)
VALUES('Siddhivinayak');

Độ dài tối đa Varchar MySQL

Nó đưa ra lỗi vì từ siddhivinayak chứa 13 ký tự trong đó. Ngay cả đối với từ có 11 ký tự, nó cũng cho đầu ra sau và đưa ra lỗi cho biết dữ liệu quá dài đối với cột tên vì kích thước hoặc độ dài của cột được chỉ định là 10 –

INSERT INTO educba_writers(firstName)
VALUES('Yudhishteer');

Độ dài tối đa Varchar MySQL

  • Khoảng trắng trong các cột varchar

Bất cứ khi nào chúng ta lưu trữ các giá trị trong bảng bằng cột varchar, các khoảng trắng cũng được xem xét và lưu trữ trong giá trị cột

Ví dụ: bất cứ khi nào chúng tôi lưu trữ giá trị Om prakash trong bảng trên bằng cách sử dụng câu lệnh truy vấn bên dưới –

INSERT INTO educba_writers(firstName)
VALUES('Om Prakash');

Độ dài tối đa Varchar MySQL

Nó được chèn thành công và khi chúng tôi truy xuất độ dài của cột bằng truy vấn chọn sau –

________số 8_______

Độ dài tối đa Varchar MySQL

Việc thực hiện truy vấn trên cho kết quả sau -

Điều đó có nghĩa là 9 ký tự và 1 khoảng trắng gọi chung là độ dài 10

Bất cứ khi nào các khoảng trắng ở cuối được đề cập, chúng cũng được bao gồm và được lưu trữ trong các cột kiểu dữ liệu varchar. Tuy nhiên, nếu kích thước của cột bị giới hạn thì khoảng trắng ở cuối sẽ bị bỏ qua và giá trị còn lại được lưu trữ trong cột và cảnh báo được đưa ra khi dữ liệu bị cắt bớt đối với cột đó do khoảng trắng ở cuối. Ví dụ: khi chúng tôi cố gắng chèn giá trị có dấu cách vào tên Om prakash như sau trong câu lệnh truy vấn –

SELECT length(firstName) FROM educba_writers WHERE firstName = "Om Prakash ";

nó cho đầu ra sau -

Độ dài tối đa Varchar MySQL

Phần kết luận

Chúng ta có thể sử dụng kiểu dữ liệu varchar để lưu trữ các chuỗi. Có một số điều chúng ta cần lưu ý khi thiết kế cơ sở dữ liệu và đưa ra kích thước cho các cột. Kích thước hàng không được vượt quá 65535 byte. Ngoài ra, khoảng trắng được xem xét trong khi thêm dữ liệu varchar hoặc giá trị chuỗi

Bài viết được đề xuất

Đây là hướng dẫn về MySQL VARCHAR. Ở đây chúng tôi thảo luận về phần giới thiệu, Lưu trữ Kiểu dữ liệu VARCHAR của MySQL và các ví dụ với việc triển khai mã tương ứng. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –

Là varchar tối đa 255?

VARCHAR(255) lưu trữ 255 ký tự, có thể nhiều hơn 255 byte .

Làm cách nào để lưu trữ hơn 255 ký tự trong MySQL?

Phiên bản MySQL sau 5. 0. .
Để lưu trữ tối đa 65535 (64KB) ký tự, hãy sử dụng cột VĂN BẢN
Để lưu trữ tối đa 16777216 (16 MB ) ký tự, hãy sử dụng cột MEDIUMTEXT
Để lưu trữ tối đa 4294967296 (4GB) ký tự, hãy sử dụng cột LONGTEXT

Độ dài tối đa của varchar Max là bao nhiêu?

Chúng ta có thể sử dụng varchar 1000 không?

Độ dài khóa tối đa là 1000 byte. Điều này cũng có thể được thay đổi bằng cách thay đổi nguồn và biên dịch lại. Đối với trường hợp khóa dài hơn 250 byte, kích thước khối khóa lớn hơn mặc định là 1024 byte được sử dụng. Vì một chỉ mục được tạo cho khóa và vì nó đang hoạt động mà không có chỉ mục, điều này có ý nghĩa