MariaDB - Loại dữ liệu
Định nghĩa trường tốt là điều cần thiết cho việc tối ưu hóa cơ sở dữ liệu của bạn. Cách tiếp cận lý tưởng yêu cầu bạn sử dụng riêng một trường thuộc loại và kích thước cần thiết. Ví dụ: nếu bạn sẽ chỉ sử dụng một trường, rộng năm ký tự, không xác định một trường, rộng 20 ký tự. Các kiểu trường (hoặc cột) còn được gọi là kiểu dữ liệu dựa trên các kiểu dữ liệu được lưu trữ trong trường.
Các kiểu dữ liệu MariaDB có thể được phân loại thành giá trị số, ngày giờ và chuỗi.
Kiểu dữ liệu số
Các kiểu dữ liệu số được MariaDB hỗ trợ như sau:
TINYINT - Kiểu dữ liệu này đại diện cho các số nguyên nhỏ nằm trong phạm vi có dấu từ -128 đến 127 và phạm vi không dấu từ 0 đến 255.
BOOLEAN - Kiểu dữ liệu này liên kết giá trị 0 với "false" và giá trị 1 với "true".
SMALLINT - Kiểu dữ liệu này đại diện cho các số nguyên trong phạm vi có dấu từ -32768 đến 32768 và phạm vi không dấu từ 0 đến 65535.
MEDIUMINT - Kiểu dữ liệu này đại diện cho các số nguyên trong phạm vi có dấu từ -8388608 đến 8388607 và phạm vi không dấu từ 0 đến 16777215.
INT(also INTEGER)- Kiểu dữ liệu này biểu diễn một số nguyên có kích thước bình thường. Khi được đánh dấu là chưa có dấu, phạm vi kéo dài từ 0 đến 4294967295. Khi có dấu (cài đặt mặc định), phạm vi kéo dài từ -2147483648 đến 2147483647. Khi một cột được đặt thành ZEROFILL (trạng thái không dấu), tất cả các giá trị của nó sẽ được thêm vào trước bởi các số không để đặt M chữ số trong giá trị INT.
BIGINT - Kiểu dữ liệu này đại diện cho các số nguyên trong phạm vi có dấu từ 9223372036854775808 đến 9223372036854775807 và phạm vi không dấu từ 0 đến 18446744073709551615.
DECIMAL(cũng DEC, SỐ, CỐ ĐỊNH) - Kiểu dữ liệu này đại diện cho các số điểm cố định chính xác, với M chỉ định các chữ số của nó và D chỉ định các chữ số sau số thập phân. Giá trị M không thêm “-” hoặc dấu thập phân. Nếu D được đặt thành 0, không có phần thập phân hoặc phân số nào xuất hiện và giá trị sẽ được làm tròn đến DECIMAL gần nhất trên INSERT. Các chữ số được phép tối đa là 65 và tối đa cho số thập phân là 30. Giá trị mặc định cho M khi bỏ qua là 10 và 0 cho D khi bỏ qua.
FLOAT - Kiểu dữ liệu này đại diện cho một số nhỏ, dấu phẩy động của giá trị 0 hoặc một số trong các phạm vi sau:
-3.402823466E + 38 đến -1.175494351E-38
1,175494351E-38 đến 3,402823466E + 38
DOUBLE (cũng thế REAL và DOUBLE PRECISION) - Kiểu dữ liệu này đại diện cho các số có kích thước bình thường, dấu phẩy động của giá trị 0 hoặc trong các phạm vi sau:
-1.7976931348623157E + 308 đến -2.2250738585072014E-308
2.2250738585072014E-308 đến 1.7976931348623157E + 308
BIT- Kiểu dữ liệu này đại diện cho các trường bit với M chỉ định số bit trên mỗi giá trị. Khi bỏ qua M, giá trị mặc định là 1. Giá trị bit có thể được áp dụng với “b '[value]'” trong đó giá trị đại diện cho giá trị bit trong 0s và 1s. Zero-padding xảy ra tự động từ bên trái cho toàn bộ chiều dài; ví dụ: “10” trở thành “0010.”
Các loại dữ liệu ngày và giờ
Các kiểu dữ liệu ngày và giờ được MariaDB hỗ trợ như sau:
DATE - Loại dữ liệu này biểu thị phạm vi ngày từ “1000-01-01” đến “9999-12-31” và sử dụng định dạng ngày “YYYY-MM-DD”.
TIME - Loại dữ liệu này biểu thị phạm vi thời gian từ “-838: 59: 59.999999” đến “838: 59: 59.999999”.
DATETIME- Kiểu dữ liệu này đại diện cho phạm vi “1000-01-01 00: 00: 00.000000” đến “9999-12-31 23: 59: 59.999999.” Nó sử dụng định dạng “YYYY-MM-DD HH: MM: SS”.
TIMESTAMP- Loại dữ liệu này biểu thị dấu thời gian của định dạng “YYYY-MM-DD HH: MM: DD”. Nó chủ yếu được sử dụng trong việc trình bày chi tiết thời gian sửa đổi cơ sở dữ liệu, ví dụ: chèn hoặc cập nhật.
YEAR- Kiểu dữ liệu này đại diện cho một năm ở định dạng 4 chữ số. Định dạng bốn chữ số cho phép các giá trị trong phạm vi từ 1901 đến 2155 và 0000.
String DataTypes
Các giá trị kiểu chuỗi được MariaDB hỗ trợ như sau:
String literals - Kiểu dữ liệu này biểu diễn các chuỗi ký tự được bao bởi dấu ngoặc kép.
CHAR- Kiểu dữ liệu này đại diện cho một chuỗi có độ dài cố định, được đệm bên phải chứa các khoảng trắng có độ dài xác định. M đại diện cho độ dài cột của các ký tự trong phạm vi từ 0 đến 255, giá trị mặc định của nó là 1.
VARCHAR - Kiểu dữ liệu này đại diện cho một chuỗi có độ dài thay đổi, với phạm vi M (độ dài cột tối đa) từ 0 đến 65535.
BINARY - Kiểu dữ liệu này đại diện cho chuỗi byte nhị phân, với M là độ dài cột tính bằng byte.
VARBINARY - Kiểu dữ liệu này biểu diễn chuỗi byte nhị phân có độ dài thay đổi, với M là độ dài cột.
TINYBLOB- Kiểu dữ liệu này đại diện cho một cột blob có độ dài tối đa là 255 (28 - 1) byte. Trong bộ nhớ, mỗi sử dụng tiền tố độ dài một byte cho biết số lượng byte trong giá trị.
BLOB- Kiểu dữ liệu này đại diện cho một cột đốm màu với độ dài tối đa là 65,535 (216 - 1) byte. Trong bộ nhớ, mỗi phần sử dụng tiền tố độ dài hai byte cho biết số lượng byte trong giá trị.
MEDIUMBLOB- Kiểu dữ liệu này đại diện cho một cột đốm màu với độ dài tối đa là 16,777,215 (22 4 - 1) byte. Trong bộ nhớ, mỗi mã sử dụng tiền tố độ dài ba byte cho biết số lượng byte trong giá trị.
LONGBLOB- Kiểu dữ liệu này đại diện cho một cột blob có độ dài tối đa là 4,294,967,295 (2 32 - 1) byte. Trong bộ nhớ, mỗi mã sử dụng tiền tố độ dài bốn byte cho biết số lượng byte trong giá trị.
TINYTEXT- Kiểu dữ liệu này đại diện cho một cột văn bản có độ dài tối đa là 255 (2 8 - 1) ký tự. Trong bộ nhớ, mỗi sử dụng tiền tố độ dài một byte cho biết số lượng byte trong giá trị.
TEXT- Kiểu dữ liệu này đại diện cho một cột văn bản có độ dài tối đa là 65.535 (2 16 - 1) ký tự. Trong bộ nhớ, mỗi phần sử dụng tiền tố độ dài hai byte cho biết số lượng byte trong giá trị.
MEDIUMTEXT- Kiểu dữ liệu này đại diện cho một cột văn bản có độ dài tối đa là 16.777.215 (2 24 - 1) ký tự. Trong bộ nhớ, mỗi mã sử dụng tiền tố độ dài ba byte cho biết số lượng byte trong giá trị.
LONGTEXT- Kiểu dữ liệu này đại diện cho một cột văn bản có độ dài tối đa là 4,294,967,295 hoặc 4GB (2 32 - 1) ký tự. Trong bộ nhớ, mỗi mã sử dụng tiền tố độ dài bốn byte cho biết số lượng byte trong giá trị.
ENUM - Kiểu dữ liệu này đại diện cho một đối tượng chuỗi chỉ có một giá trị duy nhất từ một danh sách.
SET- Kiểu dữ liệu này đại diện cho một đối tượng chuỗi có không hoặc nhiều giá trị từ một danh sách, với tối đa 64 phần tử. Giá trị SET hiển thị bên trong dưới dạng giá trị số nguyên.