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

Các kiểu dữ liệu trong SQL khá đa dạng. Hãy cùng Quantrimang.com tìm hiểu các kiểu dữ liệu, bao gồm cả numeric trong SQL nhé!

Trong SQL Server, mỗi cột, biến cục bộ, biểu thức và tham số đều có một kiểu dữ liệu liên quan. Một kiểu dữ liệu là một thuộc tính xác định kiểu dữ liệu mà đối tượng có thể nắm giữ, bao gồm: dữ liệu số nguyên, ký tự, tiền tệ, ngày & thời gian, chuỗi nhị phân…

SQL Server cung cấp một tập hợp các kiểu dữ liệu hệ thống xác định tất cả các kiểu dữ liệu có thể được sử dụng với SQL Server. Bạn cũng có thể chỉ định các kiểu dữ liệu riêng trong Transact-SQL hoặc Microsoft.NET Framework.

Nhìn chung, datatype là một phân loại dữ liệu, cho trình biên dịch biết loại dữ liệu nào lập trình viên lưu trữ. Hầu hết ngôn ngữ lập trình đều hỗ trợ các kiểu dữ liệu khác nhau, chẳng hạn như số nguyên, ký tự hoặc chuỗi, Boolean…

Kiểu dữ liệu SQL Server là gì?

Datatype đảm bảo kiểu dữ liệu mà cột hoặc biến có thể lưu trữ trong SQL Server. Khi tạo bảng hoặc biến bất kỳ, nó yêu cầu xác định kiểu dữ liệu sẽ lưu ngoài tên của từng cột. Ví dụ, trong SQL Server, mỗi bảng có nhiều cột và chứa kiểu dữ liệu cụ thể cho từng cột. Chúng có thể là số nguyên, float, varchar, Boolean…

Cách dùng datatype?

Bạn cần xác định kiểu dữ liệu trước cho từng cột của một bảng để đảm bảo kiểu dữ liệu mà nó có thể lưu trữ. Cấu hình kiểu dữ liệu cũng ngăn người dùng nhập bất kỳ thông tin không hợp lệ hoặc không mong muốn.

Khi gán kiểu dữ liệu phù hợp cho một cột, bạn có thể tận dụng bộ nhớ hiệu quả bằng cách phân bổ chỉ một số lượng bộ nhớ hệ thống cần cho dữ liệu trong cột liên quan.

Bạn có thể dùng những đặc điểm sau để xác định kiểu dữ liệu trong SQL Server:

  • Kiểu dữ liệu (cố định hoặc tùy biến) mà nó đại diện.
  • Dung lượng lưu trữ tùy thuộc vào giá trị, có độ dài cố định hoặc biến thiên.
  • Giá trị lưu trữ có thể được đánh chỉ mục hoặc không.
  • Cách SQL Server triển khai một so sánh giá trị của một kiểu dữ liệu cụ thể.

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

  • String - Chuỗi
  • Numeric - Số
  • Date and Time - Ngày và thời gian

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

Dưới đây là các kiểu dữ liệu thuộc nhóm chuỗi kí tự trong SQL Server (Transact-SQL).

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.
TEXTTố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.
NTEXTTố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.
IMAGEkích thước tối đa là 2GB.
  • Độ dài tùy biến.
  • Dữ liệu nhị phân.

Kiểu dữ liệu trong SQL

Kiểu dữ liệu dạng số trong SQL Server

Dưới đây là danh sách các kiểu dữ liệu thuộc dạng số trong SQL Server (Transact-SQL).

Cú pháp kiểu dữ liệu Kích thước tối đa Giải thích
BITsố nguyên 0, 1 hoặc NULL
TINYINTtừ 0 đến 255
SMALLINTtừ -32768 đến 32767
INT-2,147,483,648 đến 2,147,483,647
BIGINTtừ -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.
REALtương đương với FLOAT(24)
SMALLMONEYtừ - 214,748.3648 đến 214,748.3647
MONEYtừ -922,337,203,685,477.5808 đến 922,337,203,685,477.5807

Kiểu dữ liệu ngày tháng/thời gian trong SQL Server

Dưới đây là danh sách các kiểu dữ liệu ngày tháng/thời gian trong SQL Server (Transact-SQL)

Cú pháp kiểu dữ liệuKích thước tối đaGiải thích
DATEgiá 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]

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

Bài trước: Mệnh đề PIVOT trong SQL Server

Bài sau: Lệnh CREATE TABLE trong SQL Server

Thứ Tư, 23/08/2023 16:51
436 👨 317.519
1 Bình luận
Sắp xếp theo
  • Dương Đình Dẫn
    Dương Đình Dẫn

    cho hỏi kiểu dữ liệu BLOB trong sqlite thì trong SQL server nó là gì? cám ơn

    Thích Phản hồi 23/03/21
    ❖ SQL Server