Tổng hợp các kiểu dữ liệu trong SQL Server đầy đủ nhất cho người mới


  • 2025-03-01 10:32:24

Bạn đã hiểu hết về các kiểu dữ liệu trong SQL Server chưa? Hãy để AntBook giúp bạn tổng hợp SQL Data Types cũng như các lưu ý quan trọng khi làm việc với dữ liệu trong SQL Server nhé!

1. Đôi nét về hệ quản trị cơ sở dữ liệu SQL Server

1.1 Hệ quản trị cơ sở dữ liệu SQL Server là gì?

SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mạnh mẽ do Microsoft phát triển, được sử dụng rộng rãi trong các hệ thống doanh nghiệp, website và ứng dụng quản lý dữ liệu. SQL Server cho phép lưu trữ, truy vấn, xử lý và bảo mật dữ liệu một cách hiệu quả, đồng thời hỗ trợ nhiều tính năng nâng cao như giao dịch, sao lưu, phục hồi và bảo mật dữ liệu.

các kiểu dữ liệu trong SQL

SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ mạnh mẽ do Microsoft phát triển

Với giao diện thân thiện, khả năng mở rộng linh hoạt và tích hợp mạnh mẽ với các công cụ phân tích dữ liệu, SQL Server là lựa chọn hàng đầu cho các doanh nghiệp và cá nhân muốn quản lý dữ liệu một cách chuyên nghiệp.

1.2 Các tính năng quan trọng của SQL Server

+ Quản lý cơ sở dữ liệu mạnh mẽ: SQL Server cung cấp công cụ quản lý cơ sở dữ liệu tiên tiến, cho phép người dùng tạo, lưu trữ và truy vấn dữ liệu một cách nhanh chóng và hiệu quả. Với khả năng xử lý lượng dữ liệu lớn, SQL Server là lựa chọn lý tưởng cho doanh nghiệp và tổ chức cần quản lý dữ liệu phức tạp.

+ Hỗ trợ giao dịch (Transaction Support): Tính năng này đảm bảo tính nhất quán và an toàn dữ liệu bằng cách hỗ trợ các thao tác giao dịch (Transaction), giúp tránh mất dữ liệu hoặc sai sót khi có sự cố xảy ra trong quá trình thực thi lệnh.

+ Bảo mật dữ liệu (Data Security): SQL Server cung cấp các công cụ bảo mật mạnh mẽ như mã hóa dữ liệu, phân quyền người dùng và kiểm soát truy cập. Điều này giúp bảo vệ dữ liệu quan trọng khỏi các cuộc tấn công hoặc truy cập trái phép.

+ Sao lưu và khôi phục dữ liệu (Backup & Restore): SQL Server hỗ trợ cơ chế sao lưu dữ liệu tự động, giúp người dùng dễ dàng khôi phục dữ liệu khi gặp sự cố, đảm bảo tính liên tục của hệ thống.

các kiểu dữ liệu trong SQL

SQL Server hỗ trợ cơ chế sao lưu dữ liệu tự động

+ Hiệu suất cao và tối ưu hóa truy vấn: SQL Server sử dụng các công cụ tối ưu hóa như Query Optimizer để tăng tốc độ xử lý truy vấn, giảm tải hệ thống và cải thiện hiệu suất tổng thể của cơ sở dữ liệu.

+ Hỗ trợ xử lý dữ liệu lớn (Big Data & BI): SQL Server tích hợp nhiều công cụ phân tích và xử lý dữ liệu lớn, hỗ trợ Business Intelligence (BI) và tích hợp với các nền tảng như Power BI để trực quan hóa dữ liệu hiệu quả.

+ Khả năng mở rộng và tích hợp linh hoạt: SQL Server có thể dễ dàng mở rộng quy mô, tích hợp với các ứng dụng và công nghệ khác như .NET, Azure, Python, và các dịch vụ đám mây, giúp doanh nghiệp triển khai hệ thống dữ liệu linh hoạt theo nhu cầu.

Nhờ các tính năng vượt trội này, SQL Server trở thành một trong những hệ quản trị cơ sở dữ liệu hàng đầu, đáp ứng nhu cầu từ cá nhân đến doanh nghiệp quy mô lớn.

các kiểu dữ liệu trong SQL

SQL Server có thể dễ dàng mở rộng quy mô, tích hợp với các ứng dụng và công nghệ

