Kiểu dữ liệu trong MySQL là gì?

Các kiểu dữ liệu MySQL rất quan trọng để hiểu trước khi bạn bắt đầu tạo và làm việc với cơ sở dữ liệu MySQL. Nếu bạn chỉ định đúng từng cột, bạn đảm bảo rằng cơ sở dữ liệu được tối ưu hóa và dữ liệu được lưu trữ an toàn

Trong hướng dẫn này, bạn sẽ tìm hiểu về các kiểu dữ liệu MySQL khác nhau

MySQL Data Types.

Các kiểu dữ liệu trong MySQL là gì?

Tên và kiểu dữ liệu xác định từng cột trong bảng cơ sở dữ liệu. Loại dữ liệu được chỉ định cho MySQL biết loại giá trị nào nó sẽ lưu trữ, chúng yêu cầu bao nhiêu dung lượng và loại hoạt động nào nó có thể thực hiện với loại dữ liệu này

Có nhiều loại dữ liệu khác nhau mà bạn có thể lưu trữ trong bảng MySQL

Chúng được nhóm thành năm loại chính

  1. Kiểu dữ liệu số
  2. Kiểu dữ liệu ngày và giờ
  3. Kiểu dữ liệu chuỗi
  4. Các kiểu dữ liệu không gian
  5. Kiểu dữ liệu JSON

Đọc tiếp để tìm hiểu thêm về từng nhóm và xem chúng bao gồm những loại dữ liệu nào

Kiểu dữ liệu số

Khi lưu trữ số trong cột cơ sở dữ liệu, hãy sử dụng một trong các kiểu dữ liệu số. MySQL hỗ trợ cả kiểu dữ liệu số chính xác và gần đúng

Loại số được chia nhỏ hơn thành các nhóm sau

  • Kiểu dữ liệu số nguyên
  • Kiểu dữ liệu dấu phẩy động
  • Các kiểu dữ liệu điểm cố định
  • Kiểu dữ liệu giá trị bit

Types of numeric data types.

Các kiểu số nguyên

Kiểu dữ liệu số nguyên được sử dụng cho số nguyên (số nguyên). Chúng bao gồm cả giá trị dương và âm. Tuy nhiên, chúng không xử lý các số phân số

Do đó, các số như 30 và -5435 có thể được lưu trữ dưới dạng kiểu dữ liệu số nguyên, trong khi 5,3 hoặc 1/5 thì không thể

Các kiểu số nguyên có dấu hoặc không dấu. Chúng được chia nhỏ hơn nữa dựa trên kích thước của chúng, khác nhau về chiều dài và phạm vi của chúng

BytesRange (unsigned)Range (signed)TINYINT1from 0 to 255from -128 to 127SMALLINT2from 0 to 65535from -32768 to 32767MEDIUMINT3from 0 to 16777215from -8388608 to 8388607INT4from 0 to 4294967295from -2147483648 to 2147483647BIGINT8from 0 to 18446744073709551615from -9223372036854775808 to 9223372036854775807

TINYINT là một số nguyên rất nhỏ sử dụng 1 byte dung lượng lưu trữ. Nó bao gồm tối đa 4 chữ số. Phạm vi không dấu của nó là từ 0 đến 255. Nếu nó được ký, nó có phạm vi từ -128 đến 127

SMALLINT là một số nguyên nhỏ sử dụng 2 byte bộ nhớ. Nó bao gồm tối đa 5 chữ số. Phạm vi không dấu của nó là từ 0 đến 65535. Khi được ký, nó có phạm vi từ -32768 đến 32767

MEDIUMINT là số nguyên cỡ trung bình sử dụng 3 byte dung lượng lưu trữ. Nó có tới 9 chữ số. Nếu không dấu, nó có phạm vi từ 0 đến 16777215. Đã ký, giá trị tối thiểu của nó là -8388608, trong khi giá trị tối đa của nó là 8388607

