Ngôn ngữ SQL - Kiểu dữ liệu trong SQL

Kiểu dữ liệu trong SQL

Các kiểu dữ liệu được sử dụng để thể hiện bản chất của dữ liệu có thể được lưu trữ trong bảng cơ sở dữ liệu. Ví dụ, trong một cột cụ thể của bảng, nếu chúng ta muốn lưu trữ một loại chuỗi dữ liệu thì chúng ta sẽ phải khai báo một kiểu dữ liệu chuỗi của cột này.

Các loại dữ liệu chủ yếu được phân loại thành ba loại cho mỗi cơ sở dữ liệu.

  • Kiểu dữ liệu chuỗi
  • Kiểu dữ liệu số
  • Kiểu dữ liệu Ngày và giờ 

Các kiểu dữ liệu trong cơ sở dữ liệu MySQL, SQL Server và Oracle
 

Kiểu dữ liệu MySQL
Danh sách các loại dữ liệu được sử dụng trong cơ sở dữ liệu MySQL. Điều này dựa trên MySQL 8.0. 

MySQL String Data Types

BIT(Size) Kiểu dữ liệu là bit. Số lượng bit trên mỗi giá trị được chỉ định theo kích thước. Kích thước của nó có thể là 1 đến 64. Giá trị mặc định là 1.
INT(size) Kiểu dữ liệu là  số nguyên. Phạm vi thay đổi từ -2147483648 đến 2147483647 và phạm vi không dấu thay đổi từ 0 đến 4294967295. Tham số kích thước chỉ định chiều rộng hiển thị tối đa là 255.
INTEGER(size) Giống như INT(size).
FLOAT(size, d) Kiểu dữ liệu số dấu phẩy động(số thực). Tham số kích thước của nó chỉ định tổng số chữ số. Số chữ số sau dấu thập phân được chỉ định bởi tham số d.
FLOAT(p) NKiểu dữ liệu số dấu phẩy động. MySQL đã sử dụng tham số p để xác định nên sử dụng FLOAT hay DOUBLE. Nếu p nằm trong khoảng từ 0 đến 24, kiểu dữ liệu sẽ trở thành FLOAT (). Nếu p từ 25 đến 53, kiểu dữ liệu trở thành DOUBLE ().
DOUBLE(size, d) Kiểu dữ liệu số thực
DECIMAL(size, d) Kiểu dữ liệu  cố định. Tham số kích thước của nó chỉ định tổng số chữ số. Số chữ số sau tham số thập phân được chỉ định bởi tham số d. Giá trị tối đa cho kích thước là 65 và giá trị mặc định là 10. Giá trị tối đa cho d là 30 và giá trị mặc định là 0.
DEC(size, d) Tương tự DECIMAL(size, d).
BOOL Kiểu dữ liệu boolean. 0 là false, 1 là true

Kiểu dữ liệu Ngày và Giờ trong MySQL

DATE Theo dạng YYYY-MM-DD. Từ ngày  '1000-01-01' đến ngày '9999-12-31'.
DATETIME(fsp) Kiểu dữ liệu ngày và giờ. Theo dạng YYYY-MM-DD hh:mm:ss. Từ ngày  '1000-01-01 00:00:00' đến ngày 9999-12-31 23:59:59'.
TIMESTAMP(fsp) Lưu trữ một số duy nhất trong cơ sở dữ liệu được cập nhật mỗi khi một hàng được cập nhật
TIME(fsp) Lưu trữ thời gian trong ngày như 12:30 PM.
R Khai báo  một năm ở định dạng bốn chữ số. Các giá trị được phép ở định dạng bốn chữ số từ 1901 đến 2155 và 0000.

Kiểu dữ liệu SQL Server

Kiểu dữ liệu chuỗi SQL Server

char(n) Kiểu dữ liệu chuỗi ký tự có kích thước cố định. Kích thước của nó có thể lên tới 8000 ký tự.
varchar(n) Kiểu dữ liệu chuỗi ký tự có kích thước  thay đổi. Kích thước của nó có thể lên tới 8000 ký tự.
varchar(max) Kiểu dữ liệu chuỗi ký tự có kích thước thay đổi. Kích thước của nó có thể lên tới 1.073.741.824 ký tự.
text Kiểu dữ liệu chuỗi ký tự có kích thước thay đổi. Kích thước của nó có thể lên tới 2GB dữ liệu văn bản.
nchar Kiểu dữ liệu chuỗi Unicode có kích thước cố định. Kích thước của nó có thể lên tới 4000 ký tự.
nvarchar Kiểu dữ liệu chuỗi Unicode có kích thước thay đổi. Kích thước của nó có thể lên tới 4000 ký tự.
ntext Kiểu dữ liệu chuỗi Unicode có kích thước  thay đổi. Kích thước của nó có thể lên tới 2GB dữ liệu văn bản.
binary(n) Kiểu dữ liệu chuỗi nhị phân có kích thước cố định. Kích thước của nó có thể lên tới 8000 byte.
varbinary Kiểu dữ liệu chuỗi nhị phân có kích thước  thay đổi. Kích thước của nó có thể lên tới 8000 byte.
image Cũng là một kiểu dữ liệu chuỗi nhị phân có kích thước thay đổi. Kích thước của nó có thể lên tới 2GB.

Các loại dữ liệu số SQL Server

bit Có giá trị 0, 1 or null.
tinyint Có giá trị từ 0 đến 255.
Smallint Có giá trị trong khoảng -32,768  đến 32,767.
Int Có giá trị từ -2,147,483,648 đến 2,147,483,647.
bigint Có giá trị từ -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807.
float(n) Kiểu dữ liệu số thực  từ -1,79E + 308 đến 1,79E + 308. Tham số n cho biết trường nên giữ 4 hoặc 8 byte. Giá trị mặc định của n là 53.
real Kiểu dữ liệu số thực có giá trị từ  -3.40E+38 đến 3.40E+38.
money Kiểu dữ liệu tiền tệ từ -922,337,233,685,477.5808 đến 922,337,203,685,477.5807.

 Kiểu dữ liệu ngày và giờ trong SQL Server

datetime Từ ngày 1 tháng 1 năm 1753 đến  Ngày 31 tháng 12 năm 9999
datetime2 Từ ngày 1 tháng 1 năm 0001 đến  Ngày 31 tháng 12 năm 9999 chính xác đến nano giây.
date Từ ngày 1 tháng 1 năm 0001 đến  Ngày 31 tháng 12 năm 9999
time Lưu thời gian chính xác 100 nanoseconds
timestamp Lưu trữ một số duy nhất trong cơ sở dữ liệu được cập nhật mỗi khi một hàng được cập nhật

Các kiểu dữ liệu khác của SQL Server

Sql_variant Lưu trữ các giá trị của các Kiểu dữ liệu khác nhau được hỗ trợ bởi SQL Server, ngoại trừ văn bản, ntext và dấu thời gian. Lưu trữ đên 8000 bytes dữ liệu
XML Lưu trữ dữ liệu XML. Bạn có thể lưu trữ các thể hiện xml trong một cột hoặc một biến (chỉ có SQL Server 2005). Tối đa 2GB.
cursor Tham chiếu Từ một đối tượng con trỏ.
table Lưu trữ một tập kết quả để xử lý sau.
uniqueidentifier Lưu trữ GUID (Globally unique identifier).