Vậy làm sao để biết về SQL Data Types và sử dụng đúng cách? Cùng AntBook tiếp tục tìm hiểu chi tiết hơn nhé!

2. Cách sử dụng Data Type trong SQL Server

Trong SQL Server, kiểu dữ liệu ( SQL Data Type) đóng vai trò quan trọng trong việc xác định cách lưu trữ và xử lý dữ liệu trong bảng. Khi tạo bảng, bạn cần chọn kiểu dữ liệu phù hợp cho từng cột để đảm bảo khả năng lưu trữ chính xác và tối ưu hóa hiệu suất hệ thống.

Khi chọn đúng kiểu dữ liệu, hệ thống sẽ tự động kiểm tra và ngăn chặn việc nhập sai loại dữ liệu. Đồng thời, SQL Server sẽ phân bổ dung lượng lưu trữ phù hợp, giúp cải thiện tốc độ xử lý và truy vấn dữ liệu, từ đó tối ưu hóa bộ nhớ.

Các kiểu dữ liệu trong SQL

SQL Server sẽ phân bổ dung lượng lưu trữ phù hợp, tối ưu hóa bộ nhớ

Các yếu tố cần lưu ý khi chọn kiểu dữ liệu:

+ Loại dữ liệu cố định hoặc biến đổi:

  • Kiểu cố định (fixed-length): Dữ liệu có độ dài cố định (VD: CHAR(10), INT).
  • Kiểu biến đổi (variable-length): Dữ liệu có độ dài linh hoạt, chỉ sử dụng bộ nhớ cần thiết (VD: VARCHAR(100), NVARCHAR(50)).

+ Dung lượng lưu trữ:

  • Một số kiểu dữ liệu chiếm dung lượng cố định (VD: INT luôn chiếm 4 byte).
  • Một số kiểu khác có dung lượng thay đổi tùy theo dữ liệu thực tế (VD: VARCHAR chỉ chiếm bộ nhớ theo số ký tự thực tế).

+ Khả năng tạo chỉ mục (Indexing):

  • Một số kiểu dữ liệu có thể được lập chỉ mục để tăng tốc truy vấn (VD: INT, VARCHAR).
  • Một số kiểu khác không nên dùng để lập chỉ mục do dung lượng lớn hoặc đặc tính dữ liệu (VD: TEXT, IMAGE).

Cách so sánh giá trị: SQL Server có quy tắc riêng để so sánh dữ liệu theo từng kiểu dữ liệu, ảnh hưởng đến kết quả truy vấn.

Việc chọn đúng kiểu dữ liệu không chỉ giúp quản lý dữ liệu chính xác mà còn nâng cao hiệu suất truy vấn và tiết kiệm tài nguyên hệ thống. Các kiểu dữ liệu phổ biến trong SQL Server bao gồm:

  • Chuỗi ký tự (String): CHAR, VARCHAR, TEXT, NVARCHAR.
  • Số (Numeric): INT, FLOAT, DECIMAL, BIGINT.
  • Ngày & Thời gian (Date & Time): DATE, DATETIME, TIME, TIMESTAMP.

Để hiểu rõ chi tiết, hãy tiếp tục theo dõi bài viết dưới đây nhé!

3. Tổng hợp các kiểu dữ liệu trong SQL Server đầy đủ nhất

3.1 Kiểu dữ liệu chuỗi ký tự trong SQL Server

Cú pháp kiểu dữ liệu

Kích thước tối đa

Giải thích

CHAR(kich_thuoc)

Tối đa 8000 kí tự.

  • kich_thuoc là số kí tự lưu trữ.
  • Độ dài cố định.
  • Thêm dấu cách về bên phải để bù phần trống cho đủ số kí tự.
  • Không chứa ký tự Unicode.

VARCHAR(kich_thuoc) hoặc VARCHAR(toi_da)

Tối đa 8000 kí tự hoặc theo số tối đa.

  • kich_thuoc là số kí tự lưu trữ.
  • Độ dài tùy biến.
  • Nếu chỉ định là toi_da thì tối đa là 2GB.
  • Không chứa kí tự Unicode.

TEXT

Tối đa 2GB.

  • Độ dài tùy biến.
  • Không chứa kí tự Unicode.

NCHAR(kich_thuoc)

Tối đa 4000 kí tự.

  • Độ dài cố định.
  • Kí tự Unicode.