INT là một số nguyên sử dụng 4 byte bộ nhớ. Nó sử dụng tới 11 chữ số. Khi không dấu, nó nằm trong khoảng từ 0 đến 4294967295. Nếu nó được ký, nó có phạm vi từ -2147483648 đến 2147483647

BIGINT là một số nguyên lớn sử dụng 8 byte bộ nhớ. Nó có tới 20 chữ số. Giá trị được ký tối thiểu của nó là 0, trong khi giá trị được ký tối đa của nó là 18446744073709551615. Nếu được ký, nó có phạm vi từ -9223372036854775808 đến 9223372036854775807

Các loại dấu phẩy động

Các kiểu dữ liệu số dấu phẩy động là các số hữu tỷ được sử dụng để biểu thị các giá trị gần đúng. Sử dụng các kiểu dữ liệu dấu phẩy động để tính toán độ chính xác cao

Các loại dấu phẩy động bao gồm

  • FLOAT đại diện cho các giá trị có độ chính xác đơn sử dụng 4 byte và bao gồm tối đa 6 hoặc 7 chữ số có nghĩa
  • DOUBLE đại diện cho các giá trị có độ chính xác kép sử dụng 8 byte và bao gồm tối đa 15 hoặc 16 chữ số có nghĩa

Cú pháp cơ bản để xác định kiểu dữ liệu FLOAT/_______6 là FLOAT(M,D)/SMALLINT0

SMALLINT1 đại diện cho tổng số chữ số, trong khi SMALLINT2 là số thập phân. Ví dụ: giá trị 5143,234 sẽ được xác định là 7,3 vì nó có tổng cộng 7 chữ số và 3 chữ số sau dấu thập phân

Bạn cũng có thể sử dụng cú pháp SMALLINT3 để chỉ định kiểu dữ liệu dấu phẩy động, trong đó SMALLINT4 chỉ định độ chính xác. Nếu SMALLINT4 có giá trị từ 0 đến 23, thì đó là cột có độ chính xác đơn. Nếu độ chính xác nằm trong khoảng từ 24 đến 53, thì đó là cột có độ chính xác kép

Phạm vi byte (không dấu)Phạm vi (có dấu)FLOAT4từ 1. 175494351E-38 đến 3. 402823466E+38từ -3. 402823466E+38  đến -1. 175494351E-38DOUBLE8từ 0 và 2. 22507385850720 14E- 308 đến 1. 797693134862315 7E+ 308từ -1. 7976931348623 157E+ 308 đến -2. 22507385850720 14E- 308

Ghi chú. Không sử dụng số dấu phẩy động khi so sánh các giá trị, đặc biệt là khi xử lý dữ liệu tiền tệ. Thay vào đó, hãy sử dụng loại dữ liệu SMALLINT6 cho các trường hợp sử dụng đó

Các loại điểm cố định

Để lưu trữ các giá trị số chính xác, hãy sử dụng kiểu dữ liệu điểm cố định – SMALLINT6. Vì nó đại diện cho một số chính xác, loại dữ liệu này chủ yếu được sử dụng cho dữ liệu dựa trên các giá trị chính xác (chẳng hạn như dữ liệu tiền tệ)

Cú pháp cơ bản là SMALLINT8, trong đó SMALLINT4 là viết tắt của độ chính xác (số chữ số có nghĩa) và SMALLINT2 là viết tắt của tỷ lệ (số chữ số sau dấu thập phân)

Số chữ số tối đa cho độ chính xác là 65, trong khi giá trị tối đa cho tỷ lệ là 30

Nếu bạn không xác định độ chính xác và tỷ lệ, cột sẽ sử dụng các giá trị mặc định. Theo mặc định, các giá trị cho P,D là 10,0

Các loại giá trị bit

Kiểu dữ liệu MEDIUMINT1 lưu trữ các giá trị nhị phân. Khi tạo một cột sẽ lưu trữ các giá trị như vậy, bạn xác định số lượng giá trị bit nằm trong khoảng từ 1 đến 64

Cú pháp cho kiểu dữ liệu MySQL này là MEDIUMINT2. Nếu bạn không chỉ định MEDIUMINT3, giá trị mặc định là 1

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

