Hệ quản trị SQL Server - Kiểu dữ liệu

Kiểu dữ liệu trong SQL Server 

SQL Server có 3 loại kiểu dữ liệu:

  • Các kiểu chuỗi kí tự(String )
  • Các kiểu dạng số (Number )
  • Các kiểu dữ liệu ngày tháng/thời gian (Date)

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

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

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  

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ệ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]