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

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.

SQL ServerKiểu dữ liệu trong SQL Server
Bài Viết Liên Quan:
GUID trong SQL Server
Trung Nguyen 12/03/2022
GUID trong SQL Server

Trong hướng dẫn này, bạn sẽ tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID() để tạo giá trị GUID.

Kiểu dữ liệu DATETIMEOFFSET trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu DATETIMEOFFSET trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATETIMEOFFSET trong SQL Server để thao tác datetime với múi giờ.

Kiểu dữ liệu TIME trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu TIME trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách lưu trữ thời gian trong ngày trong cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu TIME trong SQL Server.

Kiểu dữ liệu DATE trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu DATE trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATE trong SQL Server để lưu trữ dữ liệu ngày tháng trong một bảng.