NVARCHAR(kich_thuoc) hoặc NVARCHAR(toi_da)

Tối đa 4000 kí tự hoặc theo số tối đa.

  • kich_thuoc là số kí tự lưu trữ.
  • Độ dài tùy biến.
  • Nếu số toi_da được chi định thì số kí tự tối đa là 2GB.
  • Kí tự Unicode.

NTEXT

Tối đa 1.073.741.823 byte.

  • Độ dài tùy biến.
  • Kí tự Unicode.

BINARY(kich_thuoc)

Tối đa 8000 kí tự.

  • kich_thuoc là số kí tự lưu trữ.
  • Độ dài cố định.
  • Thêm dấu cách để bù phần trống cho đủ số kí tự.
  • Dữ liệu nhị phân.

VARBINARY(kich_thuoc) hoặc VARBINARY(toi_da)

Tối đa 8000 kí tự hoặc theo số tối đa.

  • kich_thuoc là số kí tự lưu trữ.
  • Độ dài tùy biến.
  • Nếu chỉ định là toi_da thì tối đa là 2GB.
  • Dữ liệu nhị phân.

IMAGE

kích thước tối đa là 2GB.

  • Độ dài tùy biến.
  • Dữ liệu nhị phân.

3.2 Kiểu dữ liệu số trong hệ quản trị dữ liệu SQL

Cú pháp kiểu dữ liệu

Kích thước tối đa

Giải thích

BIT

số nguyên 0, 1 hoặc NULL

 

TINYINT

từ 0 đến 255

 

SMALLINT

từ -32768 đến 32767

 

INT

-2,147,483,648 đến 2,147,483,647

 

BIGINT

từ -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807

 

DECIMAL(m,d)

  • m mặc định là 18 nếu không được chỉ định cụ thể.
  • d mặc định là 0 nếu không được chỉ định cụ thể.

m là tổng số lượng các số còn d là số lượng các số nằm sau dấu phẩy.

DEC(m,d)

  • m mặc định là 18 nếu không được chỉ định cụ thể.
  • d mặc định là 0 nếu không được chỉ định cụ thể.

m là tổng số lượng các số còn d là số lượng các số nằm sau dấu phẩy.

Đồng nghĩa với kiểu dữ liệu DECIMAL.

NUMERIC(m,d)

  • m mặc định là 18 nếu không được chỉ định cụ thể.
  • d mặc định là 0 nếu không được chỉ định cụ thể.

m là tổng số lượng các số còn d là số lượng các số nằm sau dấu phẩy.

Đồng nghĩa với kiểu dữ liệu DECIMAL.

FLOAT(n)

số dấu phẩy động n mặc định là 53 nếu không được chỉ định cụ thể.

n là số lượng của số bit lưu trữ trong một kí hiệu hóa học.

REAL

tương đương với FLOAT(24)

 

SMALLMONEY

từ – 214,748.3648 đến 214,748.3647

 

MONEY

từ -922,337,203,685,477.5808 đến 922,337,203,685,477.5807

 

 

3.3 Kiểu dữ liệu ngày tháng (Date And Time) trong SQL

Cú pháp kiểu dữ liệu

Kích thước tối đa

Giải thích

DATE

giá trị từ ‘0001-01-01’ đến ‘9999-12-31.

hiển thị dưới dạng ‘YYYY-MM-DD’

DATETIME

  • Ngày lấy từ ‘1753-01-01 00:00:00’ to ‘9999-12-31 23:59:59’.
  • Giờ lấy từ ’00:00:00′ to ’23:59:59:997′

hiển thị dưới dạng ‘YYYY-MM-DD hh:mm:ss[.mmm]

DATETIME2(chính xác tới số thập phân của giây)

  • giá trị lấy từ ‘0001-01-01’ đến ‘9999-12-31’.
  • Thời gian lấy từ ’00:00:00′ đến ’23:59:59:9999999′.

hiển thị dưới dạng ‘YYYY-MM-DD hh:mm:ss[.số giây thập phân]’

SMALLDATETIME

  • giá trị lấy từ ‘1900-01-01’ đến ‘2079-06-06’.
  • Thời gian lấy từ ’00:00:00′ đến ’23:59:59′.

hiển thị dưới dạng ‘YYYY-MM-DD hh:mm:ss

