Char là kiểu dữ liệu dạng chuỗi có độ dài cố định thường được sử dụng trong cơ sở dữ liệu. Vậy kiểu dữ liệu char trong SQL server là gì? Cú pháp, ví dụ ra sao? Cùng Comdy tìm hiểu chi tiết trong bài viết này bạn nhé.
Tổng quan về kiểu dữ liệu char trong SQL Server
Char là kiểu dữ liệu gì? 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.
Vì 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 sql 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 sql 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 CHAR là CHARACTER 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 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(n) in sql:
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(n) in sql, 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;
Ý nghĩa của char(1) SQL server
Trong SQL Server, kiểu dữ liệu char(1) là một kiểu dữ liệu kí tự có độ dài cố định, trong đó chỉ chứa một kí tự. Nếu bạn khai báo một cột với kiểu dữ liệu char(1), nó sẽ chiếm chính xác một byte bộ nhớ và luôn chứa đúng một kí tự.
Ví dụ:
Kiểu dữ liệu INT trong SQL server
Kiểu dữ liệu INT trong SQL được sử dụng để lưu trữ giá trị số nguyên. Kiểu dữ liệu này có dung lượng 4 byte và có thể lưu trữ giá trị từ -2,147,483,648 đến 2,147,483,647.
Kiểu dữ liệu money trong SQL server
Money là một trong số các kiểu dữ liệu trong SQL. Trong SQL Server, kiểu dữ liệu MONEY được sử dụng để lưu trữ giá trị tiền tệ. Kiểu dữ liệu này được thiết kế để lưu trữ các giá trị tiền tệ với độ chính xác cố định.
Kiểu dữ liệu decimal trong SQL server
Cú pháp: DECIMAL(p, s)
Trong đó:
- p là tổng số chữ số (tính cả phần trước và sau dấu chấm).
- s là số chữ số sau dấu chấm.
Ví dụ:
CREATE TABLE ProductPrices
Kiểu dữ liệu bit trong SQL server
BIT được sử dụng để lưu trữ giá trị logic có thể là True (1) hoặc False (0). Nó thường được sử dụng để biểu diễn các trạng thái như “kích hoạt” hoặc “tắt”, “đúng” hoặc “sai”, “có” hoặc “không”.
Ví dụ:
Kiểu dữ liệu float trong SQL server
Kiểu dữ liệu FLOAT lưu trữ giá trị số thực với dấu chấm động. Kiểu dữ liệu này thường được sử dụng khi cần lưu trữ các giá trị có phạm vi rộng và có độ chính xác không quan trọng.
Cú pháp:
FLOAT [ (n) ]
Ví dụ:
Trong ví dụ này, cột Price được khai báo với kiểu dữ liệu FLOAT, và nó có thể lưu trữ các giá trị số thực với dấu chấm động.
Kết lại
Trên đây là toàn bộ chia sẻ của Comdy về kiểu dữ liệu char trong SQL server. Hi vọng những thông tin, kiến thức trong bài viết này là bổ ích và có ý nghĩa với mọi người. Xin cám ơn vì đã theo dõi và ủng hộ.