Kiểu dữ liệu CHAR trong SQL Server

Kiểu dữ liệu CHAR trong SQL Server

  • Trung Nguyen
  • 10/03/2022

  • 3 min read

Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu CHAR trong SQL Server để lưu trữ các chuỗi ký tự không phải Unicode có độ dài cố định trong cơ sở dữ liệu.

Tổng quan về kiểu dữ liệu CHAR trong SQL Server

Nếu bạn muốn lưu trữ dữ liệu chuỗi có độ dài cố định, không phải Unicode, bạn sử dụng kiểu dữ liệu CHAR SQL Server:

CHAR(n)

Trong cú pháp này, n chỉ định độ dài chuỗi nằm trong khoảng từ 1 đến 8.000.

n là tùy chọn, nếu không chỉ định nó trong định nghĩa dữ liệu hoặc câu lệnh khai báo biến, giá trị mặc định của nó là 1.

Bạn chỉ nên sử dụng kiểu dữ liệu CHAR khi kích thước của các giá trị trong cột được cố định.

Khi bạn INSERT một giá trị chuỗi vào một cột kiểu CHAR. Nếu độ dài của giá trị chuỗi nhỏ hơn độ dài được chỉ định trong cột, SQL Server sẽ thêm khoảng trắng ở cuối giá trị chuỗi vào độ dài được khai báo trong cột. Tuy nhiên, khi bạn chọn giá trị chuỗi này, SQL Server sẽ loại bỏ các dấu cách ở cuối trước khi trả lại.

Mặt khác, nếu bạn chèn một giá trị có độ dài vượt quá độ dài cột, SQL Server sẽ đưa ra thông báo lỗi.

Lưu ý rằng ISO synonym của CHARCHARACTER vì vậy bạn có thể sử dụng chúng thay thế cho nhau.

Ví dụ về kiểu dữ liệu CHAR trong SQL Server

Câu lệnh sau tạo một bảng mới có chứa một cột kiểu CHAR:

CREATE TABLE test.sql_server_char (
    val CHAR(3)
);

Lưu ý rằng nếu bạn không có lược đồ test trong cơ sở dữ liệu, bạn có thể tạo nó bằng cách sử dụng câu lệnh sau trước khi tạo bảng sql_server_char:

CREATE SCHEMA test; 
GO

Để chèn một chuỗi ký tự có độ dài cố định vào cột kiểu CHAR, bạn sử dụng câu lệnh INSERT như sau:

INSERT INTO test.sql_server_char (val)
VALUES ('ABC');

Câu lệnh đã hoạt động như mong đợi.

Câu lệnh sau cố gắng chèn một chuỗi ký tự mới có độ dài vượt quá độ dài cột:

INSERT INTO test.sql_server_char (val)
VALUES ('XYZ1');

SQL Server sẽ thông báo lỗi sau:

String or binary data would be truncated.
The statement has been terminated.

Câu lệnh sau sẽ chèn ký tự ‘A’ vào cột val của bảng test.sql_server_char:

INSERT INTO test.sql_server_char (val)
VALUES ('A');

Trong SQL Server, hàm LEN trả về số ký tự trong một cột được chỉ định loại trừ các khoảng trắng ở cuối và hàm DATALENGTH trả về số byte.

Xem câu lệnh sau:

SELECT
    val,
    LEN(val) len,
    DATALENGTH(val) data_length
FROM
    sql_server_char;

Đầu ra:

Ví dụ về kiểu dữ liệu CHAR trong SQL Server

Mặc dù ký tự ‘A’ chỉ là một ký tự, số byte của cột được cố định là ba.

Trong hướng dẫn này, bạn đã học cách sử dụng kiểu dữ liệu CHAR trong SQL Server để lưu trữ các chuỗi ký tự không phải Unicode có độ dài cố định trong cơ sở dữ liệu.

Nếu

Comdy

hữu ích và giúp bạn tiết kiệm thời gian

Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.