TIME

  • giá trị lấy từ ’00:00:00.0000000′ đến ’23:59:59.9999999′.
  • Ngày lấy từ ‘0001-01-01’ đến ‘9999-12-31’.

hiển thị dưới dạng ‘YYYY-MM-DD hh:mm:ss[.nnnnnnn]’

DATETIMEOFFSET (chính xác tới số thập phân của giây)

  • giá trị thời gian lấy từ ’00:00:00′ đến ’23:59:59:9999999′.
  • Múi giờ lấy từ -14:00 đến +14:00.

hiển thị dưới dạng YYYY-MM-DD hh:mm:ss[.nnnnnnn]’ [{+|-}hh:mm]

3.4 Các kiểu dữ liệu khác trong SQL Server

Kiểu dữ liệu

Mô tả

sql_variant

Chứa tới 8,000 byte dữ liệu của các kiểu khác nhau, ngoại trừ text, ntext, và timestamp

uniqueidentifier

Lưu trữ một mã định danh duy nhất trên toàn cục (GUID)

xml

Lưu trữ dữ liệu định dạng XML. Tối đa 2GB

cursor

Lưu trữ một tham chiếu tới con trỏ được dùng cho các hoạt động database

table

Lưu trữ một bộ kết quả để xử lý sau

4. Những lưu ý về các kiểu dữ liệu trong SQL

4.1 Kiểu dữ liệu DECIMAL và NUMERIC: Lưu trữ số thập phân chính xác

Trong SQL Server, DECIMAL và NUMERIC đều là kiểu dữ liệu dùng để lưu trữ số thực có phần thập phân cố định. Chúng đặc biệt hữu ích trong các bài toán tài chính như lưu trữ tiền tệ, tỷ lệ phần trăm hoặc các phép tính yêu cầu độ chính xác cao.

các kiểu dữ liệu trong SQL

Lưu trữ số thập phân chính xác

Giả sử, khi khai báo một cột với kiểu dữ liệu DECIMAL(10, 2), nghĩa là tổng số chữ số được lưu trữ là 10 (bao gồm cả phần nguyên và phần thập phân), số chữ số sau dấu thập phân là 2. Ví dụ: Giá trị 12345.67 là hợp lệ, nhưng 1234567.89 sẽ vượt quá phạm vi.

DECIMAL và NUMERIC về bản chất hoạt động giống nhau, không có sự khác biệt trong SQL Server.

4.2 Kiểu dữ liệu FLOAT và REAL: Lưu trữ số thực với phạm vi rộng

FLOAT và REAL là các kiểu dữ liệu số thực (floating-point), dùng để lưu trữ giá trị có phần thập phân nhưng có độ chính xác thấp hơn so với DECIMAL/NUMERIC.

Đối với FLOAT, chỉ lưu trữ số thực với độ chính xác cao hơn, có thể biểu diễn số rất lớn hoặc rất nhỏ. Dùng cho các phép tính khoa học hoặc dữ liệu không yêu cầu độ chính xác tuyệt đối.

Các kiểu dữ liệu trong SQL

Lưu trữ số thực với phạm vi rộng

Còn đối với REAL cũng là số thực nhưng có độ chính xác thấp hơn FLOAT. Ưu điểm là tiết kiệm dung lượng hơn nhưng có thể làm tròn giá trị trong một số trường hợp.

Có thể kết luận, nếu cần tính toán tài chính hoặc lưu trữ số liệu quan trọng, nên sử dụng DECIMAL/NUMERIC thay vì FLOAT/REAL để tránh sai số do làm tròn.

FLOAT/REAL phù hợp hơn với các phép tính khoa học hoặc dữ liệu không yêu cầu độ chính xác tuyệt đối.

4.3 Kiểu dữ liệu DATE: Lưu trữ ngày tháng

Trong SQL Server, kiểu dữ liệu DATE được sử dụng để lưu trữ ngày tháng theo định dạng yyyy-mm-dd (năm-tháng-ngày). Kiểu dữ liệu này chỉ lưu thông tin về ngày, không bao gồm giờ, phút hoặc giây.

Các kiểu dữ liệu trong SQL

Lưu trữ ngày tháng

Kiểu dữ liệu Date này giúp lưu trữ thông tin ngày tháng mà không cần quan tâm đến thời gian cụ thể. Hỗ trợ các thao tác như so sánh ngày tháng, tính toán khoảng cách thời gian và lọc dữ liệu theo ngày. Đặc biệt, với kiểu dữ liệu SQL này, tiết kiệm bộ nhớ hơn so với các kiểu dữ liệu có chứa cả thời gian (ví dụ: DATETIME, DATETIME2).