Ngày và giờ là các kiểu dữ liệu thường được sử dụng. Cho dù bạn đang lưu trữ thời gian nhập dữ liệu, ngày sinh hay dấu thời gian hiện tại, bạn đều sử dụng một trong các cột sau

Các kiểu dữ liệu ngày và giờ bao gồm

  • MEDIUMINT4, MEDIUMINT5
  • MEDIUMINT6
  • MEDIUMINT7
  • MEDIUMINT8

Date and time data types.

NGÀY, DẤU THỜI GIAN

Để lưu trữ các giá trị ngày và giờ, hãy sử dụng MEDIUMINT4 hoặc MEDIUMINT5. Cả hai loại dữ liệu đều lưu trữ thông tin trong YYYY-MM-DD HH. MM. định dạng SS. Nó bao gồm năm, tháng, ngày, giờ, phút và giây

Sự khác biệt chính giữa hai là phạm vi của chúng

  • Giá trị của MEDIUMINT4 nằm trong khoảng từ 1000-01-01 00. 00. 00 đến 9999-12-31 23. 59. 59
  • Giá trị của MEDIUMINT5 nằm trong khoảng từ 1970-01-01 00. 00. 01 đến 2038-01-19 03. 14. 07

Bạn có thể bao gồm giây phân số cho cả hai tùy chọn. Để làm như vậy, chỉ định độ chính xác theo cú pháp INT3/______34

Ví dụ: để lưu dấu thời gian 10. 53 giờ chiều ngày 1 tháng 3 năm 2021, với ba giây phân số, chỉ định loại dữ liệu INT5. Mục nhập được lưu trữ dưới dạng. 2021-03-01 22. 53. 35. 346

Ghi chú. Tìm hiểu cách làm việc với dấu thời gian ngày/giờ trong MySQL với hướng dẫn chuyên sâu của chúng tôi về cách sử dụng Hàm ngày/giờ của MySQL

NGÀY

MEDIUMINT6 được dùng để lưu trữ các giá trị ngày ở định dạng YYYY-MM-DD (năm, tháng, ngày)

Loại dữ liệu hỗ trợ phạm vi 1000-01-01 đến 9999-12-31

THỜI GIAN

MEDIUMINT7 được sử dụng để lưu trữ các giá trị thời gian dưới dạng HH-MM-SS (giờ, phút, giây) hoặc HHH-MM-SS. Các mục hiển thị thời gian đã trôi qua hoặc chênh lệch thời gian được lưu trữ và truy xuất ở định dạng dài hơn (nếu chúng cần nhiều chữ số hơn cho giờ)

Loại dữ liệu hỗ trợ phạm vi 1000-01-01 đến 9999-12-31

NĂM

MEDIUMINT8 lưu trữ giá trị năm ở định dạng YYYY. Nó hỗ trợ các giá trị trong phạm vi 1901-2155

Trong khi các phiên bản cũ hơn MySQL 5. 7. 5 đã hỗ trợ cả mục nhập 2 và 4 chữ số cho MEDIUMINT8, không có hỗ trợ 2 chữ số nào kể từ 5. 7. 5 phát hành

Kiểu dữ liệu chuỗi

Khi lưu trữ chuỗi dữ liệu, hãy sử dụng một trong các kiểu dữ liệu chuỗi. Chúng có thể chứa các chữ cái, số, hình ảnh hoặc tệp

Theo đó, có một số kiểu dữ liệu chuỗi khác nhau

  • BIGINT0 và BIGINT1
  • BIGINT2 và BIGINT3
  • BIGINT4 và BIGINT5
  • BIGINT6
  • BIGINT7

String data types.

CHAR và VARCHAR

BIGINT0 và BIGINT1 là các kiểu dữ liệu được sử dụng để lưu trữ các chuỗi không nhị phân. Sự khác biệt chính giữa hai là cách chúng lưu trữ dữ liệu

