Các kiểu dữ liệu trong MySQL mà bạn nên biết để quản trị dữ liệu
Thịnh Văn Hạnh 26/10/2022 1612 Lượt xem Chia sẻ bài viết
MySQL là một hệ quản trị dữ liệu cơ bản và phổ biến. Khi sử dụng MySQL, bạn phải làm việc với rất nhiều dữ liệu. Muốn làm việc hiệu quả với MySQL bạn phải nắm vững một số kiểu dữ liệu quan trọng. Bài viết dưới đây, BKNS sẽ cung cấp cho bạn toàn bộ thông tin về các kiểu dữ liệu trong MySQL.
Tóm Tắt Bài Viết
Khái niệm dữ liệu và kiểu dữ liệu
Dữ liệu là một tập hợp các dữ kiện, chẳng hạn như số, từ, hình ảnh, nhằm đo lường, quan sát hoặc chỉ là mô tả về sự vật.
Kiểu dữ liệu tức là KIỂU của DỮ LIỆU
Ví dụ về một mẫu dữ liệu mô tả thông tin cơ bản của một người.
Họ và Tên | Giới tính | Ngày sinh | Địa chỉ | SĐT |
Vũ Văn Đại | Nam | 07/08/1999 | Huyện Chương Mỹ, Hà Nội | 0987654321 |
Các kiểu dữ liệu có thể thấy thông qua ví dụ này là:
- VŨ VĂN ĐẠI, có dạng chuỗi ký tự, nên người ta gọi cột Họ và Tên có kiểu dữ liệu là kiểu chuỗi.
- Tương tự với cột Giới tính và Địa chỉ, đây cũng là dữ liệu có dạng chuỗi ký tự cho nên nó là kiểu chuỗi.
- Với cột Ngày sinh, có dạng ngày tháng (07/08/1999) nên được xem là kiểu ngày tháng (thời gian)
- Dữ liệu ở cột SĐT có dạng số nguyên (0987654321), nên người ta gọi cột này có kiểu dữ liệu là kiểu số.
Kiểu dữ liệu số
Đây là một trong những kiểu dữ liệu thịnh hành trong MySQL. Kiểu dữ liệu này được phân ra làm kiểu dữ liệu số nguyên, kiểu dữ liệu số thực, kiểu dữ liệu DECIMAL và NUMERIC.
- Có thể bạn quan tâm: MySQL là gì? Hướng dẫn cài đặt và cấu hình MySQL
Kiểu dữ liệu số nguyên
Các kiểu số nguyên tiêu chuẩn của MySQL là INTEGER (INT) và SMALLINT. Hơn nữa, MySQL còn hỗ trợ các kiểu số nguyên khác như TINYINT, MEDIUMINT, và BIGINT. Mỗi kiểu dữ liệu có không gian lưu trữ khác nhau.
TINYINT | SMALLINT | MEDIUMINT | INT | BIGINT | |
Độ dài (số byte) | 1 | 2 | 3 | 4 | 8 |
Giá trị lưu trữ (có dấu) | -128 -127 | -32768 -32767 | -8388608 – 8388607 | -2147483648 – 2147483647 | -9223372036854775808
– 92233720368 54775807 |
Giá trị lưu trữ (không dấu) | 0 – 255 | 0 – 65535 | 0 – 16777215 | 0 – 4294967295 | 0 – 184467440737 09551615 |
Kiểu dữ liệu số thực
Kiểu dữ liệu FLOAT và DOUBLE mô tả gần đúng các giá trị số thực.
FLOAT | DOUBLE | |
Mô tả | Một số chấm động (floating-point number) không thể không có dấu (unsigned). Bạn có thể định nghĩa độ dài phần nguyên (M) và độ dài phần thập phân (D). Điều này không bắt buộc và mặc định là 10,2. Ở đây 10 là độ dài phần nguyên còn 2 là số số thập phân. | Một số chấm động DOUBLE (Độ chính xác gấp 2) cũng không thể không có dấu (unsigned). Bạn có thể định nghĩa độ dài phần nguyên (M) và độ dài phần thập phân (D). Điều này không bắt buộc và mặc định là 16,4, ở đó 16 là độ dài phần nguyên còn 4 là độ dài phần thập phân. Phần thập phân có thể sử dụng tới 53 vị trí cho một số DOUBLE. REAL là một từ đồng nghĩa với DOUBLE. |
Độ dài (số byte) | 4 | 8 |
Giá trị lưu trữ (có dấu) | -3.402823466E+38 – -1.175494351E-38 | -1.7976931348623157E+ 308 – -2.2250738585072014E- 308 |
Giá trị lưu trữ (không dấu) | 1.175494351E-38 – 3.402823466E+38 | 0 and 2.2250738585072014E- 308 – 1.7976931348623157E+ 308 |
Kiểu dữ liệu DECIMAL và NUMERIC
Kiểu dữ liệu Bit
Kiểu dữ liệu BIT được sử dụng để lưu trữ trường giá trị bit. Kiểu BIT(N) có thể lưu trữ N giá trị bit. N có phạm vi từ 1 tới 64. Để chỉ định giá trị các bit, có thể sử dụng b’value’. value là dẫy các số nhị phân 0 hoặc 1. Ví dụ b’10111′ mô tả số 23, và b’100000′ mô tả số 32. Thông thạo chuyển đổi từ hệ nhị phân sang hệ thập phân và ngược lại để dễ dàng hiểu về kiểu dữ liệu này hơn nhé.
Kiểu dữ liệu chuỗi
Các kiểu dữ liệu chuỗi bao gồm:
- CHAR
- VARCHAR
- BINARY
- VARBINARY
- BLOB
- TEXT
- ENUM
- SET
Kiểu dữ liệu CHAR và VARCHAR
Hai kiểu dữ liệu này khá giống nhau. Điểm khác duy nhất của chúng là cách chúng được lưu trữ và truy xuất. Ngoài ra thì chiều dài tối đa và giữ lại hay không khoảng trắng phía trước (trailing spaces) cũng là điểm khác biệt
Kiểu dữ liệu BINARY và VARBINARY
Tương tự như CHAR và VARCHAR nhưng BINARY và VARBINARY có chứa các chuỗi nhị phân chứ không phải là chuỗi non-binary.
Kiểu dữ liệu BLOB và TEXT
BLOB là một đối tượng nhị phân lớn (Binary Large OBject) có thể chứa một lượng lớn dữ liệu. Có TINYBLOB, BLOB, MEDIUMBLOB, và LONGBLOB. Về cơ bản thì chúng chỉ khác nhau về độ dài kí tự được phép lưu trữ.
Tương tự như BLOB, TEXT cũng có TINYTEXT, MEDIUMTEXT và LONGTEXT.
Kiểu dữ liệu ENUM
Khi định nghĩa một trường kiểu này, tức là, ta đã chỉ ra một danh sách các đối tượng mà trường phải nhận (có thể là Null).Ví dụ, nếu ta muốn một trường nào đó chỉ nhận một trong các giá trị “A” hoặc “B” hoặc “C” thì ta phải định nghĩa kiểu ENUM cho nó như sau: ENUM (‘A’, ‘B’, ‘C’). Và chỉ có các giá trị này (hoặc NULL) có thể xuất hiện trong trường đó.
Kiểu dữ liệu thời gian
Các kiểu dữ liệu ngày tháng và thời gian đại diện bao gồm DATE, TIME, DATETIME, TIMESTAMP, and YEAR. Cùng khám phá cách hiển thị thời gian qua các kiểu dữ liệu trong mySQL như nào nhé
Kiểu dữ liệu DATETIME, DATE, và TIMESTAMP
DATETIME | DATE | TIMESTAMP | |
Mô tả | Sử dụng khi bạn cần giá trị lưu trữ cả hai thông tin ngày tháng và thời gian. | Sử dụng khi bạn muốn lưu trữ chỉ thông tin ngày tháng. | Lưu trữ cả hai thông tin ngày tháng và thời gian. Giá trị này sẽ được chuyển đổi từ múi giờ hiện tại sang UTC trong khi lưu trữ, và sẽ chuyển trở lại múi giờ hiện tại khi lấy dữ liệu ra. |
Định dạng | YYYY-MM-DD HH:MM:SS | YYYY-MM-DD | YYYY-MM-DD HH:MM:SS |
Phạm vi | ‘1000-01-01 00:00:00’ to ‘9999-12-31 23:59:59’. | ‘1000-01-01’ to ‘9999-12-31’. | ‘1970-01-01 00:00:01’ UTC to ‘2038-01-19 03:14:07’ UTC |
Kiểu dữ liệu TIME(fsp)
hiển thị thời gian theo định dạng ‘'HH:MM:SS'
(hoặc định dạng 'HHH:MM:SS'
đối với các giá trị giờ lớn). Giá trị của TIME
có thể trong khoảng '-838:59:59'
tới '838:59:59'
. Phần thời gian có thể lớn bởi vì kiểu TIME
có thể không chỉ mô tả thời gian của một ngày (Vốn chỉ có tối đa 24 giờ), mà nó có thể là thời gian trôi qua hoặc khoảng thời gian giữa hai sự kiện (Cái mà có thể lớn hơn 24h thậm trí có giá trị âm).
Kiểu dữ liệu YEAR
Kiểu dữ liệu YEAR được sử dụng 1-byte để mô tả giá trị. Với định dạng 4 số, MySQL hiển thị giá trị YEAR theo định dạng YYYY, với phạm vi 1901 tới 2155, hoặc 0000. Với định dạng 2 số, MySQL chỉ hiển thị 2 số cuối; ví dụ 45 (1945 hoặc 2045)
Kết luận
Trên đây là bài viết BKNS cung cấp về các kiểu dữ liệu trong mySQL. Sau bài viết này chắc hẳn bạn đã biết phân loại và hiểu rõ hơn những kiến thức về các kiểu dữ liệu trong mySQL. HY vọng bạn thấy bài viết hữu ích. Nếu còn bất cứ thắc mắc gì thì hãy cứ comment bên dưới để được hỗ trợ và giải đáp tận tình nhé!
Đọc thêm:
Các Kiểu Dữ Liệu Trong SQL Server: Bạn Có Biết?
Hướng dẫn xuất cơ sở dữ liệu SQL Server thành file .sql để import trên phiên bản SQL Server thấp hơn