NỘI DUNG BÀI VIẾT
Kiểu dữ liệu trong SQL định nghĩa một kiểu giá trị mà một cột có thể chứa. Trong một bảng, mỗi cột cần có một tên và một kiểu dữ liệu. Kiểu dữ liệu thì khá đa dạng với các Database khác nhau. Ví dụ, MySQl hỗ trợ kiểu INT nhưng Oracle hỗ trợ kiểu NUMBER cho các giá trị nguyên.
Bạn sẽ sử dụng những kiểu dữ liệu này trong khi tạo các bảng của mình. Bạn sẽ chọn một kiểu dữ liệu cụ thể cho một cột trong bảng dựa trên yêu cầu của mình.
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. |
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
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 |
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] |
Trên đây là lý thuyết về kiểu dữ liệu trong SQL. Mong rằng sẽ giúp ích cho bạn. Chúc bạn học tốt.
Xem thêm:
Sự khác nhau giữa HTTP và HTTPS
10 phương pháp tự học lập trình