BIGINT0 lưu trữ các chuỗi có độ dài cố định (tối đa 255 ký tự). Khi tạo cột BIGINT0, bạn chỉ định độ dài bằng cú pháp FLOAT2. MEDIUMINT3 là số lượng ký tự bạn muốn sử dụng. Nếu bạn không xác định độ dài, nó sẽ sử dụng giá trị mặc định 1

Các giá trị này được lưu trữ ở phần đệm bên phải với độ dài đã chỉ định. Do đó, nếu bạn thiết lập một cột FLOAT4 và lưu trữ một mục gồm ba ký tự trong đó, thì nó vẫn chiếm năm ký tự

BIGINT1 lưu trữ các chuỗi có độ dài thay đổi. Mặc dù độ dài phải được xác định khi tạo cột, nhưng các giá trị không được đệm bên phải. Chúng có giới hạn tối đa, nhưng độ dài không cố định và thay đổi tùy thuộc vào dữ liệu

Trước đây, phạm vi cho các mục là từ 0 đến 255. Sau khi phát hành MySQL 5. 0. Phạm vi 3 , BIGINT1 lên tới 65 535 ký tự

BINARY và VARBINARY

Kiểu dữ liệu BIGINT2 và BIGINT3 tương tự như loại dữ liệu BIGINT0 và BIGINT1 đã đề cập trước đó. Sự khác biệt chính giữa hai nhóm này là BIGINT2 và BIGINT3 được sử dụng cho các chuỗi nhị phân

BIGINT2 được sử dụng cho các chuỗi nhị phân có độ dài cố định, tối đa 255 byte. Cú pháp chính để xác định một cột như vậy là DOUBLE4, trong đó MEDIUMINT3 là số byte

BIGINT3 lưu trữ các chuỗi nhị phân có độ dài thay đổi. MySQL phiên bản 5. 0. 3 và mới hơn lưu trữ tới 65 535 byte

BLOB và VĂN BẢN

Cả BIGINT4 và BIGINT5 đều được sử dụng để lưu trữ lượng lớn dữ liệu

BIGINT4 xử lý Đối tượng lớn nhị phân (nghĩa là tập dữ liệu nhị phân lớn như hình ảnh, âm thanh hoặc tệp PDF)

Có 4 loại kiểu dữ liệu BLOB để sử dụng, tùy thuộc vào kích thước mà dữ liệu của bạn yêu cầu

  • FLOAT0 (0 – 255; 255 byte)
  • BIGINT4 (0 – 65,535; 16 KB)
  • FLOAT2 (0 – 16,777,215; 16 MB)
  • FLOAT3 (0 – 4.294.967.295; 4 GB)

BIGINT5 kiểu dữ liệu dùng để lưu trữ các chuỗi văn bản dài. Theo số lượng dữ liệu cần thiết, có

  • FLOAT5 (0 – 255; 255 byte)
  • BIGINT5 (0 – 65,535; 16 KB)
  • FLOAT7 (0 – 16,777,215; 16 MB)
  • FLOAT8 (0 – 4.294.967.295; 4 GB)

ENUM

Kiểu dữ liệu BIGINT6 được sử dụng để lưu trữ một trong các giá trị có thể được xác định trước trong một cột. Cột có thể có tới 65535 giá trị riêng biệt

Khi tạo cột bảng BIGINT6 trong MySQL, bạn chỉ định danh sách tất cả các giá trị được phép

BỐ TRÍ

Giống như BIGINT6, loại dữ liệu BIGINT7 có một danh sách xác định trước các giá trị có thể được lưu trữ trong cột

Sự khác biệt chính giữa hai loại này là BIGINT7 cho phép một mục có nhiều hơn một giá trị

Ví dụ: nếu cột được xác định là DOUBLE4 và có bốn giá trị có thể có trong danh sách, một mục có thể có giá trị 'Đỏ', trong khi một mục khác có thể có giá trị 'Đỏ','Vàng'

Số lượng giá trị tối đa được phép là 64

Các kiểu dữ liệu không gian