4.4 Kiểu dữ liệu hình ảnh: Lưu trữ dữ liệu nhị phân (hình ảnh, video, âm thanh)

SQL Server hỗ trợ lưu trữ dữ liệu nhị phân như hình ảnh, âm thanh và video thông qua các kiểu dữ liệu như IMAGE và VARBINARY(MAX).

Các kiểu dữ liệu trong SQL

Lưu trữ dữ liệu nhị phân

IMAGE thường được sử dụng trong các phiên bản cũ để lưu trữ dữ liệu nhị phân có kích thước cố định. Tuy nhiên, từ SQL Server 2005 trở đi, Microsoft khuyến nghị không nên sử dụng IMAGE nữa. Thay vào đó, VARBINARY(MAX) được khuyến nghị thay thế IMAGE vì nó linh hoạt hơn và có thể lưu trữ dữ liệu nhị phân có kích thước tùy ý.

Ví dụ sử dụng VARBINARY(MAX) để lưu hình ảnh:

CREATE TABLE ProductImages (

ImageID INT PRIMARY KEY,

ImageData VARBINARY(MAX)

);

Sau khi lưu trữ, bạn có thể sử dụng các ngôn ngữ lập trình như C#, Python hoặc các framework để truy xuất và hiển thị dữ liệu hình ảnh.

4.5 Kiểu dữ liệu MONEY: Lưu trữ giá trị tiền tệ

Trong SQL Server, kiểu dữ liệu MONEY được thiết kế để lưu trữ các giá trị tiền tệ với độ chính xác cao, giúp thực hiện các phép toán tài chính dễ dàng hơn.

Các kiểu dữ liệu trong SQL

Lưu trữ giá trị tiền tệ

MONEY lưu trữ giá trị tiền tệ theo đơn vị mặc định của cơ sở dữ liệu, không kèm theo thông tin về loại tiền tệ (VND, USD, EUR,…). Điều này có thể gây nhầm lẫn nếu dữ liệu chứa nhiều loại tiền tệ khác nhau.

Nếu cần lưu trữ thông tin tiền tệ theo đơn vị cụ thể, nên sử dụng DECIMAL(19,4) thay thế hoặc thêm một cột để xác định loại tiền tệ. MONEY hỗ trợ tính toán chính xác khi làm việc với số tiền lớn và nhiều phép tính như tổng hợp, lãi suất,…

Ví dụ sử dụng kiểu dữ liệu MONEY:

CREATE TABLE Transactions (

TransactionID INT PRIMARY KEY,

Amount MONEY

);

Lệnh trên tạo một bảng giao dịch với cột Amount lưu trữ số tiền giao dịch.

Tuy nhiên, nếu bạn cần tính toán tiền tệ với độ chính xác cao hơn và kiểm soát tốt hơn, hãy cân nhắc sử dụng DECIMAL(19,4) thay cho MONEY.

Việc lựa chọn đúng kiểu dữ liệu trong SQL Server không chỉ giúp tối ưu hóa bộ nhớ mà còn đảm bảo tính chính xác và hiệu suất khi xử lý dữ liệu. Từ các kiểu số, ngày tháng đến kiểu nhị phân, mỗi loại đều có những đặc điểm riêng mà bạn cần hiểu rõ để áp dụng phù hợp với từng trường hợp. Hy vọng bài viết này từ AntBook đã giúp bạn có cái nhìn tổng quan và biết cách sử dụng các kiểu dữ liệu hiệu quả hơn trong SQL.

Nếu bạn muốn nâng cao kỹ năng làm việc với dữ liệu, bộ 2 cuốn sách Data Analysis từ cơ bản đến nâng cao của AntBook sẽ là lựa chọn hoàn hảo. Sách in màu chính hãng, dễ đọc, dễ thực hành theo từng bước, giúp bạn nắm vững các phương pháp phân tích dữ liệu chuyên sâu. Đặc biệt, bộ sách còn tặng kèm video học trực tuyến, giúp bạn học tập mọi lúc, mọi nơi. Mua ngay bộ sách Data Analysis tại AntBook để làm chủ kỹ năng xử lý dữ liệu nhé!