Khi lưu trữ dữ liệu không gian, bạn có thể sử dụng một trong nhiều kiểu dữ liệu không gian khác nhau mà MySQL hỗ trợ. Chúng được sử dụng để thể hiện thông tin về hình dạng hình học và vị trí vật lý

Chúng ta có thể chia thành hai nhóm

  • Giá trị hình học đơn
  • Bộ sưu tập các giá trị

Spatial data types.

Giá trị hình học đơn

Các loại dữ liệu hình học đơn lẻ bao gồm DOUBLE5, DOUBLE6, DOUBLE7 và DOUBLE8

  • DOUBLE5 lưu trữ bất kỳ loại giá trị hình học/không gian nào
  • DOUBLE6 được sử dụng cho một giá trị điểm duy nhất
  • DOUBLE7 lưu trữ một tập hợp nhiều điểm tạo thành một đường
  • DOUBLE8 là kiểu dữ liệu được sử dụng để lưu trữ một tập hợp nhiều điểm tạo thành một mặt đa giác

Bộ sưu tập các giá trị

Tập hợp các loại dữ liệu giá trị bao gồm FLOAT(M,D)3, FLOAT(M,D)4, FLOAT(M,D)5 và FLOAT(M,D)6

  • FLOAT(M,D)3 lưu trữ một tập hợp các giá trị hình học/không gian
  • FLOAT(M,D)4 được sử dụng để lưu trữ một tập hợp nhiều giá trị điểm
  • FLOAT(M,D)5 lưu trữ một bộ sưu tập nhiều dòng
  • FLOAT(M,D)6 được sử dụng cho một tập hợp nhiều đa giác

Các kiểu dữ liệu JSON

Kể từ phiên bản 5. 7. 8, MySQL bao gồm hỗ trợ cho kiểu dữ liệu gốc SMALLINT01, cho phép người dùng lưu trữ và quản lý tài liệu JSON thông qua cơ sở dữ liệu

MySQL đảm bảo rằng các tài liệu JSON hợp lệ và lưu trữ chúng vào cột JSON

Phần kết luận

Như bài viết đã phác thảo, có nhiều kiểu dữ liệu MySQL khác nhau để lựa chọn. Có nhiều loại lúc đầu có vẻ khó hiểu. Tuy nhiên, sự đa dạng của các loại dữ liệu chắc chắn sẽ giúp bạn tìm được loại phù hợp nhất với dữ liệu của mình và tối ưu hóa cơ sở dữ liệu để hoạt động tốt nhất.

kiểu dữ liệu trong cơ sở dữ liệu là gì?

Kiểu dữ liệu là thuộc tính chỉ định loại dữ liệu mà đối tượng có thể chứa . dữ liệu số nguyên, dữ liệu ký tự, dữ liệu tiền tệ, dữ liệu ngày và giờ, chuỗi nhị phân, v.v.

kiểu dữ liệu với ví dụ là gì?

Kiểu dữ liệu là một phân loại dữ liệu cho trình biên dịch hoặc trình thông dịch biết lập trình viên dự định sử dụng dữ liệu như thế nào. Hầu hết các ngôn ngữ lập trình đều hỗ trợ nhiều loại dữ liệu khác nhau, bao gồm số nguyên, số thực, ký tự hoặc chuỗi và Boolean

Văn bản kiểu dữ liệu trong MySQL là gì?

MySQL TEXT là kiểu dữ liệu chuẩn để lưu trữ các chuỗi ký tự đặc biệt với kích thước tối đa hoặc theo định nghĩa . Theo thứ tự của bộ ký tự của nó, các đánh giá và sắp xếp được xây dựng. Trên thực tế, kiểu dữ liệu TEXT này cho một cột bao gồm bốn loại. Đó là TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT.

Làm cách nào để tìm kiểu dữ liệu trong MySQL?

Bạn có thể lấy kiểu dữ liệu cột của bảng MySQL với sự trợ giúp của “information_schema. cột". CHỌN DATA_TYPE từ INFORMATION_SCHEMA. COLUMNS trong đó table_schema = 'yourDatabaseName' và table_name = 'yourTableName' .